From 45654bd807e0732cd632e384c3bbff61b481eb92 Mon Sep 17 00:00:00 2001 From: "Pavel V. Dimens" <19176506+pdimens@users.noreply.github.com> Date: Mon, 1 Jul 2024 15:44:31 -0400 Subject: [PATCH 0001/1589] add pysam dep (#48848) --- recipes/harpy/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index a363fb17b20b7..a988d54d40023 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -11,7 +11,7 @@ source: build: skip: True # [osx] - number: 0 + number: 1 missing_dso_whitelist: - /lib64/libstdc++.so.6 - /lib64/libc.so.6 @@ -34,6 +34,7 @@ requirements: - apptainer - bcftools =1.20 - pandas + - pysam - python >3.10 - rich-click - snakemake-minimal >7 From 7f7dd032c4c255c5acd07f81150959dcebd784b1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 1 Jul 2024 18:37:57 -0400 Subject: [PATCH 0002/1589] Update simpleaf to 0.17.0 (#48860) * Update simpleaf to 0.17.0 * Update meta.yaml * Update meta.yaml --------- Co-authored-by: Rob Patro --- recipes/simpleaf/meta.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/recipes/simpleaf/meta.yaml b/recipes/simpleaf/meta.yaml index 3d1763a882e62..59f8b233d3aaf 100644 --- a/recipes/simpleaf/meta.yaml +++ b/recipes/simpleaf/meta.yaml @@ -1,10 +1,10 @@ -{% set version = "0.16.2" %} +{% set version = "0.17.0" %} package: name: simpleaf version: {{ version }} -build: +build: # [not linux-aarch64] number: 0 run_exports: - {{ pin_subpackage("simpleaf", max_pin="x.x") }} @@ -12,20 +12,20 @@ build: source: url: https://github.com/COMBINE-lab/simpleaf/archive/v{{ version }}.tar.gz - sha256: e35fb2773b3f4f158d23ebc6d0b51aed29ea54206a3c57a56931325e67add720 + sha256: 584fec26f3841e53793dc5de1abb5a4b19373d744f7c205c85ae8abac3c77f2a requirements: build: - - rust >=1.73 - autoconf - make - {{ compiler('cxx') }} + - {{ compiler('rust') }} - pkg-config host: run: - - alevin-fry >=0.8.1 + - alevin-fry >=0.8.2 - salmon >=1.10.1 - - piscem >=0.7.0 # [not osx-arm64] + - piscem >=0.9.0 # [not osx-arm64] test: commands: From 58a94775a86b3d7dceed75e6f09d72d93436b63e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 1 Jul 2024 22:57:10 -0400 Subject: [PATCH 0003/1589] Update oakvar to 2.11.2 (#48863) --- recipes/oakvar/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/oakvar/meta.yaml b/recipes/oakvar/meta.yaml index 8281a7181a604..2cb2f69006dcd 100644 --- a/recipes/oakvar/meta.yaml +++ b/recipes/oakvar/meta.yaml @@ -1,6 +1,6 @@ {% set name = "OakVar" %} -{% set version = "2.11.1" %} -{% set sha256 = "40945a3ecbed8cf71956f9efcad83c7fedeedd1ca6c59e036cee95faac6fa8db" %} +{% set version = "2.11.2" %} +{% set sha256 = "cbdbb57b8df6815b121fca4ef17bff8360ac9c3e00d8799aa342ffcfef1a8fa3" %} package: name: {{ name|lower }} From e6f52514a695bd4eb3b4f07bee232c29c988e053 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 1 Jul 2024 22:57:25 -0400 Subject: [PATCH 0004/1589] Update stranger to 0.9.1 (#48852) --- recipes/stranger/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/stranger/meta.yaml b/recipes/stranger/meta.yaml index a303d4a75b34d..7c22e48e2acc5 100644 --- a/recipes/stranger/meta.yaml +++ b/recipes/stranger/meta.yaml @@ -1,5 +1,5 @@ {% set name = "stranger" %} -{% set version = "0.9.0" %} +{% set version = "0.9.1" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: ecc1fc0b4f38c6415ee682ecbe4ecbd2df6db3b6807d11c82763d20e64109b93 + sha256: b9322384836e46ed9373fdb30b4e7656ea59d6b293f22692a1b9125b6cb8ca76 build: number: 0 From 3a8cf0a6a19e6064f87a0152c8dcfa1186438ae9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 1 Jul 2024 22:57:45 -0400 Subject: [PATCH 0005/1589] Update gencove to 2.18.0 (#48853) --- recipes/gencove/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gencove/meta.yaml b/recipes/gencove/meta.yaml index 2f8adabb53067..d68732c137bbb 100644 --- a/recipes/gencove/meta.yaml +++ b/recipes/gencove/meta.yaml @@ -1,6 +1,6 @@ {% set name = "gencove" %} -{% set version = "2.17.1" %} -{% set sha256 = "bc27eda8126a87f8a439d88f74e9a963ed634a8625df1d7875586b1c814cbfe6" %} +{% set version = "2.18.0" %} +{% set sha256 = "c918361baadae2f27fee47a570c02a07392e7d2bfaed64ee537a7ee284251c09" %} package: name: {{ name }} From 96b391c72b50bfbd5ce9fbc6c53317c66ef017f9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 1 Jul 2024 22:58:03 -0400 Subject: [PATCH 0006/1589] Update centrifuger to 1.0.4 (#48857) --- recipes/centrifuger/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/centrifuger/meta.yaml b/recipes/centrifuger/meta.yaml index 722829e13b066..0cfbb3bdb2a85 100644 --- a/recipes/centrifuger/meta.yaml +++ b/recipes/centrifuger/meta.yaml @@ -1,5 +1,5 @@ {% set name = "centrifuger" %} -{% set version = "1.0.3" %} +{% set version = "1.0.4" %} package: name: {{ name|lower }} @@ -12,7 +12,7 @@ build: source: url: https://github.com/mourisl/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz - sha256: 04c08bb17aa9ab00bc1d5c0f8547cf6a6335003e315766ff1f07d5dedbbe2904 + sha256: 5261abcfb3b88126000ae7708702d07704a0ee19d6f54f9f89f0d2e195e24d1d requirements: build: From adad849602773579c640cb56deef0899362b46f6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 1 Jul 2024 22:58:27 -0400 Subject: [PATCH 0007/1589] Update harpy to 1.1 (#48858) --- recipes/harpy/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index a988d54d40023..2945f0e1411ac 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.0" %} -{% set sha256 = "c00013ba577f7be64f0a20975ec16a86cd8719aab860d170a8c095d821b90116" %} +{% set version = "1.1" %} +{% set sha256 = "1dd0d64b75f8820994d109f855cd4a883988ff811d6ec152b41f5332c50688e1" %} package: name: harpy @@ -11,7 +11,7 @@ source: build: skip: True # [osx] - number: 1 + number: 0 missing_dso_whitelist: - /lib64/libstdc++.so.6 - /lib64/libc.so.6 From f289a2bdeaac47a5fd60e24afd380e9adbb9e594 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 2 Jul 2024 01:56:33 -0400 Subject: [PATCH 0008/1589] Update mvip to 1.1.0 (#48859) Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/mvip/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mvip/meta.yaml b/recipes/mvip/meta.yaml index b68a886d17a03..10e104099b1ba 100644 --- a/recipes/mvip/meta.yaml +++ b/recipes/mvip/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mvip" %} -{% set version = "1.0.0" %} +{% set version = "1.1.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: f46d97de0916faa6f747d611160df7bb33219337cb9b01de5608b35421aa2b53 + sha256: ee9ea0d29e1d98ccdc7336ab9e41775e1dc0e1e9853d6f42b09bbb2d2f52b28d build: number: 0 From 714f554c2c1675a484da37370511d4a725d75f4b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 2 Jul 2024 04:17:54 -0400 Subject: [PATCH 0009/1589] Update mycotools to 0.31.36 (#48869) --- recipes/mycotools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mycotools/meta.yaml b/recipes/mycotools/meta.yaml index 387bd640c8e60..33d32cea9238d 100644 --- a/recipes/mycotools/meta.yaml +++ b/recipes/mycotools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mycotools" %} -{% set version = "0.31.35" %} +{% set version = "0.31.36" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mycotools-{{ version }}.tar.gz - sha256: 4174100f5d8e6af21208802b7c808ecf333ab12554306e1bb18e8584a4705656 + sha256: 58edb69ba33a12f7a27e1e013bb1f0377d9231f5e2672cae35a2205f0d71d112 build: entry_points: From 1f107b73dd52dd142389cd710e9cdc67d6085bc7 Mon Sep 17 00:00:00 2001 From: Clea Siguret <37694850+clsiguret@users.noreply.github.com> Date: Tue, 2 Jul 2024 10:27:11 +0200 Subject: [PATCH 0010/1589] Update ToolDistillator 0.9 (#48850) --- recipes/tooldistillator/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/tooldistillator/meta.yaml b/recipes/tooldistillator/meta.yaml index b32c2a1446e8e..278963cd3d1f7 100644 --- a/recipes/tooldistillator/meta.yaml +++ b/recipes/tooldistillator/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.8.5.0" %} -{% set sha256 = "67b8de2f9633fcd9a48c89b5cae9230e9600568ed0905c36284f75dd48745a83" %} +{% set version = "0.9" %} +{% set sha256 = "e2b52e29971ef0da84d9bb8370db060dbc6c58fc61e509e852d297b3d7648817" %} context: {} From fcfda83b4cb290cf530f077990a2fdd0f2125b3e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 2 Jul 2024 05:41:30 -0400 Subject: [PATCH 0011/1589] Update wfmash to 0.16.0 (#48871) --- recipes/wfmash/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/wfmash/meta.yaml b/recipes/wfmash/meta.yaml index 1274d4cb38164..79efc9cc86ab9 100644 --- a/recipes/wfmash/meta.yaml +++ b/recipes/wfmash/meta.yaml @@ -1,5 +1,5 @@ {% set name = "wfmash" %} -{% set version = "0.15.0" %} +{% set version = "0.16.0" %} package: name: "{{ name }}" @@ -7,13 +7,13 @@ package: source: url: https://github.com/waveygang/{{ name }}/releases/download/v{{ version }}/{{ name }}-v{{ version }}.tar.gz - sha256: 57d5fb6f8edc80d4af643d457cece0b118913818beb0583b17c88d911af829d2 + sha256: a3e59f27553d900ec2ce5b832a548d55b9c4f1e8a034040e39f6cb02bff7860e build: skip: True # [osx] run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} - number: 1 + number: 0 requirements: build: From 278da856b35aa29bb7a9d2b06aaec9f101ed32cd Mon Sep 17 00:00:00 2001 From: Jody Phelan Date: Tue, 2 Jul 2024 13:17:13 +0200 Subject: [PATCH 0012/1589] update dependancy (#48870) * update dependancy * update build number --- recipes/pathogen-profiler/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pathogen-profiler/meta.yaml b/recipes/pathogen-profiler/meta.yaml index fa717d8bd2388..fc0a41b76c4dd 100644 --- a/recipes/pathogen-profiler/meta.yaml +++ b/recipes/pathogen-profiler/meta.yaml @@ -13,7 +13,7 @@ source: build: script: python -m pip install --no-deps --ignore-installed . noarch: python - number: 0 + number: 1 run_exports: - { pin_subpackage('pathogen-profiler', max_pin="x") } @@ -31,7 +31,7 @@ requirements: - samtools >=1.12 - bcftools >=1.12 - tqdm - - delly >=0.8.7 + - delly >=0.8.7,<=1.1.6 - gatk4 - bedtools - freebayes =1.3.6 From 7ac1fb5b3cfa072c892d6a79c59aea4913749850 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 2 Jul 2024 07:19:45 -0400 Subject: [PATCH 0013/1589] Update crispector2 to 2.1.1 (#48874) --- recipes/crispector2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/crispector2/meta.yaml b/recipes/crispector2/meta.yaml index 288138c9508da..053f01342c522 100644 --- a/recipes/crispector2/meta.yaml +++ b/recipes/crispector2/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.1.0" %} +{% set version = "2.1.1" %} package: name: crispector2 @@ -15,7 +15,7 @@ build: source: url: https://github.com/theAguy/crispector2/archive/refs/tags/v{{ version }}.tar.gz - sha256: 77dc557d8d57a947a13fce352831d5e433307dd59524eb77b9fca2a581c2e372 + sha256: 6a741b8434056e1f0ed8cb1412448ea66507f7f6f425a53e2c4de4d424e47dab requirements: host: From cb9629c46ce16559f0ec19c0a0fd2dee110de946 Mon Sep 17 00:00:00 2001 From: Guy Assa <78320514+theAguy@users.noreply.github.com> Date: Tue, 2 Jul 2024 14:20:36 +0300 Subject: [PATCH 0014/1589] add crispector2 2.1.1 (#48873) --- recipes/crispector2/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/crispector2/meta.yaml b/recipes/crispector2/meta.yaml index 053f01342c522..341087d2dc5fa 100644 --- a/recipes/crispector2/meta.yaml +++ b/recipes/crispector2/meta.yaml @@ -33,7 +33,7 @@ requirements: - numpy >=1.12.1 - seaborn >=0.9.0 - plotly >=4.3.0 - - pandas >=0.24.2 + - pandas ==1.3.5 - statsmodels - jinja2 - tqdm >=4.66.0 From 433bb9d707b84485214736cf86bb2e6081fa8b9d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 2 Jul 2024 07:34:28 -0400 Subject: [PATCH 0015/1589] Update mintie to 0.4.3 (#48862) * Update mintie to 0.4.3 * Add run_exports * Disable the tests temporary to debug the produced binaries Signed-off-by: Martin Tzvetanov Grigorov * mintie: re-enable `mintie -h` test command Signed-off-by: Martin Tzvetanov Grigorov * mintie: re-enable the test command for bpipe Signed-off-by: Martin Tzvetanov Grigorov * Disable the test for bpipe. v0.9.12 returns 1 as a status code --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Grigorov Co-authored-by: Martin Tzvetanov Grigorov --- recipes/mintie/meta.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/recipes/mintie/meta.yaml b/recipes/mintie/meta.yaml index 823b8c0e7b146..23db67ac42422 100644 --- a/recipes/mintie/meta.yaml +++ b/recipes/mintie/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.4.2" %} +{% set version = "0.4.3" %} package: name: mintie @@ -6,10 +6,12 @@ package: source: url: https://github.com/Oshlack/MINTIE/archive/refs/tags/v{{ version }}.tar.gz - sha256: 3de32e6b6a365f9b9e3469b3c8bfb5d3514c718386f0c32f49cc811547fef409 + sha256: 93dbdc1c6328ad7e768d3031eaa9378102b861f96c97b7b11f0c5199f8c50cec build: number: 0 + run_exports: + - {{ pin_subpackage('mintie', max_pin="x.x") }} noarch: generic requirements: @@ -44,7 +46,7 @@ requirements: test: commands: - mintie -h - - cd /tmp && bpipe --help + # - bpipe --help about: home: https://github.com/Oshlack/MINTIE From 676328a7fef02b7cc7b43c521d7131dd5e2df0dd Mon Sep 17 00:00:00 2001 From: Matthias Zepper <6963520+MatthiasZepper@users.noreply.github.com> Date: Tue, 2 Jul 2024 15:11:58 +0200 Subject: [PATCH 0016/1589] Update `umi-transfer` recipe (#48811) * Try to optimise umi-transfer recipe. * Apply Martin Grigorov's suggestions from code review Co-authored-by: Martin Grigorov * Update sha256 after updating tags. * Add make, cmake, C, C++ compiler and zlib. * Remove unnecessary dependencies for umi-transfer. * Run the tests as part of the build routine. --------- Co-authored-by: Matthias Zepper Co-authored-by: Martin Grigorov --- recipes/umi-transfer/build.sh | 10 +++++++--- recipes/umi-transfer/meta.yaml | 26 ++++++++++++++------------ 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/recipes/umi-transfer/build.sh b/recipes/umi-transfer/build.sh index 5c4efc2ca83d4..dcb80951993e6 100644 --- a/recipes/umi-transfer/build.sh +++ b/recipes/umi-transfer/build.sh @@ -1,10 +1,14 @@ -#!/bin/bash -euo +#!/bin/bash -euo pipefail export CFLAGS="${CFLAGS} -fcommon" -export CXXFLAGS="${CFLAGS} -fcommon" +export CXXFLAGS="${CXXFLAGS} -fcommon" +export RUSTFLAGS="-C link-arg=-s" # Add workaround for SSH-based Git connections from Rust/cargo. See https://github.com/rust-lang/cargo/issues/2078 for details. # We set CARGO_HOME because we don't pass on HOME to conda-build, thus rendering the default "${HOME}/.cargo" defunct. export CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_HOME="$(pwd)/.cargo" +# Run the tests +RUST_BACKTRACE=1 cargo test --verbose --locked + # build statically linked binary with Rust -RUST_BACKTRACE=1 cargo install --verbose --root $PREFIX --path . \ No newline at end of file +RUST_BACKTRACE=1 cargo install --verbose --locked --root $PREFIX --path . \ No newline at end of file diff --git a/recipes/umi-transfer/meta.yaml b/recipes/umi-transfer/meta.yaml index 061cfdc1d4b78..acf6e68d657d7 100644 --- a/recipes/umi-transfer/meta.yaml +++ b/recipes/umi-transfer/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.0.0" %} -{% set sha256 = "04e2ee89487fde9be51984a5143931f349b39563b7e0b1861221389c5c5d1b7a" %} +{% set version = "1.5.0" %} +{% set sha256 = "eeacc6c12aea055f624a29623c96b9396e6b412461f57a8ff9e19ba849c4538d" %} package: name: umi-transfer @@ -11,20 +11,16 @@ source: build: number: 0 + run_exports: + - {{ pin_subpackage('umi-transfer', max_pin="x") }} requirements: build: - - rust >=1.40 - - cmake - make - - autoconf - - {{ compiler('cxx') }} - - pkg-config - - zlib - host: - - zlib - run: - + - cmake + - {{ compiler('c') }} + - {{ compiler("rust") }} + - cargo-bundle-licenses test: commands: @@ -36,3 +32,9 @@ about: license_family: MIT license_file: LICENSE summary: A tool for transferring Unique Molecular Identifiers (UMIs) from a separate FastQ file. + +extra: + recipe-maintainers: + - MatthiasZepper + additional-platforms: + - linux-aarch64 From 3229b3a7d87ca21f25dd0f484e941a1d73465552 Mon Sep 17 00:00:00 2001 From: RolandFaure <64131971+RolandFaure@users.noreply.github.com> Date: Tue, 2 Jul 2024 15:18:47 +0200 Subject: [PATCH 0017/1589] Update hairsplitter package to version 1.9.5 (#48876) * added hairsplitter * correct linting * corrected hairsplitter recipe * updated hairsplitter version to correct bugs in installation * update hairsplitter version * update version of hairsplitter * update version of hairsplitter --- recipes/hairsplitter/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/hairsplitter/meta.yaml b/recipes/hairsplitter/meta.yaml index e8a86de57ea0b..a6711415add34 100644 --- a/recipes/hairsplitter/meta.yaml +++ b/recipes/hairsplitter/meta.yaml @@ -1,6 +1,6 @@ {% set name = "HairSplitter" %} -{% set version = "1.8.0" %} -{% set sha256 = "a4b22e3d50860a51d657ccc233a034f38f143b74eeb9cafc6c3ca0b19b628207" %} +{% set version = "1.9.5" %} +{% set sha256 = "b05e9e6681056c18af7e136b3d537dac18a5ed24402612ca2173a4cced115c0b" %} package: name: {{ name|lower }} From 39ab89662775323699eeef700205e98d80ac4af6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 2 Jul 2024 09:19:37 -0400 Subject: [PATCH 0018/1589] Update flumutdb to 6.1 (#48879) * Update flumutdb to 6.1 * fix: added test to solve linter fail (#48872) --------- Co-authored-by: EdoardoGiussani <47834675+EdoardoGiussani@users.noreply.github.com> --- recipes/flumutdb/meta.yaml | 80 ++++++++++++++++++++------------------ 1 file changed, 43 insertions(+), 37 deletions(-) diff --git a/recipes/flumutdb/meta.yaml b/recipes/flumutdb/meta.yaml index c99e8feb36b17..772ab45fc1186 100644 --- a/recipes/flumutdb/meta.yaml +++ b/recipes/flumutdb/meta.yaml @@ -1,37 +1,43 @@ -{% set name = "flumutdb" %} -{% set version = "6.0" %} - -package: - name: {{ name|lower }} - version: {{ version }} - -source: - url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/flumutdb-{{ version }}.tar.gz - - sha256: 281c3f033d2bd242bfd2a267216f7bc480f4ec4299493565402b332e943ebc54 - -build: - run_exports: - - {{ pin_subpackage(name, max_pin="x") }} - noarch: python - script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir - number: 0 - -requirements: - host: - - python >=3.7 - - pip - run: - - python >=3.7 - -about: - home: https://github.com/izsvenezie-virology/FluMutDB - summary: Utility module for FluMut database. - license: AGPL-3.0-or-later - license_family: AGPL - license_file: LICENSE - -extra: - recipe-maintainers: - - EdoardoGiussani - - AlexSartori +{% set name = "flumutdb" %} +{% set version = "6.1" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/flumutdb-{{ version }}.tar.gz + + sha256: e85a4145b81017996dcd69fa7e52a0ec4c9140dfc557bc30a6e7ea91d7d80bf0 + +build: + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} + noarch: python + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + number: 0 + +requirements: + host: + - python >=3.7 + - pip + run: + - python >=3.7 + +test: + imports: + - flumutdb + commands: + - python -c "import flumutdb" + +about: + home: https://github.com/izsvenezie-virology/FluMutDB + summary: Utility module for FluMut database. + license: AGPL-3.0-or-later + license_family: AGPL + license_file: LICENSE + +extra: + recipe-maintainers: + - EdoardoGiussani + - AlexSartori From 974a305880f1535a8a2e9459c61808d0bbc88178 Mon Sep 17 00:00:00 2001 From: Niek de Jonge <76995965+niekdejonge@users.noreply.github.com> Date: Tue, 2 Jul 2024 15:37:48 +0200 Subject: [PATCH 0019/1589] Update recipe MS2Query (#45309) * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Change to rerun tests --- recipes/ms2query/meta.yaml | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/recipes/ms2query/meta.yaml b/recipes/ms2query/meta.yaml index 9c03dfc03553a..7e0654830d053 100644 --- a/recipes/ms2query/meta.yaml +++ b/recipes/ms2query/meta.yaml @@ -1,6 +1,6 @@ {% set name = "ms2query" %} -{% set version = "1.2.3" %} -{% set sha256 = "2111d9bb6d6b35144128f396d6141ec151b4f4d14a262de0516e3673bfd9a9f1" %} +{% set version = "1.5.0" %} +{% set sha256 = "7f72a7b2f4a6bf4b8d73e99e6708184decf34d36afe359fc38b3678561a44772" %} package: name: {{ name|lower }} @@ -21,23 +21,22 @@ build: requirements: host: - - python >=3.7 + - python >=3.9 run: - - python >=3.7 - - matchms >=0.14.0,<=0.17.0 - - spec2vec >=0.6.0 - - h5py >=3.8.0 - - tensorflow <2.9 - - scikit-learn - - ms2deepscore - - gensim >=4.0.0 - - pandas >=1.2.5,<2.0.0 - - matchmsextras =0.4.1 - - pubchempy - - tqdm + - python >=3.9 + - matchms =0.26.4 + - spec2vec =0.8.0 + - numpy =1.24.4 + - h5py =3.11.0 + - scikit-learn =1.5.0 + - pyarrow =16.1.0 + - ms2deepscore =2.0.0 + - pandas =2.2.2 - matplotlib-base - - skl2onnx - - onnxruntime + - skl2onnx =1.16.0 + - onnxruntime =1.17.0 + - pytest =8.2.2 + - pytest-cov =5.0.0 - rdkit test: @@ -48,7 +47,7 @@ about: home: https://github.com/iomega/ms2query license: Apache-2.0 license_file: LICENSE - summary: "Reliable and fast MS/MS spectral-based analogue search" + summary: "Reliable and fast MS/MS spectral based analogue search" extra: identifiers: From aa77aab8a9bf4cfdedc42c9f20f5505df4281a31 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 2 Jul 2024 09:49:46 -0400 Subject: [PATCH 0020/1589] Update chewbbaca to 3.3.8 (#48882) --- recipes/chewbbaca/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/chewbbaca/meta.yaml b/recipes/chewbbaca/meta.yaml index fc620e21f3c48..43705581cdfaf 100644 --- a/recipes/chewbbaca/meta.yaml +++ b/recipes/chewbbaca/meta.yaml @@ -1,5 +1,5 @@ {% set name = 'chewBBACA' %} -{% set version = '3.3.7' %} +{% set version = '3.3.8' %} package: name: {{ name|lower }} @@ -8,7 +8,7 @@ package: source: url: https://github.com/B-UMMI/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz # url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: a12ac7604422d12961c31b763344eaab6ed151efd45339597a2b8f3dadfdb8ec + sha256: de00c13dbd83f91ad7fc427262ceca3ae6746d0395213fb15e3c816965bf33dc # sha256: b54c5f4fb2f3c943f9ec51e5b81f4fb9a312fcc87fdea6e0a9f3edbebdf62308 build: From b3b5b19c5e398af3d07af7e231daf10e857481a5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 2 Jul 2024 09:50:12 -0400 Subject: [PATCH 0021/1589] Update pydeseq2 to 0.4.10 (#48881) --- recipes/pydeseq2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pydeseq2/meta.yaml b/recipes/pydeseq2/meta.yaml index 245e1501865d3..4bcdcbc360961 100644 --- a/recipes/pydeseq2/meta.yaml +++ b/recipes/pydeseq2/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pydeseq2" %} -{% set version = "0.4.9" %} +{% set version = "0.4.10" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pydeseq2-{{ version }}.tar.gz - sha256: 0375207775953f43f84ed4279fcb9f11a430d79d038e158bbe74acbc58326d31 + sha256: 8a296938c565035f2c219c870d8e0138e699d71b30f2add04a647b4fbd0b8b6a build: noarch: python From 8b8116e0f4c06dc7f85cff6e234a613e218551a0 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 2 Jul 2024 18:05:47 +0300 Subject: [PATCH 0022/1589] harpy: add linux-aarch64 build (#48865) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/harpy/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index 2945f0e1411ac..cf0bf28f04882 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -11,7 +11,7 @@ source: build: skip: True # [osx] - number: 0 + number: 1 missing_dso_whitelist: - /lib64/libstdc++.so.6 - /lib64/libc.so.6 @@ -64,6 +64,8 @@ about: dev_url: https://github.com/pdimens/harpy extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - pdimens skip-lints: From 86d441bdc65adcdab46b826acb695e16aa68d5c8 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 2 Jul 2024 18:06:46 +0300 Subject: [PATCH 0023/1589] centrifuger: add linux-aarch64 build (#48866) * centrifuger: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Empty commit to build * Export LINKPATH instead of the standard LDFLAGS https://github.com/mourisl/centrifuger/blob/v1.0.4/Makefile#L3 Preserve "-msse4.2" in CXXFLAGS for x86_64 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/centrifuger/build.sh | 10 ++++++++-- recipes/centrifuger/meta.yaml | 5 +++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/recipes/centrifuger/build.sh b/recipes/centrifuger/build.sh index 5198e76cc7426..f91276b92437d 100644 --- a/recipes/centrifuger/build.sh +++ b/recipes/centrifuger/build.sh @@ -1,10 +1,16 @@ #!/bin/bash -export LDFLAGS="-L$PREFIX/lib" + +set -xe + export CPATH=${PREFIX}/include +if [ $(uname -m) == "x86_64" ]; then + CXXFLAGS="${CXXFLAGS} -msse4.2" +fi + mkdir -p $PREFIX/bin -make CXX=$CXX RELEASE_FLAGS="$CXXFLAGS" +make -j ${CPU_COUNT} CXX="$CXX" CXXFLAGS="$CXXFLAGS" LINKPATH="-L${PREFIX}/lib" chmod +x centrifuger-download chmod +x centrifuger-kreport chmod +x centrifuger-inspect diff --git a/recipes/centrifuger/meta.yaml b/recipes/centrifuger/meta.yaml index 0cfbb3bdb2a85..25087132e9a81 100644 --- a/recipes/centrifuger/meta.yaml +++ b/recipes/centrifuger/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} @@ -16,7 +16,6 @@ source: requirements: build: - - zlib - make - {{ compiler('cxx') }} host: @@ -40,5 +39,7 @@ about: summary: 'Lossless compression of microbial genomes for efficient and accurate metagenomic sequence classification.' extra: + additional-platforms: + - linux-aarch64 identifiers: - doi:10.1101/2023.11.15.567129 From 1faf925947ad802b1c95af68fb85133e73b94a68 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 2 Jul 2024 18:07:34 +0300 Subject: [PATCH 0024/1589] slclust: add linux-aarch64 build (#48877) * slclust: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * slclust: Use conda's c++ compiler Signed-off-by: Martin Tzvetanov Grigorov * Pass CXXFLAGS and -I./include to "CC" because it overwrites Signed-off-by: Martin Tzvetanov Grigorov * Debug the test program Signed-off-by: Martin Tzvetanov Grigorov * mkdir -p $PREFIX/bin because otherwise it is the slclust binary Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/slclust/build.sh | 8 ++++++-- recipes/slclust/meta.yaml | 10 ++++++++-- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 20997a9079d19..6916faaba447a 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -363,7 +363,6 @@ recipes/fwdpp recipes/parafly recipes/smashbenchmarking recipes/saffrontree -recipes/slclust # tracking master branch recipes/frc diff --git a/recipes/slclust/build.sh b/recipes/slclust/build.sh index eaddf0285507e..dc99d24e2542e 100644 --- a/recipes/slclust/build.sh +++ b/recipes/slclust/build.sh @@ -1,3 +1,7 @@ #!/bin/bash -make install -cp bin/slclust $PREFIX/bin + +set -xe + +make -j ${CPU_COUNT} CC="${CXX} ${CXXFLAGS} -I${PWD}/include" install +mkdir -p $PREFIX/bin +cp -f bin/slclust $PREFIX/bin diff --git a/recipes/slclust/meta.yaml b/recipes/slclust/meta.yaml index 96893ef87aecf..3e2f82a2d39e1 100644 --- a/recipes/slclust/meta.yaml +++ b/recipes/slclust/meta.yaml @@ -7,12 +7,14 @@ source: sha256: 9e21b65288e7fc35647721380cfedffd68608e164b4240c692c511c18c1620f8 build: - number: 3 + number: 4 + run_exports: + - {{ pin_subpackage("slclust", max_pin=None) }} requirements: build: - make - - {{ compiler('c') }} + - {{ compiler('cxx') }} host: - zlib run: @@ -26,3 +28,7 @@ about: home: https://sourceforge.net/projects/slclust/ license: Artistic License summary: A utility that performs single-linkage clustering with the option of applying a Jaccard similarity coefficient to break weakly bound clusters into distinct clusters. + +extra: + additional-platforms: + - linux-aarch64 From df6c78dc4a968049a562301af66cba7a6e0a3fc7 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 2 Jul 2024 18:07:44 +0300 Subject: [PATCH 0025/1589] r-biodb: add linux-aarch64 build (#48878) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/r-biodb/meta.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/recipes/r-biodb/meta.yaml b/recipes/r-biodb/meta.yaml index 3625bba7d5baa..1f5bd0438fbb8 100644 --- a/recipes/r-biodb/meta.yaml +++ b/recipes/r-biodb/meta.yaml @@ -9,7 +9,9 @@ source: sha256: abc4c533a2824e98bb6b4e94b5288bf89c6cf2ba5e62804d0e8dc75147eecb88 build: - number: 8 + number: 9 + run_exports: + - {{ pin_subpackage('r-biodb', max_pin="x") }} rpaths: - lib/R/lib/ - lib/ @@ -49,7 +51,10 @@ about: license: AGPL-3.0 summary: 'An R package for connecting to chemical and biological databases.' home: https://github.com/pkrog/biodb + extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - MathiasHaudgaard - FrodePedersen From a8c289da8e43f332cba63630d452286cb5f72cbd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 2 Jul 2024 11:35:17 -0400 Subject: [PATCH 0026/1589] Update kegg-pathways-completeness to 1.0.3 (#48886) --- recipes/kegg-pathways-completeness/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/kegg-pathways-completeness/meta.yaml b/recipes/kegg-pathways-completeness/meta.yaml index 59e936b7cb839..7380bc6b6a9d3 100644 --- a/recipes/kegg-pathways-completeness/meta.yaml +++ b/recipes/kegg-pathways-completeness/meta.yaml @@ -1,5 +1,5 @@ {% set name = "kegg-pathways-completeness" %} -{% set version = "1.0.2" %} +{% set version = "1.0.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/kegg_pathways_completeness-{{ version }}.tar.gz - sha256: 70dde6ce82fad1de40f58e8a3637a8e518507ec63bfaef3c1ab3a839679379bd + sha256: 9c2e274f39efb4f0111074d34262df9990871fd94f6c8e9d91a146a20881373f build: entry_points: From cadb658c6b445f9203ccc2211085dcab2086c615 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 2 Jul 2024 13:54:03 -0400 Subject: [PATCH 0027/1589] Update ntroot to 1.1.1 (#48889) --- recipes/ntroot/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ntroot/meta.yaml b/recipes/ntroot/meta.yaml index f1d0979b9a359..1f80980f59125 100644 --- a/recipes/ntroot/meta.yaml +++ b/recipes/ntroot/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ntRoot" %} -{% set version = "1.1.0" %} +{% set version = "1.1.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/bcgsc/ntRoot/releases/download/v{{ version }}/{{ name }}-{{ version }}.tar.gz - sha256: 96bb474f0fa91e8730117d64448e427f0a39c6d15a7e25a5132014bb168a919b + sha256: 0bf8a037b78a619a1c95d658a6dae7bd814d5a04b3c9e97a353317fafa662526 build: number: 0 From ccd33a24f05a1eb4def92107195c13401bdd2540 Mon Sep 17 00:00:00 2001 From: stekaz Date: Wed, 3 Jul 2024 03:55:15 +1000 Subject: [PATCH 0028/1589] Update bwakit to use 0.7.18 (#48885) --- recipes/bwakit/build.sh | 2 +- recipes/bwakit/meta.yaml | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/recipes/bwakit/build.sh b/recipes/bwakit/build.sh index 1be79bf22fcda..c76110961b8cf 100644 --- a/recipes/bwakit/build.sh +++ b/recipes/bwakit/build.sh @@ -6,7 +6,7 @@ pushd bwakit-0.7.15 cp -r resource-* $PREFIX/bin popd -pushd bwa-0.7.17/bwakit +pushd bwa-0.7.18/bwakit for file in *.js ; do { echo '#!/usr/bin/env k8'; cat "${file}"; } > "${file}.tmp" mv "${file}.tmp" "${file}" && chmod 0755 "${file}" diff --git a/recipes/bwakit/meta.yaml b/recipes/bwakit/meta.yaml index 2359d6f407876..abfb0d80b9737 100644 --- a/recipes/bwakit/meta.yaml +++ b/recipes/bwakit/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.7.17.dev1" %} +{% set version = "0.7.18.dev1" %} package: name: bwakit version: {{ version }} @@ -7,21 +7,23 @@ source: - url: http://downloads.sourceforge.net/project/bio-bwa/bwakit/bwakit-0.7.15_x64-linux.tar.bz2 folder: bwakit-0.7.15 sha256: 0a7b11971bc7916b68e9df35a364afe77cb3000df02ffb3a6fbd1aff9be5878c - - url: https://github.com/lh3/bwa/archive/v0.7.17.tar.gz - folder: bwa-0.7.17 - sha256: 980b9591b61c60042c4a39b9e31ccaad8d17ff179d44d347997825da3fdf47fd + - url: https://github.com/lh3/bwa/archive/v0.7.18.tar.gz + folder: bwa-0.7.18 + sha256: 194788087f7b9a77c0114aa481b2ef21439f6abab72488c83917302e8d0e7870 patches: - patches/run-HLA.patch build: noarch: generic - number: 1 + number: 0 + run_exports: + - {{ pin_subpackage('bwakit', max_pin="x.x") }} requirements: run: - k8 - perl - - bwa ==0.7.17 + - bwa ==0.7.18 - fermi2 ==r170 - htsbox ==r315 - ropebwt2 ==r187 From d0a36c4d695bc38028f341fdcc3138d8479c7ba6 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 3 Jul 2024 00:25:55 +0300 Subject: [PATCH 0029/1589] simpleaf & alevin-fry & piscem: add linux-aarch64 build (#48867) * simpleaf: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * piscem: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * alevin-fry: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * alevin-fry: Use libradicl 0.8.2 from crates.io Signed-off-by: Martin Tzvetanov Grigorov * Update build.sh cargo `--config` line should obviate the need for a patch * Update meta.yaml should be able to avoid the patch * Update build.sh --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Rob Patro --- recipes/alevin-fry/build.sh | 5 +- recipes/alevin-fry/meta.yaml | 8 +- recipes/alevin-fry/use-libradicl-0.8.2.patch | 13 +++ recipes/piscem/build_failure.osx-64.yaml | 104 ------------------- recipes/piscem/meta.yaml | 7 +- recipes/simpleaf/build_failure.linux-64.yaml | 104 ------------------- recipes/simpleaf/build_failure.osx-64.yaml | 104 ------------------- recipes/simpleaf/meta.yaml | 9 +- 8 files changed, 34 insertions(+), 320 deletions(-) create mode 100644 recipes/alevin-fry/use-libradicl-0.8.2.patch delete mode 100644 recipes/piscem/build_failure.osx-64.yaml delete mode 100644 recipes/simpleaf/build_failure.linux-64.yaml delete mode 100644 recipes/simpleaf/build_failure.osx-64.yaml diff --git a/recipes/alevin-fry/build.sh b/recipes/alevin-fry/build.sh index be24ecc64d3c6..716bef9e20efb 100644 --- a/recipes/alevin-fry/build.sh +++ b/recipes/alevin-fry/build.sh @@ -6,5 +6,8 @@ export CXXFLAGS="${CFLAGS} -fcommon" # We set CARGO_HOME because we don't pass on HOME to conda-build, thus rendering the default "${HOME}/.cargo" defunct. export CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_HOME="$(pwd)/.cargo" +# get the version of libradicl on which we will be depending +LIBRAD_VER=`grep 'libradicl' Cargo.toml | grep -oh 'version = "[^\"]\+"' | grep -oh '"[^\"]\+"'` + # build statically linked binary with Rust -RUST_BACKTRACE=1 cargo install --verbose --root $PREFIX --path . +RUST_BACKTRACE=1 cargo install --config 'patch."https://github.com/COMBINE-lab/libradicl".libradicl='$LIBRAD_VER'' --verbose --root $PREFIX --path . diff --git a/recipes/alevin-fry/meta.yaml b/recipes/alevin-fry/meta.yaml index 446695091e5e6..4897b13e4470b 100644 --- a/recipes/alevin-fry/meta.yaml +++ b/recipes/alevin-fry/meta.yaml @@ -5,13 +5,15 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("alevin-fry", max_pin="x.x") }} source: url: https://github.com/COMBINE-lab/alevin-fry/archive/v{{ version }}.tar.gz sha256: 80fa964ba998c21dfd1190629015924e53d633be64cb8c8ee105bd7e3a33ac21 + #patches: + # - use-libradicl-0.8.2.patch requirements: build: @@ -33,3 +35,7 @@ about: license: BSD 3-Clause license_file: LICENSE summary: alevin-fry is a tool for the efficient processing of single-cell data based on RAD files produced by alevin + +extra: + additional-platforms: + - linux-aarch64 diff --git a/recipes/alevin-fry/use-libradicl-0.8.2.patch b/recipes/alevin-fry/use-libradicl-0.8.2.patch new file mode 100644 index 0000000000000..f74047259d5ec --- /dev/null +++ b/recipes/alevin-fry/use-libradicl-0.8.2.patch @@ -0,0 +1,13 @@ +diff --git i/Cargo.toml w/Cargo.toml +index eeefa95..e8a7b28 100644 +--- i/Cargo.toml ++++ w/Cargo.toml +@@ -35,7 +35,7 @@ categories = ["command-line-utilities", "science"] + [dependencies] + # for local development, look in the libradicl git repository + # but when published, pull the specified version +-libradicl = { git = "https://github.com/COMBINE-lab/libradicl", branch = "develop", version = "0.8.2" } ++libradicl = "0.8.2" + anyhow = "1.0.80" + arrayvec = "0.7.4" + ahash = "0.8.11" diff --git a/recipes/piscem/build_failure.osx-64.yaml b/recipes/piscem/build_failure.osx-64.yaml deleted file mode 100644 index 2bf52c5362a5c..0000000000000 --- a/recipes/piscem/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: ec6992505a5cb84510a706c0a0c9ca75751618dbb0fdf9f0d304febb83444c50 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - return ::aligned_alloc(__alignment, __size > __rounded_size ? __size : __rounded_size); - ~~^ - 9 warnings and 6 errors generated. - make[2]: *** [CMakeFiles/pesc_static.dir/build.make:76: CMakeFiles/pesc_static.dir/src/pesc_bulk.cpp.o] Error 1 - make[2]: *** Waiting for unfinished jobs.... - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/src/hit_searcher.cpp:1: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/src/../include/hit_searcher.hpp:5: - /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/CanonicalKmerIterator.hpp:17:17: warning: 'iterator, int>' is deprecated [-Wdeprecated-declarations] - : public std::iterator, int> { - ^ - /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/_build_env/bin/../include/c/v1/__iterator/iterator.h:24:29: note: 'iterator, int>' has been explicitly marked deprecated here - struct _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX17 iterator - ^ - /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/_build_env/bin/../include/c/v1/__config:874:41: note: expanded from macro '_LIBCPP_DEPRECATED_IN_CXX17' - # define _LIBCPP_DEPRECATED_IN_CXX17 _LIBCPP_DEPRECATED - ^ - /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/_build_env/bin/../include/c/v1/__config:847:49: note: expanded from macro '_LIBCPP_DEPRECATED' - # define _LIBCPP_DEPRECATED __attribute__((deprecated)) - ^ - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/src/hit_searcher.cpp:1: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/src/../include/hit_searcher.hpp:6: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/projected_hits.hpp:4: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/util.hpp:8: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/../external/pthash/include/pthash.hpp:4: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/../external/pthash/include/single_phf.hpp:3: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/../external/pthash/include/utils/bucketers.hpp:3: - /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/../external/pthash/include/utils/util.hpp:16:71: error: use of undeclared identifier '_SC_PHYS_PAGES' - static const uint64_t available_ram = sysconf(_SC_PAGESIZE) * sysconf(_SC_PHYS_PAGES); - ^ - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/src/hit_searcher.cpp:1: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/src/../include/hit_searcher.hpp:6: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/projected_hits.hpp:4: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/util.hpp:8: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/../external/pthash/include/pthash.hpp:4: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/../external/pthash/include/single_phf.hpp:3: - /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/../external/pthash/include/utils/bucketers.hpp:18:41: warning: implicit conversion from 'unsigned long long' to 'double' changes value from 18446744073709551615 to 18446744073709551616 [-Wimplicit-const-int-float-conversion] - static const uint64_t T = 0.6 * UINT64_MAX; - ~ ^~~~~~~~~~ - /Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/stdint.h:87:27: note: expanded from macro 'UINT64_MAX' - #define UINT64_MAX 18446744073709551615ULL - ^~~~~~~~~~~~~~~~~~~~~~~ - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/src/hit_searcher.cpp:1: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/src/../include/hit_searcher.hpp:7: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/reference_index.hpp:13: - /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/../include/ghc/filesystem.hpp:4626:24: error: use of undeclared identifier 'UTIME_OMIT' - times[0].tv_nsec = UTIME_OMIT; - ^ - /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/../include/ghc/filesystem.hpp:4629:11: error: no member named 'utimensat' in the global namespace - if (::utimensat(AT_FDCWD, p.c_str(), times, AT_SYMLINK_NOFOLLOW) != 0) { - ~~^ - /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/../include/ghc/filesystem.hpp:4629:21: error: use of undeclared identifier 'AT_FDCWD' - if (::utimensat(AT_FDCWD, p.c_str(), times, AT_SYMLINK_NOFOLLOW) != 0) { - ^ - /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/../include/ghc/filesystem.hpp:4629:49: error: use of undeclared identifier 'AT_SYMLINK_NOFOLLOW' - if (::utimensat(AT_FDCWD, p.c_str(), times, AT_SYMLINK_NOFOLLOW) != 0) { - ^ - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/src/hit_searcher.cpp:1: - /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/src/../include/hit_searcher.hpp:49:8: warning: private field 'isSingleEnd' is not used [-Wunused-private-field] - bool isSingleEnd = false; - ^ - 3 warnings and 6 errors generated. - make[2]: *** [CMakeFiles/pesc_static.dir/build.make:104: CMakeFiles/pesc_static.dir/src/hit_searcher.cpp.o] Error 1 - 10 warnings and 6 errors generated. - make[2]: *** [CMakeFiles/pesc_static.dir/build.make:90: CMakeFiles/pesc_static.dir/src/pesc_sc.cpp.o] Error 1 - make[1]: *** [CMakeFiles/Makefile2:123: CMakeFiles/pesc_static.dir/all] Error 2 - make: *** [Makefile:136: all] Error 2 - thread 'main' panicked at ' - command did not execute successfully, got: exit status: 2 - - build script failed, must exit now', /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/.cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.50/src/lib.rs:1098:5 - stack backtrace: - 0: rust_begin_unwind - at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:579:5 - 1: core::panicking::panic_fmt - at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/panicking.rs:64:14 - 2: cmake::fail - 3: cmake::run - 4: cmake::Config::build - 5: build_script_build::main - 6: core::ops::function::FnOnce::call_once - note: Some details are omitted, run with RUST_BACKTRACE=full for a verbose backtrace. - error: failed to compile piscem v0.6.0 (/opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work), intermediate artifacts can be found at /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/target - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 2198, in build - utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 451, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 427, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/conda_build.sh']' returned non-zero exit status 101. -# Last 100 lines of the build log. diff --git a/recipes/piscem/meta.yaml b/recipes/piscem/meta.yaml index 6c1944eb1ed03..c4a69cd798f80 100644 --- a/recipes/piscem/meta.yaml +++ b/recipes/piscem/meta.yaml @@ -7,11 +7,10 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("piscem", max_pin="x.x") }} - # skip: True # [linux] - + source: git_url: https://github.com/COMBINE-lab/piscem git_rev: "{{ git_commit }}" @@ -48,5 +47,7 @@ about: summary: piscem is a next-generation compacted colored de Bruijn Graph-based indexer and mapper extra: + additional-platforms: + - linux-aarch64 skip-lints: - uses_vcs_url diff --git a/recipes/simpleaf/build_failure.linux-64.yaml b/recipes/simpleaf/build_failure.linux-64.yaml deleted file mode 100644 index f7241c00952d4..0000000000000 --- a/recipes/simpleaf/build_failure.linux-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: fc9e5f6ccb23b5ce477989885aad22c550fc4997bb62461438f4887faaba8cb4 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - Running rustc --crate-name phf_shared --edition=2021 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/phf_shared-0.11.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="std"' -C metadata=55830bec45f75c14 -C extra-filename=-55830bec45f75c14 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern siphasher=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libsiphasher-36cf79d95e7c288b.rmeta --cap-lints allow - Compiling nix v0.26.2 - Running rustc --crate-name nix --edition=2018 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/nix-0.26.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="acct"' --cfg 'feature="aio"' --cfg 'feature="default"' --cfg 'feature="dir"' --cfg 'feature="env"' --cfg 'feature="event"' --cfg 'feature="feature"' --cfg 'feature="fs"' --cfg 'feature="hostname"' --cfg 'feature="inotify"' --cfg 'feature="ioctl"' --cfg 'feature="kmod"' --cfg 'feature="memoffset"' --cfg 'feature="mman"' --cfg 'feature="mount"' --cfg 'feature="mqueue"' --cfg 'feature="net"' --cfg 'feature="personality"' --cfg 'feature="pin-utils"' --cfg 'feature="poll"' --cfg 'feature="process"' --cfg 'feature="pthread"' --cfg 'feature="ptrace"' --cfg 'feature="quota"' --cfg 'feature="reboot"' --cfg 'feature="resource"' --cfg 'feature="sched"' --cfg 'feature="signal"' --cfg 'feature="socket"' --cfg 'feature="term"' --cfg 'feature="time"' --cfg 'feature="ucontext"' --cfg 'feature="uio"' --cfg 'feature="user"' --cfg 'feature="zerocopy"' -C metadata=2722793fe78cdba8 -C extra-filename=-2722793fe78cdba8 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern bitflags=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libbitflags-f63ed375a8247fc1.rmeta --extern cfg_if=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libcfg_if-e30bb64288f055a5.rmeta --extern libc=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/liblibc-b67c909beeb06a35.rmeta --extern memoffset=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libmemoffset-ed6a68cc066745ca.rmeta --extern pin_utils=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libpin_utils-21afeaae78b837f7.rmeta --extern static_assertions=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libstatic_assertions-e585bd5f691dbb90.rmeta --cap-lints allow - Compiling papergrid v0.8.2 - Running rustc --crate-name papergrid --edition=2018 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/papergrid-0.8.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="std"' -C metadata=c9987ae8f991124d -C extra-filename=-c9987ae8f991124d --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern bytecount=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libbytecount-0acee41dc88e4e72.rmeta --extern fnv=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libfnv-07150e3bdfd17a92.rmeta --extern unicode_width=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libunicode_width-9116f259e4e998f4.rmeta --cap-lints allow - Compiling tracing-subscriber v0.3.17 - Running rustc --crate-name tracing_subscriber --edition=2018 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/tracing-subscriber-0.3.17/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="alloc"' --cfg 'feature="ansi"' --cfg 'feature="default"' --cfg 'feature="env-filter"' --cfg 'feature="fmt"' --cfg 'feature="matchers"' --cfg 'feature="nu-ansi-term"' --cfg 'feature="once_cell"' --cfg 'feature="regex"' --cfg 'feature="registry"' --cfg 'feature="sharded-slab"' --cfg 'feature="smallvec"' --cfg 'feature="std"' --cfg 'feature="thread_local"' --cfg 'feature="tracing"' --cfg 'feature="tracing-log"' -C metadata=7c9273dde5a33dbf -C extra-filename=-7c9273dde5a33dbf --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern matchers=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libmatchers-ee6f50ab11e6bcc1.rmeta --extern nu_ansi_term=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libnu_ansi_term-c73453d09fa402e0.rmeta --extern once_cell=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libonce_cell-4222a1721ff08b9c.rmeta --extern regex=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libregex-c1138367945b7bab.rmeta --extern sharded_slab=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libsharded_slab-931a04761a6a08eb.rmeta --extern smallvec=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libsmallvec-ebc1587b63429e1e.rmeta --extern thread_local=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libthread_local-7de605d2f86a876a.rmeta --extern tracing=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtracing-5beba820ab0c10d7.rmeta --extern tracing_core=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtracing_core-5aa6203a60784f10.rmeta --extern tracing_log=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtracing_log-d0b16f7fc3d8713d.rmeta --cap-lints allow - Compiling seq_geom_parser v0.3.0 (https://github.com/COMBINE-lab/seq_geom_parser?branch=dev#f5f3f9f7) - Running rustc --crate-name seq_geom_parser --edition=2021 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/git/checkouts/seq_geom_parser-828dba3bab9b7afe/f5f3f9f/src/lib/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=2e4aab5dafc15174 -C extra-filename=-2e4aab5dafc15174 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern anyhow=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libanyhow-caab6b502aba6c94.rmeta --extern pest=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libpest-1241ff5a1307c205.rmeta --extern pest_derive=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libpest_derive-07f390c64e57469f.so --cap-lints allow - Running rustc --crate-name num_integer /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/num-integer-0.1.45/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=b49dccab28c28c7b -C extra-filename=-b49dccab28c28c7b --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern num_traits=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libnum_traits-b51f8527a098198c.rmeta --cap-lints allow --cfg has_i128 - Compiling phf_macros v0.11.1 - Running rustc --crate-name phf_macros --edition=2021 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/phf_macros-0.11.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type proc-macro --emit=dep-info,link -C prefer-dynamic -C embed-bitcode=no -C debug-assertions=off -C metadata=9a6d176f935126d3 -C extra-filename=-9a6d176f935126d3 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern phf_generator=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libphf_generator-3a9e807069b2416d.rlib --extern phf_shared=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libphf_shared-e5849a6857dc5a1d.rlib --extern proc_macro2=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libproc_macro2-090712d1aa35a6d6.rlib --extern quote=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libquote-068068936dd8d8a3.rlib --extern syn=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libsyn-ed153e362cdac877.rlib --extern proc_macro --cap-lints allow - Compiling needletail v0.5.1 - Running rustc --crate-name needletail --edition=2021 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/needletail-0.5.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type cdylib --crate-type rlib --emit=dep-info,link -C opt-level=3 --cfg 'feature="bzip2"' --cfg 'feature="compression"' --cfg 'feature="default"' --cfg 'feature="flate2"' --cfg 'feature="xz2"' -C metadata=896f2ff7feaf0eeb -C extra-filename=-896f2ff7feaf0eeb --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern buffer_redux=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libbuffer_redux-fce80a929ba088b3.rlib --extern bytecount=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libbytecount-0acee41dc88e4e72.rlib --extern bzip2=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libbzip2-18797058f7bb73bb.rlib --extern flate2=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libflate2-7d4c45aec80b043c.rlib --extern memchr=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libmemchr-6325122094cc2039.rlib --extern xz2=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libxz2-0b3e73abd6b32ce1.rlib --cap-lints allow -L native=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/build/bzip2-sys-12e3ca26969e3f4d/out/lib -L native=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/build/lzma-sys-505d9198e0987d26/out - Compiling tabled_derive v0.6.0 - Running rustc --crate-name tabled_derive --edition=2018 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/tabled_derive-0.6.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type proc-macro --emit=dep-info,link -C prefer-dynamic -C embed-bitcode=no -C debug-assertions=off -C metadata=d4596a1ad85edb9b -C extra-filename=-d4596a1ad85edb9b --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern heck=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libheck-ef45e9ada66517fc.rlib --extern proc_macro_error=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libproc_macro_error-4c8d51c259682028.rlib --extern proc_macro2=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libproc_macro2-090712d1aa35a6d6.rlib --extern quote=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libquote-068068936dd8d8a3.rlib --extern syn=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libsyn-ed153e362cdac877.rlib --extern proc_macro --cap-lints allow - Compiling cmd_lib_macros v1.3.0 - Running rustc --crate-name cmd_lib_macros --edition=2018 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/cmd_lib_macros-1.3.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type proc-macro --emit=dep-info,link -C prefer-dynamic -C embed-bitcode=no -C debug-assertions=off -C metadata=f7f4fca7b9cc4e58 -C extra-filename=-f7f4fca7b9cc4e58 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern proc_macro_error=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libproc_macro_error-4c8d51c259682028.rlib --extern proc_macro2=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libproc_macro2-090712d1aa35a6d6.rlib --extern quote=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libquote-068068936dd8d8a3.rlib --extern syn=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libsyn-ed153e362cdac877.rlib --extern proc_macro --cap-lints allow - Compiling faccess v0.2.4 - Running rustc --crate-name faccess --edition=2018 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/faccess-0.2.4/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=86362437400bde4c -C extra-filename=-86362437400bde4c --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern bitflags=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libbitflags-f63ed375a8247fc1.rmeta --extern libc=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/liblibc-b67c909beeb06a35.rmeta --cap-lints allow - Compiling time v0.1.45 - Running rustc --crate-name time /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/time-0.1.45/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=1c1c70c62a7b1af2 -C extra-filename=-1c1c70c62a7b1af2 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern libc=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/liblibc-b67c909beeb06a35.rmeta --cap-lints allow - Compiling os_pipe v0.9.2 - Running rustc --crate-name os_pipe --edition=2018 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/os_pipe-0.9.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=66dbc1e8d2e7a189 -C extra-filename=-66dbc1e8d2e7a189 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern libc=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/liblibc-b67c909beeb06a35.rmeta --cap-lints allow - Compiling iana-time-zone v0.1.56 - Running rustc --crate-name iana_time_zone --edition=2018 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/iana-time-zone-0.1.56/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="fallback"' -C metadata=606472333f754996 -C extra-filename=-606472333f754996 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --cap-lints allow - Compiling thousands v0.2.0 - Running rustc --crate-name thousands /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/thousands-0.2.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=8ebc164f7888b4bb -C extra-filename=-8ebc164f7888b4bb --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --cap-lints allow - Compiling either v1.8.1 - Running rustc --crate-name either --edition=2018 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/either-1.8.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="default"' --cfg 'feature="use_std"' -C metadata=a95983fef6555c26 -C extra-filename=-a95983fef6555c26 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --cap-lints allow - Running rustc --crate-name time_core --edition=2021 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/time-core-0.1.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=d668f969e457fa46 -C extra-filename=-d668f969e457fa46 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --cap-lints allow - Compiling time v0.3.21 - Running rustc --crate-name time --edition=2021 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/time-0.3.21/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="alloc"' --cfg 'feature="default"' --cfg 'feature="formatting"' --cfg 'feature="macros"' --cfg 'feature="parsing"' --cfg 'feature="serde"' --cfg 'feature="serde-human-readable"' --cfg 'feature="std"' -C metadata=5ab5fad82ee181d6 -C extra-filename=-5ab5fad82ee181d6 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern itoa=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libitoa-c812248f2497cf5d.rmeta --extern serde=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libserde-d732564bfe21410f.rmeta --extern time_core=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtime_core-d668f969e457fa46.rmeta --extern time_macros=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtime_macros-bbb52bf06b87b22a.so --cap-lints allow - Compiling which v4.4.0 - Running rustc --crate-name which --edition=2018 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/which-4.4.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=2a48af3c0d85b680 -C extra-filename=-2a48af3c0d85b680 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern either=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libeither-a95983fef6555c26.rmeta --extern libc=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/liblibc-b67c909beeb06a35.rmeta --cap-lints allow - Compiling seq_geom_xform v0.4.0 (https://github.com/COMBINE-lab/seq_geom_xform?branch=dev#445dab71) - Running rustc --crate-name seq_geom_xform --edition=2021 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/git/checkouts/seq_geom_xform-a23507250fdb4dc9/445dab7/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=b6e07d2e55cd3dcc -C extra-filename=-b6e07d2e55cd3dcc --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern anyhow=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libanyhow-caab6b502aba6c94.rmeta --extern clap=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libclap-cf7e573feb26e85c.rmeta --extern needletail=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libneedletail-896f2ff7feaf0eeb.rlib --extern nix=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libnix-2722793fe78cdba8.rmeta --extern regex=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libregex-c1138367945b7bab.rmeta --extern seq_geom_parser=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libseq_geom_parser-2e4aab5dafc15174.rmeta --extern tempfile=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtempfile-3744176247edafd7.rmeta --extern thousands=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libthousands-8ebc164f7888b4bb.rmeta --extern tracing=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtracing-5beba820ab0c10d7.rmeta --extern tracing_subscriber=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtracing_subscriber-7c9273dde5a33dbf.rmeta --cap-lints allow -L native=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/build/bzip2-sys-12e3ca26969e3f4d/out/lib -L native=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/build/lzma-sys-505d9198e0987d26/out - Compiling chrono v0.4.24 - Running rustc --crate-name chrono --edition=2018 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/chrono-0.4.24/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="clock"' --cfg 'feature="default"' --cfg 'feature="iana-time-zone"' --cfg 'feature="js-sys"' --cfg 'feature="oldtime"' --cfg 'feature="std"' --cfg 'feature="time"' --cfg 'feature="wasm-bindgen"' --cfg 'feature="wasmbind"' --cfg 'feature="winapi"' -C metadata=a7190f141a17e8ac -C extra-filename=-a7190f141a17e8ac --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern iana_time_zone=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libiana_time_zone-606472333f754996.rmeta --extern num_integer=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libnum_integer-b49dccab28c28c7b.rmeta --extern num_traits=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libnum_traits-b51f8527a098198c.rmeta --extern time=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtime-1c1c70c62a7b1af2.rmeta --cap-lints allow - Compiling cmd_lib v1.3.0 - Running rustc --crate-name cmd_lib --edition=2018 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/cmd_lib-1.3.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=b2db1000401d3615 -C extra-filename=-b2db1000401d3615 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern cmd_lib_macros=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libcmd_lib_macros-f7f4fca7b9cc4e58.so --extern faccess=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libfaccess-86362437400bde4c.rmeta --extern lazy_static=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/liblazy_static-54f40fc0627688f4.rmeta --extern log=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/liblog-029eff22a745bf9a.rmeta --extern os_pipe=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libos_pipe-66dbc1e8d2e7a189.rmeta --cap-lints allow - Compiling tabled v0.11.1 - Running rustc --crate-name tabled --edition=2018 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/tabled-0.11.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="default"' --cfg 'feature="derive"' --cfg 'feature="macros"' --cfg 'feature="std"' --cfg 'feature="tabled_derive"' -C metadata=e4359bc48b861bc8 -C extra-filename=-e4359bc48b861bc8 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern papergrid=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libpapergrid-c9987ae8f991124d.rmeta --extern tabled_derive=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtabled_derive-d4596a1ad85edb9b.so --extern unicode_width=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libunicode_width-9116f259e4e998f4.rmeta --cap-lints allow - Compiling phf v0.11.1 - Running rustc --crate-name phf --edition=2021 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/phf-0.11.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="default"' --cfg 'feature="macros"' --cfg 'feature="phf_macros"' --cfg 'feature="std"' -C metadata=8569b1746874b2df -C extra-filename=-8569b1746874b2df --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern phf_macros=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libphf_macros-9a6d176f935126d3.so --extern phf_shared=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libphf_shared-55830bec45f75c14.rmeta --cap-lints allow - Compiling jrsonnet-cli v0.5.0-pre9 - Running rustc --crate-name jrsonnet_cli --edition=2021 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/jrsonnet-cli-0.5.0-pre9/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=660f0f393deb8909 -C extra-filename=-660f0f393deb8909 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern clap=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libclap-cf7e573feb26e85c.rmeta --extern jrsonnet_evaluator=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libjrsonnet_evaluator-49af99412539f67c.rmeta --extern jrsonnet_gcmodule=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libjrsonnet_gcmodule-52316dd04c19e76e.rmeta --extern jrsonnet_parser=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libjrsonnet_parser-02235bdb3e68d16f.rmeta --extern jrsonnet_stdlib=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libjrsonnet_stdlib-904de553303f4322.rmeta --cap-lints allow - Running rustc --crate-name semver --edition=2018 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/semver-1.0.17/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=c68837e4f494233c -C extra-filename=-c68837e4f494233c --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --cap-lints allow - Compiling simpleaf v0.13.0 (/opt/conda/conda-bld/simpleaf_1685351446930/work) - Running rustc --crate-name simpleaf --edition=2021 src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C opt-level=3 -C lto=thin -C metadata=65549e517ca9f4ea -C extra-filename=-65549e517ca9f4ea --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern anyhow=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libanyhow-caab6b502aba6c94.rlib --extern chrono=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libchrono-a7190f141a17e8ac.rlib --extern clap=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libclap-cf7e573feb26e85c.rlib --extern cmd_lib=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libcmd_lib-b2db1000401d3615.rlib --extern jrsonnet_cli=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libjrsonnet_cli-660f0f393deb8909.rlib --extern jrsonnet_evaluator=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libjrsonnet_evaluator-49af99412539f67c.rlib --extern jrsonnet_parser=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libjrsonnet_parser-02235bdb3e68d16f.rlib --extern phf=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libphf-8569b1746874b2df.rlib --extern semver=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libsemver-c68837e4f494233c.rlib --extern seq_geom_parser=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libseq_geom_parser-2e4aab5dafc15174.rlib --extern seq_geom_xform=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libseq_geom_xform-b6e07d2e55cd3dcc.rlib --extern serde=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libserde-d732564bfe21410f.rlib --extern serde_json=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libserde_json-6d60fee60c54363d.rlib --extern tabled=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtabled-e4359bc48b861bc8.rlib --extern thiserror=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libthiserror-cf668e5af5c707b8.rlib --extern time=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtime-5ab5fad82ee181d6.rlib --extern tracing=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtracing-5beba820ab0c10d7.rlib --extern tracing_subscriber=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtracing_subscriber-7c9273dde5a33dbf.rlib --extern which=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libwhich-2a48af3c0d85b680.rlib -L native=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/build/bzip2-sys-12e3ca26969e3f4d/out/lib -L native=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/build/lzma-sys-505d9198e0987d26/out - error[E0432]: unresolved imports jrsonnet_cli::ConfigureState, jrsonnet_cli::GeneralOpts - --> src/utils/jrsonnet_main.rs:6:20 - | - 6 | use jrsonnet_cli::{ConfigureState, GeneralOpts, ManifestOpts, OutputOpts, TraceOpts}; - | ^^^^^^^^^^^^^^ ^^^^^^^^^^^ no GeneralOpts in the root - | | - | no ConfigureState in the root - - error[E0599]: no method named configure found for struct TraceOpts in the current scope - --> src/utils/jrsonnet_main.rs:161:10 - | - 159 | let trace = opts - | _________________- - 160 | | .trace - 161 | | .configure(&s) - | | -^^^^^^^^^ method not found in TraceOpts - | |_________| - | - - error[E0599]: no method named configure found for struct ManifestOpts in the current scope - --> src/utils/jrsonnet_main.rs:183:41 - | - 183 | let manifest_format = opts.manifest.configure(s)?; - | ^^^^^^^^^ method not found in ManifestOpts - - Some errors have detailed explanations: E0432, E0599. - For more information about an error, try rustc --explain E0432. - error: could not compile simpleaf due to 3 previous errors - - Caused by: - process didn't exit successfully: rustc --crate-name simpleaf --edition=2021 src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C opt-level=3 -C lto=thin -C metadata=65549e517ca9f4ea -C extra-filename=-65549e517ca9f4ea --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern anyhow=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libanyhow-caab6b502aba6c94.rlib --extern chrono=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libchrono-a7190f141a17e8ac.rlib --extern clap=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libclap-cf7e573feb26e85c.rlib --extern cmd_lib=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libcmd_lib-b2db1000401d3615.rlib --extern jrsonnet_cli=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libjrsonnet_cli-660f0f393deb8909.rlib --extern jrsonnet_evaluator=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libjrsonnet_evaluator-49af99412539f67c.rlib --extern jrsonnet_parser=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libjrsonnet_parser-02235bdb3e68d16f.rlib --extern phf=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libphf-8569b1746874b2df.rlib --extern semver=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libsemver-c68837e4f494233c.rlib --extern seq_geom_parser=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libseq_geom_parser-2e4aab5dafc15174.rlib --extern seq_geom_xform=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libseq_geom_xform-b6e07d2e55cd3dcc.rlib --extern serde=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libserde-d732564bfe21410f.rlib --extern serde_json=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libserde_json-6d60fee60c54363d.rlib --extern tabled=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtabled-e4359bc48b861bc8.rlib --extern thiserror=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libthiserror-cf668e5af5c707b8.rlib --extern time=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtime-5ab5fad82ee181d6.rlib --extern tracing=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtracing-5beba820ab0c10d7.rlib --extern tracing_subscriber=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtracing_subscriber-7c9273dde5a33dbf.rlib --extern which=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libwhich-2a48af3c0d85b680.rlib -L native=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/build/bzip2-sys-12e3ca26969e3f4d/out/lib -L native=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/build/lzma-sys-505d9198e0987d26/out (exit status: 1) - error: failed to compile simpleaf v0.13.0 (/opt/conda/conda-bld/simpleaf_1685351446930/work), intermediate artifacts can be found at /opt/conda/conda-bld/simpleaf_1685351446930/work/target - Traceback (most recent call last): - File "/opt/conda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/conda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 2198, in build - utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env, - File "/opt/conda/lib/python3.8/site-packages/conda_build/utils.py", line 451, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/conda/lib/python3.8/site-packages/conda_build/utils.py", line 427, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/simpleaf_1685351446930/work/conda_build.sh']' returned non-zero exit status 101. -# Last 100 lines of the build log. diff --git a/recipes/simpleaf/build_failure.osx-64.yaml b/recipes/simpleaf/build_failure.osx-64.yaml deleted file mode 100644 index db87de2b20443..0000000000000 --- a/recipes/simpleaf/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: fc9e5f6ccb23b5ce477989885aad22c550fc4997bb62461438f4887faaba8cb4 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - Compiling papergrid v0.8.2 - Running rustc --crate-name papergrid --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/papergrid-0.8.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="std"' -C metadata=1db6cb3ddb430e4e -C extra-filename=-1db6cb3ddb430e4e --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern bytecount=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libbytecount-868b87dade1a0fcf.rmeta --extern fnv=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libfnv-ce714d716e87bbb1.rmeta --extern unicode_width=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libunicode_width-9d6c71b14d08b56a.rmeta --cap-lints allow - Running /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/build/semver-c34caa4188444a7c/build-script-build - Compiling nix v0.26.2 - Running rustc --crate-name nix --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/nix-0.26.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="acct"' --cfg 'feature="aio"' --cfg 'feature="default"' --cfg 'feature="dir"' --cfg 'feature="env"' --cfg 'feature="event"' --cfg 'feature="feature"' --cfg 'feature="fs"' --cfg 'feature="hostname"' --cfg 'feature="inotify"' --cfg 'feature="ioctl"' --cfg 'feature="kmod"' --cfg 'feature="memoffset"' --cfg 'feature="mman"' --cfg 'feature="mount"' --cfg 'feature="mqueue"' --cfg 'feature="net"' --cfg 'feature="personality"' --cfg 'feature="pin-utils"' --cfg 'feature="poll"' --cfg 'feature="process"' --cfg 'feature="pthread"' --cfg 'feature="ptrace"' --cfg 'feature="quota"' --cfg 'feature="reboot"' --cfg 'feature="resource"' --cfg 'feature="sched"' --cfg 'feature="signal"' --cfg 'feature="socket"' --cfg 'feature="term"' --cfg 'feature="time"' --cfg 'feature="ucontext"' --cfg 'feature="uio"' --cfg 'feature="user"' --cfg 'feature="zerocopy"' -C metadata=dfc8415d599dc92b -C extra-filename=-dfc8415d599dc92b --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern bitflags=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libbitflags-b35bb543d22c0689.rmeta --extern cfg_if=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libcfg_if-7edd500440d32e4e.rmeta --extern libc=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/liblibc-3d718bdb769ad7d7.rmeta --extern memoffset=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libmemoffset-6a33c7855872ce8b.rmeta --extern pin_utils=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libpin_utils-bcb58eaf5026e26e.rmeta --extern static_assertions=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libstatic_assertions-9662bcb71d6e1757.rmeta --cap-lints allow - Compiling time-macros v0.2.9 - Running rustc --crate-name time_macros --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/time-macros-0.2.9/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type proc-macro --emit=dep-info,link -C prefer-dynamic -C embed-bitcode=no -C debug-assertions=off --cfg 'feature="formatting"' --cfg 'feature="parsing"' --cfg 'feature="serde"' -C metadata=47212a2dabf9c651 -C extra-filename=-47212a2dabf9c651 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern time_core=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtime_core-df0666df9bdd2840.rlib --extern proc_macro --cap-lints allow - Compiling iana-time-zone v0.1.56 - Running rustc --crate-name iana_time_zone --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/iana-time-zone-0.1.56/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="fallback"' -C metadata=8f91552d2d9f513d -C extra-filename=-8f91552d2d9f513d --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern core_foundation_sys=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libcore_foundation_sys-725c7c566a525751.rmeta --cap-lints allow - Compiling phf_macros v0.11.1 - Running rustc --crate-name phf_macros --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/phf_macros-0.11.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type proc-macro --emit=dep-info,link -C prefer-dynamic -C embed-bitcode=no -C debug-assertions=off -C metadata=dd593841c499c4e8 -C extra-filename=-dd593841c499c4e8 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern phf_generator=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libphf_generator-475948d72bcff59e.rlib --extern phf_shared=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libphf_shared-4f2653f829fdeb7f.rlib --extern proc_macro2=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libproc_macro2-93b69be28cdcbdcc.rlib --extern quote=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libquote-18c15777a4069f56.rlib --extern syn=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libsyn-8d51e3da2ab7ab42.rlib --extern proc_macro --cap-lints allow - Compiling needletail v0.5.1 - Running rustc --crate-name needletail --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/needletail-0.5.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type cdylib --crate-type rlib --emit=dep-info,link -C opt-level=3 --cfg 'feature="bzip2"' --cfg 'feature="compression"' --cfg 'feature="default"' --cfg 'feature="flate2"' --cfg 'feature="xz2"' -C metadata=ea9623fd2e390f62 -C extra-filename=-ea9623fd2e390f62 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern buffer_redux=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libbuffer_redux-4871f2f6d832d8ca.rlib --extern bytecount=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libbytecount-868b87dade1a0fcf.rlib --extern bzip2=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libbzip2-5b7c3214c5add5d9.rlib --extern flate2=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libflate2-38b1718354e1e35b.rlib --extern memchr=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libmemchr-ae1e20517f079a90.rlib --extern xz2=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libxz2-8eddd196638bc94b.rlib --cap-lints allow -L native=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/build/bzip2-sys-8b21c5785fa8f903/out/lib -L native=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/build/lzma-sys-6bdcec93cfc8c508/out - Compiling seq_geom_parser v0.3.0 (https://github.com/COMBINE-lab/seq_geom_parser?branch=dev#f5f3f9f7) - Running rustc --crate-name seq_geom_parser --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/git/checkouts/seq_geom_parser-828dba3bab9b7afe/f5f3f9f/src/lib/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=0442010df99b3d87 -C extra-filename=-0442010df99b3d87 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern anyhow=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libanyhow-b80a85593aeefba3.rmeta --extern pest=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libpest-098946f0754789db.rmeta --extern pest_derive=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libpest_derive-6dac551992e03b48.dylib --cap-lints allow - Running rustc --crate-name num_traits /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/num-traits-0.2.15/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=a300c41cddd17c36 -C extra-filename=-a300c41cddd17c36 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --cap-lints allow --cfg has_i128 --cfg has_to_int_unchecked --cfg has_reverse_bits --cfg has_leading_trailing_ones --cfg has_int_assignop_ref --cfg has_div_euclid - Compiling tabled_derive v0.6.0 - Running rustc --crate-name tabled_derive --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/tabled_derive-0.6.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type proc-macro --emit=dep-info,link -C prefer-dynamic -C embed-bitcode=no -C debug-assertions=off -C metadata=3d54dca5e6a7f001 -C extra-filename=-3d54dca5e6a7f001 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern heck=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libheck-6ab390209e8badea.rlib --extern proc_macro_error=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libproc_macro_error-c6c0c2a6878bed17.rlib --extern proc_macro2=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libproc_macro2-93b69be28cdcbdcc.rlib --extern quote=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libquote-18c15777a4069f56.rlib --extern syn=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libsyn-8d51e3da2ab7ab42.rlib --extern proc_macro --cap-lints allow - Compiling cmd_lib_macros v1.3.0 - Running rustc --crate-name cmd_lib_macros --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/cmd_lib_macros-1.3.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type proc-macro --emit=dep-info,link -C prefer-dynamic -C embed-bitcode=no -C debug-assertions=off -C metadata=ab47f886b740473e -C extra-filename=-ab47f886b740473e --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern proc_macro_error=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libproc_macro_error-c6c0c2a6878bed17.rlib --extern proc_macro2=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libproc_macro2-93b69be28cdcbdcc.rlib --extern quote=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libquote-18c15777a4069f56.rlib --extern syn=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libsyn-8d51e3da2ab7ab42.rlib --extern proc_macro --cap-lints allow - Compiling faccess v0.2.4 - Running rustc --crate-name faccess --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/faccess-0.2.4/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=ecfb70f7f62e22e9 -C extra-filename=-ecfb70f7f62e22e9 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern bitflags=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libbitflags-b35bb543d22c0689.rmeta --extern libc=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/liblibc-3d718bdb769ad7d7.rmeta --cap-lints allow - Compiling time v0.1.45 - Running rustc --crate-name time /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/time-0.1.45/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=cbbf3f3cd7914776 -C extra-filename=-cbbf3f3cd7914776 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern libc=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/liblibc-3d718bdb769ad7d7.rmeta --cap-lints allow - Compiling os_pipe v0.9.2 - Running rustc --crate-name os_pipe --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/os_pipe-0.9.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=22d69789ea35ef32 -C extra-filename=-22d69789ea35ef32 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern libc=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/liblibc-3d718bdb769ad7d7.rmeta --cap-lints allow - Compiling either v1.8.1 - Running rustc --crate-name either --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/either-1.8.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="default"' --cfg 'feature="use_std"' -C metadata=e37cf1d8e72e00cc -C extra-filename=-e37cf1d8e72e00cc --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --cap-lints allow - Running rustc --crate-name time_core --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/time-core-0.1.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=d34914af90726fc1 -C extra-filename=-d34914af90726fc1 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --cap-lints allow - Compiling thousands v0.2.0 - Running rustc --crate-name thousands /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/thousands-0.2.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=37a716a6121926f0 -C extra-filename=-37a716a6121926f0 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --cap-lints allow - Compiling cmd_lib v1.3.0 - Running rustc --crate-name cmd_lib --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/cmd_lib-1.3.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=26a436b681489884 -C extra-filename=-26a436b681489884 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern cmd_lib_macros=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libcmd_lib_macros-ab47f886b740473e.dylib --extern faccess=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libfaccess-ecfb70f7f62e22e9.rmeta --extern lazy_static=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/liblazy_static-2e34461a10f4f31f.rmeta --extern log=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/liblog-ffca4fb4a2bcd336.rmeta --extern os_pipe=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libos_pipe-22d69789ea35ef32.rmeta --cap-lints allow - Compiling seq_geom_xform v0.4.0 (https://github.com/COMBINE-lab/seq_geom_xform?branch=dev#445dab71) - Running rustc --crate-name seq_geom_xform --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/git/checkouts/seq_geom_xform-a23507250fdb4dc9/445dab7/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=292205e0d7a67fe5 -C extra-filename=-292205e0d7a67fe5 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern anyhow=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libanyhow-b80a85593aeefba3.rmeta --extern clap=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libclap-7b87bbb20cad8991.rmeta --extern needletail=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libneedletail-ea9623fd2e390f62.rlib --extern nix=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libnix-dfc8415d599dc92b.rmeta --extern regex=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libregex-ccdc79f6417f08f9.rmeta --extern seq_geom_parser=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libseq_geom_parser-0442010df99b3d87.rmeta --extern tempfile=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtempfile-f2cafef9d6167f98.rmeta --extern thousands=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libthousands-37a716a6121926f0.rmeta --extern tracing=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtracing-0937b9a2e770b9e1.rmeta --extern tracing_subscriber=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtracing_subscriber-b0ab2a6d342d7b41.rmeta --cap-lints allow -L native=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/build/bzip2-sys-8b21c5785fa8f903/out/lib -L native=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/build/lzma-sys-6bdcec93cfc8c508/out - Compiling time v0.3.21 - Running rustc --crate-name time --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/time-0.3.21/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="alloc"' --cfg 'feature="default"' --cfg 'feature="formatting"' --cfg 'feature="macros"' --cfg 'feature="parsing"' --cfg 'feature="serde"' --cfg 'feature="serde-human-readable"' --cfg 'feature="std"' -C metadata=7636379577217ab2 -C extra-filename=-7636379577217ab2 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern itoa=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libitoa-3bf9d1c21ff1a952.rmeta --extern serde=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libserde-5f6319e482099067.rmeta --extern time_core=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtime_core-d34914af90726fc1.rmeta --extern time_macros=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtime_macros-47212a2dabf9c651.dylib --cap-lints allow - Compiling which v4.4.0 - Running rustc --crate-name which --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/which-4.4.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=8a64c9b7068b2b06 -C extra-filename=-8a64c9b7068b2b06 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern either=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libeither-e37cf1d8e72e00cc.rmeta --extern libc=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/liblibc-3d718bdb769ad7d7.rmeta --cap-lints allow - Compiling chrono v0.4.25 - Running rustc --crate-name chrono --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/chrono-0.4.25/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="clock"' --cfg 'feature="default"' --cfg 'feature="iana-time-zone"' --cfg 'feature="js-sys"' --cfg 'feature="oldtime"' --cfg 'feature="std"' --cfg 'feature="time"' --cfg 'feature="wasm-bindgen"' --cfg 'feature="wasmbind"' --cfg 'feature="winapi"' -C metadata=ae3f18f5c69ac662 -C extra-filename=-ae3f18f5c69ac662 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern iana_time_zone=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libiana_time_zone-8f91552d2d9f513d.rmeta --extern num_traits=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libnum_traits-a300c41cddd17c36.rmeta --extern time=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtime-cbbf3f3cd7914776.rmeta --cap-lints allow - Compiling tabled v0.11.1 - Running rustc --crate-name tabled --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/tabled-0.11.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="default"' --cfg 'feature="derive"' --cfg 'feature="macros"' --cfg 'feature="std"' --cfg 'feature="tabled_derive"' -C metadata=c64648fb465a3b7d -C extra-filename=-c64648fb465a3b7d --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern papergrid=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libpapergrid-1db6cb3ddb430e4e.rmeta --extern tabled_derive=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtabled_derive-3d54dca5e6a7f001.dylib --extern unicode_width=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libunicode_width-9d6c71b14d08b56a.rmeta --cap-lints allow - Compiling phf v0.11.1 - Running rustc --crate-name phf --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/phf-0.11.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="default"' --cfg 'feature="macros"' --cfg 'feature="phf_macros"' --cfg 'feature="std"' -C metadata=f6ad2ab91360c1a1 -C extra-filename=-f6ad2ab91360c1a1 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern phf_macros=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libphf_macros-dd593841c499c4e8.dylib --extern phf_shared=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libphf_shared-9b998f23dfda90f3.rmeta --cap-lints allow - Running rustc --crate-name semver --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/semver-1.0.17/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=7b10fb415045608d -C extra-filename=-7b10fb415045608d --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --cap-lints allow - Compiling jrsonnet-cli v0.5.0-pre9 - Running rustc --crate-name jrsonnet_cli --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/jrsonnet-cli-0.5.0-pre9/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=8d3a3707c491228e -C extra-filename=-8d3a3707c491228e --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern clap=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libclap-7b87bbb20cad8991.rmeta --extern jrsonnet_evaluator=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libjrsonnet_evaluator-c5ca3e38034fc7b6.rmeta --extern jrsonnet_gcmodule=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libjrsonnet_gcmodule-0d88eb7299710fda.rmeta --extern jrsonnet_parser=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libjrsonnet_parser-fa112be4891722c4.rmeta --extern jrsonnet_stdlib=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libjrsonnet_stdlib-ab37d97aaf0698e3.rmeta --cap-lints allow - Compiling simpleaf v0.13.0 (/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work) - Running rustc --crate-name simpleaf --edition=2021 src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C opt-level=3 -C lto=thin -C metadata=5b70b728e9be5cb2 -C extra-filename=-5b70b728e9be5cb2 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern anyhow=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libanyhow-b80a85593aeefba3.rlib --extern chrono=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libchrono-ae3f18f5c69ac662.rlib --extern clap=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libclap-7b87bbb20cad8991.rlib --extern cmd_lib=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libcmd_lib-26a436b681489884.rlib --extern jrsonnet_cli=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libjrsonnet_cli-8d3a3707c491228e.rlib --extern jrsonnet_evaluator=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libjrsonnet_evaluator-c5ca3e38034fc7b6.rlib --extern jrsonnet_parser=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libjrsonnet_parser-fa112be4891722c4.rlib --extern phf=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libphf-f6ad2ab91360c1a1.rlib --extern semver=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libsemver-7b10fb415045608d.rlib --extern seq_geom_parser=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libseq_geom_parser-0442010df99b3d87.rlib --extern seq_geom_xform=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libseq_geom_xform-292205e0d7a67fe5.rlib --extern serde=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libserde-5f6319e482099067.rlib --extern serde_json=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libserde_json-290368b682119d88.rlib --extern tabled=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtabled-c64648fb465a3b7d.rlib --extern thiserror=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libthiserror-0ef86794fbf15b6d.rlib --extern time=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtime-7636379577217ab2.rlib --extern tracing=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtracing-0937b9a2e770b9e1.rlib --extern tracing_subscriber=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtracing_subscriber-b0ab2a6d342d7b41.rlib --extern which=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libwhich-8a64c9b7068b2b06.rlib -L native=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/build/bzip2-sys-8b21c5785fa8f903/out/lib -L native=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/build/lzma-sys-6bdcec93cfc8c508/out - error[E0432]: unresolved imports jrsonnet_cli::ConfigureState, jrsonnet_cli::GeneralOpts - --> src/utils/jrsonnet_main.rs:6:20 - | - 6 | use jrsonnet_cli::{ConfigureState, GeneralOpts, ManifestOpts, OutputOpts, TraceOpts}; - | ^^^^^^^^^^^^^^ ^^^^^^^^^^^ no GeneralOpts in the root - | | - | no ConfigureState in the root - - error[E0599]: no method named configure found for struct TraceOpts in the current scope - --> src/utils/jrsonnet_main.rs:161:10 - | - 159 | let trace = opts - | _________________- - 160 | | .trace - 161 | | .configure(&s) - | | -^^^^^^^^^ method not found in TraceOpts - | |_________| - | - - error[E0599]: no method named configure found for struct ManifestOpts in the current scope - --> src/utils/jrsonnet_main.rs:183:41 - | - 183 | let manifest_format = opts.manifest.configure(s)?; - | ^^^^^^^^^ method not found in ManifestOpts - - Some errors have detailed explanations: E0432, E0599. - For more information about an error, try rustc --explain E0432. - error: could not compile simpleaf due to 3 previous errors - - Caused by: - process didn't exit successfully: rustc --crate-name simpleaf --edition=2021 src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C opt-level=3 -C lto=thin -C metadata=5b70b728e9be5cb2 -C extra-filename=-5b70b728e9be5cb2 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern anyhow=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libanyhow-b80a85593aeefba3.rlib --extern chrono=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libchrono-ae3f18f5c69ac662.rlib --extern clap=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libclap-7b87bbb20cad8991.rlib --extern cmd_lib=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libcmd_lib-26a436b681489884.rlib --extern jrsonnet_cli=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libjrsonnet_cli-8d3a3707c491228e.rlib --extern jrsonnet_evaluator=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libjrsonnet_evaluator-c5ca3e38034fc7b6.rlib --extern jrsonnet_parser=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libjrsonnet_parser-fa112be4891722c4.rlib --extern phf=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libphf-f6ad2ab91360c1a1.rlib --extern semver=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libsemver-7b10fb415045608d.rlib --extern seq_geom_parser=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libseq_geom_parser-0442010df99b3d87.rlib --extern seq_geom_xform=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libseq_geom_xform-292205e0d7a67fe5.rlib --extern serde=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libserde-5f6319e482099067.rlib --extern serde_json=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libserde_json-290368b682119d88.rlib --extern tabled=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtabled-c64648fb465a3b7d.rlib --extern thiserror=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libthiserror-0ef86794fbf15b6d.rlib --extern time=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtime-7636379577217ab2.rlib --extern tracing=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtracing-0937b9a2e770b9e1.rlib --extern tracing_subscriber=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtracing_subscriber-b0ab2a6d342d7b41.rlib --extern which=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libwhich-8a64c9b7068b2b06.rlib -L native=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/build/bzip2-sys-8b21c5785fa8f903/out/lib -L native=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/build/lzma-sys-6bdcec93cfc8c508/out (exit status: 1) - error: failed to compile simpleaf v0.13.0 (/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work), intermediate artifacts can be found at /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 2198, in build - utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 451, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 427, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/conda_build.sh']' returned non-zero exit status 101. -# Last 100 lines of the build log. diff --git a/recipes/simpleaf/meta.yaml b/recipes/simpleaf/meta.yaml index 59f8b233d3aaf..be28ce13f2e79 100644 --- a/recipes/simpleaf/meta.yaml +++ b/recipes/simpleaf/meta.yaml @@ -4,11 +4,10 @@ package: name: simpleaf version: {{ version }} -build: # [not linux-aarch64] - number: 0 +build: + number: 1 run_exports: - {{ pin_subpackage("simpleaf", max_pin="x.x") }} -# script: cargo install --path . --root ${PREFIX} source: url: https://github.com/COMBINE-lab/simpleaf/archive/v{{ version }}.tar.gz @@ -36,3 +35,7 @@ about: license: BSD 3-Clause license_file: LICENSE summary: A rust framework to make using alevin-fry even simpler. + +extra: + additional-platforms: + - linux-aarch64 From 969d49ea557db79ef4fe273e88e7cafb2e6df340 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 2 Jul 2024 20:50:25 -0400 Subject: [PATCH 0030/1589] Update skder to 1.2.1 (#48900) * Update skder to 1.2.1 * Update meta.yaml * Update meta.yaml * Update meta.yaml --------- Co-authored-by: Rauf Salamzade --- recipes/skder/meta.yaml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/recipes/skder/meta.yaml b/recipes/skder/meta.yaml index e553cf16cdd95..f8e8f2b8de92e 100644 --- a/recipes/skder/meta.yaml +++ b/recipes/skder/meta.yaml @@ -1,5 +1,5 @@ {% set name = "skder" %} -{% set version = "1.1.1" %} +{% set version = "1.2.1" %} package: name: {{ name|lower }} @@ -7,10 +7,10 @@ package: source: url: https://github.com/raufs/skDER/archive/refs/tags/v{{ version }}.tar.gz - sha256: 486b717bca65c0efe89c9108305fe93bbf3cd4562508a6db8a3ed440de3db71c + sha256: 5ccd4b33b94ad7a4c03baaeaaf2def51627161c006bd71a0e51b913a25d0d776 build: - number: 1 + number: 0 skip: True # [py <= 39] run_exports: - {{ pin_subpackage('skder', max_pin='x.x') }} @@ -25,12 +25,17 @@ requirements: - wget run: - python =3.10 - - biopython =1.79 + - biopython - setuptools - skani - ncbi-genome-download - pyfastx - wget + - seaborn + - matplotlib-base + - pandas + - pyrodigal + - cd-hit test: commands: From 654680621cb6b511b0b408d4a298f6ad982095b4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 01:58:29 -0400 Subject: [PATCH 0031/1589] Update neat to 4.2.3 (#48901) --- recipes/neat/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/neat/meta.yaml b/recipes/neat/meta.yaml index 2d08b62643311..d79c967a7fb41 100644 --- a/recipes/neat/meta.yaml +++ b/recipes/neat/meta.yaml @@ -1,5 +1,5 @@ {% set name = "NEAT" %} -{% set version = "4.2.2" %} +{% set version = "4.2.3" %} package: name: '{{ name|lower }}' @@ -7,7 +7,7 @@ package: source: url: https://github.com/ncsa/{{ name }}/archive/{{ version }}.tar.gz - sha256: ce8449ad0227a59cab354cc34441127064a3ebd84864b2f8441f496e65d94b38 + sha256: 915d297842d4f775a79f59f37aac729ade742676f37473dbdbbedab64e81a046 build: From b443ff1c16f9b4661c3200f4e20490e0fe250aaf Mon Sep 17 00:00:00 2001 From: John Huddleston Date: Tue, 2 Jul 2024 22:59:00 -0700 Subject: [PATCH 0032/1589] Update pathogen-embed to 2.1.0 (#48899) --- recipes/pathogen-embed/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pathogen-embed/meta.yaml b/recipes/pathogen-embed/meta.yaml index 5fbf80b9b9890..fecfe32bcb2a5 100644 --- a/recipes/pathogen-embed/meta.yaml +++ b/recipes/pathogen-embed/meta.yaml @@ -1,12 +1,12 @@ -{% set version = "2.0.0" %} +{% set version = "2.1.0" %} package: name: pathogen-embed version: {{ version }} source: - url: https://files.pythonhosted.org/packages/40/30/39a81cc78c8771cbc5eea9562960a7f170533691aa728d17200216d333b6/pathogen_embed-{{ version }}.tar.gz - sha256: c2641a7cbdeed9d5c8c49fd604668a7c8ceef2769c53f12d1edd0af09281aaaa + url: https://files.pythonhosted.org/packages/0c/71/38ca9c5ad8f2893637ebf62bb4703e59162821860a6d9635b8a2794d2258/pathogen_embed-{{ version }}.tar.gz + sha256: b8339ed5b6b672e4da788c07c82d25b4b7cc5f533e4625bc1786056ad5097f9b build: number: 0 From cf55a501958e35980cbf9eeed7130df55914d680 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 01:59:27 -0400 Subject: [PATCH 0033/1589] Update callingcardstools to 1.7.1 (#48897) --- recipes/callingcardstools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/callingcardstools/meta.yaml b/recipes/callingcardstools/meta.yaml index a11c78a7172fc..5fa8e90fbbc22 100644 --- a/recipes/callingcardstools/meta.yaml +++ b/recipes/callingcardstools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "callingcardstools" %} -{% set version = "1.6" %} +{% set version = "1.7.1" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 2506c0e788b8bfa4c715ebca012c48197e6d892c66fbbe2bd39472175de86994 + sha256: 45dee48898336883b91cae93f9a34db68b1992a0f16a436d7f904f71ab061999 build: noarch: python From e5fb7b41431d87d7e1c988e25163ce6a415a96a4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 01:59:57 -0400 Subject: [PATCH 0034/1589] Update ucsc-cell-browser to 1.2.7 (#48896) --- recipes/ucsc-cell-browser/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ucsc-cell-browser/meta.yaml b/recipes/ucsc-cell-browser/meta.yaml index 68c277405ff52..fef5654535f84 100644 --- a/recipes/ucsc-cell-browser/meta.yaml +++ b/recipes/ucsc-cell-browser/meta.yaml @@ -1,4 +1,4 @@ -{% set version = '1.2.6' %} +{% set version = '1.2.7' %} {% set name = "cellbrowser" %} package: @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: "1a088c7ccfdd8300d59955b2b9c9e2633c973dad9fb90006f6b726aed0354877" + sha256: "67b1c96db001ba4bf1a126a4923d404e1edc6a2dd344b2b15cf70b96f1f338f5" build: number: 0 From 569d5fe949d0c4b74399bdaa7e871f8074a094fd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 02:00:22 -0400 Subject: [PATCH 0035/1589] Update pia to 1.5.1 (#48895) --- recipes/pia/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pia/meta.yaml b/recipes/pia/meta.yaml index 187827de84b2a..e4ac7d094bb9f 100644 --- a/recipes/pia/meta.yaml +++ b/recipes/pia/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pia" %} -{% set version = "1.5.0" %} -{% set sha256 = "1f7dee6522927dfec13fadaf12a75e209f6f19f16cf20e8bb2ffa27993d4d886" %} +{% set version = "1.5.1" %} +{% set sha256 = "46bd90546afc324246087552fa478c84b5e9dc324984109310ed46dbbd78412d" %} package: name: {{ name|lower }} From ca5d0d03e0ea0cecef2616344996219970d5c492 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 02:00:56 -0400 Subject: [PATCH 0036/1589] Update pangolin-data to 1.28.1 (#48893) --- recipes/pangolin-data/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pangolin-data/meta.yaml b/recipes/pangolin-data/meta.yaml index 5929703c67fcb..6fcedd8d0f4c4 100644 --- a/recipes/pangolin-data/meta.yaml +++ b/recipes/pangolin-data/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.28" %} +{% set version = "1.28.1" %} package: name: pangolin-data @@ -6,7 +6,7 @@ package: source: url: https://github.com/cov-lineages/pangolin-data/archive/refs/tags/v{{ version }}.tar.gz - sha256: a9b403f1266b4a2977478ddc25e2f2b089ce7a51c47f58aaec2372ee2126db17 + sha256: 1d24d1a3c702ce947fac9ba164079622d5b074624aa5104d236b85ab26a2361b build: number: 0 From 7bff576367367269a2db37f43b2f96b41277dbf5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 02:01:22 -0400 Subject: [PATCH 0037/1589] Update flumut to 0.6.1 (#48892) --- recipes/flumut/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/flumut/meta.yaml b/recipes/flumut/meta.yaml index c4c1776a4b791..e2447627c4345 100644 --- a/recipes/flumut/meta.yaml +++ b/recipes/flumut/meta.yaml @@ -1,5 +1,5 @@ {% set name = "flumut" %} -{% set version = "0.6.0" %} +{% set version = "0.6.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/flumut-{{ version }}.tar.gz - sha256: 62c4240629bfcd187b3efe6e2a4cd0c6d3a90ccf4c40f3b9ce26a48ff8c0b096 + sha256: 48604a3bb0a708f012ee749c3376ab3f7369fed56f9025a8a4677b27d228b34f build: run_exports: @@ -16,7 +16,7 @@ build: - flumut = flumut.cli:cli noarch: python script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir - number: 1 + number: 0 requirements: host: @@ -35,7 +35,7 @@ test: - flumut commands: - flumut --help - - flumut --update + - flumut --update about: home: https://github.com/izsvenezie-virology/FluMut From 639c505cebc81dcfa39462122a9e8be39e0a7f5e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 02:01:44 -0400 Subject: [PATCH 0038/1589] Update pyclone-vi to 0.1.6 (#48891) --- recipes/pyclone-vi/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pyclone-vi/meta.yaml b/recipes/pyclone-vi/meta.yaml index cc5ef95b6313a..86e3312658866 100644 --- a/recipes/pyclone-vi/meta.yaml +++ b/recipes/pyclone-vi/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pyclone-vi" %} -{% set version = "0.1.5" %} +{% set version = "0.1.6" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Roth-Lab/pyclone-vi/archive/{{ version }}.tar.gz - sha256: 242a77b159958054853e8156c718a18b1cb9220461385def554aeed9e054070f + sha256: 883ac95dd7903a9fb0418314e38a4bb5d028b5569942ab02135427201cef4f1f build: number: 0 From 4ecd9d4f2a2f07f6b08a636441f0b31d0f285c1c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 03:16:29 -0400 Subject: [PATCH 0039/1589] Update vcf2circos to 1.2.0 (#48619) * Update vcf2circos to 1.2.0 * Add run_exports Signed-off-by: Martin Tzvetanov Grigorov * pin webcolors to <=1.13 --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov Co-authored-by: mencian --- recipes/vcf2circos/meta.yaml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/recipes/vcf2circos/meta.yaml b/recipes/vcf2circos/meta.yaml index afff96a9bfe2f..e41891030c13e 100644 --- a/recipes/vcf2circos/meta.yaml +++ b/recipes/vcf2circos/meta.yaml @@ -1,6 +1,6 @@ {% set name = "vcf2circos" %} -{% set version = "1.1.1" %} -{% set sha256 = "51305686728685d2cfd934031e5d93079f6887480f90779667186ff24a2cf76f" %} +{% set version = "1.2.0" %} +{% set sha256 = "02a0a62f90a8675bd1a0c2aedd69783a32f431bba4ff3325080aad1303210bf4" %} package: name: {{ name }} @@ -13,9 +13,11 @@ source: build: number: 0 noarch: python - script: {{ PYTHON }} -m pip install . -vv + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv entry_points: - vcf2circos = vcf2circos.__main__:main + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} requirements: host: @@ -34,7 +36,7 @@ requirements: - numpy - pandas - colour - - webcolors + - webcolors <=1.13 - pyfiglet - scipy - python-kaleido @@ -47,6 +49,7 @@ test: about: home: https://github.com/bioinfo-chru-strasbourg/vcf2circos - license: AGPL-3.0 + license: "AGPL-3.0-or-later" + license_family: AGPL license_file: LICENSE summary: "A python package based on Plotly to help generate Circos plots from a VCF file or a JSON configuration file." From 02307173720f108461d02980427b28dae64c0b50 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 04:53:22 -0400 Subject: [PATCH 0040/1589] Update scirpy to 0.17.1 (#48903) --- recipes/scirpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/scirpy/meta.yaml b/recipes/scirpy/meta.yaml index 160e6540d5bf3..290b5babc4e93 100644 --- a/recipes/scirpy/meta.yaml +++ b/recipes/scirpy/meta.yaml @@ -1,5 +1,5 @@ {% set name = "scirpy" %} -{% set version = "0.17.0" %} +{% set version = "0.17.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: f61653a4f7387562ec89b00fbfd7cab762c0bf3320f21ccfc47df80a13cc5d41 + sha256: 8fbca858f432fbf3c34d02aa5100f4dcd3520219ce2978c90bc084dc0951f2fe folder: "{{ name }}-{{ version }}" build: From c686c8e82f3071444c377b2db7566445f141d32f Mon Sep 17 00:00:00 2001 From: Nextstrain bot <78992647+nextstrain-bot@users.noreply.github.com> Date: Wed, 3 Jul 2024 02:58:44 -0700 Subject: [PATCH 0041/1589] Update nextclade to 3.8.0 (#48907) --- recipes/nextclade/meta.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/recipes/nextclade/meta.yaml b/recipes/nextclade/meta.yaml index 7f5eba47272a5..3be9be6471196 100644 --- a/recipes/nextclade/meta.yaml +++ b/recipes/nextclade/meta.yaml @@ -1,5 +1,5 @@ {% set name = "nextclade" %} -{% set version = "3.7.4" %} +{% set version = "3.8.0" %} package: name: "{{ name|lower }}" @@ -7,13 +7,13 @@ package: source: - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-x86_64-unknown-linux-gnu # [linux64] - sha256: 5b3b8b155fa3bb3614284362bf265d7662220fee09a29ec8f5092b520a851ff6 # [linux64] + sha256: 6251f3c46236fba7a51924c6dd49581a150645efddf4248f426123524b23af7f # [linux64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-aarch64-unknown-linux-gnu # [aarch64] - sha256: 68a14acccb0f893e3baaf19c7f1581781ea8aec7e61deee09ceec4d55aa3f280 # [aarch64] + sha256: 3575e0c1a20f1ff4f69e77ea1bcd08cb01bc80a74a750eba02cc5fa1227a3400 # [aarch64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-x86_64-apple-darwin # [osx and x86_64] - sha256: 7255d7d75996654cf134e4cf145456a93a443c103be27da8b2f9b3952769986c # [osx and x86_64] + sha256: a5ad4c2ca527929ab8c8b3b2521287488383f78fc1ee3030cbf5af23856b58b0 # [osx and x86_64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-aarch64-apple-darwin # [osx and arm64] - sha256: 8d61bcb2036c2317fdc3d1d1ab75616a00e3864b9993ec2b342f418ea9055f59 # [osx and arm64] + sha256: 579f499f7f0f5f2b9d520971ded4e265140859317f083ff8e2879ad74373ec33 # [osx and arm64] build: number: 0 From f726bc3991147cfc973b5ec6fe62a22cd941dece Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20D=C3=ADaz=20Roussel?= <46527244+nicodr97@users.noreply.github.com> Date: Wed, 3 Jul 2024 13:15:07 +0200 Subject: [PATCH 0042/1589] Update meta.yaml for v1.5.0 (#48905) --- recipes/trimal/meta.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/recipes/trimal/meta.yaml b/recipes/trimal/meta.yaml index c9a3dea2d9fab..659a5cb83b357 100644 --- a/recipes/trimal/meta.yaml +++ b/recipes/trimal/meta.yaml @@ -1,13 +1,13 @@ package: name: trimal - version: "1.4.1" + version: "1.5.0" source: - url: https://github.com/scapella/trimal/archive/v1.4.1.tar.gz - md5: cb193397635da45be350e9ac96dafe45 + url: https://github.com/inab/trimal/archive/v1.5.0.tar.gz + md5: 414cebd328157f63704e49a592645286 build: - number: 9 + number: 0 run_exports: - {{ pin_subpackage('trimal', max_pin='x') }} @@ -24,7 +24,7 @@ test: - trimal --version | grep trimAl > /dev/null about: - home: 'http://trimal.cgenomics.org' + home: 'https://trimal.readthedocs.io' summary: 'A tool for the automated removal of spurious sequences or poorly aligned regions from a multiple sequence alignment' license: GNU General Public License v3 or later (GPLv3+) From 9419ff46476a2062d16005834a6e029328453581 Mon Sep 17 00:00:00 2001 From: clementcoclet <94937696+clementcoclet@users.noreply.github.com> Date: Wed, 3 Jul 2024 04:20:12 -0700 Subject: [PATCH 0043/1589] Mvip (#48861) * mvip_recipes * update_meta.yaml * mvip_new_version_release * build_number_Update_meta_yaml --------- Co-authored-by: Clement Coclet - 067048 Co-authored-by: Martin Grigorov --- recipes/mvip/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mvip/meta.yaml b/recipes/mvip/meta.yaml index 10e104099b1ba..94f524761e912 100644 --- a/recipes/mvip/meta.yaml +++ b/recipes/mvip/meta.yaml @@ -10,7 +10,7 @@ source: sha256: ee9ea0d29e1d98ccdc7336ab9e41775e1dc0e1e9853d6f42b09bbb2d2f52b28d build: - number: 0 + number: 1 noarch: python script: "{{ PYTHON }} -m pip install . --no-deps -vv" run_exports: @@ -25,7 +25,7 @@ requirements: - python >=3.7 - tqdm - importlib_resources - - genomad + - genomad >=1.5 - pandas - checkv - bowtie2 From a59bb8370e9c2e3c1286724128265a19815c833f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 09:29:36 -0400 Subject: [PATCH 0044/1589] Update svist4get to 1.3.1.1 (#48887) * Update svist4get to 1.3.1.1 * add run_exports * svist4get: Update the patch - remove argparse install require Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: mencian Co-authored-by: Martin Tzvetanov Grigorov --- recipes/svist4get/meta.yaml | 8 +++++--- recipes/svist4get/patch | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/recipes/svist4get/meta.yaml b/recipes/svist4get/meta.yaml index ab229ecc669b8..934337d6a4420 100644 --- a/recipes/svist4get/meta.yaml +++ b/recipes/svist4get/meta.yaml @@ -1,5 +1,5 @@ {% set name = "svist4get" %} -{% set version = "1.3.1" %} +{% set version = "1.3.1.1" %} package: name: "{{ name|lower }}" @@ -7,14 +7,16 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 22311fdc956cca531dac7ba924744e8f870a57bc6f27cbe4e8ba9854117e720c + sha256: 66f4a82497aa0da08691a6b35ca8ab6ec5a1830a5adaf3c4f048950ea6bbf466 patches: - patch build: number: 0 noarch: python - script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed -vv" + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" + run_exports: + - {{ pin_subpackage('svist4get', max_pin="x") }} requirements: host: diff --git a/recipes/svist4get/patch b/recipes/svist4get/patch index fc8b5fefdb7aa..b10c92c981718 100644 --- a/recipes/svist4get/patch +++ b/recipes/svist4get/patch @@ -6,7 +6,7 @@ index 5062c55..6f12e48 100644 author_email='artyom.egorov@hotmail.com', license='WTFPL', packages=['svist4get'], -- install_requires = ['reportlab', 'biopython','configs','argparse','Pybedtools', 'wand', 'statistics'], +- install_requires = ['reportlab', 'biopython','configs','Pybedtools', 'wand', 'statistics'], + install_requires = ['reportlab', 'biopython','configs','Pybedtools', 'wand'], long_description = long_description, long_description_content_type = "text/markdown", From 11fae884c1a01b0e186db75d41ff11b0fc0e27bc Mon Sep 17 00:00:00 2001 From: "Zachary Konkel, PhD" Date: Wed, 3 Jul 2024 06:37:35 -0700 Subject: [PATCH 0045/1589] Add cloci (#48894) * init * add linting error fixes * update version * add cython to host section * add cython to run * remove clipkit, wont compile without cython and cython cant be in the run section * remove unnecessary pins * update mycotools * remove PYTHON variable * correct checksumg * Update meta.yaml * update mycotools * update mycotools * add cloci * need to add on its own branch * add cloci * include website * include all dependencies * Use SPDX value for the license --------- Co-authored-by: Martin Grigorov --- recipes/cloci/meta.yaml | 56 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 recipes/cloci/meta.yaml diff --git a/recipes/cloci/meta.yaml b/recipes/cloci/meta.yaml new file mode 100644 index 0000000000000..99e3b7b279aee --- /dev/null +++ b/recipes/cloci/meta.yaml @@ -0,0 +1,56 @@ +{% set name = "cloci" %} +{% set version = "0.3.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/cloci-{{ version }}.tar.gz + sha256: 46f5387ff625b79038a130f5d501e6dd18b3ccd8ec79d027e6ca78d97e8ad0c2 + +build: + entry_points: + - cloci = cloci.main:cli + - cloci2enrich = cloci.tools.cloci2enrich:cli + - cloci2stats = cloci.tools.cloci2stats:cli + - hg2hg_net = cloci.tools.hg2hg_net:cli + - hlg2biofile = cloci.tools.hlg2biofile:cli + - hlg2hlg_net = cloci.tools.hlg2hlg_net:cli + noarch: python + script: python -m pip install . -vv --no-deps --no-build-isolation + number: 0 + run_exports: + - {{ pin_subpackage('cloci', max_pin="x.x") }} + +requirements: + host: + - setuptools-scm + - pip + run: + - python >=3.0,<4.0 + - mycotools + - cogent3 + - tqdm + - plotly + - graph-tool + +test: + imports: + - cloci + commands: + - pip check + - cloci --help + - update_mtdb --help + requires: + - pip + +about: + home: https://github.com/xonq/cloci + summary: Co-occurrence Locus and Orthologous Cluster Identifier + license: AGPL-3.0-only + license_file: LICENSE + +extra: + recipe-maintainers: + - xonq From 2b3742cc9ec2c2f98470042d70b65e786daeb26e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 09:44:09 -0400 Subject: [PATCH 0046/1589] Update viroconstrictor to 1.4.3 (#48908) --- recipes/viroconstrictor/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/viroconstrictor/meta.yaml b/recipes/viroconstrictor/meta.yaml index d34ea1322c12f..2bbfb5a0c5666 100644 --- a/recipes/viroconstrictor/meta.yaml +++ b/recipes/viroconstrictor/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ViroConstrictor" %} -{% set version = "1.4.2" %} +{% set version = "1.4.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/RIVM-bioinformatics/ViroConstrictor/archive/v{{ version }}.tar.gz - sha256: 7b7f8c0f129b9fa1ccc8c374c7436b6065f7dea87ee6e0423d75fd7f04d81d29 + sha256: 43e7e6b29745367f3eabaef4ea736dfb25e2797fbe0e532b10f8594f71fc5883 build: noarch: python From 41d7a5ce38892f370e348ec9e2dc22b2da7ab45c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 09:46:07 -0400 Subject: [PATCH 0047/1589] Update severus to 1.1 (#48909) --- recipes/severus/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/severus/meta.yaml b/recipes/severus/meta.yaml index 313e6ac2f4c3d..8f3899b47acaa 100644 --- a/recipes/severus/meta.yaml +++ b/recipes/severus/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.0" %} +{% set version = "1.1" %} package: name: severus @@ -6,7 +6,7 @@ package: source: url: https://github.com/KolmogorovLab/Severus/archive/refs/tags/{{ version }}.tar.gz - sha256: c14b76b4c952f8c68adbdd885e7c59e3500714aad39eaef00302a8c57aea82c7 + sha256: 9479ff6c5ee09d28c047b7088414f5cc626cc77523940f2a22fa939506772d1d build: number: 0 From ea7e0336dc6e9e8d0918783de5f48ef940ea7393 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 09:46:27 -0400 Subject: [PATCH 0048/1589] Update pybiolib to 1.1.2208 (#48910) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index c8cf60a048984..a03ef6f84d28d 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.1.2204" %} +{% set version = "1.1.2208" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: 8975bba56293d0977ecbfd7d07f76a7d04fa29797fb4c8381254cfb6deda073b + sha256: 5a2f43f9e68ef89a2d951228928e97573b89745285baa7f0b8b0898d60a7afb3 build: noarch: python From bd3df819167bde79357a1632131c5800143dbda7 Mon Sep 17 00:00:00 2001 From: Wei Shen Date: Wed, 3 Jul 2024 15:49:54 +0100 Subject: [PATCH 0049/1589] Update TaxonKit to 0.17.0 (#48917) --- recipes/taxonkit/meta.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/recipes/taxonkit/meta.yaml b/recipes/taxonkit/meta.yaml index 1027498def2d6..61fb6071c45fb 100644 --- a/recipes/taxonkit/meta.yaml +++ b/recipes/taxonkit/meta.yaml @@ -1,21 +1,21 @@ -{% set version = "0.16.0" %} +{% set version = "0.17.0" %} package: name: taxonkit version: {{ version }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('taxonkit', max_pin='x.x') }} source: - url: https://github.com/shenwei356/taxonkit/releases/download/v{{ version }}/taxonkit_darwin_amd64.tar.gz # [osx] - md5: 0f36df3f255caf87004087b4f6a3c718 # [osx] + md5: 5c12cfac4939f966824eda8eb774cf9b # [osx] - url: https://github.com/shenwei356/taxonkit/releases/download/v{{ version }}/taxonkit_linux_amd64.tar.gz # [linux and x86_64] - md5: dcf41d21493a29594b399cdafce16233 # [linux and x86_64] + md5: bfedc8dbfc2db63460ed31843fc5f3c3 # [linux and x86_64] - url: https://github.com/shenwei356/taxonkit/releases/download/v{{ version }}/taxonkit_linux_arm64.tar.gz # [linux and aarch64] - md5: f07a5cff687752de4d03a0b1e6df9a9c # [linux and aarch64] + md5: d0af9a15d225005705d8af63db6a970d # [linux and aarch64] test: commands: From 74934d5f8a3c9b84a050c733eecfafa833511583 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 3 Jul 2024 18:43:04 +0300 Subject: [PATCH 0050/1589] arriba: add linux-aarch64 build (#48914) * arriba: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Require star >=2.7.11b because it is the first one that provides support for linux-aarch64 Signed-off-by: Martin Tzvetanov Grigorov * Require htslib 1.20+ for linux-aarch64 support Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/arriba/build.sh | 4 +++- recipes/arriba/meta.yaml | 9 +++++++-- recipes/star/meta.yaml | 6 +++--- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/recipes/arriba/build.sh b/recipes/arriba/build.sh index cab61cd78f8b2..9e3a2cc7c3b7e 100644 --- a/recipes/arriba/build.sh +++ b/recipes/arriba/build.sh @@ -1,7 +1,9 @@ #!/bin/bash +set -xe + # compile Arriba -make CPPFLAGS="-I$PREFIX/include -I$PREFIX/include/htslib" LDFLAGS="$LDFLAGS" CXX=$CXX bioconda +make -j ${CPU_COUNT} CPPFLAGS="-I$PREFIX/include -I$PREFIX/include/htslib" LDFLAGS="$LDFLAGS" CXX=$CXX bioconda # copy executables mkdir -p "$PREFIX/bin" diff --git a/recipes/arriba/meta.yaml b/recipes/arriba/meta.yaml index 3e6a58c7b67ee..126939ca54892 100644 --- a/recipes/arriba/meta.yaml +++ b/recipes/arriba/meta.yaml @@ -10,7 +10,9 @@ source: sha256: {{ sha256 }} build: - number: 3 + number: 4 + run_exports: + - {{ pin_subpackage('arriba', max_pin="x") }} requirements: build: @@ -22,7 +24,7 @@ requirements: - htslib run: - htslib - - star >=2.7.10a + - star >=2.7.11b - samtools >=1.9 - r-base >=3.3.0 - bioconductor-genomicalignments @@ -40,3 +42,6 @@ test: - arriba -h > /dev/null - draw_fusions.R 2>&1 | grep -q Usage +extra: + additional-platforms: + - linux-aarch64 diff --git a/recipes/star/meta.yaml b/recipes/star/meta.yaml index d0504bcb00d36..f6946392cd1ab 100644 --- a/recipes/star/meta.yaml +++ b/recipes/star/meta.yaml @@ -15,7 +15,7 @@ source: - patches/0003-create-simd-dispatch.patch build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('star', max_pin="x") }} @@ -26,10 +26,10 @@ requirements: - make - vim host: - - htslib + - htslib >=1.20 - zlib run: - - htslib + - htslib >=1.20 - zlib test: From 335c9ca60d52fbba6f6b9f12f16652706381ac72 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 16:38:30 -0400 Subject: [PATCH 0051/1589] Update harpy to 1.1.1 (#48922) --- recipes/harpy/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index cf0bf28f04882..8d31b064ed9ea 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.1" %} -{% set sha256 = "1dd0d64b75f8820994d109f855cd4a883988ff811d6ec152b41f5332c50688e1" %} +{% set version = "1.1.1" %} +{% set sha256 = "db45572cb2592a8b55dcaad606c79443a411b6c58cbb2a7183a16abdd5da3e1f" %} package: name: harpy @@ -11,7 +11,7 @@ source: build: skip: True # [osx] - number: 1 + number: 0 missing_dso_whitelist: - /lib64/libstdc++.so.6 - /lib64/libc.so.6 From 0ae560dd79d427e09808cbf97242dd0540a0faed Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 16:39:02 -0400 Subject: [PATCH 0052/1589] Update varcode to 1.2.1 (#48921) --- recipes/varcode/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/varcode/meta.yaml b/recipes/varcode/meta.yaml index 061bbf466712d..11373e7ebae26 100644 --- a/recipes/varcode/meta.yaml +++ b/recipes/varcode/meta.yaml @@ -1,5 +1,5 @@ {% set name = "varcode" %} -{% set version = "1.2.0" %} +{% set version = "1.2.1" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: e3ae050bf772fca49417044f7dfc5f68c373b11ace7afea106d4f35b4721091f + sha256: f2f0f608b266304cb6ceaa353357ea089cc6ae3f1fa15c8824b44e61fcf567cb build: number: 0 From ab91674827ad3c2b3ce9e5715378b696bb04a71d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 16:40:04 -0400 Subject: [PATCH 0053/1589] Update querynator to 0.5.1 (#48918) --- recipes/querynator/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/querynator/meta.yaml b/recipes/querynator/meta.yaml index b8401f5168b4e..3b1fdabd9f683 100644 --- a/recipes/querynator/meta.yaml +++ b/recipes/querynator/meta.yaml @@ -1,5 +1,5 @@ {% set name = "querynator" %} -{% set version = "0.5.0" %} +{% set version = "0.5.1" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 01712498ecd492e67a85d9b5a809f2528ab7040ccc0170c2d06823eabef65814 + sha256: 21a0a77062b86ebf20bc87a7746ab1a58526f485cf2e981ff06ef2dd8fe021f3 build: number: 0 From 29b41011ade5e97e5a115be76ed8d3eef9862d2a Mon Sep 17 00:00:00 2001 From: Rauf Salamzade Date: Wed, 3 Jul 2024 15:41:43 -0500 Subject: [PATCH 0054/1589] Update codoff (#48923) --- recipes/codoff/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/codoff/meta.yaml b/recipes/codoff/meta.yaml index 3777b0487eae2..abd114e0c7e2c 100644 --- a/recipes/codoff/meta.yaml +++ b/recipes/codoff/meta.yaml @@ -10,7 +10,7 @@ source: sha256: ffa16c6f4fba96bfb6b0a4d9efda202bb6215d1aca558cac9d96761e02962237 build: - number: 0 + number: 1 noarch: python script: "{{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv" run_exports: @@ -24,7 +24,7 @@ requirements: - wget run: - python =3.10 - - biopython =1.79 + - biopython - setuptools - scipy - seaborn From d435b9a5ce12ea9b30e23ea63db9aa04e34aef0f Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 4 Jul 2024 00:01:26 +0300 Subject: [PATCH 0055/1589] survivor: add linux-aarch64 build (#48911) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/survivor/build.sh | 4 +++- recipes/survivor/meta.yaml | 8 +++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/recipes/survivor/build.sh b/recipes/survivor/build.sh index 54fefce8d9432..b5c3979560c46 100644 --- a/recipes/survivor/build.sh +++ b/recipes/survivor/build.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -xe + mkdir -p $PREFIX/bin sed -i.bak "s#g++#$CXX -I$PREFIX/include -L$PREFIX/lib#g" Debug/makefile for f in Debug/src/*/subdir.mk; do @@ -8,5 +10,5 @@ done sed -i.bak "s#g++#$CXX -I$PREFIX/include -L$PREFIX/lib#g" Debug/src/subdir.mk cd Debug -make +make -j ${CPU_COUNT} cp SURVIVOR $PREFIX/bin diff --git a/recipes/survivor/meta.yaml b/recipes/survivor/meta.yaml index 09901ea81b65f..b54e5e2cd021b 100644 --- a/recipes/survivor/meta.yaml +++ b/recipes/survivor/meta.yaml @@ -5,7 +5,9 @@ package: version: {{ version }} build: - number: 4 + number: 5 + run_exports: + - {{ pin_subpackage('survivor', max_pin="x") }} source: url: https://github.com/fritzsedlazeck/SURVIVOR/archive/{{ version }}.tar.gz @@ -29,3 +31,7 @@ about: test: commands: - SURVIVOR + +extra: + additional-platforms: + - linux-aarch64 From d2faa3b70646a33a27713dbb42d4e14abd924ff5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 18:09:44 -0400 Subject: [PATCH 0056/1589] Update regenie to 3.5 (#48926) * Update regenie to 3.4.1 * Update regenie to 3.4.1 * add patch for v3.4.1 * Update regenie to 3.5 * update patch * fix boost version --------- Co-authored-by: Joelle Mbatchou --- recipes/regenie/meta.yaml | 11 +- .../0014-update-cmakelist.txt-for-v3.5.patch | 355 ++++++++++++++++++ 2 files changed, 361 insertions(+), 5 deletions(-) create mode 100644 recipes/regenie/patches/0014-update-cmakelist.txt-for-v3.5.patch diff --git a/recipes/regenie/meta.yaml b/recipes/regenie/meta.yaml index 0ee50bfab1262..ef14c2e5919c7 100644 --- a/recipes/regenie/meta.yaml +++ b/recipes/regenie/meta.yaml @@ -1,6 +1,6 @@ {% set name = "regenie" %} -{% set version = "3.4.1" %} -{% set sha256 = "e2683cd4078015ece44cfbea28957695155dbad3b6a5ef6017654b1d8254f214" %} +{% set version = "3.5" %} +{% set sha256 = "48dfe8efa7b8acb6771452e3b53008f97d4a5c1241d5dbc3380d994b70a07a8c" %} package: name: {{ name|lower }} @@ -23,7 +23,8 @@ source: # - patches/0010-update-cmakelist-file-for-v3.2.7.patch # - patches/0011-update-cmakelist-file-for-v3.2.9.patch # - patches/0012-update-cmakelist-file-for-v3.4.patch - - patches/0013-update-cmakelist-file-for-v3.4.1.patch + # - patches/0013-update-cmakelist-file-for-v3.4.1.patch + - patches/0014-update-cmakelist.txt-for-v3.5.patch build: number: 0 @@ -42,14 +43,14 @@ requirements: - libgomp # [linux] host: - bgenix >=1.1.7 - - boost-cpp >=1.7 + - boost-cpp 1.74 - liblapack * *mkl - mkl >=2020.4 - mkl-include - zlib - zstd run: - - boost-cpp >=1.7 + - boost-cpp 1.74 - mkl >=2020.4 - sqlite - zlib diff --git a/recipes/regenie/patches/0014-update-cmakelist.txt-for-v3.5.patch b/recipes/regenie/patches/0014-update-cmakelist.txt-for-v3.5.patch new file mode 100644 index 0000000000000..0637586f8c9c0 --- /dev/null +++ b/recipes/regenie/patches/0014-update-cmakelist.txt-for-v3.5.patch @@ -0,0 +1,355 @@ +From 70b5249cb7a454d7eeaa94c262050adee124aea6 Mon Sep 17 00:00:00 2001 +From: Joelle Mbatchou +Date: Wed, 3 Jul 2024 16:15:46 -0400 +Subject: [PATCH] update cmakelist.txt for v3.5 + +--- + CMakeLists.txt | 241 ++++++++++++++++++++----------------------------- + 1 file changed, 97 insertions(+), 144 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b955d8e..02bdbbb 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,11 +1,3 @@ +-# For Intel MKL, set MKLROOT= when running cmake +-# e.g. MKLROOT=/opt/mkl/ cmake -S regenie_dir/ -B regenie_dir/build/ +-# For OpenBLAS, set OPENBLAS_ROOT= when running cmake +-# note: it also requires lapacke library +-# For static compilation on Linux systems, set STATIC=1 when running cmake +-# -> this excludes GLIBC +- +- + cmake_minimum_required(VERSION 3.13) + + # detect OS architecture +@@ -33,57 +25,16 @@ set(CMAKE_CXX_EXTENSIONS OFF) # Ensures -std=c++11 + ###################################### + ######## check input variables + +-# check BGEN_PATH +-if("$ENV{BGEN_PATH}" STREQUAL "") +- message( FATAL_ERROR "Must specify path to BGEN library in 'BGEN_PATH'") +-else() +- set(BGEN_PATH "$ENV{BGEN_PATH}" CACHE INTERNAL "Set BGEN library path") +- if (NOT EXISTS ${BGEN_PATH}) +- message( FATAL_ERROR "Specified BGEN library directory '${BGEN_PATH}' does not exist") +- endif() +-endif() +- + # check for static compilation +-if($ENV{STATIC}) ++if(BUILD_SHARED_LIBS) ++ set(BUILD_STATIC OFF CACHE INTERNAL "Dynamic compilation") ++ set(Boost_USE_STATIC_LIBS OFF) ++else() + set(BUILD_STATIC ON CACHE INTERNAL "Static compilation") ++ set(Boost_USE_STATIC_LIBS ON) + message( STATUS "Static compilation mode") + endif() + +-# check Boost IOStreams +-if($ENV{HAS_BOOST_IOSTREAM}) +- set(HAS_BOOST_IOSTREAM 1 CACHE INTERNAL "Add Boost IO") +- set(RG_VERSION "${RG_VERSION}.gz" CACHE INTERNAL "Update version") +-else() +- set(HAS_BOOST_IOSTREAM 0 CACHE INTERNAL "Skip Boost IO") +-endif() +- +-# check MKL +-if(NOT "$ENV{MKLROOT}" STREQUAL "") +- set(MKLROOT "$ENV{MKLROOT}" CACHE INTERNAL "Set MKL library path") +- if (NOT EXISTS ${MKLROOT}) +- message( FATAL_ERROR "Specified MKL library directory '${MKLROOT}' does not exist") +- endif() +- message( STATUS "Will compile with Intel MKL library") +-endif() +- +-# check HTSlib +-if(NOT "$ENV{HTSLIB_PATH}" STREQUAL "") +- set(HTSLIB_PATH "$ENV{HTSLIB_PATH}" CACHE INTERNAL "Set HTSlib library path") +- if (NOT EXISTS ${HTSLIB_PATH}) +- message( FATAL_ERROR "Specified HTSlib library directory '${HTSLIB_PATH}' does not exist") +- endif() +- message( STATUS "Will compile with HTSlib") +-endif() +- +-# check OpenBLAS +-if(NOT "$ENV{OPENBLAS_ROOT}" STREQUAL "") +- set(OPENBLAS_ROOT "$ENV{OPENBLAS_ROOT}" CACHE INTERNAL "Set OpenBLAS library path") +- if (NOT EXISTS ${OPENBLAS_ROOT}) +- message( FATAL_ERROR "Specified OpenBLAS library directory '${OPENBLAS_ROOT}' does not exist") +- endif() +- message( STATUS "Will compile with OpenBLAS library") +-endif() +- + ###################################### + ######## set flags and required libraries + +@@ -92,9 +43,10 @@ set(Boost_USE_STATIC_LIBS ${BUILD_STATIC}) + set(Boost_USE_DEBUG_LIBS OFF) + set(Boost_USE_MULTITHREADED ON) + set(Boost_USE_STATIC_RUNTIME OFF) ++set(MKLROOT "${CMAKE_PREFIX_PATH}") + +-# list each file specifically +-add_executable(regenie ++# list each file specifically ++add_executable(regenie + ${CMAKE_SOURCE_DIR}/src/Data.cpp + ${CMAKE_SOURCE_DIR}/src/Files.cpp + ${CMAKE_SOURCE_DIR}/src/Geno.cpp +@@ -112,32 +64,54 @@ add_executable(regenie + ${CMAKE_SOURCE_DIR}/src/MCC.cpp + ${CMAKE_SOURCE_DIR}/src/Ordinal.cpp + ) +-target_include_directories(regenie PRIVATE ${CMAKE_SOURCE_DIR}/src) ++target_include_directories(regenie PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_PREFIX_PATH}/include) + + set(CMAKE_CXX_FLAGS "-O3 -Wall -pedantic -ffast-math -Wno-unused-local-typedefs -Wno-deprecated-declarations -Wno-long-long -Wno-c11-extensions -fPIC") +-add_definitions(-DVERSION_NUMBER="${RG_VERSION}") + ++find_package(OpenMP REQUIRED) ++target_link_libraries(regenie OpenMP::OpenMP_CXX) + if("${UNAME_S}" STREQUAL "Linux") +- find_package(OpenMP REQUIRED) +- target_link_libraries(regenie PRIVATE OpenMP::OpenMP_CXX) + if(${BUILD_STATIC}) +- target_link_options(regenie BEFORE PRIVATE -static-libgcc PRIVATE -static-libstdc++) ++ target_link_options(regenie BEFORE -static-libgcc -static-libstdc++) + endif() + elseif("${UNAME_S}" STREQUAL "Darwin") +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") + endif() + +-set(EXTERN_LIBS_PATH "${CMAKE_SOURCE_DIR}/external_libs") +-target_include_directories(regenie PRIVATE ${EXTERN_LIBS_PATH}/) ++set(EXTERN_LIBS_PATH "${CMAKE_CURRENT_SOURCE_DIR}/external_libs") ++target_include_directories(regenie PUBLIC ${EXTERN_LIBS_PATH}/) ++ ++# for BGEN (choose static if present first) ++find_library(ZSTD_LIBRARY zstd REQUIRED) ++find_library(DB_LIBRARY ++ NAMES libdb.a db ++ REQUIRED ++ ) ++find_library(SQLITE3_LIBRARY sqlite3 REQUIRED) ++find_package(Boost ++ REQUIRED COMPONENTS system filesystem thread ++ OPTIONAL_COMPONENTS iostreams ++ ) ++find_library(BGEN_LIBRARY ++ NAMES libbgen.a ++ REQUIRED ++ ) ++target_link_libraries(regenie ${ZSTD_LIBRARY} ${BGEN_LIBRARY} ${DB_LIBRARY} ${SQLITE3_LIBRARY} ${Boost_LIBRARIES}) ++target_include_directories(regenie ++ PUBLIC ++ $ ++ $ ++ $ ++ $ ++ ) ++add_definitions(${Boost_DEFINITIONS}) + +-# BGEN library and its dependencies +-find_library(ZSTD_LIBRARY libzstd.a HINTS "${BGEN_PATH}/build/3rd_party/zstd-1.1.0" REQUIRED) +-find_library(DB_LIBRARY libdb.a HINTS "${BGEN_PATH}/build/db" REQUIRED) +-find_library(SQLITE3_LIBRARY libsqlite3.a HINTS "${BGEN_PATH}/build/3rd_party/sqlite3" REQUIRED) +-find_library(Boost_LIBRARY libboost.a HINTS "${BGEN_PATH}/build/3rd_party/boost_1_55_0" REQUIRED) +-find_library(BGEN_LIBRARY libbgen.a HINTS "${BGEN_PATH}/build" REQUIRED) +-target_link_libraries(regenie PRIVATE ${ZSTD_LIBRARY} ${BGEN_LIBRARY} ${DB_LIBRARY} ${SQLITE3_LIBRARY} ${Boost_LIBRARY}) +-target_include_directories(regenie PRIVATE ${BGEN_PATH} ${BGEN_PATH}/genfile/include/ ${BGEN_PATH}/3rd_party/boost_1_55_0/ ${BGEN_PATH}/3rd_party/zstd-1.1.0/lib ${BGEN_PATH}/db/include/ ${BGEN_PATH}/3rd_party/sqlite3) ++# Boost IO ++if(Boost_iostreams_FOUND) ++ add_definitions(-DHAS_BOOST_IOSTREAM) ++ set(RG_VERSION "${RG_VERSION}.gz" CACHE INTERNAL "Update version") ++ message( STATUS "Will compile with Boost Iostreams library") ++endif() + + # MVTNorm library + set(MVTN_PATH "${EXTERN_LIBS_PATH}/mvtnorm") +@@ -146,7 +120,7 @@ add_custom_target( + COMMAND make + WORKING_DIRECTORY ${MVTN_PATH} + ) +-target_link_libraries(regenie PRIVATE ${MVTN_PATH}/libMvtnorm.a) ++target_link_libraries(regenie ${MVTN_PATH}/libMvtnorm.a) + add_dependencies(regenie libMvtnorm) + + # QF library +@@ -156,7 +130,7 @@ add_custom_target( + COMMAND make + WORKING_DIRECTORY ${QF_PATH} + ) +-target_link_libraries(regenie PRIVATE ${QF_PATH}/qf.a) ++target_link_libraries(regenie ${QF_PATH}/qf.a) + add_dependencies(regenie libqf) + + # Quadpack library +@@ -166,7 +140,7 @@ add_custom_target( + COMMAND make + WORKING_DIRECTORY ${QUAD_PATH} + ) +-target_link_libraries(regenie PRIVATE ${QUAD_PATH}/libquad.a) ++target_link_libraries(regenie ${QUAD_PATH}/libquad.a) + add_dependencies(regenie libquad) + + # PGEN library +@@ -176,12 +150,12 @@ add_custom_target( + COMMAND make + WORKING_DIRECTORY ${PGEN_PATH} + ) +-target_link_libraries(regenie PRIVATE ${PGEN_PATH}/pgenlib.a) +-target_include_directories(regenie PRIVATE ${PGEN_PATH} ${PGEN_PATH}/simde/ ${PGEN_PATH}/include/) ++target_link_libraries(regenie ${PGEN_PATH}/pgenlib.a) ++target_include_directories(regenie PUBLIC ${PGEN_PATH} ${PGEN_PATH}/simde/ ${PGEN_PATH}/include/) + add_dependencies(regenie pgenlib) + + # REMETA library +-if(EXISTS ${HTSLIB_PATH}) ++if(DEFINED HTSLIB_PATH) + set(REMETA_PATH "${EXTERN_LIBS_PATH}/remeta") + add_custom_target( + remeta +@@ -205,91 +179,70 @@ if(EXISTS ${HTSLIB_PATH}) + endif() + + # Intel MKL +-if(EXISTS ${MKLROOT}) ++if(DEFINED MKLROOT) + add_definitions(-DWITH_MKL -DEIGEN_USE_BLAS -DEIGEN_USE_LAPACKE) +- target_include_directories(regenie PRIVATE ${MKLROOT}/include/) +- if(${BUILD_STATIC}) # specify static libs +- find_library(MKL_LP64_LIB libmkl_intel_lp64.a +- HINTS "${MKLROOT}/lib/intel64" +- "${MKLROOT}/lib" +- REQUIRED) +- find_library(MKL_THREAD_LIB libmkl_gnu_thread.a +- HINTS "${MKLROOT}/lib/intel64" +- "${MKLROOT}/lib" +- REQUIRED) +- find_library(MKL_CORE_LIB libmkl_core.a +- HINTS "${MKLROOT}/lib/intel64" +- "${MKLROOT}/lib" +- REQUIRED) +- target_link_libraries(regenie PRIVATE "-Wl,--start-group" ${MKL_LP64_LIB} ${MKL_THREAD_LIB} ${MKL_CORE_LIB} "-Wl,--end-group" -lgomp) +- else() # use dynamic libs +- find_library(MKL_LP64_LIB mkl_intel_lp64 +- PATHS "${MKLROOT}/lib/intel64" +- "${MKLROOT}/lib" +- REQUIRED) ++ target_include_directories(regenie PUBLIC ${MKLROOT}/include/) ++ find_library(MKL_LP64_LIB mkl_intel_lp64 ++ HINTS "${MKLROOT}/lib/intel64" ++ "${MKLROOT}/lib" ++ REQUIRED ++ ) ++ if("${UNAME_S}" STREQUAL "Linux") + find_library(MKL_THREAD_LIB mkl_gnu_thread +- PATHS "${MKLROOT}/lib/intel64" ++ HINTS "${MKLROOT}/lib/intel64" + "${MKLROOT}/lib" +- REQUIRED) +- find_library(MKL_CORE_LIB mkl_core +- PATHS "${MKLROOT}/lib/intel64" ++ REQUIRED ++ ) ++ elseif("${UNAME_S}" STREQUAL "Darwin") ++ find_library(MKL_THREAD_LIB mkl_intel_thread ++ HINTS "${MKLROOT}/lib/intel64" + "${MKLROOT}/lib" +- REQUIRED) +- target_link_libraries(regenie PRIVATE "-Wl,--no-as-needed" ${MKL_LP64_LIB} ${MKL_THREAD_LIB} ${MKL_CORE_LIB} -lgomp) ++ REQUIRED ++ ) ++ endif() ++ find_library(MKL_CORE_LIB mkl_core ++ HINTS "${MKLROOT}/lib/intel64" ++ "${MKLROOT}/lib" ++ REQUIRED ++ ) ++ if("${UNAME_S}" STREQUAL "Darwin") ++ target_link_libraries(regenie ${MKL_LP64_LIB} ${MKL_THREAD_LIB} ${MKL_CORE_LIB}) ++ elseif(${BUILD_STATIC}) ++ target_link_libraries(regenie "-Wl,--start-group" ${MKL_LP64_LIB} ${MKL_THREAD_LIB} ${MKL_CORE_LIB} "-Wl,--end-group" -lgomp) ++ else() # use dynamic libs ++ target_link_libraries(regenie "-Wl,--no-as-needed" ${MKL_LP64_LIB} ${MKL_THREAD_LIB} ${MKL_CORE_LIB} -lgomp) + endif() +-elseif(EXISTS ${OPENBLAS_ROOT}) # OpenBLAS +- add_definitions(-DWITH_OPENBLAS -DEIGEN_USE_BLAS -DEIGEN_USE_LAPACKE) +- target_include_directories(regenie PRIVATE ${OPENBLAS_ROOT}/include/) +- find_library(LAPACK_LIB lapack REQUIRED) +- find_library(BLAS_LIB openblas HINTS "${OPENBLAS_ROOT}/lib/" REQUIRED) +- target_link_libraries(regenie PRIVATE ${LAPACK_LIB} -llapacke ${BLAS_LIB}) ++ message( STATUS "Will compile with Intel MKL library") + endif() + + # cxxopts (header-only) +-target_include_directories(regenie PRIVATE ${EXTERN_LIBS_PATH}/cxxopts/include/) ++target_include_directories(regenie PUBLIC ${CMAKE_SOURCE_DIR}/external_libs/cxxopts/include/) + + # LBFGS (header-only) +-target_include_directories(regenie PRIVATE ${EXTERN_LIBS_PATH}/LBFGSpp/include/) ++target_include_directories(regenie PUBLIC ${CMAKE_SOURCE_DIR}/external_libs/LBFGSpp/include/) + + # Eigen (header-only) +-target_include_directories(regenie PRIVATE ${EXTERN_LIBS_PATH}/eigen-3.4.0/) +- +-# Boost IO +-if(${HAS_BOOST_IOSTREAM}) +- if("${UNAME_S}" STREQUAL "Darwin") +- find_library(BOOST_LIB_IO libboost_iostreams libboost_iostreams.a REQUIRED) +- target_link_libraries(regenie PRIVATE ${BOOST_LIB_IO}) +- elseif(${BUILD_STATIC}) +- find_library(BOOST_LIB_IO libboost_iostreams.a REQUIRED) +- target_link_libraries(regenie PRIVATE ${BOOST_LIB_IO}) +- else() +- target_link_libraries(regenie PRIVATE -lboost_iostreams) +- endif() +- add_definitions(-DHAS_BOOST_IOSTREAM) +- message( STATUS "Will compile with Boost Iostreams library") +-endif() ++target_include_directories(regenie PUBLIC ${CMAKE_SOURCE_DIR}/external_libs/eigen-3.4.0/) + + # Other libraries +-find_library(ZLIB_LIBRARY libz.a z REQUIRED) +-find_library(M_LIB m REQUIRED) +-find_library(DL_LIB dl REQUIRED) ++find_library(ZLIB_LIBRARY z REQUIRED) ++find_library(M_LIB m REQUIRED) ++find_library(DL_LIB dl REQUIRED) + if("${UNAME_S}" STREQUAL "Linux") + set(GFORTRAN_LIBRARY "-lgfortran") + elseif("${UNAME_S}" STREQUAL "Darwin") + find_library(GFORTRAN_LIBRARY gfortran REQUIRED) + endif() +-target_link_libraries( +- regenie PRIVATE +- ${ZLIB_LIBRARY} ${M_LIB} ${DL_LIB} ${PTHREAD_LIB} +- ${GFORTRAN_LIBRARY} +-) ++target_link_libraries(regenie ${ZLIB_LIBRARY} ${M_LIB} ${DL_LIB} ${PTHREAD_LIB} ${GFORTRAN_LIBRARY}) + +-install(TARGETS regenie RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) ++add_definitions(-DVERSION_NUMBER="${RG_VERSION}") ++install(TARGETS regenie RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} OPTIONAL) + message( STATUS "REGENIE v" ${RG_VERSION}) + +-add_custom_target(full-clean +- COMMAND cd "${MVTN_PATH}" && make clean +- COMMAND cd "${QF_PATH}" && make clean +- COMMAND cd "${QUAD_PATH}" && make clean +- COMMAND cd "${PGEN_PATH}" && make clean +- ) ++write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake COMPATIBILITY SameMajorVersion) ++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake DESTINATION share/${PROJECT_NAME}) ++ ++set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR}) ++set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR}) ++set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH}) ++include(CPack) +-- +2.34.1 + From fac3ddc68c9cf1e907b09f2082f0dae331e1fbf6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 4 Jul 2024 02:53:12 -0400 Subject: [PATCH 0057/1589] Update tcdemux to 0.0.26 (#48930) --- recipes/tcdemux/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/tcdemux/meta.yaml b/recipes/tcdemux/meta.yaml index 68c8d6e811719..79f4793f66a72 100644 --- a/recipes/tcdemux/meta.yaml +++ b/recipes/tcdemux/meta.yaml @@ -1,5 +1,5 @@ --- -{% set version = "0.0.25" %} +{% set version = "0.0.26" %} package: name: tcdemux @@ -7,10 +7,10 @@ package: source: url: https://github.com/TomHarrop/tcdemux/archive/refs/tags/{{ version }}.tar.gz - sha256: 03d8deea92762ad8ccc3fb3e2231cc00ec702efe52682c71fb8737f8317e819e + sha256: 120b57d54d9fd30e96186c4d11f25691bd54e758e1d7dde99b24868bd2788e59 build: - number: 1 + number: 0 noarch: python script: {{ PYTHON }} -m pip install --ignore-installed . run_exports: From ba48407c69a0a5ab5d85ffe73b23a9740a87ef40 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 4 Jul 2024 04:52:01 -0400 Subject: [PATCH 0058/1589] Update mkdesigner to 0.4.3 (#48932) --- recipes/mkdesigner/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mkdesigner/meta.yaml b/recipes/mkdesigner/meta.yaml index 629629f63bcb1..e00b2fa6ba705 100644 --- a/recipes/mkdesigner/meta.yaml +++ b/recipes/mkdesigner/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mkdesigner" %} -{% set version = "0.4.2" %} +{% set version = "0.4.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mkdesigner-{{ version }}.tar.gz - sha256: 60026c11cd7510835af2cc8d99cd126293ef243c585b3d5b4fd01540f9a58473 + sha256: b56c5fd1f60e300e2bfefb4997e3af7bfd5a37ed6643138114ba810a83250e1a build: entry_points: From 2be09f84cba02d118ae377437fb2a8254fcbd1e5 Mon Sep 17 00:00:00 2001 From: Rauf Salamzade Date: Thu, 4 Jul 2024 03:52:39 -0500 Subject: [PATCH 0059/1589] Update codoff (#48928) * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml --- recipes/codoff/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/codoff/meta.yaml b/recipes/codoff/meta.yaml index abd114e0c7e2c..d16742c487629 100644 --- a/recipes/codoff/meta.yaml +++ b/recipes/codoff/meta.yaml @@ -10,7 +10,7 @@ source: sha256: ffa16c6f4fba96bfb6b0a4d9efda202bb6215d1aca558cac9d96761e02962237 build: - number: 1 + number: 2 noarch: python script: "{{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv" run_exports: @@ -23,7 +23,7 @@ requirements: - pip - wget run: - - python =3.10 + - python >=3.10 - biopython - setuptools - scipy From f6b8662a31725628c47f3b3202f0b94fe989595c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 4 Jul 2024 04:53:16 -0400 Subject: [PATCH 0060/1589] Update icfree-ml to 2.3.1 (#48927) --- recipes/icfree-ml/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/icfree-ml/meta.yaml b/recipes/icfree-ml/meta.yaml index 2a5db33a3daf2..3a9839d03b9ee 100644 --- a/recipes/icfree-ml/meta.yaml +++ b/recipes/icfree-ml/meta.yaml @@ -1,13 +1,13 @@ {% set name = "icfree-ml" %} -{% set version = "2.3.0" %} +{% set version = "2.3.1" %} package: name: {{ name|lower }} version: {{ version }} source: - url: https://github.com/brsynth/icfree-ml/archive/refs/tags/2.3.0.tar.gz - sha256: 6dbefeeeba16a3f02658a45164caa0974befdb008cae1d91147f242fe56542b8 + url: https://github.com/brsynth/icfree-ml/archive/refs/tags/2.3.1.tar.gz + sha256: b3b9743cf54f8688d70189c28946254a0ea71d86ca5e3bfbf6ec32eff8572ab3 build: number: 0 @@ -44,4 +44,4 @@ about: extra: recipe-maintainers: - - tduigou \ No newline at end of file + - tduigou From f00e514789f783fa7741532133b957d3e5450cae Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Thu, 4 Jul 2024 11:04:55 +0200 Subject: [PATCH 0061/1589] Remove superfluous constraints from sambamba (#48925) * Remove superfluous constraints from sambamba, by using ignore_run_exports --- recipes/sambamba/meta.yaml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/recipes/sambamba/meta.yaml b/recipes/sambamba/meta.yaml index 04704448e5319..4c0ba4a6f249f 100644 --- a/recipes/sambamba/meta.yaml +++ b/recipes/sambamba/meta.yaml @@ -12,23 +12,24 @@ source: - 0001-fix-osx-compile.patch build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} + ignore_run_exports: + - bzip2 + - xz requirements: build: - - make - {{ compiler('c') }} + - make - python host: - - ldc >=1.17.0 - bzip2 - - zlib - - xz + - ldc >=1.17.0 - lz4-c - run: - - {{ pin_compatible('ldc', max_pin='x.x') }} + - xz + - zlib test: commands: From 3e69ee80757a0f22903e495ec8524f347c9baca6 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 4 Jul 2024 12:05:22 +0300 Subject: [PATCH 0062/1589] metasnv: add linux-aarch64 build (#48913) * metasnv: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Replace libboost with boost-cpp Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/metasnv/build.sh | 5 +- recipes/metasnv/build_failure.linux-64.yaml | 106 -------------------- recipes/metasnv/meta.yaml | 6 +- 3 files changed, 8 insertions(+), 109 deletions(-) delete mode 100644 recipes/metasnv/build_failure.linux-64.yaml diff --git a/recipes/metasnv/build.sh b/recipes/metasnv/build.sh index 20d8509a0ddf6..34397169a47c7 100644 --- a/recipes/metasnv/build.sh +++ b/recipes/metasnv/build.sh @@ -1,11 +1,14 @@ #!/bin/bash + +set -xe + export CFLAGS="-I$PREFIX/include" export CPPFLAGS="-I$PREFIX/include" export LDFLAGS="-L$PREFIX/lib" tag=share/metasnv-${PKG_VERSION}/ odir=$PREFIX/$tag -make +make -j ${CPU_COUNT} mkdir -p $odir cp -pr src $odir cp -pr metaSNV.py $odir diff --git a/recipes/metasnv/build_failure.linux-64.yaml b/recipes/metasnv/build_failure.linux-64.yaml deleted file mode 100644 index 4d24c6192613b..0000000000000 --- a/recipes/metasnv/build_failure.linux-64.yaml +++ /dev/null @@ -1,106 +0,0 @@ -recipe_sha: fcd5aa4e4395bffa4397115a278d95ea6f6a7358eafcbd21930ac850be38d1b1 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - libsanitizer: 12.3.0-hb8811af_7 conda-forge - libstdcxx-devel_linux-64: 12.3.0-h0223996_107 conda-forge - libstdcxx-ng: 13.2.0-hc0a3c3a_7 conda-forge - libtool: 2.4.7-h27087fc_0 conda-forge - make: 4.3-hd18ef5c_1 conda-forge - pkg-config: 0.29.2-h36c2ea0_1008 conda-forge - sysroot_linux-64: 2.12-he073ed8_17 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - Source cache directory is: /opt/conda/conda-bld/src_cache - Downloading source to cache: v2.0.4_7fcd9db7e3.tar.gz - Downloading https://github.com/metasnv-tool/metaSNV/archive/refs/tags/v2.0.4.tar.gz - Success - Extracting download - source tree in: /opt/conda/conda-bld/metasnv_1717953487418/work - export PREFIX=/opt/conda/conda-bld/metasnv_1717953487418/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place - export BUILD_PREFIX=/opt/conda/conda-bld/metasnv_1717953487418/_build_env - export SRC_DIR=/opt/conda/conda-bld/metasnv_1717953487418/work - INFO: activate-binutils_linux-64.sh made the following environmental changes: - ADDR2LINE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-addr2line - AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar - AS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-as - CXXFILT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cfilt - ELFEDIT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-elfedit - GPROF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gprof - LD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld - LD_GOLD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld.gold - NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-nm - OBJCOPY=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objcopy - OBJDUMP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objdump - RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib - READELF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-readelf - SIZE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-size - STRINGS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strings - STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip - INFO: activate-gcc_linux-64.sh made the following environmental changes: - BUILD=x86_64-conda-linux-gnu - CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc - CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc - CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/metasnv-2.0.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin - CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr - CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot - CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu - CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu - CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp - CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include - DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/metasnv-2.0.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include - GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc - GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar - GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm - GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib - HOST=x86_64-conda-linux-gnu - LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib - MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu - build_alias=x86_64-conda-linux-gnu - host_alias=x86_64-conda-linux-gnu - -BUILD=x86_64-conda_cos6-linux-gnu - -CONDA_BUILD_SYSROOT= - INFO: activate-gxx_linux-64.sh made the following environmental changes: - CXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c - CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/metasnv-2.0.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c - DEBUG_CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/metasnv-2.0.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - GXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-g - cd src/qaTools && make - make[1]: Entering directory '$SRC_DIR/src/qaTools' - $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -I$PREFIX/include -Wno-sign-compare -I$PREFIX/include -c -o qaCompute.o qaCompute.cpp - $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c qaCompute.o -o qaCompute -L$PREFIX/lib -lhts -lhts -pthread -lz - make[1]: Leaving directory '$SRC_DIR/src/qaTools' - cd src/snpCaller && make - make[1]: Entering directory '$SRC_DIR/src/snpCaller' - $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -c -I$PREFIX/include -std=c0x -O2 -Wall -Wno-sign-compare call_vC.cpp -o snpCall.o - call_vC.cpp:20:10: fatal error: boost/icl/discrete_interval.hpp: No such file or directory - 20 | #include - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - compilation terminated. - make[1]: *** [Makefile:12: snpCall.o] Error 1 - make[1]: Leaving directory '$SRC_DIR/src/snpCaller' - make: *** [Makefile:9: snpCaller] Error 2 - Traceback (most recent call last): - File "/opt/conda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - utils.check_call_env( - File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/metasnv_1717953487418/work/conda_build.sh']' returned non-zero exit status 2. -# Last 100 lines of the build log. -category: |- - compiler error diff --git a/recipes/metasnv/meta.yaml b/recipes/metasnv/meta.yaml index 7415dc87cf3bd..4e0732276cf00 100644 --- a/recipes/metasnv/meta.yaml +++ b/recipes/metasnv/meta.yaml @@ -12,7 +12,7 @@ source: build: # on macOS, build error from rpath complaining of a too-long path skip: True # [py2k or py36 or osx] - number: 7 + number: 8 run_exports: - {{ pin_subpackage( "metasnv", max_pin="x") }} @@ -24,7 +24,7 @@ requirements: - libtool host: - python - - libboost + - boost-cpp - htslib - numpy - pandas @@ -74,6 +74,8 @@ about: summary: SNV calling software extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - AlessioMilanese - LucasPaoli From 80c08bbd49ddcca813cf84034537c269bf96d3d6 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 4 Jul 2024 12:05:34 +0300 Subject: [PATCH 0063/1589] skder & skani: add linux-aarch64 build (#48904) * skder: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * skani: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/skani/meta.yaml | 8 +- recipes/skder/build_failure.linux-64.yaml | 104 ---------------------- recipes/skder/build_failure.osx-64.yaml | 104 ---------------------- recipes/skder/meta.yaml | 6 +- 4 files changed, 10 insertions(+), 212 deletions(-) delete mode 100644 recipes/skder/build_failure.linux-64.yaml delete mode 100644 recipes/skder/build_failure.osx-64.yaml diff --git a/recipes/skani/meta.yaml b/recipes/skani/meta.yaml index 7c86f9a689682..45491e5f892be 100644 --- a/recipes/skani/meta.yaml +++ b/recipes/skani/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('skani', max_pin="x") }} @@ -16,7 +16,7 @@ source: requirements: build: - {{ compiler("cxx") }} - - rust >=1.39 + - {{ compiler("rust") }} - make test: @@ -28,4 +28,6 @@ about: license: MIT summary: skani is a fast and robust tool for calculating ANI between metagenome assembled genomes and contigs. - +extra: + additional-platforms: + - linux-aarch64 diff --git a/recipes/skder/build_failure.linux-64.yaml b/recipes/skder/build_failure.linux-64.yaml deleted file mode 100644 index 44fff03789b11..0000000000000 --- a/recipes/skder/build_failure.linux-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 71e743ddb5fe1ba445d3bdee7c0844e6b0aedce09ddb9a2008891a7ba50c254f # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("python_abi=3.10[build=*_cp310]"), MatchSpec("biopython==1.79=py310h5764c6d_2")} - Encountered problems while solving: - - package biopython-1.79-py310h5764c6d_2 requires python_abi 3.10.* *_cp310, but none of the providers can be installed - - Could not solve for environment specs - The following packages are incompatible - [32mbiopython 1.79.* [0m is installable with the potential options - [32mbiopython 1.79[0m would require - [32mpython_abi 3.10.* *_cp310[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.11.* *_cp311[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.6 *_pypy36_pp73[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.7 *_pypy37_pp73[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.8.* *_cp38[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.9.* *_cp39[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed; - [31mpython_abi 3.12.* *_cp312[0m is not installable because it conflicts with any installable versions previously reported. - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/conda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build - create_build_envs(top_level_pkg, notest) - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs - raise e - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs - environ.get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions - precs = _install_actions(prefix, index, specs)["LINK"] - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions - txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction - unlink_precs, link_precs = self.solve_for_diff( - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff - final_precs = self.solve_final_state( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state - out_state = self._solving_loop(in_state, out_state, index) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop - solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt - new_conflicts = self._maybe_raise_for_problems( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("python_abi=3.10[build=*_cp310]"), MatchSpec("biopython==1.79=py310h5764c6d_2")} - Encountered problems while solving: - - package biopython-1.79-py310h5764c6d_2 requires python_abi 3.10.* *_cp310, but none of the providers can be installed - - Could not solve for environment specs - The following packages are incompatible - [32mbiopython 1.79.* [0m is installable with the potential options - [32mbiopython 1.79[0m would require - [32mpython_abi 3.10.* *_cp310[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.11.* *_cp311[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.6 *_pypy36_pp73[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.7 *_pypy37_pp73[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.8.* *_cp38[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.9.* *_cp39[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed; - [31mpython_abi 3.12.* *_cp312[0m is not installable because it conflicts with any installable versions previously reported. -# Last 100 lines of the build log. diff --git a/recipes/skder/build_failure.osx-64.yaml b/recipes/skder/build_failure.osx-64.yaml deleted file mode 100644 index 02f0732422e62..0000000000000 --- a/recipes/skder/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 71e743ddb5fe1ba445d3bdee7c0844e6b0aedce09ddb9a2008891a7ba50c254f # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("biopython==1.79=py310h1961e1f_2"), MatchSpec("python_abi=3.10[build=*_cp310]")} - Encountered problems while solving: - - package biopython-1.79-py310h1961e1f_2 requires python_abi 3.10.* *_cp310, but none of the providers can be installed - - Could not solve for environment specs - The following packages are incompatible - biopython 1.79.* is installable with the potential options - biopython 1.79 would require - python_abi 3.10.* *_cp310, which can be installed; - biopython 1.79 would require - python_abi 3.11.* *_cp311, which can be installed; - biopython 1.79 would require - python_abi 3.6 *_pypy36_pp73, which can be installed; - biopython 1.79 would require - python_abi 3.6.* *_cp36m, which can be installed; - biopython 1.79 would require - python_abi 3.7.* *_cp37m, which can be installed; - biopython 1.79 would require - python_abi 3.7 *_pypy37_pp73, which can be installed; - biopython 1.79 would require - python_abi 3.8 *_pypy38_pp73, which can be installed; - biopython 1.79 would require - python_abi 3.8.* *_cp38, which can be installed; - biopython 1.79 would require - python_abi 3.9 *_pypy39_pp73, which can be installed; - biopython 1.79 would require - python_abi 3.9.* *_cp39, which can be installed; - python_abi 3.12.* *_cp312 is not installable because it conflicts with any installable versions previously reported. - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build - create_build_envs(top_level_pkg, notest) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs - raise e - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs - environ.get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions - precs = _install_actions(prefix, index, specs)["LINK"] - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions - txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction - unlink_precs, link_precs = self.solve_for_diff( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff - final_precs = self.solve_final_state( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state - out_state = self._solving_loop(in_state, out_state, index) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop - solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt - new_conflicts = self._maybe_raise_for_problems( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("biopython==1.79=py310h1961e1f_2"), MatchSpec("python_abi=3.10[build=*_cp310]")} - Encountered problems while solving: - - package biopython-1.79-py310h1961e1f_2 requires python_abi 3.10.* *_cp310, but none of the providers can be installed - - Could not solve for environment specs - The following packages are incompatible - biopython 1.79.* is installable with the potential options - biopython 1.79 would require - python_abi 3.10.* *_cp310, which can be installed; - biopython 1.79 would require - python_abi 3.11.* *_cp311, which can be installed; - biopython 1.79 would require - python_abi 3.6 *_pypy36_pp73, which can be installed; - biopython 1.79 would require - python_abi 3.6.* *_cp36m, which can be installed; - biopython 1.79 would require - python_abi 3.7.* *_cp37m, which can be installed; - biopython 1.79 would require - python_abi 3.7 *_pypy37_pp73, which can be installed; - biopython 1.79 would require - python_abi 3.8 *_pypy38_pp73, which can be installed; - biopython 1.79 would require - python_abi 3.8.* *_cp38, which can be installed; - biopython 1.79 would require - python_abi 3.9 *_pypy39_pp73, which can be installed; - biopython 1.79 would require - python_abi 3.9.* *_cp39, which can be installed; - python_abi 3.12.* *_cp312 is not installable because it conflicts with any installable versions previously reported. -# Last 100 lines of the build log. diff --git a/recipes/skder/meta.yaml b/recipes/skder/meta.yaml index f8e8f2b8de92e..aafb34b595df6 100644 --- a/recipes/skder/meta.yaml +++ b/recipes/skder/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 5ccd4b33b94ad7a4c03baaeaaf2def51627161c006bd71a0e51b913a25d0d776 build: - number: 0 + number: 1 skip: True # [py <= 39] run_exports: - {{ pin_subpackage('skder', max_pin='x.x') }} @@ -48,3 +48,7 @@ about: license_family: BSD summary: "skDER: efficient & high-resolution dereplication of microbial genomes" dev_url: https://github.com/raufs/skDER + +extra: + additional-platforms: + - linux-aarch64 From a9a595e836142b4fa0653536d590a110384959bb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 4 Jul 2024 05:18:40 -0400 Subject: [PATCH 0064/1589] Update kegg-pathways-completeness to 1.0.4 (#48919) --- recipes/kegg-pathways-completeness/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/kegg-pathways-completeness/meta.yaml b/recipes/kegg-pathways-completeness/meta.yaml index 7380bc6b6a9d3..6e24a0a0c3ed1 100644 --- a/recipes/kegg-pathways-completeness/meta.yaml +++ b/recipes/kegg-pathways-completeness/meta.yaml @@ -1,5 +1,5 @@ {% set name = "kegg-pathways-completeness" %} -{% set version = "1.0.3" %} +{% set version = "1.0.4" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/kegg_pathways_completeness-{{ version }}.tar.gz - sha256: 9c2e274f39efb4f0111074d34262df9990871fd94f6c8e9d91a146a20881373f + sha256: 4772c0d2cc8364e7b26483a889531f18b43ab37ed38d722b260a2ee13c2232e5 build: entry_points: From 4ef4e5d3d500786d77e06c2d94fa3712bb19ed0c Mon Sep 17 00:00:00 2001 From: Tom Harrop Date: Thu, 4 Jul 2024 21:07:03 +1000 Subject: [PATCH 0065/1589] Update tcdemux recipe (#48931) * Update tcdemux recipe * Pin python to avoid snakemake f-string bug See https://github.com/snakemake/snakemake/issues/2480#issuecomment-1767902894 --- recipes/tcdemux/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/tcdemux/meta.yaml b/recipes/tcdemux/meta.yaml index 79f4793f66a72..23b03ecb70bdd 100644 --- a/recipes/tcdemux/meta.yaml +++ b/recipes/tcdemux/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 120b57d54d9fd30e96186c4d11f25691bd54e758e1d7dde99b24868bd2788e59 build: - number: 0 + number: 1 noarch: python script: {{ PYTHON }} -m pip install --ignore-installed . run_exports: @@ -25,12 +25,12 @@ requirements: - cutadapt >=4.5 - pandas >=2.1.1 - pigz - - python >=3.10 + - python >=3.10,<3.12 - r-bit64 >=4.0.5 - r-data.table >=1.14.8 - r-ggplot2 >=3.4.3 - r-viridis >=0.6.4 - - snakemake >=7.32.4 + - snakemake >=7.32.4,<8.0.0 test: commands: From bb42706be9809838c1fce3a4901399a46dfc4808 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 4 Jul 2024 14:35:56 +0300 Subject: [PATCH 0066/1589] sambamba: add linux-aarch64 build (#46735) * sambamba: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * sambamba: bump the build number Signed-off-by: Martin Tzvetanov Grigorov * sambamba: Use large VM at CircleCI. It seems the build needs more memory Signed-off-by: Martin Tzvetanov Grigorov * sambamba: Try again with medium VM on CircleCI. Use `make -j` Signed-off-by: Martin Tzvetanov Grigorov * CircleCI large VM is needed by sambamba Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- .circleci/config.yml | 2 +- recipes/sambamba/build.sh | 6 ++++-- recipes/sambamba/meta.yaml | 4 +++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 4631c4c8db830..c4a3117dd6022 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -9,7 +9,7 @@ executors: linux-aarch64: machine: image: ubuntu-2204:current - resource_class: arm.medium + resource_class: arm.large jobs: # a basic unit of work in a run build_and_test: diff --git a/recipes/sambamba/build.sh b/recipes/sambamba/build.sh index bfde907c08111..d05576daff9c5 100644 --- a/recipes/sambamba/build.sh +++ b/recipes/sambamba/build.sh @@ -1,12 +1,14 @@ #!/bin/bash +set -xe + export C_INCLUDE_PATH=${PREFIX}/include export LIBRARY_PATH=${PREFIX}/lib # Running `make check` recompiles as an unoptimised binary so must be done prior to release compile -make check CC=${CC} +make -j ${CPU_COUNT} check CC=${CC} -make release CC=${CC} LIBRARY_PATH=${PREFIX}/lib +make -j ${CPU_COUNT} release CC=${CC} LIBRARY_PATH=${PREFIX}/lib make install prefix=${PREFIX} # The binaries are versioned for some reason diff --git a/recipes/sambamba/meta.yaml b/recipes/sambamba/meta.yaml index 4c0ba4a6f249f..4f6491692d307 100644 --- a/recipes/sambamba/meta.yaml +++ b/recipes/sambamba/meta.yaml @@ -39,12 +39,14 @@ about: home: "https://github.com/biod/sambamba" doc_url: "https://lomereiter.github.io/sambamba/docs/sambamba-view.html" dev_url: "https://github.com/biod/sambamba" - license: GPL2 + license: GPL-2.0-only license_family: GPL2 license_file: LICENSE summary: "Tools for working with SAM/BAM data" extra: + additional-platforms: + - linux-aarch64 identifiers: - doi:10.1093/bioinformatics/btv098 recipe-maintainers: From 756f7bb954bfa28553217e10eab2314c9142788b Mon Sep 17 00:00:00 2001 From: Tom Harrop Date: Thu, 4 Jul 2024 21:36:46 +1000 Subject: [PATCH 0067/1589] Update iqtree to 2.3.5 (#48929) * bump iqtree * iqtree: Temporarily use large VM for Linux ARM64 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov --- recipes/iqtree/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/iqtree/meta.yaml b/recipes/iqtree/meta.yaml index 2b9c52c9fef99..87081d98ed2fa 100644 --- a/recipes/iqtree/meta.yaml +++ b/recipes/iqtree/meta.yaml @@ -1,13 +1,13 @@ {% set name = "IQTREE" %} -{% set version = "2.3.4" %} -{% set sha256 = "3c348a937593262c829d47f4a63cf7de1c8230efcdccccc0885a1826eed66172" %} +{% set version = "2.3.5" %} +{% set sha256 = "8e323e0b7c46e97901d3500f11e810703e0e5d25848188047eca9602d03fa6b1" %} package: name: {{ name|lower }} version: {{ version | replace("-", "_") }} build: - number: 2 + number: 0 run_exports: - {{ pin_subpackage('iqtree', max_pin="x") }} From 542c7fc824ba9c8aed3606e9b5be391d4209c4aa Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 4 Jul 2024 07:43:46 -0400 Subject: [PATCH 0068/1589] Update submission-excel2xml to 2.9.1 (#48934) --- recipes/submission-excel2xml/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/submission-excel2xml/meta.yaml b/recipes/submission-excel2xml/meta.yaml index 82d05fea366a5..7a4a792cfebf9 100644 --- a/recipes/submission-excel2xml/meta.yaml +++ b/recipes/submission-excel2xml/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.9" %} +{% set version = "2.9.1" %} package: name: submission-excel2xml @@ -12,7 +12,7 @@ build: source: url: https://github.com/ddbj/submission-excel2xml/archive/refs/tags/v{{ version }}.tar.gz - sha256: 93d5c98a562097c6dd3468f006e62901382925156f9d8c40fccd077fc0ce1a01 + sha256: 2dc560c4e602563483489b18fc45106a2e02c7ffa1636ed801f43fdc47639d45 requirements: host: From fa55acfa697c51c584ddbd6661d7c416b1d944b9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 4 Jul 2024 07:44:09 -0400 Subject: [PATCH 0069/1589] Update snakemake-interface-executor-plugins to 9.2.0 (#48935) --- recipes/snakemake-interface-executor-plugins/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-interface-executor-plugins/meta.yaml b/recipes/snakemake-interface-executor-plugins/meta.yaml index fd5036d4ce8bb..8f3da6758ad78 100644 --- a/recipes/snakemake-interface-executor-plugins/meta.yaml +++ b/recipes/snakemake-interface-executor-plugins/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-interface-executor-plugins" %} -{% set version = "9.1.1" %} +{% set version = "9.2.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_interface_executor_plugins-{{ version }}.tar.gz - sha256: 357c3b1d633b26241693a4e5ce291fbe198c03a54a30acfa86dd97dc252fa2c6 + sha256: 67feaf438a0b8b041ec5f1a1dd859f729036c70c07c9fdad895135f5b949e40a build: noarch: python From 7d389b9031aaedc6d1e8b2a04f920886bae6072e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 4 Jul 2024 08:38:33 -0400 Subject: [PATCH 0070/1589] Update snakemake to 8.15.0 (#48936) --- recipes/snakemake/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake/meta.yaml b/recipes/snakemake/meta.yaml index 301afac503d3c..38120a64bc824 100644 --- a/recipes/snakemake/meta.yaml +++ b/recipes/snakemake/meta.yaml @@ -1,7 +1,7 @@ # Attention: when upgrading the version, please compare below dependencies with # https://github.com/snakemake/snakemake/blob/{version}/setup.cfg {% set name = "snakemake" %} -{% set version = "8.14.0" %} +{% set version = "8.15.0" %} package: name: {{ name }} @@ -9,7 +9,7 @@ package: source: url: https://pypi.io/packages/source/s/{{ name }}/snakemake-{{ version }}.tar.gz - sha256: f7ea6ce0fc7544ef4329fa808d6e2e1c1b3adff2b4658dcc096a41741a7e8d81 + sha256: d05db7b52817ab9390a19f2e8f70ee556c89dfb74aea9bad0f709bca3b6580ca build: number: 0 From 7f4b0684539ef913f5f4a2984fbcaeed6fc09f52 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Thu, 4 Jul 2024 16:34:33 +0200 Subject: [PATCH 0071/1589] Fix ribotaper readlink bug (#48937) * Fix ribotaper readline bug, add aarch64 build Fix #48920 * f * f * f * f --- recipes/ribotaper/meta.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/recipes/ribotaper/meta.yaml b/recipes/ribotaper/meta.yaml index 0c54ba619072e..491b1f4c1fc18 100644 --- a/recipes/ribotaper/meta.yaml +++ b/recipes/ribotaper/meta.yaml @@ -8,12 +8,14 @@ source: build: skip: True # [not linux] - number: 6 + number: 7 + run_exports: + - {{ pin_subpackage('ribotaper', max_pin='x') }} requirements: build: - - make - {{ compiler('c') }} + - make host: - bedtools ==2.17.0 - samtools @@ -34,6 +36,7 @@ requirements: - r-seqinr - r-multitaper - r-xnomial + - readline test: commands: From d32ae5638ec61cbd7995550b38c3a0fb9b5dd321 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 4 Jul 2024 14:08:35 -0400 Subject: [PATCH 0072/1589] Update zol to 1.4.7 (#48902) * Update zol to 1.4.6 * Update meta.yaml * Update zol to 1.4.7 * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml --------- Co-authored-by: Rauf Salamzade --- recipes/zol/meta.yaml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/recipes/zol/meta.yaml b/recipes/zol/meta.yaml index c67937d62bf00..8b410a2c7ad91 100644 --- a/recipes/zol/meta.yaml +++ b/recipes/zol/meta.yaml @@ -1,5 +1,5 @@ {% set name = "zol" %} -{% set version = "1.4.5" %} +{% set version = "1.4.7" %} package: name: {{ name|lower }} @@ -7,11 +7,11 @@ package: source: url: https://github.com/Kalan-Lab/zol/archive/refs/tags/v{{ version }}.tar.gz - sha256: 316a7703d1f2bd027a0907652712dda84bfdcd672133665ddbda3dff5976a2e5 + sha256: 9ef285ddbdbea6e63ed9fd4c4e09985fb969a377155d4544e7bd5914b110bd2e build: - number: 1 - skip: True # [py <= 39] + number: 0 + skip: True # [py <= 311] run_exports: - {{ pin_subpackage('zol', max_pin='x.x') }} @@ -24,15 +24,16 @@ requirements: - pip - axel run: - - python =3.10 - - biopython =1.79 + - python =3.12 + - r-base + - biopython - muscle - setuptools - mcl - pal2nal >=14.1 - hmmer >=3.0.0 - - fasttree >=2.0.0 - - diamond =2.0.15 + - fasttree + - diamond - pyrodigal - prodigal - prodigal-gv @@ -41,11 +42,10 @@ requirements: - xlsxwriter >=3.0.3 - scikit-learn - axel - - hyphy =2.5.14 - - pomegranate >0.13,<=0.14.8 + - hyphy >=2.5.14 + - pomegranate >=1.0.0 - cd-hit - ncbi-genome-download - - r-base - r-ggplot2 - r-cowplot - r-gggenes From 51c011e278c394fe045dad8f61704e8500129790 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 4 Jul 2024 19:10:19 -0400 Subject: [PATCH 0073/1589] Update zol to 1.4.8 (#48951) --- recipes/zol/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/zol/meta.yaml b/recipes/zol/meta.yaml index 8b410a2c7ad91..7bd43afd0cba9 100644 --- a/recipes/zol/meta.yaml +++ b/recipes/zol/meta.yaml @@ -1,5 +1,5 @@ {% set name = "zol" %} -{% set version = "1.4.7" %} +{% set version = "1.4.8" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Kalan-Lab/zol/archive/refs/tags/v{{ version }}.tar.gz - sha256: 9ef285ddbdbea6e63ed9fd4c4e09985fb969a377155d4544e7bd5914b110bd2e + sha256: 9991713dd8f05638f0f50362be4b79fd8411fa62a037475768d0737927a257b3 build: number: 0 From 03e6ffa4c1d34d425b559b2f85bbd3e98c1e68d2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 5 Jul 2024 01:06:02 -0400 Subject: [PATCH 0074/1589] Update skani to 0.2.2 (#48955) --- recipes/skani/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/skani/meta.yaml b/recipes/skani/meta.yaml index 45491e5f892be..25c158e4324c6 100644 --- a/recipes/skani/meta.yaml +++ b/recipes/skani/meta.yaml @@ -1,17 +1,17 @@ -{% set version = "0.2.1" %} +{% set version = "0.2.2" %} package: name: skani version: {{ version }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('skani', max_pin="x") }} source: url: https://github.com/bluenote-1577/skani/archive/v{{ version }}.tar.gz - sha256: 0516323d2ccc90889206b215f67e84bfa8fc9c4233608113508f27c1771bd126 + sha256: e047d52b9f753625eff480fe90f1abb68f82cc6892d9d1910b18bfcedbfc0b9d requirements: build: From b18fbe73978bb60794aff5a7d2a505d91e9d544a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 5 Jul 2024 01:06:57 -0400 Subject: [PATCH 0075/1589] Update bigtools to 0.5.0 (#48953) --- recipes/bigtools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/bigtools/meta.yaml b/recipes/bigtools/meta.yaml index 4544a87e1ee32..050a3e268e854 100644 --- a/recipes/bigtools/meta.yaml +++ b/recipes/bigtools/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.4.3" %} +{% set version = "0.5.0" %} package: name: bigtools @@ -11,7 +11,7 @@ build: source: url: https://github.com/jackh726/bigtools/archive/refs/tags/v{{ version }}.tar.gz - sha256: "cb9a11e4efe10b103f65c24bba19980ba3df1e57c9bbff8aac34d74fa3a45e8a" + sha256: "f17f8129ea9bb3cdde5ce7ecc2465bd3a228409eb10620594911de22c86ba4ef" requirements: build: From 24908276f2c1fc0c91d24d05390124614ebb707f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 5 Jul 2024 01:07:19 -0400 Subject: [PATCH 0076/1589] Update oakvar to 2.11.3 (#48952) --- recipes/oakvar/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/oakvar/meta.yaml b/recipes/oakvar/meta.yaml index 2cb2f69006dcd..7f05f8d15b67a 100644 --- a/recipes/oakvar/meta.yaml +++ b/recipes/oakvar/meta.yaml @@ -1,6 +1,6 @@ {% set name = "OakVar" %} -{% set version = "2.11.2" %} -{% set sha256 = "cbdbb57b8df6815b121fca4ef17bff8360ac9c3e00d8799aa342ffcfef1a8fa3" %} +{% set version = "2.11.3" %} +{% set sha256 = "2d79d3b313338ad22ba32588261e0795567c9687b951746472ca46e8ee6e61dd" %} package: name: {{ name|lower }} From 47688f59098e807fcee108bcdb89cf6864198942 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 5 Jul 2024 01:07:44 -0400 Subject: [PATCH 0077/1589] Update handyreadgenotyper to 0.1.20 (#48950) --- recipes/handyreadgenotyper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/handyreadgenotyper/meta.yaml b/recipes/handyreadgenotyper/meta.yaml index f4dcf18a067e7..6710fdea12746 100644 --- a/recipes/handyreadgenotyper/meta.yaml +++ b/recipes/handyreadgenotyper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "HandyReadGenotyper" %} -{% set version = "0.1.18" %} +{% set version = "0.1.20" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/AntonS-bio/HandyReadGenotyper/archive/{{ version }}.tar.gz - sha256: 70bac2fa184f770066952629975f7721cd601850c1572a55bd3189608767a9ea + sha256: 7e20556165a279f28f5862f38ef681d71b2a6176c72398b99dbce7089820b14b build: number: 0 From 9e64bba0d4f68d1f384d24b3f3d091bf0ab63408 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Fri, 5 Jul 2024 07:08:39 +0200 Subject: [PATCH 0078/1589] fix: readlink is in coreutils contains readlink, not readline (#48946) --- recipes/ribotaper/LICENSE | 641 ++++++++++++++++++++++++++++++++++++ recipes/ribotaper/meta.yaml | 7 +- 2 files changed, 645 insertions(+), 3 deletions(-) create mode 100644 recipes/ribotaper/LICENSE diff --git a/recipes/ribotaper/LICENSE b/recipes/ribotaper/LICENSE new file mode 100644 index 0000000000000..fc0e482aaad2e --- /dev/null +++ b/recipes/ribotaper/LICENSE @@ -0,0 +1,641 @@ +RiboTaper is a method for defining traslated ORFs using +Ribosome Profiling data. + +Copyright (C) 2015 Lorenzo Calviello + +RiboTaper is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +RiboTaper is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with RiboTaper. If not, see . + +Contact: Lorenzo.Calviello@mdc-berlin.de + + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + +Copyright (C) 2007 Free Software Foundation, Inc. +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. + + Preamble + +The GNU General Public License is a free, copyleft license for +software and other kinds of works. + +The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + +To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + +For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + +Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + +For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + +Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + +Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + +The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + +0. Definitions. + +"This License" refers to version 3 of the GNU General Public License. + +"Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + +"The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + +To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + +A "covered work" means either the unmodified Program or a work based +on the Program. + +To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + +To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + +An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + +1. Source Code. + +The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + +A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + +The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + +The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + +The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + +The Corresponding Source for a work in source code form is that +same work. + +2. Basic Permissions. + +All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + +You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + +Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + +3. Protecting Users' Legal Rights From Anti-Circumvention Law. + +No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + +When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + +4. Conveying Verbatim Copies. + +You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + +You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + +5. Conveying Modified Source Versions. + +You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + +A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + +6. Conveying Non-Source Forms. + +You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + +A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + +A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + +"Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + +If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + +The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + +Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + +7. Additional Terms. + +"Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + +When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + +Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + +All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + +If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + +Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + +8. Termination. + +You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + +However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + +Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + +Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + +9. Acceptance Not Required for Having Copies. + +You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + +10. Automatic Licensing of Downstream Recipients. + +Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + +An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + +You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + +11. Patents. + +A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + +A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + +Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + +In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + +If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + +If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + +A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + +Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + +12. No Surrender of Others' Freedom. + +If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + +13. Use with the GNU Affero General Public License. + +Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + +14. Revised Versions of this License. + +The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + +If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + +Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + +15. Disclaimer of Warranty. + +THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +16. Limitation of Liability. + +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + +17. Interpretation of Sections 15 and 16. + +If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS diff --git a/recipes/ribotaper/meta.yaml b/recipes/ribotaper/meta.yaml index 491b1f4c1fc18..719b76d9d487e 100644 --- a/recipes/ribotaper/meta.yaml +++ b/recipes/ribotaper/meta.yaml @@ -8,7 +8,7 @@ source: build: skip: True # [not linux] - number: 7 + number: 8 run_exports: - {{ pin_subpackage('ribotaper', max_pin='x') }} @@ -28,6 +28,7 @@ requirements: - r-xnomial run: - bedtools ==2.17.0 + - coreutils - samtools - r-iterators - r-foreach @@ -36,7 +37,6 @@ requirements: - r-seqinr - r-multitaper - r-xnomial - - readline test: commands: @@ -46,7 +46,8 @@ test: about: home: https://ohlerlab.mdc-berlin.de/software/RiboTaper_126/ - license: GPL + license: GPL-3.0-or-later + license_file: LICENSE summary: 'RiboTaper is a new analysis pipeline for Ribosome Profiling (Ribo-seq) experiments, which exploits the triplet periodicity of From 1ce31f1dcfbe45f696c35e6b69a97493066ae964 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 5 Jul 2024 01:09:06 -0400 Subject: [PATCH 0079/1589] Update snakemake to 8.15.1 (#48945) --- recipes/snakemake/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake/meta.yaml b/recipes/snakemake/meta.yaml index 38120a64bc824..ff49e71b157ff 100644 --- a/recipes/snakemake/meta.yaml +++ b/recipes/snakemake/meta.yaml @@ -1,7 +1,7 @@ # Attention: when upgrading the version, please compare below dependencies with # https://github.com/snakemake/snakemake/blob/{version}/setup.cfg {% set name = "snakemake" %} -{% set version = "8.15.0" %} +{% set version = "8.15.1" %} package: name: {{ name }} @@ -9,7 +9,7 @@ package: source: url: https://pypi.io/packages/source/s/{{ name }}/snakemake-{{ version }}.tar.gz - sha256: d05db7b52817ab9390a19f2e8f70ee556c89dfb74aea9bad0f709bca3b6580ca + sha256: 20f84a63a2cf254a2ca6c6c2e02ee351693e41787e0ed9b73f0e17ee1c91b8f8 build: number: 0 From 654afe20f1bbebef49de6d1ecb0f489195fb0412 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 5 Jul 2024 01:09:32 -0400 Subject: [PATCH 0080/1589] Update snakemake-interface-storage-plugins to 3.2.3 (#48944) --- recipes/snakemake-interface-storage-plugins/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-interface-storage-plugins/meta.yaml b/recipes/snakemake-interface-storage-plugins/meta.yaml index f837051ef43ce..377dfe94187ab 100644 --- a/recipes/snakemake-interface-storage-plugins/meta.yaml +++ b/recipes/snakemake-interface-storage-plugins/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-interface-storage-plugins" %} -{% set version = "3.2.2" %} +{% set version = "3.2.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_interface_storage_plugins-{{ version }}.tar.gz - sha256: fc8a70ef5b1fd054bc64270925228e2054158da9bcf8fa8bd4be36d93a82678b + sha256: b5be7c7dd0b4ec283bfc24f56070aa4047f67de44d8bc64c7aa9bf6ee590b27d build: noarch: python From 6beaef95724163cc80aabb3a2f74173e6da8d917 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 5 Jul 2024 01:09:57 -0400 Subject: [PATCH 0081/1589] Update snakemake-storage-plugin-fs to 1.0.5 (#48942) --- recipes/snakemake-storage-plugin-fs/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-storage-plugin-fs/meta.yaml b/recipes/snakemake-storage-plugin-fs/meta.yaml index 0790f6203c2b5..579a4f5664acd 100644 --- a/recipes/snakemake-storage-plugin-fs/meta.yaml +++ b/recipes/snakemake-storage-plugin-fs/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-storage-plugin-fs" %} -{% set version = "1.0.4" %} +{% set version = "1.0.5" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_storage_plugin_fs-{{ version }}.tar.gz - sha256: d9467d2d8f00689c6af6478f67f693373ce3cb0404d10c6d783997465d5110a9 + sha256: 4f7ce1bf16d10510f8f4a2fde2ae22d047131020bd5efa603132dabfc85f444b build: noarch: python From 3e1bed487d66d25bf98a24337a5de3b3bd191b25 Mon Sep 17 00:00:00 2001 From: Kez Cleal <42997789+kcleal@users.noreply.github.com> Date: Fri, 5 Jul 2024 08:14:02 +0100 Subject: [PATCH 0082/1589] dysgu 1.6.4 Update meta.yaml (#48933) * dysgu 1.6.4 Update meta.yaml * dysgu 1.6.4 Update meta.yaml * Reset the build number * dysgu 1.6.4 Update meta.yaml * Update meta.yaml * Update meta.yaml * Update recipes/dysgu/meta.yaml Co-authored-by: Martin Grigorov --------- Co-authored-by: Martin Grigorov --- recipes/dysgu/meta.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/recipes/dysgu/meta.yaml b/recipes/dysgu/meta.yaml index 2837afb3d0291..06a1bbf643e3b 100644 --- a/recipes/dysgu/meta.yaml +++ b/recipes/dysgu/meta.yaml @@ -1,6 +1,6 @@ {% set name = "dysgu" %} -{% set version = "1.6.2" %} -{% set sha256hash = "6db67f3abd45ca60f768adc9e154a879e604496909e9d243efd55513d6009910" %} +{% set version = "1.6.4" %} +{% set sha256hash = "28b3ef1f84c5a33160c44ec095df7e6c14dfdede6362dc65068f5fb34817c4fd" %} package: name: {{ name|lower }} @@ -24,8 +24,7 @@ requirements: - {{ compiler('c') }} - {{ compiler('cxx') }} host: - - python >=3.7 - - setuptools >=63.0 + - python - cython - htslib >=1.12 - numpy >=1.18 @@ -45,7 +44,7 @@ requirements: - sortedcontainers - click >=8.0 run: - - python >=3.7 + - python - numpy >=1.18 - scipy >1.7 - pandas >=1.2 @@ -56,7 +55,7 @@ requirements: - lightgbm - zlib - click >=8.0 - - pysam >=0.19 + - pysam >=0.22 - libcurl - openssl - bzip2 @@ -81,6 +80,7 @@ about: license: MIT license_family: MIT license_file: LICENSE.md + dev_url: https://github.com/kcleal/dysgu extra: container: From 5d38cabce8bf7fec72ba34f3feede10e224a4d74 Mon Sep 17 00:00:00 2001 From: Zijie Jiang Date: Fri, 5 Jul 2024 15:22:01 +0800 Subject: [PATCH 0083/1589] add cpstools recipes (#48957) * add cpstools recipes * update cpstools recipes * update cpstools recipes * update cpstools recipes * update cpstools recipes * update cpstools recipes * update cpstools recipes * update cpstools recipes --------- Co-authored-by: Jwindler <1033199817@qq.com> --- recipes/cpstools/build.sh | 3 +++ recipes/cpstools/meta.yaml | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 recipes/cpstools/build.sh create mode 100644 recipes/cpstools/meta.yaml diff --git a/recipes/cpstools/build.sh b/recipes/cpstools/build.sh new file mode 100644 index 0000000000000..04547dc83fe20 --- /dev/null +++ b/recipes/cpstools/build.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +$PYTHON setup.py install --single-version-externally-managed --record=record.txt \ No newline at end of file diff --git a/recipes/cpstools/meta.yaml b/recipes/cpstools/meta.yaml new file mode 100644 index 0000000000000..0004e60bd506b --- /dev/null +++ b/recipes/cpstools/meta.yaml @@ -0,0 +1,37 @@ +package: + name: cpstools + version: 1.0.0 + +source: + url: "https://files.pythonhosted.org/packages/2b/97/6614cf90ac95ac650bd2561405c2dbb69264548e7b3a5e7b0a8c2c86a07a/cpstools-1.0.1.tar.gz" + sha256: 7aafded5255edd3be05b1ba4eff94a74f12d37c4b59a177a2696cea90985b35a + +build: + number: 0 + noarch: python + run_exports: + - {{ pin_subpackage('cpstools', max_pin="x") }} + entry_points: + - cpstools = cpstools.cmdline:main + +requirements: + build: + - python >=3.8 + - setuptools + run: + - python >=3.8 + - numpy >=1.24 + - biopython >=1.83 + +test: + imports: + - cpstools + + commands: + - cpstools -h + +about: + home: https://github.com/Xwb7533/CPStools + license: MIT + summary: "CPStools is a package for analyzing chloroplast genome sequences." + description: "CPStools is a package for analyzing chloroplast genome sequences." From d3e019b3f796b11e75d7e4670428ac106ac97e43 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 5 Jul 2024 03:34:47 -0400 Subject: [PATCH 0084/1589] Update submission-excel2xml to 3.0 (#48959) --- recipes/submission-excel2xml/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/submission-excel2xml/meta.yaml b/recipes/submission-excel2xml/meta.yaml index 7a4a792cfebf9..ca1e3897af0c0 100644 --- a/recipes/submission-excel2xml/meta.yaml +++ b/recipes/submission-excel2xml/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.9.1" %} +{% set version = "3.0" %} package: name: submission-excel2xml @@ -12,7 +12,7 @@ build: source: url: https://github.com/ddbj/submission-excel2xml/archive/refs/tags/v{{ version }}.tar.gz - sha256: 2dc560c4e602563483489b18fc45106a2e02c7ffa1636ed801f43fdc47639d45 + sha256: 57346c7adf11191e3163036595de96cd840978c384e851f9035cbd6f6f196f1c requirements: host: From 8820eb89a6805ca584a92552b38fda2b8592333f Mon Sep 17 00:00:00 2001 From: clementcoclet <94937696+clementcoclet@users.noreply.github.com> Date: Fri, 5 Jul 2024 00:47:12 -0700 Subject: [PATCH 0085/1589] MViP (#48948) * mvip_recipes * update_meta.yaml * mvip_new_version_release * build_number_Update_meta_yaml * mvip v.1.1.1 minor issues * Reset the build number --------- Co-authored-by: Clement Coclet - 067048 Co-authored-by: Martin Grigorov --- recipes/mvip/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/mvip/meta.yaml b/recipes/mvip/meta.yaml index 94f524761e912..f0f8bbd911427 100644 --- a/recipes/mvip/meta.yaml +++ b/recipes/mvip/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mvip" %} -{% set version = "1.1.0" %} +{% set version = "1.1.1" %} package: name: "{{ name|lower }}" @@ -7,10 +7,10 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: ee9ea0d29e1d98ccdc7336ab9e41775e1dc0e1e9853d6f42b09bbb2d2f52b28d + sha256: 53e82ef6b4ffddba5c14d19d267c148a6d41432c5833a2b4750bb4ccdadcf0f3 build: - number: 1 + number: 0 noarch: python script: "{{ PYTHON }} -m pip install . --no-deps -vv" run_exports: @@ -25,7 +25,7 @@ requirements: - python >=3.7 - tqdm - importlib_resources - - genomad >=1.5 + - genomad ==1.7.4 - pandas - checkv - bowtie2 From aceaa32a1ebe7cd9db7aa7d4a21ca244787a48af Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 5 Jul 2024 08:30:24 -0400 Subject: [PATCH 0086/1589] Update harmonypy to 0.0.10 (#48949) * Update harmonypy to 0.0.10 * add missing dependency * hatchling is a build dep --------- Co-authored-by: Jonathan Manning --- recipes/harmonypy/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/harmonypy/meta.yaml b/recipes/harmonypy/meta.yaml index fa2d43585bcc3..d5200816c072c 100644 --- a/recipes/harmonypy/meta.yaml +++ b/recipes/harmonypy/meta.yaml @@ -1,5 +1,5 @@ {% set name = "harmonypy" %} -{% set version = "0.0.9" %} +{% set version = "0.0.10" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: "85bfdd4e6ec6e0fa8816a276639358d3598a40d60ba9f7a5d9dada8706be8c4d" + sha256: "27bd39a6f9ada1708ffa577e46c9b7363d1e2fd62740e477ce11fd61819a54df" build: number: 0 @@ -18,6 +18,7 @@ build: requirements: host: + - hatchling - pip - python >=3.6 run: From 7b21fc9adfd595b713b290e98d6ee8120a827926 Mon Sep 17 00:00:00 2001 From: AntonS-bio <47866509+AntonS-bio@users.noreply.github.com> Date: Fri, 5 Jul 2024 14:18:03 +0100 Subject: [PATCH 0087/1589] Update to version 0.1.21 (#48969) * Release of version 0.1.20 * Use SPDX value for the license * Update to 0.1.21 --------- Co-authored-by: Martin Grigorov --- recipes/handyreadgenotyper/meta.yaml | 29 +++++++++++++--------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/recipes/handyreadgenotyper/meta.yaml b/recipes/handyreadgenotyper/meta.yaml index 6710fdea12746..cf317d8534fd1 100644 --- a/recipes/handyreadgenotyper/meta.yaml +++ b/recipes/handyreadgenotyper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "HandyReadGenotyper" %} -{% set version = "0.1.20" %} +{% set version = "0.1.21" %} package: name: {{ name|lower }} @@ -7,25 +7,21 @@ package: source: url: https://github.com/AntonS-bio/HandyReadGenotyper/archive/{{ version }}.tar.gz - sha256: 7e20556165a279f28f5862f38ef681d71b2a6176c72398b99dbce7089820b14b + sha256: ac0f0bc3f5db78f400e67f355f5cc6de7089bf481d6c8272e42b271a571c2bed build: - number: 0 noarch: python - script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation run_exports: - - {{ pin_subpackage('handyreadgenotyper', max_pin="x.x") }} - entry_points: - - classify = classify:main - - train = train:main - - genotyper_utilities = genotyper_utilities:main + - {{ pin_subpackage('handyreadgenotyper', max_pin="x.x") }} + number: 0 requirements: host: - pip - - python >=3.8,<3.9 + - python >=3.10 run: - - python >=3.8,<3.9 + - python >=3.10 - pandas >=2.0.0 - scikit-learn >=1.3.* - pysam >=0.22.0 @@ -38,17 +34,18 @@ requirements: test: commands: - train -h + requires: + - pip about: - license: "GPL-3.0-or-later" - license_family: GPL3 + license: GPL-3.0-only license_file: LICENSE - home: "https://github.com/AntonS-bio/HandyReadGenotyper" + home: https://github.com/AntonS-bio/HandyReadGenotyper summary: 'Tool for training model and classifying reads from environmental ONT amplicon sequencing.' description: | Tool for training model and classifying reads from environmental ONT amplicon sequencing. - doc_url: "https://github.com/AntonS-bio/HandyAmpliconTool/blob/main/README.md" - dev_url: "https://github.com/AntonS-bio/HandyReadGenotyper" + doc_source_url: https://github.com/AntonS-bio/HandyAmpliconTool/blob/main/README.md + extra: recipe-maintainers: From 9e7287668e67689466af1b1d011f2eea7c1f91f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A1n=20Diaz?= Date: Fri, 5 Jul 2024 15:33:00 +0200 Subject: [PATCH 0088/1589] Update b2bTools to v3.0.7 (#48749) * Fixing versions for dependencies * Add missing license text file * Fix linting errors * Fix Pomegranate version * Update recipes/b2btools/meta.yaml * Try to fix recipe * Fix lint errors * Add py311 and p312 * Fix pandas dep * Update meta.yaml * test pandas py312 * Better recipe with test files * Fix py version * Support until py310 * New attempt * [ci skip] add build failure record for recipe recipes/b2btools * [ci skip] add build failure record for recipe recipes/b2btools * Better tags * Fix pandas * Simplify recipe --- recipes/b2btools/LICENSE | 674 ++++++++++++++++++++++++++ recipes/b2btools/meta.yaml | 146 ++---- recipes/b2btools/run_test.sh | 151 +++--- recipes/b2btools/test.msa.fasta | 23 + recipes/b2btools/test.singleseq.fasta | 23 + 5 files changed, 838 insertions(+), 179 deletions(-) create mode 100644 recipes/b2btools/LICENSE create mode 100644 recipes/b2btools/test.msa.fasta create mode 100644 recipes/b2btools/test.singleseq.fasta diff --git a/recipes/b2btools/LICENSE b/recipes/b2btools/LICENSE new file mode 100644 index 0000000000000..e72bfddabc15b --- /dev/null +++ b/recipes/b2btools/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. \ No newline at end of file diff --git a/recipes/b2btools/meta.yaml b/recipes/b2btools/meta.yaml index ee132b4d4c57d..de3f610bf4e45 100644 --- a/recipes/b2btools/meta.yaml +++ b/recipes/b2btools/meta.yaml @@ -1,5 +1,5 @@ -{% set name = "b2bTools" %} -{% set version = "3.0.6" %} +{% set name = "b2btools" %} +{% set version = "3.0.7" %} package: name: "{{ name|lower }}" @@ -7,128 +7,84 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 3617afcfe76cbff3a6bfad4060f962568565fb691b978f87d8db78cde97da58b + sha256: b3c9f10c10c8a12c390a79016e01b7e4d165bf1c94dce48e72d31891cb552c29 build: number: 0 - script: "{{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv" - noarch: python + skip: true # [py >= 311] entry_points: - b2bTools = b2bTools.__main__:main + - b2btools = b2bTools.__main__:main + script: "{{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv" + run_exports: + - {{ pin_subpackage('b2btools', max_pin="x.x") }} requirements: + build: + - {{ compiler('c') }} # [linux] + - {{ compiler('cxx') }} # [linux] + - clang_osx-64 # [osx] + - clangxx_osx-64 # [osx] host: - - python >=3.7,<3.10 + - python <3.11 - pip run: - - biopython ==1.81 - - certifi ==2023.5.7 - - charset-normalizer ==3.1.0 - - cycler ==0.11.0 - - exceptiongroup ==1.1.1 - - fonttools ==4.38.0 + - python <3.11 - hmmer - - idna ==3.4 - - importlib-metadata ==6.7.0 - - iniconfig ==2.0.0 - - joblib ==1.2.0 - - kiwisolver ==1.4.4 - - matplotlib-base ==3.5.3 - - networkx ==2.6.3 - - numpy ==1.21.6 #[py37] - - numpy ==1.24.4 #[py38, py39] - - packaging ==23.1 - - pandas >=1.1,<=1.2 - - pillow ==9.5.0 - - pluggy ==1.2.0 - - pomegranate ==0.14.8 - - pyparsing ==3.1.0 - - python-dateutil ==2.8.2 - - pytorch >=1.8.0 #,<1.13.1 - - pytz ==2023.3 - - PyYAML ==6.0 - - requests ==2.31.0 - - scikit-learn ==1.0.1 - - scipy ==1.10.1 - t-coffee - - threadpoolctl ==3.1.0 - - tomli ==2.0.1 - - tqdm ==4.65.0 - - typing_extensions ==4.6.3 - - urllib3 ==1.26.6 - - zipp ==3.15.0 + - biopython >=1.80,<2 # [py < 310] + - biopython >=1.83,<2 # [py >= 310] + - matplotlib-base >=3.5.3,<3.6 + - numpy ==1.21.6 # [py == 37] + - numpy ==1.24.4 # [py == 38] + - numpy >=1.21.6,<1.27 # [py >= 39] + - pandas >=1.1,<1.2 # [py < 38] + - pandas >=1.5.3,<1.6 # [py >= 38] + - pomegranate >=0.14.8,<=0.14.9 + - requests >=2.0 # [py <= 39] + - requests >=2.31.0,<2.32 # [py > 39] + - scikit-learn ==1.0.2 # [py <= 310] + - scipy ==1.7.3 # [py < 38] + - scipy ==1.10.1 # [py >= 38 and py < 310] + - scipy ==1.12.0 # [py >= 310] + - pytorch >=1.11.0,<=1.13.1 # [py <= 310] + - urllib3 >=1.26.6,<1.27 test: imports: - b2bTools - - b2bTools.general - - b2bTools.general.bmrb - - b2bTools.general.ccpn - - b2bTools.general.ccpn.format - - b2bTools.general.ccpn.format.general - - b2bTools.general.ccpn.format.nmrStar - - b2bTools.general.ccpn.general - - b2bTools.general.ccpn.universal - - b2bTools.general.parsers - - b2bTools.multipleSeq - - b2bTools.nmr - - b2bTools.nmr.shiftCrypt - - b2bTools.nmr.shiftCrypt.models - - b2bTools.nmr.shiftCrypt.shiftcrypt_pkg - - b2bTools.singleSeq - - b2bTools.singleSeq.Agmata - - b2bTools.singleSeq.Agmata.bin - - b2bTools.singleSeq.Agmata.marshalled - - b2bTools.singleSeq.Agmata.sources - - b2bTools.singleSeq.DisoMine - - b2bTools.singleSeq.DisoMine.vector_builder - - b2bTools.singleSeq.DisoMine.vector_builder.psipred - - b2bTools.singleSeq.DisoMine.vector_builder.psipred.bin - - b2bTools.singleSeq.DisoMine.vector_builder.psipred.bin.linux - - b2bTools.singleSeq.DisoMine.vector_builder.psipred.bin.osx - - b2bTools.singleSeq.DisoMine.vector_builder.psipred.data - - b2bTools.singleSeq.DynaMine - - b2bTools.singleSeq.DynaMine.models - - b2bTools.singleSeq.DynaMine.models.backbone - - b2bTools.singleSeq.DynaMine.models.coil - - b2bTools.singleSeq.DynaMine.models.helix - - b2bTools.singleSeq.DynaMine.models.ppII - - b2bTools.singleSeq.DynaMine.models.sheet - - b2bTools.singleSeq.DynaMine.models.sidechain - - b2bTools.singleSeq.EFoldMine - - b2bTools.singleSeq.EFoldMine.models - - b2bTools.singleSeq.PSPer - - b2bTools.singleSeq.PSPer.hmmer_research - - b2bTools.singleSeq.PSPer.marshalled - - b2bTools.singleSeq.PSPer.source - b2bTools.wrapper_source - commands: - - b2bTools --help - - b2bTools --version + files: + - test.singleseq.fasta + - test.msa.fasta about: - home: "https://bio2byte.be/" + home: "https://bio2byte.be/b2btools" license: 'GNU General Public License v3 (GPLv3)' license_family: GPL3 - license_file: - summary: "bio2Byte software suite to predict protein biophysical properties from their amino-acid sequences" + license_file: LICENSE + summary: "The bio2Byte software suite to predict protein biophysical properties" description: | This package provides you with structural predictions for protein sequences made by the Bio2Byte group which researches the relation between protein sequence and biophysical behavior. + List of available predictors: - - Dynamine: Fast predictor of protein backbone dynamics using only sequence information as input. The version here also predicts side-chain dynamics and secondary structure predictors using the same principle. - - Disomine: Predicts protein disorder with recurrent neural networks not directly from the amino acid sequence, but instead from more generic predictions of key biophysical properties, here protein dynamics, secondary structure, and early folding. - - EfoldMine: Predicts from the primary amino acid sequence of a protein, which amino acids are likely involved in early folding events. - - AgMata: Single-sequence-based predictor of protein regions that are likely to cause beta-aggregation. - - PSPer: PSP (Phase Separating Protein) predicts whether a protein is likely to phase-separate with a particular mechanism involving RNA interacts (FUS-like proteins). - doc_url: https://bio2byte.be/b2btools/package-documentation - dev_url: https://pypi.org/project/b2bTools/ + 1. Dynamine: Fast predictor of protein backbone dynamics using only sequence information as input. The version here also predicts side-chain dynamics and secondary structure predictors using the same principle. + 2. Disomine: Predicts protein disorder with recurrent neural networks not directly from the amino acid sequence, but instead from more generic predictions of key biophysical properties, here protein dynamics, secondary structure, and early folding. + 3. EfoldMine: Predicts from the primary amino acid sequence of a protein, which amino acids are likely involved in early folding events. + 4. AgMata: Single-sequence-based predictor of protein regions that are likely to cause beta-aggregation. + 5. PSPer: PSP (Phase Separating Protein) predicts whether a protein is likely to phase-separate with a particular mechanism involving RNA interacts (FUS-like proteins). + 6. ShiftCrypt: Auto-encoding NMR chemical shifts from their native vector space to a residue-level biophysical index. + doc_url: https://pypi.org/project/b2bTools/ + dev_url: http://bitbucket.org/bio2byte/b2btools_releases extra: - author: - - Wim Vranken + author: Wim Vranken recipe-maintainers: - Adrián Díaz (@agdiaz) - Jose Gavaldá-García (@GavaldaGarcia) maintainers: - Adrián Díaz (@agdiaz) - Jose Gavaldá-García (@GavaldaGarcia) + identifiers: + - doi:10.48550/arXiv.2405.02136 # bioRxiv preprint + - biotools:b2btools diff --git a/recipes/b2btools/run_test.sh b/recipes/b2btools/run_test.sh index 040ee3b063011..a3e98342a187b 100755 --- a/recipes/b2btools/run_test.sh +++ b/recipes/b2btools/run_test.sh @@ -4,74 +4,54 @@ # - https://bioconda.github.io/contributor/building-locally.html # - https://docs.openfree.energy/en/stable/installation.html -cat <> ./input_example.fasta ->SEQ_1 -MEDLNVVDSINGAGSWLVANQALLLSYAVNIVAALAIIIVGLIIARMISNAVNRLMISRK - ->SEQ_2 -EPVRRNEFIIGVAYDSDIDQVKQILTNIIQSEDRILKDREMTVRLNELGASSINFVVRVW -EOT - -cat <> ./small_alignment.clustal -CLUSTAL O(1.2.4) multiple sequence alignment - - -SEQ_1 -VYVGNLGNNG 10 -SEQ_2 RVRCGCLTRG- 10 - * * * .. -EOT - print_message() { - current_time=$(date +"%T") - echo "[$current_time - b2bTools] run_test.sh: $1" + current_time=$(date +"%Y-%m-%d %T") # Include date and time + yellow='\033[1;33m' + no_color='\033[0m' + echo -e "${yellow}[$current_time - b2bTools] run_test.sh: $1${no_color}" } preconditions() { - print_message "Testing HMMER dependencies" + print_message "0.1) Testing HMMER installation" + print_message "0.1.a) Testing HMMER installation: hmmalign" hmmalign -h + + print_message "0.1.b) Testing HMMER installation: hmmsearch" hmmsearch -h - print_message "Testing T-Coffee dependencies" + print_message "0.2) Testing T-Coffee installation" t_coffee --help - print_message "Testing b2bTools itself" - b2bTools -h + print_message "0.3) Testing b2bTools itself" + b2bTools --help } postconditions() { - print_message "Removing testing files" - - rm ./input_example.fasta ./small_alignment.clustal + print_message "Nothing to do actually." } scenario_single_seq_without_agmata_psper() { print_message "1.1) Testing b2bTools for Single Seq mode without AgMata nor PSPer" - # Check if the status code is non-zero and exit with an error code - if [ $status -ne 0 ]; then - echo "Error: b2bTools command failed with status code $status" - exit $status - fi - python -m b2bTools \ --dynamine \ --disomine \ --efoldmine \ - --input_file ./input_example.fasta \ - --output_json_file ./input_example.fasta.json \ - --output_tabular_file ./input_example.fasta.csv \ - --metadata_file ./input_example.fasta.meta.csv - status=$? + --input_file ./test.singleseq.fasta \ + --output_json_file ./test.singleseq.fasta.json \ + --output_tabular_file ./test.singleseq.fasta.csv \ + --metadata_file ./test.singleseq.fasta.meta.csv + b2bTools_command_status=$? # Check if the status code is non-zero and exit with an error code - if [ $status -ne 0 ]; then + if [ "$b2bTools_command_status" -ne 0 ]; then print_message "1.1) Error: b2bTools command failed with status code $status" exit $status fi # Validate the presence and content of output files - files=("input_example.fasta.json" "input_example.fasta.csv" "input_example.fasta.meta.csv") + files=("test.singleseq.fasta.json" "test.singleseq.fasta.csv" "test.singleseq.fasta.meta.csv") for file in "${files[@]}"; do if [ ! -f "$file" ]; then print_message "1.1) Error: Output file $file not found" @@ -101,20 +81,20 @@ scenario_single_seq_only_psper() { python -m b2bTools \ --psper \ - --input_file ./input_example.fasta \ - --output_json_file ./input_example.fasta.json \ - --output_tabular_file ./input_example.fasta.csv \ - --metadata_file ./input_example.fasta.meta.csv - status=$? + --input_file ./test.singleseq.fasta \ + --output_json_file ./test.singleseq.fasta.json \ + --output_tabular_file ./test.singleseq.fasta.csv \ + --metadata_file ./test.singleseq.fasta.meta.csv + b2bTools_command_status=$? # Check if the status code is non-zero and exit with an error code - if [ $status -ne 0 ]; then + if [ "$b2bTools_command_status" -ne 0 ]; then print_message "1.2) Error: b2bTools command failed with status code $status" exit $status fi # Validate the presence and content of output files - files=("input_example.fasta.json" "input_example.fasta.csv" "input_example.fasta.meta.csv") + files=("test.singleseq.fasta.json" "test.singleseq.fasta.csv" "test.singleseq.fasta.meta.csv") for file in "${files[@]}"; do if [ ! -f "$file" ]; then print_message "1.2)Error: Output file $file not found" @@ -144,20 +124,20 @@ scenario_single_seq_only_agmata() { python -m b2bTools \ --agmata \ - --input_file ./input_example.fasta \ - --output_json_file ./input_example.fasta.json \ - --output_tabular_file ./input_example.fasta.csv \ - --metadata_file ./input_example.fasta.meta.csv - status=$? + --input_file ./test.singleseq.fasta \ + --output_json_file ./test.singleseq.fasta.json \ + --output_tabular_file ./test.singleseq.fasta.csv \ + --metadata_file ./test.singleseq.fasta.meta.csv + b2bTools_command_status=$? # Check if the status code is non-zero and exit with an error code - if [ $status -ne 0 ]; then + if [ "$b2bTools_command_status" -ne 0 ]; then print_message "1.3) Error: b2bTools command failed with status code $status" exit $status fi # Validate the presence and content of output files - files=("input_example.fasta.json" "input_example.fasta.csv" "input_example.fasta.meta.csv") + files=("test.singleseq.fasta.json" "test.singleseq.fasta.csv" "test.singleseq.fasta.meta.csv") for file in "${files[@]}"; do if [ ! -f "$file" ]; then print_message "1.3)Error: Output file $file not found" @@ -190,23 +170,23 @@ scenario_msa_without_agmata_psper() { --dynamine \ --disomine \ --efoldmine \ - --input_file ./small_alignment.clustal \ - --output_json_file ./small_alignment.clustal.json \ - --output_tabular_file ./small_alignment.clustal.csv \ - --metadata_file ./small_alignment.clustal.meta.csv \ - --distribution_json_file ./small_alignment.clustal.distrib.json \ - --distribution_tabular_file ./small_alignment.clustal.distrib.csv + --input_file ./test.msa.fasta \ + --output_json_file ./test.msa.fasta.json \ + --output_tabular_file ./test.msa.fasta.csv \ + --metadata_file ./test.msa.fasta.meta.csv \ + --distribution_json_file ./test.msa.fasta.distrib.json \ + --distribution_tabular_file ./test.msa.fasta.distrib.csv - status=$? + b2bTools_command_status=$? # Check if the status code is non-zero and exit with an error code - if [ $status -ne 0 ]; then + if [ "$b2bTools_command_status" -ne 0 ]; then print_message "2.1) Error: b2bTools command failed with status code $status" exit $status fi # Validate the presence and content of output files - files=("small_alignment.clustal.json" "small_alignment.clustal.csv" "small_alignment.clustal.meta.csv" "small_alignment.clustal.distrib.json" "small_alignment.clustal.distrib.csv") + files=("test.msa.fasta.json" "test.msa.fasta.csv" "test.msa.fasta.meta.csv" "test.msa.fasta.distrib.json" "test.msa.fasta.distrib.csv") for file in "${files[@]}"; do if [ ! -f "$file" ]; then print_message "2.1) Error: Output file $file not found" @@ -237,23 +217,23 @@ scenario_msa_only_psper() { python -m b2bTools \ --mode msa \ --psper \ - --input_file ./small_alignment.clustal \ - --output_json_file ./small_alignment.clustal.json \ - --output_tabular_file ./small_alignment.clustal.csv \ - --metadata_file ./small_alignment.clustal.meta.csv \ - --distribution_json_file ./small_alignment.clustal.distrib.json \ - --distribution_tabular_file ./small_alignment.clustal.distrib.csv + --input_file ./test.msa.fasta \ + --output_json_file ./test.msa.fasta.json \ + --output_tabular_file ./test.msa.fasta.csv \ + --metadata_file ./test.msa.fasta.meta.csv \ + --distribution_json_file ./test.msa.fasta.distrib.json \ + --distribution_tabular_file ./test.msa.fasta.distrib.csv - status=$? + b2bTools_command_status=$? # Check if the status code is non-zero and exit with an error code - if [ $status -ne 0 ]; then + if [ "$b2bTools_command_status" -ne 0 ]; then print_message "2.1) Error: b2bTools command failed with status code $status" exit $status fi # Validate the presence and content of output files - files=("small_alignment.clustal.json" "small_alignment.clustal.csv" "small_alignment.clustal.meta.csv" "small_alignment.clustal.distrib.json" "small_alignment.clustal.distrib.csv") + files=("test.msa.fasta.json" "test.msa.fasta.csv" "test.msa.fasta.meta.csv" "test.msa.fasta.distrib.json" "test.msa.fasta.distrib.csv") for file in "${files[@]}"; do if [ ! -f "$file" ]; then print_message "2.1) Error: Output file $file not found" @@ -280,25 +260,25 @@ scenario_msa_only_agmata() { print_message "2.2) Testing b2bTools for MSA mode with PSPer" python -m b2bTools \ - --mode msa \ - --agmata \ - --input_file ./small_alignment.clustal \ - --output_json_file ./small_alignment.clustal.json \ - --output_tabular_file ./small_alignment.clustal.csv \ - --metadata_file ./small_alignment.clustal.meta.csv \ - --distribution_json_file ./small_alignment.clustal.distrib.json \ - --distribution_tabular_file ./small_alignment.clustal.distrib.csv + --mode msa \ + --agmata \ + --input_file ./test.msa.fasta \ + --output_json_file ./test.msa.fasta.json \ + --output_tabular_file ./test.msa.fasta.csv \ + --metadata_file ./test.msa.fasta.meta.csv \ + --distribution_json_file ./test.msa.fasta.distrib.json \ + --distribution_tabular_file ./test.msa.fasta.distrib.csv - status=$? + b2bTools_command_status=$? # Check if the status code is non-zero and exit with an error code - if [ $status -ne 0 ]; then + if [ "$b2bTools_command_status" -ne 0 ]; then print_message "2.1) Error: b2bTools command failed with status code $status" exit $status fi # Validate the presence and content of output files - files=("small_alignment.clustal.json" "small_alignment.clustal.csv" "small_alignment.clustal.meta.csv" "small_alignment.clustal.distrib.json" "small_alignment.clustal.distrib.csv") + files=("test.msa.fasta.json" "test.msa.fasta.csv" "test.msa.fasta.meta.csv" "test.msa.fasta.distrib.json" "test.msa.fasta.distrib.csv") for file in "${files[@]}"; do if [ ! -f "$file" ]; then print_message "2.1) Error: Output file $file not found" @@ -321,20 +301,23 @@ scenario_msa_only_agmata() { done } -print_message "Running test scenarios" - +print_message "Running test preconditions" preconditions # Scenarios for Single Sequence input +print_message "Running test scenarios for Single Sequence input" scenario_single_seq_without_agmata_psper scenario_single_seq_only_psper scenario_single_seq_only_agmata # Scenarios for Multiple Sequence Alignment input +print_message "Running test scenarios for Multiple Sequence Alignment input" scenario_msa_without_agmata_psper scenario_msa_only_psper scenario_msa_only_agmata +print_message "Running test postconditions" postconditions print_message "All test scenarios have been executed with success" +exit 0 diff --git a/recipes/b2btools/test.msa.fasta b/recipes/b2btools/test.msa.fasta new file mode 100644 index 0000000000000..5313057d507bf --- /dev/null +++ b/recipes/b2btools/test.msa.fasta @@ -0,0 +1,23 @@ +>P01308 +MALWMRLLPLLALLALWGPDPAAAFVNQHLCGSHLVEALYLVCGERGFFYTPKTRREAED +LQVGQVELGGGPGAGSLQPL-ALEGSLQKRGIVEQCCTSICSLYQLENYCN + +>P01315 +MALWTRLLPLLALLALWAPAPAQAFVNQHLCGSHLVEALYLVCGERGFFYTPKARREAEN +PQAGAVELGGG--LGGLQAL-ALEGPPQKRGIVEQCCTSICSLYQLENYCN + +>P01317 +MALWTRLRPLLALLALWPPPPARAFVNQHLCGSHLVEALYLVCGERGFFYTPKARREVEG +PQVGALELAGGPGAGGL------EGPPQKRGIVEQCCASVCSLYQLENYCN + +>P01321 +MALWMRLLPLLALLALWAPAPTRAFVNQHLCGSHLVEALYLVCGERGFFYTPKARREVED +LQVRDVELAGAPGEGGLQPL-ALEGALQKRGIVEQCCTSICSLYQLENYCN + +>P01329 +MALWMHLLTVLALLALWGPNTGQAFVSRHLCGSNLVETLYSVCQDDGFFYIPKDRRELED +PQVEQTELGMGLGAGGLQPL-ALEMALQKRGIVDQCCTGTCTRHQLQSYCN + +>P67970 +MALWIRSLPLLALLVFSGPGTSYAAANQHLCGSHLVEALYLVCGERGFFYSPKARRDVEQ +PLVSSPLR-G---EAGVLPFQQEEYEKVKRGIVEQCCHNTCSLYQLENYCN diff --git a/recipes/b2btools/test.singleseq.fasta b/recipes/b2btools/test.singleseq.fasta new file mode 100644 index 0000000000000..ba3d60206b78e --- /dev/null +++ b/recipes/b2btools/test.singleseq.fasta @@ -0,0 +1,23 @@ +>P01308 +MALWMRLLPLLALLALWGPDPAAAFVNQHLCGSHLVEALYLVCGERGFFYTPKTRREAED +LQVGQVELGGGPGAGSLQPLALEGSLQKRGIVEQCCTSICSLYQLENYCN + +>P01315 +MALWTRLLPLLALLALWAPAPAQAFVNQHLCGSHLVEALYLVCGERGFFYTPKARREAEN +PQAGAVELGGGLGGLQALALEGPPQKRGIVEQCCTSICSLYQLENYCN + +>P01317 +MALWTRLRPLLALLALWPPPPARAFVNQHLCGSHLVEALYLVCGERGFFYTPKARREVEG +PQVGALELAGGPGAGGLEGPPQKRGIVEQCCASVCSLYQLENYCN + +>P01321 +MALWMRLLPLLALLALWAPAPTRAFVNQHLCGSHLVEALYLVCGERGFFYTPKARREVED +LQVRDVELAGAPGEGGLQPLALEGALQKRGIVEQCCTSICSLYQLENYCN + +>P01329 +MALWMHLLTVLALLALWGPNTGQAFVSRHLCGSNLVETLYSVCQDDGFFYIPKDRRELED +PQVEQTELGMGLGAGGLQPLALEMALQKRGIVDQCCTGTCTRHQLQSYCN + +>P67970 +MALWIRSLPLLALLVFSGPGTSYAAANQHLCGSHLVEALYLVCGERGFFYSPKARRDVEQ +PLVSSPLRGEAGVLPFQQEEYEKVKRGIVEQCCHNTCSLYQLENYCN From 6ca44693b3ef907290a59809f9eca034a9278e65 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 5 Jul 2024 09:33:19 -0400 Subject: [PATCH 0089/1589] Update dysgu to 1.6.5 (#48966) --- recipes/dysgu/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/dysgu/meta.yaml b/recipes/dysgu/meta.yaml index 06a1bbf643e3b..ee40705b83fa5 100644 --- a/recipes/dysgu/meta.yaml +++ b/recipes/dysgu/meta.yaml @@ -1,6 +1,6 @@ {% set name = "dysgu" %} -{% set version = "1.6.4" %} -{% set sha256hash = "28b3ef1f84c5a33160c44ec095df7e6c14dfdede6362dc65068f5fb34817c4fd" %} +{% set version = "1.6.5" %} +{% set sha256hash = "9c64989f56d9c83ba28a3d8876abc068b55c631e752a77fd8de2e43cc49fe14a" %} package: name: {{ name|lower }} From 2e4f2af8051e8934a6ce92c9b5b797d054b6228d Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 5 Jul 2024 16:33:35 +0300 Subject: [PATCH 0090/1589] decifer: add linux-aarch64 build (#48963) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/decifer/build.sh | 6 +++++- recipes/decifer/meta.yaml | 7 ++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/recipes/decifer/build.sh b/recipes/decifer/build.sh index 61c508c1a2a22..d539e8bff629a 100644 --- a/recipes/decifer/build.sh +++ b/recipes/decifer/build.sh @@ -1,3 +1,7 @@ +#!/usr/bin/env bash + +set -xe + mkdir build cd build @@ -7,7 +11,7 @@ cmake \ -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX \ ../src/decifer/cpp/ -make VERBOSE=1 +make -j ${CPU_COUNT} VERBOSE=1 cp mergestatetrees $PREFIX/bin cp generatestatetrees $PREFIX/bin diff --git a/recipes/decifer/meta.yaml b/recipes/decifer/meta.yaml index da44494ac7dd5..c8ff8beddc81c 100644 --- a/recipes/decifer/meta.yaml +++ b/recipes/decifer/meta.yaml @@ -10,9 +10,11 @@ source: sha256: 9b67b66cd9dd5c538204c22994b9c61d97f3691d01146bd76500dbd4ed4d3685 build: - number: 1 + number: 2 entry_points: - decifer = decifer.__main__:main + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} requirements: build: @@ -45,3 +47,6 @@ about: description: | DeCiFer is an algorithm that simultaneously selects mutation multiplicities and clusters SNVs by their corresponding descendant cell fractions (DCF), a statistic that quantifies the proportion of cells which acquired the SNV or whose ancestors acquired the SNV. DCF is related to the commonly used cancer cell fraction (CCF) but further accounts for SNVs which are lost due to deleterious somatic copy-number aberrations (CNAs), identifying clusters of SNVs which occur in the same phylogenetic branch of tumour evolution. +extra: + additional-platforms: + - linux-aarch64 From a37ac4f48d7db89ce061974f2c95eb771a71f0fd Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 5 Jul 2024 16:33:46 +0300 Subject: [PATCH 0091/1589] bigtools: add linux-aarch64 build (#48961) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/bigtools/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/bigtools/meta.yaml b/recipes/bigtools/meta.yaml index 050a3e268e854..a53fbc5eb40d8 100644 --- a/recipes/bigtools/meta.yaml +++ b/recipes/bigtools/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('bigtools', max_pin="x.x") }} @@ -32,5 +32,7 @@ about: dev_url: "https://github.com/jackh726/bigtools" extra: + additional-platforms: + - linux-aarch64 identifiers: - doi:10.5281/zenodo.10606493 From 15b1b6e741139a63000ead8d644fe492753d7ef9 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 5 Jul 2024 16:33:57 +0300 Subject: [PATCH 0092/1589] dysgu: add linux-aarch64 build (#48960) * dysgu: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Bump build number * Try again with build number = 1 * Use Clang 15 for the OSX build Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/dysgu/conda_build_config.yaml | 5 +++++ recipes/dysgu/meta.yaml | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 recipes/dysgu/conda_build_config.yaml diff --git a/recipes/dysgu/conda_build_config.yaml b/recipes/dysgu/conda_build_config.yaml new file mode 100644 index 0000000000000..3e1f5e680f301 --- /dev/null +++ b/recipes/dysgu/conda_build_config.yaml @@ -0,0 +1,5 @@ +# current version does not build with newer compilers +cxx_compiler_version: + - 15 # [osx] +c_compiler_version: + - 15 # [osx] diff --git a/recipes/dysgu/meta.yaml b/recipes/dysgu/meta.yaml index ee40705b83fa5..c5378708979f1 100644 --- a/recipes/dysgu/meta.yaml +++ b/recipes/dysgu/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256hash }} build: - number: 0 + number: 1 binary_relocation: False entry_points: - dysgu = dysgu.main:cli @@ -83,6 +83,8 @@ about: dev_url: https://github.com/kcleal/dysgu extra: + additional-platforms: + - linux-aarch64 container: extended-base: True recipe-maintainers: From c8878a3de30683268887f6cbbb8d38ac0d8350ca Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 5 Jul 2024 09:34:36 -0400 Subject: [PATCH 0093/1589] Update handyreadgenotyper to 0.1.21 (#48970) From 1fa85e735f51f8a6dab9b793b677cba2887b6661 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 5 Jul 2024 09:34:56 -0400 Subject: [PATCH 0094/1589] Update pia to 1.5.2 (#48967) --- recipes/pia/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pia/meta.yaml b/recipes/pia/meta.yaml index e4ac7d094bb9f..4c87fb3b28903 100644 --- a/recipes/pia/meta.yaml +++ b/recipes/pia/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pia" %} -{% set version = "1.5.1" %} -{% set sha256 = "46bd90546afc324246087552fa478c84b5e9dc324984109310ed46dbbd78412d" %} +{% set version = "1.5.2" %} +{% set sha256 = "7a72e0ab93982a707b829e68453a567c3fd1d1d24de1e5bdc6bd0b2fe8f2e05a" %} package: name: {{ name|lower }} From dc1f3da4d100749e042a9970e2a335dfdd762c9f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 5 Jul 2024 09:36:23 -0400 Subject: [PATCH 0095/1589] Update lollipop to 0.4.0 (#48958) * Update lollipop to 0.4.0 * Ruamel API LolliPop fixes ruamel 0.18 change of API * Python 3.10 match/case (PEP 634) is used. --------- Co-authored-by: DrYak --- recipes/lollipop/meta.yaml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/recipes/lollipop/meta.yaml b/recipes/lollipop/meta.yaml index 5680df67393eb..a54a2ab6379e4 100644 --- a/recipes/lollipop/meta.yaml +++ b/recipes/lollipop/meta.yaml @@ -1,6 +1,6 @@ {% set name = "LolliPop" %} -{% set version = "0.3.0" %} -{% set sha256 = "15135a929b87c209e84a096c9c345a12b1a4f6b2c00b37ec99ee88e5555acfec" %} +{% set version = "0.4.0" %} +{% set sha256 = "e13f3e2e74b3720de429b2e6b05e12d8505e12e399b4fe3cfe94a4b9bca60964" %} package: name: {{ name|lower }} @@ -12,28 +12,29 @@ source: build: noarch: python - number: 1 + number: 0 run_exports: - {{ pin_subpackage(name|lower, max_pin="x.x") }} script: - {{ PYTHON }} -m pip install '.[cli]' --ignore-installed --no-deps -v - - mkdir -p ${PREFIX}/share/{{ name }}/presets + - mkdir -p ${PREFIX}/share/{{ name }}/{presets,examples} - cp -vr presets/* ${PREFIX}/share/{{ name }}/presets/ + - cp -vr *preprint*yaml ${PREFIX}/share/{{ name }}/examples/ requirements: host: - - python >=3 + - python >=3.10 - pip - poetry-core >=1.0.8 - poetry-dynamic-versioning run: - - python >=3 + - python >=3.10 - numpy - scipy - pandas - zstandard # NOTE: change of API between ruamel.yaml 0.17.x and 0.18 - - ruamel.yaml <0.18 + - ruamel.yaml >=0.18 - strictyaml - tqdm - click From b2901f64bcb15fa610a4d16a11c288d1a13e23a7 Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Fri, 5 Jul 2024 16:05:09 -0400 Subject: [PATCH 0096/1589] fix: disable unused trigger (#48976) --- .github/workflows/CommentResponder.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/CommentResponder.yml b/.github/workflows/CommentResponder.yml index 4dd311ff95318..ec8fbabdeb9c1 100644 --- a/.github/workflows/CommentResponder.yml +++ b/.github/workflows/CommentResponder.yml @@ -1,9 +1,9 @@ name: CommentResponder on: status: - check_suite: - types: - - completed + # check_suite: + # types: + # - completed issue_comment: types: - created From fd38d36ea670baac117a62903a8d542df146f737 Mon Sep 17 00:00:00 2001 From: David Laehnemann Date: Fri, 5 Jul 2024 23:36:01 +0200 Subject: [PATCH 0097/1589] fix: ensure minimum python version of 2.6 for manta (#48973) * fix: ensure minimum python version of 2.6 for manta * see the minimum specification here: https://github.com/Illumina/manta/blob/75b5c38d4fcd2f6961197b28a41eb61856f2d976/docs/userGuide/installation.md?plain=1#L59 * also note, we had it installing a python version `1.6` in the snakemake wrapper: https://github.com/snakemake/snakemake-wrappers/pull/2114/files#diff-8b4a5764a647f4182cb9f49051b48b25e5b72e38365ec1311475134a3440ed76R7 * chore: bump build number * fix: add run_exports * fix: adjust run_exports syntax * fix: actually set the name variable --- recipes/manta/meta.yaml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/recipes/manta/meta.yaml b/recipes/manta/meta.yaml index 4ed7dfc6fd319..63dd36d4d8d04 100644 --- a/recipes/manta/meta.yaml +++ b/recipes/manta/meta.yaml @@ -1,19 +1,22 @@ +{% set name = "manta" %} {% set version = "1.6.0" %} package: - name: manta - version: '{{ version }}' + name: {{ name }} + version: {{ version }} source: url: https://github.com/Illumina/manta/releases/download/v{{ version }}/manta-{{ version }}.centos6_x86_64.tar.bz2 sha256: ae19b1b934cf5bb605dfb58b29e8e2b843cb469ec5ff12441ca3d9d39179abf4 build: - number: 2 + number: 3 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} requirements: run: - - python <3 + - python >=2.6,<3 test: commands: From d41f77a950541964c7167772a018d46e24033f6f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 6 Jul 2024 05:35:47 -0400 Subject: [PATCH 0098/1589] Update syny to 1.2 (#48977) --- recipes/syny/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/syny/meta.yaml b/recipes/syny/meta.yaml index ad63a3db56362..e51b7c923118e 100644 --- a/recipes/syny/meta.yaml +++ b/recipes/syny/meta.yaml @@ -1,6 +1,6 @@ {% set name = "syny" %} -{% set version = "1.1b" %} -{% set sha256 = "f3eae10ac4a204c89f0f94223f088e50af324a89d3f7a83e0b8b4540b8cf34c3" %} +{% set version = "1.2" %} +{% set sha256 = "ad54ccfd22135fdd4770d1d37eadd12f917c47dc35280ebf9c6fc1cf94786dbe" %} package: name: "{{ name|lower }}" From 4135a0d07711121ffc99955c5c4273ccf4a0453c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 6 Jul 2024 05:36:31 -0400 Subject: [PATCH 0099/1589] Update harpy to 1.2.0 (#48975) --- recipes/harpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index 8d31b064ed9ea..5b0fdf27c89b5 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.1.1" %} -{% set sha256 = "db45572cb2592a8b55dcaad606c79443a411b6c58cbb2a7183a16abdd5da3e1f" %} +{% set version = "1.2.0" %} +{% set sha256 = "01675fc5fee40e3fd43aafd54725cf84009d73cc2f630289a7c23ed46530bc9a" %} package: name: harpy From 2f97f78274e9ea84e0d37af658aad0b4b2c11bf3 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 6 Jul 2024 05:36:54 -0400 Subject: [PATCH 0100/1589] Update snakemake to 8.15.2 (#48974) --- recipes/snakemake/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake/meta.yaml b/recipes/snakemake/meta.yaml index ff49e71b157ff..de065cbd5e5ac 100644 --- a/recipes/snakemake/meta.yaml +++ b/recipes/snakemake/meta.yaml @@ -1,7 +1,7 @@ # Attention: when upgrading the version, please compare below dependencies with # https://github.com/snakemake/snakemake/blob/{version}/setup.cfg {% set name = "snakemake" %} -{% set version = "8.15.1" %} +{% set version = "8.15.2" %} package: name: {{ name }} @@ -9,7 +9,7 @@ package: source: url: https://pypi.io/packages/source/s/{{ name }}/snakemake-{{ version }}.tar.gz - sha256: 20f84a63a2cf254a2ca6c6c2e02ee351693e41787e0ed9b73f0e17ee1c91b8f8 + sha256: 3bcc407dc02cc25c545691b275e9d5e65d414e6361f7682020fc76cb8164267a build: number: 0 From 2245542c90f6c68f736caa31dcb1613d0193f8ee Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 6 Jul 2024 05:37:18 -0400 Subject: [PATCH 0101/1589] Update pybiolib to 1.1.2226 (#48972) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index a03ef6f84d28d..e54473db9776a 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.1.2208" %} +{% set version = "1.1.2226" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: 5a2f43f9e68ef89a2d951228928e97573b89745285baa7f0b8b0898d60a7afb3 + sha256: 276b1fdbce5ea38b3fc9aa8a015b816923b1ad3c1a74780a9afb98078b2e7239 build: noarch: python From 93a799e1ded82be577b48f34a6ab1d12a1744cce Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 6 Jul 2024 07:12:03 -0400 Subject: [PATCH 0102/1589] Update lollipop to 0.4.1 (#48983) --- recipes/lollipop/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/lollipop/meta.yaml b/recipes/lollipop/meta.yaml index a54a2ab6379e4..ca883fd13e81d 100644 --- a/recipes/lollipop/meta.yaml +++ b/recipes/lollipop/meta.yaml @@ -1,6 +1,6 @@ {% set name = "LolliPop" %} -{% set version = "0.4.0" %} -{% set sha256 = "e13f3e2e74b3720de429b2e6b05e12d8505e12e399b4fe3cfe94a4b9bca60964" %} +{% set version = "0.4.1" %} +{% set sha256 = "9991ba2740fcf37a9f0b13febe02025d66bbb4b8c46e0fa7c369adf0d11fc385" %} package: name: {{ name|lower }} From 168958c99eb3251f8d8567d62abae2fcb0e2ed9a Mon Sep 17 00:00:00 2001 From: Vijini Mallawaarachchi Date: Sat, 6 Jul 2024 21:17:10 +0930 Subject: [PATCH 0103/1589] Add kmertools v0.1.0 (#48981) --- recipes/kmertools/build.sh | 7 +++++++ recipes/kmertools/meta.yaml | 38 +++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 recipes/kmertools/build.sh create mode 100644 recipes/kmertools/meta.yaml diff --git a/recipes/kmertools/build.sh b/recipes/kmertools/build.sh new file mode 100644 index 0000000000000..9a40edcacf2d1 --- /dev/null +++ b/recipes/kmertools/build.sh @@ -0,0 +1,7 @@ +#!/bin/bash -e + +# Build with Rust +cargo build --release + +# Install the binaries +cargo install --path kmertools --root $PREFIX diff --git a/recipes/kmertools/meta.yaml b/recipes/kmertools/meta.yaml new file mode 100644 index 0000000000000..0e97b0c0e1d13 --- /dev/null +++ b/recipes/kmertools/meta.yaml @@ -0,0 +1,38 @@ +{% set version = "0.1.0" %} +{% set name = "kmertools" %} +{% set sha256 = "3c8cf78c95ab0baf0f69e7bc631ea52a54733bed0122b9d20e76d49df5639a4c" %} + +package: + name: {{ name }} + version: {{ version }} + +build: + number: 0 + run_exports: + - {{ pin_subpackage('kmertools', max_pin="x.x") }} + +source: + url: https://github.com/anuradhawick/{{ name }}/archive/v{{ version }}.tar.gz + sha256: {{ sha256 }} + +requirements: + build: + - {{ compiler("rust") }} + +test: + commands: + - {{ name }} --help + +about: + home: https://github.com/anuradhawick/kmertools + license: GPL-3.0-only + license_family: GPL3 + summary: "kmertools: DNA Vectorisation Tool" + description: "kmertools is a k-mer based feature extraction tool designed to support metagenomics and other bioinformatics analytics." + doc_url: https://github.com/anuradhawick/kmertools/wiki + dev_url: https://github.com/anuradhawick/kmertools + +extra: + recipe-maintainers: + - anuradhawick + - Vini2 From 64f828aba8d80644b0709d3dd58da4d825025d2d Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Sat, 6 Jul 2024 22:21:02 +0200 Subject: [PATCH 0104/1589] Update meta.yaml (#48979) --- recipes/handyreadgenotyper/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/handyreadgenotyper/meta.yaml b/recipes/handyreadgenotyper/meta.yaml index cf317d8534fd1..173b1894489fa 100644 --- a/recipes/handyreadgenotyper/meta.yaml +++ b/recipes/handyreadgenotyper/meta.yaml @@ -14,7 +14,7 @@ build: script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation run_exports: - {{ pin_subpackage('handyreadgenotyper', max_pin="x.x") }} - number: 0 + number: 1 requirements: host: From 4132613df41186cda6c8d3b103038b7735233901 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 6 Jul 2024 19:24:00 -0400 Subject: [PATCH 0105/1589] Update skder to 1.2.2 (#48986) --- recipes/skder/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/skder/meta.yaml b/recipes/skder/meta.yaml index aafb34b595df6..b75f11cc4b5bc 100644 --- a/recipes/skder/meta.yaml +++ b/recipes/skder/meta.yaml @@ -1,5 +1,5 @@ {% set name = "skder" %} -{% set version = "1.2.1" %} +{% set version = "1.2.2" %} package: name: {{ name|lower }} @@ -7,10 +7,10 @@ package: source: url: https://github.com/raufs/skDER/archive/refs/tags/v{{ version }}.tar.gz - sha256: 5ccd4b33b94ad7a4c03baaeaaf2def51627161c006bd71a0e51b913a25d0d776 + sha256: 13b7c9f900843d0cf5b1f06a9e89ace19cc9ba9eb7e360c5d2cfff290932988f build: - number: 1 + number: 0 skip: True # [py <= 39] run_exports: - {{ pin_subpackage('skder', max_pin='x.x') }} From 69cf21aef7f2f8199be1dfc1ac1e58e786327bea Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 7 Jul 2024 01:09:17 -0400 Subject: [PATCH 0106/1589] Update icfree-ml to 2.3.2 (#48985) --- recipes/icfree-ml/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/icfree-ml/meta.yaml b/recipes/icfree-ml/meta.yaml index 3a9839d03b9ee..8afdf12e50e75 100644 --- a/recipes/icfree-ml/meta.yaml +++ b/recipes/icfree-ml/meta.yaml @@ -1,13 +1,13 @@ {% set name = "icfree-ml" %} -{% set version = "2.3.1" %} +{% set version = "2.3.2" %} package: name: {{ name|lower }} version: {{ version }} source: - url: https://github.com/brsynth/icfree-ml/archive/refs/tags/2.3.1.tar.gz - sha256: b3b9743cf54f8688d70189c28946254a0ea71d86ca5e3bfbf6ec32eff8572ab3 + url: https://github.com/brsynth/icfree-ml/archive/refs/tags/2.3.2.tar.gz + sha256: e57f358a372f5f8b5040dca9c500c25be1e1594a73557cc5ae97bf7784aba384 build: number: 0 From 45246bf6ce78db845fbaf94d9cd2918c754b920a Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Sun, 7 Jul 2024 07:12:36 +0200 Subject: [PATCH 0107/1589] Add publication identifiers to nextstrain recipes, aarch64 to nextclade2 (#48938) --- recipes/augur/meta.yaml | 4 +++- recipes/auspice/meta.yaml | 5 ++++- recipes/nextclade/meta.yaml | 4 +++- recipes/nextclade2/meta.yaml | 16 +++++++++++----- recipes/nextclade2/run_test.sh | 7 +++++++ recipes/nextstrain-cli/meta.yaml | 11 ++++++++--- recipes/nextstrain/meta.yaml | 9 ++++++--- recipes/treetime/meta.yaml | 4 +++- 8 files changed, 45 insertions(+), 15 deletions(-) diff --git a/recipes/augur/meta.yaml b/recipes/augur/meta.yaml index 0b33c3437e803..ffb57fe59c453 100644 --- a/recipes/augur/meta.yaml +++ b/recipes/augur/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 88ecf208384fff1ba8dee20596c2905a4d27707a39e1e9590d2fef717d29dd5f build: - number: 0 + number: 1 noarch: python entry_points: - augur = augur.__main__:main @@ -58,6 +58,8 @@ about: license_file: LICENSE.txt extra: + identifiers: + - doi:10.21105/joss.02906 recipe-maintainers: - huddlej - tsibley diff --git a/recipes/auspice/meta.yaml b/recipes/auspice/meta.yaml index 036ed1bc4e16c..f8698c51454a3 100644 --- a/recipes/auspice/meta.yaml +++ b/recipes/auspice/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 89c620bc790c5e3f28969a253f41e36bf35a13346cb8c6ab55868d9c6ee08714 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("auspice", max_pin="x.x") }} @@ -42,6 +42,9 @@ about: license_family: AGPL extra: + identifiers: + # Generic Nextstrain paper, for lack of specific Auspice one + - doi:10.1093/bioinformatics/bty407 additional-platforms: - linux-aarch64 recipe-maintainers: diff --git a/recipes/nextclade/meta.yaml b/recipes/nextclade/meta.yaml index 3be9be6471196..cf73fca924452 100644 --- a/recipes/nextclade/meta.yaml +++ b/recipes/nextclade/meta.yaml @@ -16,7 +16,7 @@ source: sha256: 579f499f7f0f5f2b9d520971ded4e265140859317f083ff8e2879ad74373ec33 # [osx and arm64] build: - number: 0 + number: 1 binary_relocation: False run_exports: - {{ pin_compatible(name, max_pin='x') }} @@ -37,6 +37,8 @@ about: dev_url: https://github.com/nextstrain/nextclade extra: + identifiers: + - doi:10.21105/joss.03773 additional-platforms: - linux-aarch64 recipe-maintainers: diff --git a/recipes/nextclade2/meta.yaml b/recipes/nextclade2/meta.yaml index 6c32c4579b5ae..6e2fb8e0e9bed 100644 --- a/recipes/nextclade2/meta.yaml +++ b/recipes/nextclade2/meta.yaml @@ -6,15 +6,17 @@ package: version: "{{ version }}" source: - - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/nextclade-x86_64-unknown-linux-gnu # [linux64] + - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/nextclade-x86_64-unknown-linux-gnu # [linux64] sha256: 1a9a82655830243ffd01937ebb895744ff46ec49f725ef6feff9a3f0e37d90d1 # [linux64] - - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/nextclade-x86_64-apple-darwin # [osx and x86_64] - sha256: 432f56d2152edda49b8c4a2c3f81d9a5da7419a6cc7c4a3d5205d17d5f834cf6 # [osx and x86_64] - - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/nextclade-aarch64-apple-darwin # [arm64] + - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/nextclade-x86_64-apple-darwin # [osx and x86_64] + sha256: a5ad4c2ca527929ab8c8b3b2521287488383f78fc1ee3030cbf5af23856b58b0 # [osx and x86_64] + - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/nextclade-aarch64-apple-darwin # [arm64] sha256: aaac669618d953381428eac3674fe6cb22bef66e7c1ae55552f6a1567f3d3030 # [arm64] + - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/nextclade-aarch64-unknown-linux-gnu # [aarch64] + sha256: e8bf11ba18c40aaad6b91b1a65bd49b304375f77b9273b1a17e75ba32cffbca8 # [aarch64] build: - number: 0 + number: 1 binary_relocation: False run_exports: - {{ pin_compatible(name, max_pin='x') }} @@ -34,6 +36,10 @@ about: dev_url: https://github.com/nextstrain/nextclade extra: + identifiers: + - doi:10.21105/joss.03773 + additional-platforms: + - linux-aarch64 recipe-maintainers: - corneliusroemer skip-lints: diff --git a/recipes/nextclade2/run_test.sh b/recipes/nextclade2/run_test.sh index 62e0808d80930..baa2c9a2feea6 100644 --- a/recipes/nextclade2/run_test.sh +++ b/recipes/nextclade2/run_test.sh @@ -3,6 +3,13 @@ set -x set -e +# Skip if aarch64 on linux +# Because Nextclade requires glibc >= 2.18 not available yet on aarch64 builder +if [[ $target_platform == linux-aarch64 ]]; then + echo "Skipping test on aarch64" + exit 0 +fi + nextclade2 --version nextclade2 dataset get --name 'sars-cov-2' --output-dir 'data/sars-cov-2' diff --git a/recipes/nextstrain-cli/meta.yaml b/recipes/nextstrain-cli/meta.yaml index 1cef58d2d3db1..09d58b61cae64 100644 --- a/recipes/nextstrain-cli/meta.yaml +++ b/recipes/nextstrain-cli/meta.yaml @@ -1,12 +1,12 @@ -{% set version = "8.2.0" %} +{% set version = "8.5.0" %} package: name: nextstrain-cli version: {{ version }} source: - url: https://pypi.io/packages/source/n/nextstrain-cli/nextstrain-cli-{{ version }}.tar.gz - sha256: 9b48dd8f32416d43b5f7db8a4a5ca045913a41a4967a5ae189240cbd67c285a2 + url: https://pypi.io/packages/source/n/nextstrain-cli/nextstrain_cli-{{ version }}.tar.gz + sha256: f5b41b5185560e77f35ce1498ed24dd5ce5561ebd7ca58f434935d8e79f22ac5 build: number: 0 @@ -71,3 +71,8 @@ extra: recipe-maintainers: - tsibley - corneliusroemer + - genehack + - victorlin + identifiers: + - doi:10.1093/bioinformatics/bty407 + diff --git a/recipes/nextstrain/meta.yaml b/recipes/nextstrain/meta.yaml index 10f48cf9b2b9f..87460a674b790 100644 --- a/recipes/nextstrain/meta.yaml +++ b/recipes/nextstrain/meta.yaml @@ -4,14 +4,14 @@ package: build: noarch: generic - number: 1 + number: 2 requirements: run: # Nextstrain components in Conda - augur - auspice - - nextalign + - nextclade - nextstrain-cli # Necessary for several of our core builds/tutorials @@ -23,7 +23,7 @@ test: commands: - augur --help - auspice --help - - nextalign --help + # - nextclade --help fails on aarch64 due to glibc being too low here - nextstrain --help about: @@ -45,3 +45,6 @@ extra: recipe-maintainers: - tsibley - huddlej + identifiers: + - doi:10.1093/bioinformatics/bty407 + diff --git a/recipes/treetime/meta.yaml b/recipes/treetime/meta.yaml index 55bc9b5fb05f4..ae44e4a810ad5 100644 --- a/recipes/treetime/meta.yaml +++ b/recipes/treetime/meta.yaml @@ -11,7 +11,7 @@ source: build: noarch: python - number: 0 + number: 1 script: {{ PYTHON }} -m pip install --no-deps --ignore-installed . -vvv entry_points: - treetime = treetime.__main__:main @@ -46,6 +46,8 @@ about: dev_url: https://github.com/neherlab/treetime extra: + identifiers: + - doi:10.1093/ve/vex042 recipe-maintainers: - corneliusroemer - rneher From ae08e247e1a99bddd60e66d6ac02005f6831cf63 Mon Sep 17 00:00:00 2001 From: Benjamin Linard <22132778+blinard-BIOINFO@users.noreply.github.com> Date: Sun, 7 Jul 2024 12:37:18 +0200 Subject: [PATCH 0108/1589] Update ipk to v0.5.1 (#47946) * add ipk * remove noarch * reset build version * fix url * change shasum * change compilation destination * replace boost by boost-cpp and pin the version * pin python >=3.8 * ipk recipe, first commit * Add recipe ipk (#45958) * Squash and merge * Revert "Add recipe ipk (#45958)" This reverts commit 859c9a1ca6a1898ff75b989641df3317216d4330. * transplant @blinard modifications related to IPK only from #45958 * make URL standard for bioconda autobump * modify shasum to default release * Use the specific release that include sources from git submodules that are not present by default * Use phyml instead of raxml-ng in tests, to avoid CPU oversubscription issues in CI docker. * Disables tests E and F until we find a fix to Azure test timout. * attempt to reuse raxml-ng with #threads patch * fix in test * osx compilation patch * removed last run test (>15 minutes on Azure) following bioconda's team demand * bumps to v0.5.1 * bumps to v0.5.1 * Update meta.yaml * removes osx patch, following new release * removes patch related to raxml-oversubscription during bioconda tests * removes patch related to binary expected directory * build script updated following bugfix * build in build * bugfix * Update recipes/ipk/build.sh Co-authored-by: Martin Grigorov * removes useless lines --------- Co-authored-by: Jacques Dainat Co-authored-by: Benjamin Linard Co-authored-by: Jacques Dainat Co-authored-by: B. Linard h Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Co-authored-by: Martin Grigorov --- ...to_expect_binaries_in_same_directory.patch | 20 ------------------- ..._1_to_avoid_raxmlng_oversubscription.patch | 13 ------------ ..._sstream_for_std-basic_istringstream.patch | 11 ---------- recipes/ipk/build.sh | 15 +++++++------- recipes/ipk/meta.yaml | 8 ++------ 5 files changed, 10 insertions(+), 57 deletions(-) delete mode 100644 recipes/ipk/0001_makes_python_wrapper_to_expect_binaries_in_same_directory.patch delete mode 100644 recipes/ipk/0002_default_threads_to_1_to_avoid_raxmlng_oversubscription.patch delete mode 100644 recipes/ipk/0003_osx_compilation_requires_sstream_for_std-basic_istringstream.patch diff --git a/recipes/ipk/0001_makes_python_wrapper_to_expect_binaries_in_same_directory.patch b/recipes/ipk/0001_makes_python_wrapper_to_expect_binaries_in_same_directory.patch deleted file mode 100644 index 09fbddb9e465f..0000000000000 --- a/recipes/ipk/0001_makes_python_wrapper_to_expect_binaries_in_same_directory.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/ipk.py b/ipk.py -index fb884f3..71bf356 100755 ---- a/ipk.py -+++ b/ipk.py -@@ -268,12 +268,12 @@ def build_database(ar, - if keep_positions: - raise RuntimeError("--keep-positions is not supported for DNA.") - else: -- bin = f"{current_dir}/bin/ipk/ipk-dna" -+ bin = f"{current_dir}/ipk-dna" - else: - if keep_positions: -- bin = f"{current_dir}/bin/ipk/ipk-aa-pos" -+ bin = f"{current_dir}/ipk-aa-pos" - else: -- bin = f"{current_dir}/bin/ipk/ipk-aa" -+ bin = f"{current_dir}/ipk-aa" - - - command = [ diff --git a/recipes/ipk/0002_default_threads_to_1_to_avoid_raxmlng_oversubscription.patch b/recipes/ipk/0002_default_threads_to_1_to_avoid_raxmlng_oversubscription.patch deleted file mode 100644 index a8ca9c821a683..0000000000000 --- a/recipes/ipk/0002_default_threads_to_1_to_avoid_raxmlng_oversubscription.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/ipk.py b/ipk.py -index fb884f3..1310237 100755 ---- a/ipk.py -+++ b/ipk.py -@@ -191,7 +191,7 @@ def validate_model(ctx, param, value): - Saves time during database load and save, but requires more disk space.""") - @click.option('--threads', - type=int, -- default=4, -+ default=1, - show_default=True, - help="Number of threads used to compute phylo-k-mers.") - def build(ar, diff --git a/recipes/ipk/0003_osx_compilation_requires_sstream_for_std-basic_istringstream.patch b/recipes/ipk/0003_osx_compilation_requires_sstream_for_std-basic_istringstream.patch deleted file mode 100644 index 3e26523c379f4..0000000000000 --- a/recipes/ipk/0003_osx_compilation_requires_sstream_for_std-basic_istringstream.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff --git a/ipk/src/ar.cpp b/ipk/src/ar.cpp -index 2ea4eed..cebe283 100644 ---- a/ipk/src/ar.cpp -+++ b/ipk/src/ar.cpp -@@ -1,5 +1,6 @@ - #include - #include -+#include - #include - #include - #include diff --git a/recipes/ipk/build.sh b/recipes/ipk/build.sh index 7bc80e3d09470..5886c722ba711 100644 --- a/recipes/ipk/build.sh +++ b/recipes/ipk/build.sh @@ -13,16 +13,17 @@ mkdir -p $PREFIX/bin mkdir -p $PREFIX/lib cmake -B build -DHASH_MAP=USE_TSL_ROBIN_MAP -DCMAKE_CXX_FLAGS="-O3" -DBUILD_SHARED_LIBS=ON --install-prefix=$PREFIX -cmake --build build --target all +cmake --build build --target all --target diff-dna --target diff-aa --target dump-dna --target dump-aa -j ${CPU_COUNT} cmake --install build -ls build/ipk - cp build/ipk/ipk-aa $PREFIX/bin cp build/ipk/ipk-aa-pos $PREFIX/bin cp build/ipk/ipk-dna $PREFIX/bin +cp build/tools/ipkdiff-dna $PREFIX/bin +cp build/tools/ipkdiff-aa $PREFIX/bin +cp build/tools/ipkdump-dna $PREFIX/bin +cp build/tools/ipkdump-aa $PREFIX/bin -chmod +x $PREFIX/bin/ipk-aa -chmod +x $PREFIX/bin/ipk-dna -chmod +x $PREFIX/bin/ipk-aa-pos -chmod +x $PREFIX/bin/ipk.py +cp build/i2l/libi2l_aa.a $PREFIX/lib +cp build/i2l/libi2l_aa_pos.a $PREFIX/lib +cp build/i2l/libi2l_dna.a $PREFIX/lib diff --git a/recipes/ipk/meta.yaml b/recipes/ipk/meta.yaml index a44263c3004b3..4820721d2a44e 100644 --- a/recipes/ipk/meta.yaml +++ b/recipes/ipk/meta.yaml @@ -1,6 +1,6 @@ {% set name = "IPK" %} -{% set version = "0.5.0" %} -{% set sha256 = "7d073583d0f9891a30ec6865fee33818b526086a1f0de04028409496b279004c" %} +{% set version = "0.5.1" %} +{% set sha256 = "22efbfe282a37d153b69f44f6a655f39727d6ae955690b60fe1c6c785bbc0535" %} package: name: {{ name|lower }} @@ -9,10 +9,6 @@ package: source: url: https://github.com/phylo42/{{ name|lower }}/releases/download/v{{ version }}/IPK-v{{ version }}_src_for_bioconda.tar.gz sha256: {{ sha256 }} - patches: - - 0001_makes_python_wrapper_to_expect_binaries_in_same_directory.patch - - 0002_default_threads_to_1_to_avoid_raxmlng_oversubscription.patch - - 0003_osx_compilation_requires_sstream_for_std-basic_istringstream.patch build: number: 0 From d57efefcb5141c27f1f2c21d766ae8e25af746b5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 7 Jul 2024 06:50:33 -0400 Subject: [PATCH 0109/1589] Update flumut to 0.6.2 (#48987) --- recipes/flumut/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/flumut/meta.yaml b/recipes/flumut/meta.yaml index e2447627c4345..5c56a5bdf3788 100644 --- a/recipes/flumut/meta.yaml +++ b/recipes/flumut/meta.yaml @@ -1,5 +1,5 @@ {% set name = "flumut" %} -{% set version = "0.6.1" %} +{% set version = "0.6.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/flumut-{{ version }}.tar.gz - sha256: 48604a3bb0a708f012ee749c3376ab3f7369fed56f9025a8a4677b27d228b34f + sha256: cf7ea2cf97b449defc7bcd6c209af79874830fec3b6a5f63811f57fe9d3a5624 build: run_exports: From 09e3234ad47307385d464003f447e11c84bbfc93 Mon Sep 17 00:00:00 2001 From: Edmund Miller <20095261+edmundmiller@users.noreply.github.com> Date: Sun, 7 Jul 2024 23:16:39 -0500 Subject: [PATCH 0110/1589] Update NARFMAP to 1.4.2 (#48978) * Update NARFMAP to 1.4.1 * Update NARFMAP to 1.4.2 * chore: Remove build-failure * chore: Update homepage --- recipes/narfmap/build_failure.linux-64.yaml | 104 -------------------- recipes/narfmap/meta.yaml | 8 +- 2 files changed, 4 insertions(+), 108 deletions(-) delete mode 100644 recipes/narfmap/build_failure.linux-64.yaml diff --git a/recipes/narfmap/build_failure.linux-64.yaml b/recipes/narfmap/build_failure.linux-64.yaml deleted file mode 100644 index 9f9e250ad5fad..0000000000000 --- a/recipes/narfmap/build_failure.linux-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 209cdb29657554e651ee0ae81e54e3769518a8034f693f2907959e386db48168 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |- - Success - Extracting download - source tree in: /opt/conda/conda-bld/narfmap_1717537454419/work - export PREFIX=/opt/conda/conda-bld/narfmap_1717537454419/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place - export BUILD_PREFIX=/opt/conda/conda-bld/narfmap_1717537454419/_build_env - export SRC_DIR=/opt/conda/conda-bld/narfmap_1717537454419/work - INFO: activate-binutils_linux-64.sh made the following environmental changes: - ADDR2LINE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-addr2line - AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar - AS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-as - CXXFILT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cfilt - ELFEDIT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-elfedit - GPROF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gprof - LD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld - LD_GOLD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld.gold - NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-nm - OBJCOPY=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objcopy - OBJDUMP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objdump - RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib - READELF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-readelf - SIZE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-size - STRINGS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strings - STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip - INFO: activate-gcc_linux-64.sh made the following environmental changes: - BUILD=x86_64-conda-linux-gnu - CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc - CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc - CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/narfmap-1.4.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin - CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr - CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot - CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu - CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu - CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp - CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include - DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/narfmap-1.4.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include - GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc - GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar - GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm - GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib - HOST=x86_64-conda-linux-gnu - LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib - MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu - build_alias=x86_64-conda-linux-gnu - host_alias=x86_64-conda-linux-gnu - -BUILD=x86_64-conda_cos6-linux-gnu - -CONDA_BUILD_SYSROOT= - INFO: activate-gxx_linux-64.sh made the following environmental changes: - CXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c - CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/narfmap-1.4.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c - DEBUG_CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/narfmap-1.4.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - GXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-g - making $SRC_DIR/build/release/compare.o - making $SRC_DIR/build/release/workflow/DualFastq2SamWorkflow.o - making $SRC_DIR/build/release/workflow/GenHashTableWorkflow.o - making $SRC_DIR/build/release/workflow/Input2SamWorkflow.o - making $SRC_DIR/build/release/libdragmap-workflow.a - making $SRC_DIR/build/release/align/Aligner.o - making $SRC_DIR/build/release/align/AlignmentGenerator.o - making $SRC_DIR/build/release/align/AlignmentRescue.o - making $SRC_DIR/build/release/align/Alignments.o - making $SRC_DIR/build/release/align/CalculateRefStartEnd.o - making $SRC_DIR/build/release/align/Cigar.o - making $SRC_DIR/build/release/align/InsertSizeDistribution.o - making $SRC_DIR/build/release/align/PairBuilder.o - making $SRC_DIR/build/release/align/Pairs.o - making $SRC_DIR/build/release/align/SinglePicker.o - making $SRC_DIR/build/release/align/SmithWaterman.o - making $SRC_DIR/build/release/align/Tlen.o - making $SRC_DIR/build/release/align/VectorSmithWaterman.o - making $SRC_DIR/build/release/align/Wavefront.o - making $SRC_DIR/build/release/libdragmap-align.a - making $SRC_DIR/build/release/map/BestIntervalTracker.o - making $SRC_DIR/build/release/map/ChainBuilder.o - making $SRC_DIR/build/release/map/Mapper.o - /opt/conda/conda-bld/narfmap_1717537454419/work/src/lib/map/Mapper.cpp: In member function 'void dragenos::map::Mapper::addToPositionChains(const Seed&, dragenos::map::ChainBuilder&, std::vector&, uint32_t&, uint32_t&) const': - /opt/conda/conda-bld/narfmap_1717537454419/work/src/lib/map/Mapper.cpp:338:38: error: 'make_iterator_range' is not a member of 'boost'; did you mean 'iterator_range'? - 338 | for (const auto& record : boost::make_iterator_range(hashRecords_.rbegin(), hashRecords_.rend())) { - | ^~~~~~~~~~~~~~~~~~~ - | iterator_range - make: *** [/opt/conda/conda-bld/narfmap_1717537454419/work/make/lib.mk:110: /opt/conda/conda-bld/narfmap_1717537454419/work/build/release/map/Mapper.o] Error 1 - Traceback (most recent call last): - File "/opt/conda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - utils.check_call_env( - File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/narfmap_1717537454419/work/conda_build.sh']' returned non-zero exit status 2. -# Last 100 lines of the build log. diff --git a/recipes/narfmap/meta.yaml b/recipes/narfmap/meta.yaml index fc575ed7b58b2..71cd11b7b0534 100644 --- a/recipes/narfmap/meta.yaml +++ b/recipes/narfmap/meta.yaml @@ -1,6 +1,6 @@ {% set name = "narfmap" %} -{% set version = "1.4.0" %} -{% set sha256 = "86dc55dcad1fd83b6d486ec18aa5e212412e65546ce8c9e59134c827128aff71" %} +{% set version = "1.4.2" %} +{% set sha256 = "ffb2d92c9a953c28ebd433cec055a8368453077e99457c978f05d2ac5b36a9d6" %} package: name: {{ name }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 skip: True # [osx] run_exports: - {{ pin_subpackage("narfmap", max_pin="x") }} @@ -35,7 +35,7 @@ test: - dragen-os -h about: - home: https://github.com/Emiller88/NARFMAP + home: https://github.com/bioinformaticsorphanage/NARFMAP license: GPL-3 licence_file: COPYRIGHT summary: "NARFMAP is a fork of the Dragen mapper/aligner Open Source Software." From 5997866c720a4e8d1ebf0866dbf764ff7048555d Mon Sep 17 00:00:00 2001 From: Akihiro Kuno Date: Mon, 8 Jul 2024 18:35:16 +0900 Subject: [PATCH 0111/1589] Update DAJIN2 (#48989) --- recipes/dajin2/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/dajin2/meta.yaml b/recipes/dajin2/meta.yaml index 455a10d127bb8..9dc6207716c85 100644 --- a/recipes/dajin2/meta.yaml +++ b/recipes/dajin2/meta.yaml @@ -1,5 +1,5 @@ {% set name = "DAJIN2" %} -{% set version = "0.5.1" %} +{% set version = "0.5.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/dajin2-{{ version }}.tar.gz - sha256: d74e22739f655396b19c532e5d77d403e8690838898f0f0bd4fbd53730f58226 + sha256: aab7698d00d514664cd626a5173cef29a59b2de8d38c9771088906a7cf5a66da build: entry_points: @@ -20,11 +20,11 @@ build: requirements: host: - - python >=3.8,<3.11 + - python >=3.8,<4.0 - poetry-core >=1.0.0 - pip run: - - python >=3.8,<3.11 + - python >=3.8.0,<4.0.0 - numpy >=1.24.0 - scipy >=1.10.0 - pandas >=1.0.0 From 2d80fb3b7a23060df6f14e06d78537ec778518b5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 8 Jul 2024 05:38:16 -0400 Subject: [PATCH 0112/1589] Update pybiolib to 1.1.2229 (#48990) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index e54473db9776a..29d676aa3744e 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.1.2226" %} +{% set version = "1.1.2229" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: 276b1fdbce5ea38b3fc9aa8a015b816923b1ad3c1a74780a9afb98078b2e7239 + sha256: 8a3aa7329e7fd8fcef92d63a41af96785e160557228648a2b5cdf0d28114a204 build: noarch: python From 63798fe724eeb3a86d47ea093985814cc26b8184 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 8 Jul 2024 07:52:54 -0400 Subject: [PATCH 0113/1589] Update kegg-pathways-completeness to 1.0.5 (#48995) --- recipes/kegg-pathways-completeness/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/kegg-pathways-completeness/meta.yaml b/recipes/kegg-pathways-completeness/meta.yaml index 6e24a0a0c3ed1..c530adfc6bd9d 100644 --- a/recipes/kegg-pathways-completeness/meta.yaml +++ b/recipes/kegg-pathways-completeness/meta.yaml @@ -1,5 +1,5 @@ {% set name = "kegg-pathways-completeness" %} -{% set version = "1.0.4" %} +{% set version = "1.0.5" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/kegg_pathways_completeness-{{ version }}.tar.gz - sha256: 4772c0d2cc8364e7b26483a889531f18b43ab37ed38d722b260a2ee13c2232e5 + sha256: b7ec0b1ceabd168296a18ab1184a26e40cfa4fdcaf156cd1d75b0e12c51f8aaa build: entry_points: From a2fe739a60566c51829fc6386e17cc677c544c3c Mon Sep 17 00:00:00 2001 From: Guy Assa <78320514+theAguy@users.noreply.github.com> Date: Mon, 8 Jul 2024 14:53:46 +0300 Subject: [PATCH 0114/1589] v2.1.2 (#48993) newer pandas package version --- recipes/crispector2/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/crispector2/meta.yaml b/recipes/crispector2/meta.yaml index 341087d2dc5fa..e159b8c39c584 100644 --- a/recipes/crispector2/meta.yaml +++ b/recipes/crispector2/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.1.1" %} +{% set version = "2.1.2" %} package: name: crispector2 @@ -15,7 +15,7 @@ build: source: url: https://github.com/theAguy/crispector2/archive/refs/tags/v{{ version }}.tar.gz - sha256: 6a741b8434056e1f0ed8cb1412448ea66507f7f6f425a53e2c4de4d424e47dab + sha256: 1c624fda975f293b5acab8b2c6afe98cacaaa77a79dc54c923b18c08fa1942cc requirements: host: @@ -33,7 +33,7 @@ requirements: - numpy >=1.12.1 - seaborn >=0.9.0 - plotly >=4.3.0 - - pandas ==1.3.5 + - pandas >=0.24.2 - statsmodels - jinja2 - tqdm >=4.66.0 From dd5688eeed4d212f69d919ddee980ee8bd4cde52 Mon Sep 17 00:00:00 2001 From: Hamdiye Uzuner Date: Mon, 8 Jul 2024 14:18:07 +0200 Subject: [PATCH 0115/1589] Update orthanq (#48832) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update dependencies * increment build number in meta.yaml * add whitespaces before tool versions in meta.yaml * Update meta.yaml --------- Co-authored-by: Felix Mölder --- recipes/orthanq/meta.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/recipes/orthanq/meta.yaml b/recipes/orthanq/meta.yaml index 772e7ac067d13..383c8ddc45954 100644 --- a/recipes/orthanq/meta.yaml +++ b/recipes/orthanq/meta.yaml @@ -5,7 +5,8 @@ package: version: {{ version }} build: - number: 0 + number: 1 + skip: True # [osx] run_exports: - {{ pin_subpackage("orthanq", max_pin="x") }} @@ -34,6 +35,10 @@ requirements: - coincbc - hdf5 =1.10.5 - fontconfig + - htslib + - varlociraptor =8.4.7 + - samtools =1.19 + - vg =1.56 run: - gsl - libcblas From 55dc72510671fc61a411ef6ed5ce76f12c67559e Mon Sep 17 00:00:00 2001 From: Edmund Miller <20095261+edmundmiller@users.noreply.github.com> Date: Mon, 8 Jul 2024 10:17:56 -0500 Subject: [PATCH 0116/1589] chore: Emiller88 => bioinformaticsorphanange (#49004) --- recipes/narfmap/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/narfmap/meta.yaml b/recipes/narfmap/meta.yaml index 71cd11b7b0534..633f583be5646 100644 --- a/recipes/narfmap/meta.yaml +++ b/recipes/narfmap/meta.yaml @@ -7,11 +7,11 @@ package: version: {{ version }} source: - url: https://github.com/Emiller88/NARFMAP/archive/refs/tags/{{ version }}.tar.gz + url: https://github.com/bioinformaticsorphanage/NARFMAP/archive/refs/tags/{{ version }}.tar.gz sha256: {{ sha256 }} build: - number: 0 + number: 1 skip: True # [osx] run_exports: - {{ pin_subpackage("narfmap", max_pin="x") }} From 336be882c4766ffa36a553a97fa7c53d28347085 Mon Sep 17 00:00:00 2001 From: Luis M Rodriguez-R Date: Mon, 8 Jul 2024 17:31:56 +0200 Subject: [PATCH 0117/1589] Nonpareil 3.5.4 (#49008) --- recipes/nonpareil/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/nonpareil/meta.yaml b/recipes/nonpareil/meta.yaml index 1d4d4f046d7fa..553c4d5f0a67e 100644 --- a/recipes/nonpareil/meta.yaml +++ b/recipes/nonpareil/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "3.5.3" %} -{% set sha256 = "0b38cfd16931b6005992d3c902aaa91943fbf67f67a64c5c0b9ed6a419e7ec90" %} +{% set version = "3.5.4" %} +{% set sha256 = "41ea9c1378e85787142b29c7cdf8d352073764a620f818333492266e6bbec1cd" %} package: name: nonpareil From 2c3294645ca9342ee79463443eb7d702a7fe15c6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 8 Jul 2024 11:47:42 -0400 Subject: [PATCH 0118/1589] Update nonpareil to 3.5.4 (#49011) From a8eb70a83f09aed94f36c3c32836b11596610733 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 8 Jul 2024 11:48:45 -0400 Subject: [PATCH 0119/1589] Update dxpy to 0.379.0 (#49010) --- recipes/dxpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/dxpy/meta.yaml b/recipes/dxpy/meta.yaml index cc419f0ad4aad..51818f8006263 100644 --- a/recipes/dxpy/meta.yaml +++ b/recipes/dxpy/meta.yaml @@ -1,5 +1,5 @@ {% set name = "dxpy" %} -{% set version = "0.378.0" %} +{% set version = "0.379.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: fe82611e622f8a5016cee3821f337a0e20808c4a9d70da93dc900574fee2897e + sha256: 09cf1e418be0fc91dd23ee916e83eacd1f5f3baa8972484f713e1cd4ed081ff1 build: number: 0 From 0a3798758c7f47330584742fc45be296e7e50229 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 8 Jul 2024 11:49:11 -0400 Subject: [PATCH 0120/1589] Update sniffles to 2.4 (#49009) --- recipes/sniffles/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sniffles/meta.yaml b/recipes/sniffles/meta.yaml index 59a64c05b52ab..445120497e1c0 100644 --- a/recipes/sniffles/meta.yaml +++ b/recipes/sniffles/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "2.3.3" %} -{% set sha256 = "b9218d37944a1d8b5b234c994d0303c42b04dc40e65bec33ba48601495ff891a" %} +{% set version = "2.4" %} +{% set sha256 = "e3c2f552105cd5f5941d6291b9ee9dbfe634ad19b5e7a64fa26b9e2daa6547d4" %} package: name: sniffles From 684188a3fda115907aaded0f369534149ff80b47 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 8 Jul 2024 11:51:37 -0400 Subject: [PATCH 0121/1589] Update harpy to 1.2.1 (#49005) --- recipes/harpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index 5b0fdf27c89b5..09bfca5bdf8f1 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.2.0" %} -{% set sha256 = "01675fc5fee40e3fd43aafd54725cf84009d73cc2f630289a7c23ed46530bc9a" %} +{% set version = "1.2.1" %} +{% set sha256 = "d028c751815cdba8cbbef81e14241314f5937831c079eb0164ee338e56a982a0" %} package: name: harpy From 2c145a9133bc998baeb00b7ce1af337dfbfa25ca Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 8 Jul 2024 11:52:07 -0400 Subject: [PATCH 0122/1589] Update orthanq to 1.6.0 (#49002) --- recipes/orthanq/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/orthanq/meta.yaml b/recipes/orthanq/meta.yaml index 383c8ddc45954..4a92e28023818 100644 --- a/recipes/orthanq/meta.yaml +++ b/recipes/orthanq/meta.yaml @@ -1,18 +1,18 @@ -{% set version = "1.5.0" %} +{% set version = "1.6.0" %} package: name: orthanq version: {{ version }} build: - number: 1 + number: 0 skip: True # [osx] run_exports: - {{ pin_subpackage("orthanq", max_pin="x") }} source: url: https://github.com/orthanq/orthanq/archive/v{{ version }}.tar.gz - sha256: 90c2cb4f90fe701fa6bc3d26a7655f49a7bfa0dd16efea069d7f7bbe7ce0cd68 + sha256: 70b64aa96ec43e160de8c32b379288c15ccbe201447a524c22583ef62cf4d518 requirements: build: From dfc4f9732eaad842ade755e8b7e7746b31cff340 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 8 Jul 2024 13:35:17 -0400 Subject: [PATCH 0123/1589] Update fq to 0.12.0 (#49015) --- recipes/fq/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/fq/meta.yaml b/recipes/fq/meta.yaml index 473e91edef61f..4c6f5e690814b 100644 --- a/recipes/fq/meta.yaml +++ b/recipes/fq/meta.yaml @@ -1,6 +1,6 @@ {% set name = "fq" %} -{% set version = "0.11.0" %} -{% set sha256 = "9bd87c66f230ad8bdd29d1220d0a7079d4d2c53df6c2ad33f4e5d845ece63c78" %} +{% set version = "0.12.0" %} +{% set sha256 = "d17ef77d2f57ace316a7b35d910c5cd73be2a0d70ec7fcd31f2d0e3afbe1273c" %} package: name: {{ name|lower }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('fq', max_pin="x") }} From 5da26f83276bb04f587473d4dbcce9ca69da613a Mon Sep 17 00:00:00 2001 From: Daniel DW Kim <49298377+endixk@users.noreply.github.com> Date: Mon, 8 Jul 2024 15:09:35 -0600 Subject: [PATCH 0124/1589] update ufcg to 1.0.6 (#49014) --- recipes/ufcg/meta.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/ufcg/meta.yaml b/recipes/ufcg/meta.yaml index 3a687eaf90ffe..55819a6636192 100644 --- a/recipes/ufcg/meta.yaml +++ b/recipes/ufcg/meta.yaml @@ -1,6 +1,6 @@ {% set name = "ufcg" %} -{% set version = "1.0.5" %} -{% set sha256 = "819176e4097c8654e70e1ae49f731aa26f450282f8642783005009b526ce22c3" %} +{% set version = "1.0.6" %} +{% set sha256 = "5b4f171f066eb30a546713e68e67b0dd229314a1941a5796bebd41e028239092" %} package: name: {{ name|lower }} @@ -11,6 +11,8 @@ source: sha256: {{ sha256 }} build: + run_exports: + - {{ pin_subpackage('ufcg', max_pin="x") }} noarch: generic number: 0 From e8df2c13d71016060d0830bef7a8385d9d8839af Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 8 Jul 2024 17:10:42 -0400 Subject: [PATCH 0125/1589] Update trust4 to 1.1.2 (#49016) --- recipes/trust4/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/trust4/meta.yaml b/recipes/trust4/meta.yaml index 97f07b02111e8..b80e36056574d 100644 --- a/recipes/trust4/meta.yaml +++ b/recipes/trust4/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.1.1" %} +{% set version = "1.1.2" %} package: name: trust4 @@ -11,7 +11,7 @@ build: source: url: https://github.com/liulab-dfci/TRUST4/archive/v{{ version }}.tar.gz - sha256: 65ea98d468a2921c1591120041c3ca1caac76c37bd804b0d4b64b11c73a382ed + sha256: 9321775c9636e31e4448952a9338c78736b652d46f219c0aef28386a0ca3d5a0 requirements: build: From 055e4399ef6bd571f0fe6e8f37eb0e982c8cf9ad Mon Sep 17 00:00:00 2001 From: Rob Patro Date: Mon, 8 Jul 2024 21:50:11 -0400 Subject: [PATCH 0126/1589] bump piscem to v0.10.0 (#49020) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update meta.yaml Move from vcs to `source_recursive` for build. * Update meta.yaml --------- Co-authored-by: Björn Grüning --- recipes/piscem/meta.yaml | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/recipes/piscem/meta.yaml b/recipes/piscem/meta.yaml index c4a69cd798f80..fd6566d3b29ab 100644 --- a/recipes/piscem/meta.yaml +++ b/recipes/piscem/meta.yaml @@ -1,22 +1,17 @@ -{% set version = "0.9.0" %} -{% set git_commit = "904675fe0dd73335121a588ab883cc19708368e9" %} -{% set sha256 = "ebc61e115e883201c0a64918fe6d20b681090102a1d2ea4fd321fa94e673670d" %} +{% set version = "0.10.0" %} package: name: piscem version: {{ version }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage("piscem", max_pin="x.x") }} source: - git_url: https://github.com/COMBINE-lab/piscem - git_rev: "{{ git_commit }}" - sha256: {{ sha256 }} - patches: - - build_rs.patch + url: https://github.com/COMBINE-lab/piscem/releases/download/v{{ version }}/source_recursive.tar.gz + sha256: c2bad3704086e6f7d1930fe5ac38c1d724a50aa88dc19b82445cc23e3b7a207c requirements: build: @@ -49,5 +44,3 @@ about: extra: additional-platforms: - linux-aarch64 - skip-lints: - - uses_vcs_url From 93388f21ab210aaf64f12f2baa801702c6fc1070 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 00:04:57 -0400 Subject: [PATCH 0127/1589] Update simpleaf to 0.17.1 (#49024) --- recipes/simpleaf/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/simpleaf/meta.yaml b/recipes/simpleaf/meta.yaml index be28ce13f2e79..527f757ef3a3a 100644 --- a/recipes/simpleaf/meta.yaml +++ b/recipes/simpleaf/meta.yaml @@ -1,17 +1,17 @@ -{% set version = "0.17.0" %} +{% set version = "0.17.1" %} package: name: simpleaf version: {{ version }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage("simpleaf", max_pin="x.x") }} source: url: https://github.com/COMBINE-lab/simpleaf/archive/v{{ version }}.tar.gz - sha256: 584fec26f3841e53793dc5de1abb5a4b19373d744f7c205c85ae8abac3c77f2a + sha256: f7e2a3a187918b7d8c67b77ddd4cd2591cde4acb0ce5d27a5529de500a6ed396 requirements: build: From d55a748c993359dae2ef471063a993d9f092bffe Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 00:17:08 -0400 Subject: [PATCH 0128/1589] Update zol to 1.4.9 (#49023) --- recipes/zol/build_failure.linux-64.yaml | 104 ------------------------ recipes/zol/build_failure.osx-64.yaml | 104 ------------------------ recipes/zol/meta.yaml | 6 +- 3 files changed, 3 insertions(+), 211 deletions(-) delete mode 100644 recipes/zol/build_failure.linux-64.yaml delete mode 100644 recipes/zol/build_failure.osx-64.yaml diff --git a/recipes/zol/build_failure.linux-64.yaml b/recipes/zol/build_failure.linux-64.yaml deleted file mode 100644 index e41e8093e2c86..0000000000000 --- a/recipes/zol/build_failure.linux-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 73d1967c85e3d7352bc7911468e2d69a9404a57ea581d74ba1acf86db3c0be9f # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - [31mpython_abi 3.12.* *_cp312[0m is not installable because it conflicts with any installable versions previously reported. - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/conda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build - create_build_envs(top_level_pkg, notest) - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs - raise e - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs - environ.get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions - precs = _install_actions(prefix, index, specs)["LINK"] - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions - txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction - unlink_precs, link_precs = self.solve_for_diff( - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff - final_precs = self.solve_final_state( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state - out_state = self._solving_loop(in_state, out_state, index) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop - solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt - new_conflicts = self._maybe_raise_for_problems( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("biopython==1.79=py310h6acc77f_1"), MatchSpec("python_abi=3.10[build=*_cp310]"), MatchSpec("pomegranate==0.13.3=py310h91b1402_3")} - Encountered problems while solving: - - package pomegranate-0.13.3-py310h91b1402_3 requires python_abi 3.10.* *_cp310, but none of the providers can be installed - - package biopython-1.79-py310h6acc77f_1 requires python_abi 3.10.* *_cp310, but none of the providers can be installed - - Could not solve for environment specs - The following packages are incompatible - [32mbiopython 1.79.* [0m is installable with the potential options - [32mbiopython 1.79[0m would require - [32mpython_abi 3.10.* *_cp310[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.11.* *_cp311[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.6 *_pypy36_pp73[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.7 *_pypy37_pp73[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.8.* *_cp38[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.9.* *_cp39[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed; - [32mpandas >=2.0 [0m is installable with the potential options - [32mpandas [2.0.0|2.0.1|...|2.2.2][0m would require - [32mpython_abi 3.10.* *_cp310[0m, which can be installed; - [32mpandas [2.0.0|2.0.1|...|2.2.2][0m would require - [32mpython_abi 3.11.* *_cp311[0m, which can be installed; - [32mpandas [2.0.0|2.0.1|2.0.2|2.0.3][0m would require - [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; - [32mpandas [2.0.0|2.0.1|2.0.2|2.0.3][0m would require - [32mpython_abi 3.8.* *_cp38[0m, which can be installed; - [32mpandas [2.0.0|2.0.1|...|2.2.2][0m would require - [32mpython_abi 3.9.* *_cp39[0m, which can be installed; - [32mpandas [2.0.0|2.0.1|...|2.2.2][0m would require - [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed; - [31mpandas [2.1.1|2.1.2|...|2.2.2][0m would require - [31mpython_abi 3.12.* *_cp312[0m, which conflicts with any installable versions previously reported; - [32mpomegranate >0.13,<=0.14.8 [0m is installable with the potential options - [32mpomegranate [0.13.3|0.14.8][0m would require - [32mpython_abi 3.10.* *_cp310[0m, which can be installed; - [32mpomegranate 0.13.3[0m would require - [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; - [32mpomegranate [0.13.3|0.14.8][0m would require - [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; - [32mpomegranate [0.13.3|0.14.8][0m would require - [32mpython_abi 3.8.* *_cp38[0m, which can be installed; - [32mpomegranate [0.13.3|0.14.8][0m would require - [32mpython_abi 3.9.* *_cp39[0m, which can be installed; - [31mpython >=3.12,<3.13.0a0 [0m is not installable because it requires - [31mpython_abi 3.12.* *_cp312[0m, which conflicts with any installable versions previously reported; - [31mpython_abi 3.12.* *_cp312[0m is not installable because it conflicts with any installable versions previously reported. -# Last 100 lines of the build log. diff --git a/recipes/zol/build_failure.osx-64.yaml b/recipes/zol/build_failure.osx-64.yaml deleted file mode 100644 index 6c896971a0cd6..0000000000000 --- a/recipes/zol/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 73d1967c85e3d7352bc7911468e2d69a9404a57ea581d74ba1acf86db3c0be9f # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("python=3.10"), MatchSpec("python_abi=3.10[build=*_cp310]"), MatchSpec("codoff==1.0.0=pyh7cba7a3_0"), MatchSpec("pomegranate==0.13.3=py310h2fea185_3")} - Encountered problems while solving: - - package pomegranate-0.13.3-py310h2fea185_3 requires python_abi 3.10.* *_cp310, but none of the providers can be installed - - package codoff-1.0.0-pyh7cba7a3_0 requires python 3.10.*, but none of the providers can be installed - - Could not solve for environment specs - The following packages are incompatible - codoff is installable with the potential options - codoff 1.0.0 would require - python_abi 3.10.* *_cp310, which can be installed; - codoff [1.0.0|1.1.0] would require - python 3.10.* , which requires - python_abi 3.10.* *_cp310, which can be installed; - pomegranate >0.13,<=0.14.8 is installable with the potential options - pomegranate [0.13.3|0.14.8] would require - python_abi 3.10.* *_cp310, which can be installed; - pomegranate 0.13.3 would require - python_abi 3.6.* *_cp36m, which can be installed; - pomegranate [0.13.3|0.14.8] would require - python_abi 3.7.* *_cp37m, which can be installed; - pomegranate [0.13.3|0.14.8] would require - python_abi 3.8.* *_cp38, which can be installed; - pomegranate [0.13.3|0.14.8] would require - python_abi 3.9.* *_cp39, which can be installed; - python >=3.11,<3.12.0a0 is not installable because it requires - python_abi 3.11.* *_cp311, which conflicts with any installable versions previously reported; - python_abi 3.11.* *_cp311 is not installable because it conflicts with any installable versions previously reported. - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build - create_build_envs(top_level_pkg, notest) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs - raise e - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs - environ.get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions - precs = _install_actions(prefix, index, specs)["LINK"] - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions - txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction - unlink_precs, link_precs = self.solve_for_diff( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff - final_precs = self.solve_final_state( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state - out_state = self._solving_loop(in_state, out_state, index) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop - solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt - new_conflicts = self._maybe_raise_for_problems( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("python=3.10"), MatchSpec("python_abi=3.10[build=*_cp310]"), MatchSpec("codoff==1.0.0=pyh7cba7a3_0"), MatchSpec("pomegranate==0.13.3=py310h2fea185_3")} - Encountered problems while solving: - - package pomegranate-0.13.3-py310h2fea185_3 requires python_abi 3.10.* *_cp310, but none of the providers can be installed - - package codoff-1.0.0-pyh7cba7a3_0 requires python 3.10.*, but none of the providers can be installed - - Could not solve for environment specs - The following packages are incompatible - codoff is installable with the potential options - codoff 1.0.0 would require - python_abi 3.10.* *_cp310, which can be installed; - codoff [1.0.0|1.1.0] would require - python 3.10.* , which requires - python_abi 3.10.* *_cp310, which can be installed; - pomegranate >0.13,<=0.14.8 is installable with the potential options - pomegranate [0.13.3|0.14.8] would require - python_abi 3.10.* *_cp310, which can be installed; - pomegranate 0.13.3 would require - python_abi 3.6.* *_cp36m, which can be installed; - pomegranate [0.13.3|0.14.8] would require - python_abi 3.7.* *_cp37m, which can be installed; - pomegranate [0.13.3|0.14.8] would require - python_abi 3.8.* *_cp38, which can be installed; - pomegranate [0.13.3|0.14.8] would require - python_abi 3.9.* *_cp39, which can be installed; - python >=3.11,<3.12.0a0 is not installable because it requires - python_abi 3.11.* *_cp311, which conflicts with any installable versions previously reported; - python_abi 3.11.* *_cp311 is not installable because it conflicts with any installable versions previously reported. -# Last 100 lines of the build log. diff --git a/recipes/zol/meta.yaml b/recipes/zol/meta.yaml index 7bd43afd0cba9..09a59909ca95f 100644 --- a/recipes/zol/meta.yaml +++ b/recipes/zol/meta.yaml @@ -1,5 +1,5 @@ {% set name = "zol" %} -{% set version = "1.4.8" %} +{% set version = "1.4.9" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Kalan-Lab/zol/archive/refs/tags/v{{ version }}.tar.gz - sha256: 9991713dd8f05638f0f50362be4b79fd8411fa62a037475768d0737927a257b3 + sha256: b4a6a2f62bf9763de6b78ab0832a692696ac8250161998adc50677d829df1a7b build: number: 0 @@ -24,7 +24,7 @@ requirements: - pip - axel run: - - python =3.12 + - python >=3.10 - r-base - biopython - muscle From 614e85c141ea15606b958bfe74c3d73540a6c486 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 02:52:12 -0400 Subject: [PATCH 0129/1589] Update fwdpy11 to 0.23.0 (#49019) --- recipes/fwdpy11/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/fwdpy11/meta.yaml b/recipes/fwdpy11/meta.yaml index a68b9132ad4b0..8100a53c23f66 100644 --- a/recipes/fwdpy11/meta.yaml +++ b/recipes/fwdpy11/meta.yaml @@ -1,5 +1,5 @@ {% set name = "fwdpy11" %} -{% set version = "0.22.2" %} +{% set version = "0.23.0" %} package: name: {{ name|lower }} @@ -7,11 +7,11 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/fwdpy11-{{ version }}.tar.gz - sha256: 4bdd42d749d3c4e12f728c16d6db8c97bb5d03fff7362fe98b3c8cdfa759841d + sha256: 2ba384af7fcf71ebd8ff348be0234d6ac37066f29aae5a85e5a4af8967b5d14d build: skip: True # [py < 38 or py > 312] - number: 1 + number: 0 script_env: - SETUPTOOLS_SCM_PRETEND_VERSION={{ version }} entry_points: From 03c51886a5553282a77fb4698d6ccb51824ee246 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 02:53:09 -0400 Subject: [PATCH 0130/1589] Update arvados-python-client to 2.7.4 (#49022) --- recipes/arvados-python-client/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/arvados-python-client/meta.yaml b/recipes/arvados-python-client/meta.yaml index d651b2f31f9ae..c3bd699301f87 100644 --- a/recipes/arvados-python-client/meta.yaml +++ b/recipes/arvados-python-client/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.7.3" %} +{% set version = "2.7.4" %} package: name: arvados-python-client @@ -6,7 +6,7 @@ package: source: url: https://pypi.io/packages/source/a/arvados-python-client/arvados-python-client-{{ version }}.tar.gz - sha256: 9ef9050ce680832bff76f8d283e3b445252f21ee927b2b63949271fe9b2a4bc2 + sha256: 932398da39daba88041f1084d19019e7300cac462ef93f181f40aa85562ff275 build: noarch: python From 10c42c720142cd1466c2959cc03e3ff56c9a4af7 Mon Sep 17 00:00:00 2001 From: Jack Huey <31162821+jackh726@users.noreply.github.com> Date: Tue, 9 Jul 2024 02:58:39 -0400 Subject: [PATCH 0131/1589] Bump pybigtools to 0.2.0 (#49017) * Bump pybigtools to 0.2.0 and attempt to fix CI by specifying macos target * Try to fix otool SIGABT --- recipes/pybigtools/build.sh | 15 +++ recipes/pybigtools/build_failure.osx-64.yaml | 104 ------------------- recipes/pybigtools/meta.yaml | 6 +- 3 files changed, 18 insertions(+), 107 deletions(-) delete mode 100644 recipes/pybigtools/build_failure.osx-64.yaml diff --git a/recipes/pybigtools/build.sh b/recipes/pybigtools/build.sh index cefe90b6b78af..9f7a317e6924c 100644 --- a/recipes/pybigtools/build.sh +++ b/recipes/pybigtools/build.sh @@ -8,6 +8,21 @@ set -ex # We set CARGO_HOME because we don't pass on HOME to conda-build, thus rendering the default "${HOME}/.cargo" defunct. export CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_HOME="${BUILD_PREFIX}/.cargo" +# There is some issue here building with Python 3.8 on macOS >= 11 +# See https://github.com/pypa/cibuildwheel/issues/1410 +export MACOSX_DEPLOYMENT_TARGET=12.7 +export MACOS_DEPLOYMENT_TARGET=12.7 +export SYSTEM_VERSION_COMPAT=0 + +# See https://github.com/conda/conda-build/issues/4392#issuecomment-1370281802 +if [[ $target_platform == osx-* ]]; then + for toolname in "otool" "install_name_tool"; do + tool=$(find "${BUILD_PREFIX}/bin/" -name "*apple*-$toolname") + mv "${tool}" "${tool}.bak" + ln -s "/Library/Developer/CommandLineTools/usr/bin/${toolname}" "$tool" + done +fi + # Use a custom temporary directory as home on macOS. # (not sure why this is useful, but people use it in bioconda recipes) if [ `uname` == Darwin ]; then diff --git a/recipes/pybigtools/build_failure.osx-64.yaml b/recipes/pybigtools/build_failure.osx-64.yaml deleted file mode 100644 index bd6db290ad53d..0000000000000 --- a/recipes/pybigtools/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: b9846a21ec9bbbc46ad39d8e456cece6d42e6d609a0ff345cf122226589854ab # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libaddr2line-e92d517a950bccd8.rlib(addr2line-e92d517a950bccd8.addr2line.7eb29e6a0a38fefd-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) - ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-8ce93eee8bf4c86e.rlib(panic_unwind-8ce93eee8bf4c86e.panic_unwind.a3b8ea81b157ee45-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) - ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-7f42af62722c8f43.rlib(compiler_builtins-7f42af62722c8f43.compiler_builtins.19fed66cffb9e9f5-cgu.089.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) - Undefined symbols for architecture x86_64: - "_getentropy", referenced from: - std::sys::pal::unix::rand::hashmap_random_keys::hcc27ed0e9fd421d6 in libstd-2ad7f97be9e16ca5.rlib(std-2ad7f97be9e16ca5.std.73125d0ae810e61b-cgu.0.rcgu.o) - ld: symbol(s) not found for architecture x86_64 - clang-16: error: linker command failed with exit code 1 (use -v to see invocation) - - - error: linking with x86_64-apple-darwin13.4.0-clang failed: exit status: 1 - | - = note: env -u IPHONEOS_DEPLOYMENT_TARGET -u TVOS_DEPLOYMENT_TARGET LC_ALL="C" PATH="/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/bin:/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/.cargo/bin:/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/bin:/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin:/opt/mambaforge/envs/bioconda/condabin:/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/bin:/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin:/opt/mambaforge/envs/bioconda/bin:/opt/mambaforge/condabin:/opt/mambaforge/bin:/usr/local/lib/ruby/gems/3.0.0/bin:/usr/local/opt/ruby@3.0/bin:/usr/local/opt/pipx_bin:/Users/runner/.cargo/bin:/usr/local/opt/curl/bin:/usr/local/bin:/usr/local/sbin:/Users/runner/bin:/Users/runner/.yarn/bin:/Users/runner/Library/Android/sdk/tools:/Users/runner/Library/Android/sdk/platform-tools:/Library/Frameworks/Python.framework/Versions/Current/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/usr/bin:/bin:/usr/sbin:/sbin:/Users/runner/.dotnet/tools" VSLANG="1033" ZERO_AR_DATE="1" "x86_64-apple-darwin13.4.0-clang" "-arch" "x86_64" "-m64" "/tmp/rustcDjA4SX/symbols.o" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/build/ring-e2a4c35a507cf1ef/build_script_build-e2a4c35a507cf1ef.build_script_build.4b1b86ea32bc8395-cgu.0.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/build/ring-e2a4c35a507cf1ef/build_script_build-e2a4c35a507cf1ef.build_script_build.4b1b86ea32bc8395-cgu.1.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/build/ring-e2a4c35a507cf1ef/build_script_build-e2a4c35a507cf1ef.build_script_build.4b1b86ea32bc8395-cgu.2.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/build/ring-e2a4c35a507cf1ef/build_script_build-e2a4c35a507cf1ef.build_script_build.4b1b86ea32bc8395-cgu.3.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/build/ring-e2a4c35a507cf1ef/build_script_build-e2a4c35a507cf1ef.build_script_build.4b1b86ea32bc8395-cgu.4.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/build/ring-e2a4c35a507cf1ef/build_script_build-e2a4c35a507cf1ef.build_script_build.4b1b86ea32bc8395-cgu.5.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/build/ring-e2a4c35a507cf1ef/build_script_build-e2a4c35a507cf1ef.vmxxw6nstdc094v.rcgu.o" "-L" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/deps" "-L" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/deps/libcc-313c0a1ebd4656a8.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libstd-2ad7f97be9e16ca5.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-8ce93eee8bf4c86e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libobject-0e1339b212cc7409.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libmemchr-925e672b3deb429c.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libaddr2line-e92d517a950bccd8.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libgimli-de95e5c2a2ace281.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-37f4c48e230f618e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libstd_detect-dfeb4bb0652b6b8e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-0e3ea0ec18336be2.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_alloc-39dd3003e36d7872.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libminiz_oxide-5ea1513e08ee15e0.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libadler-2967159221f4860d.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libunwind-b70656709e3eca11.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcfg_if-cc5626b2e0399737.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/liblibc-8378684dba6ab463.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/liballoc-0ff05b9b25b786cc.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_core-9a6da74aeab39c54.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcore-1638dc700d175798.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-7f42af62722c8f43.rlib" "-lSystem" "-lc" "-lm" "-L" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib" "-o" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/build/ring-e2a4c35a507cf1ef/build_script_build-e2a4c35a507cf1ef" "-Wl,-dead_strip" "-nodefaultlibs" - = note: ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libstd-2ad7f97be9e16ca5.rlib(std-2ad7f97be9e16ca5.std.73125d0ae810e61b-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) - ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcore-1638dc700d175798.rlib(core-1638dc700d175798.core.b1c2fc210f4dfff9-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) - ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/liballoc-0ff05b9b25b786cc.rlib(alloc-0ff05b9b25b786cc.alloc.9242d371e396bc4c-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) - ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-37f4c48e230f618e.rlib(rustc_demangle-37f4c48e230f618e.rustc_demangle.9fdffeb2b56169d1-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) - ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libgimli-de95e5c2a2ace281.rlib(gimli-de95e5c2a2ace281.gimli.72653df79598dcb2-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) - ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libobject-0e1339b212cc7409.rlib(object-0e1339b212cc7409.object.e3756fe3fb577255-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) - ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libmemchr-925e672b3deb429c.rlib(memchr-925e672b3deb429c.memchr.4dc4a05d80618598-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) - ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libaddr2line-e92d517a950bccd8.rlib(addr2line-e92d517a950bccd8.addr2line.7eb29e6a0a38fefd-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) - ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-8ce93eee8bf4c86e.rlib(panic_unwind-8ce93eee8bf4c86e.panic_unwind.a3b8ea81b157ee45-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) - ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-7f42af62722c8f43.rlib(compiler_builtins-7f42af62722c8f43.compiler_builtins.19fed66cffb9e9f5-cgu.089.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) - ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-0e3ea0ec18336be2.rlib(hashbrown-0e3ea0ec18336be2.hashbrown.febebf65344cb99d-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) - Undefined symbols for architecture x86_64: - "_getentropy", referenced from: - std::sys::pal::unix::rand::hashmap_random_keys::hcc27ed0e9fd421d6 in libstd-2ad7f97be9e16ca5.rlib(std-2ad7f97be9e16ca5.std.73125d0ae810e61b-cgu.0.rcgu.o) - ld: symbol(s) not found for architecture x86_64 - clang-16: error: linker command failed with exit code 1 (use -v to see invocation) - - - error: could not compile ring (build script) due to 1 previous error - warning: build failed, waiting for other jobs to finish... - error: could not compile pyo3-build-config (build script) due to 1 previous error - maturin failed - Caused by: Failed to build a native library through cargo - Caused by: Cargo build finished with "exit status: 101": env -u CARGO PYO3_ENVIRONMENT_SIGNATURE="cpython-3.10-64bit" PYO3_PYTHON="/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/python" PYTHON_SYS_EXECUTABLE="/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/python" "cargo" "rustc" "--target" "x86_64-apple-darwin" "--message-format" "json-render-diagnostics" "--manifest-path" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/Cargo.toml" "--release" "--lib" "--" "-C" "link-arg=-undefined" "-C" "link-arg=dynamic_lookup" "-C" "link-args=-Wl,-install_name,@rpath/pybigtools.cpython-310-darwin.so" "-C" "link-arg=-s" - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in - Extracting download - source tree in: /opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work - export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla - export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env - export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work - INFO: activate_clang_osx-64.sh made the following environmental changes: - AR=x86_64-apple-darwin13.4.0-ar - AS=x86_64-apple-darwin13.4.0-as - sys.exit(execute()) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - CC=x86_64-apple-darwin13.4.0-clang - CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - utils.check_call_env( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pybigtools-0.1.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - CLANG=x86_64-apple-darwin13.4.0-clang - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/conda_build.sh']' returned non-zero exit status 1. - CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin - CMAKE_PREFIX_PATH=:$PREFIX - CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 - CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 - CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 - DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pybigtools-0.1.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - HOST=x86_64-apple-darwin13.4.0 - INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool - LD=x86_64-apple-darwin13.4.0-ld - LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib - LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib - LIBTOOL=x86_64-apple-darwin13.4.0-libtool - LIPO=x86_64-apple-darwin13.4.0-lipo - MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib - NM=x86_64-apple-darwin13.4.0-nm - NMEDIT=x86_64-apple-darwin13.4.0-nmedit - OBJC=x86_64-apple-darwin13.4.0-clang - OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - OTOOL=x86_64-apple-darwin13.4.0-otool - PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff - RANLIB=x86_64-apple-darwin13.4.0-ranlib - REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding - SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk - SEGEDIT=x86_64-apple-darwin13.4.0-segedit - SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table - SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack - SIZE=x86_64-apple-darwin13.4.0-size - STRINGS=x86_64-apple-darwin13.4.0-strings - STRIP=x86_64-apple-darwin13.4.0-strip - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 - ac_cv_func_malloc_0_nonnull=yes - ac_cv_func_realloc_0_nonnull=yes - build_alias=x86_64-apple-darwin13.4.0 - host_alias=x86_64-apple-darwin13.4.0 -# Last 100 lines of the build log. diff --git a/recipes/pybigtools/meta.yaml b/recipes/pybigtools/meta.yaml index 3711f68418a60..d584f297c19e9 100644 --- a/recipes/pybigtools/meta.yaml +++ b/recipes/pybigtools/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pybigtools" %} -{% set version = "0.1.4" %} -{% set sha256 = "79650f78178b05c293843c378d455b60f98119d5201d09938a62d41d4e0bd313" %} +{% set version = "0.2.0" %} +{% set sha256 = "7c5d1676c5042b92f3f11bae3166cda92f5b33eb1a0a8c3411eb4c54ed94dd12" %} package: name: {{ name }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('pybigtools', max_pin="x.x") }} From f2702e7f8438402ba9986e62b052bd1edbe4348f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?An=C5=BEe=20Stari=C4=8D?= Date: Tue, 9 Jul 2024 09:08:24 +0200 Subject: [PATCH 0132/1589] Update sentieon to 202308.03 (#49025) --- recipes/sentieon/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sentieon/meta.yaml b/recipes/sentieon/meta.yaml index cb9b80ca081b4..be624c6675928 100644 --- a/recipes/sentieon/meta.yaml +++ b/recipes/sentieon/meta.yaml @@ -1,11 +1,11 @@ -{% set version="202308.02" %} +{% set version="202308.03" %} package: name: sentieon version: {{ version }} source: - url: https://s3.amazonaws.com/sentieon-release/software/sentieon-genomics-{{ version }}.tar.gz # [linux64] - sha256: a04b98c1b7c4e8916fdc45f15685d5fd83db56386ec2478eb5ea594170405bd5 # [linux64] + sha256: d51d1a192aa9fd3108f4baa5e1d0784ea80af6734fcc1a27a57e15779f43fcf1 # [linux64] patches: # [linux64] # Fix driver scripts so they resolves location including symlinks - sentieon_symlinks.patch # [linux64] From 8cb3e1a04e98a58e410ba6c477086895bc206534 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20H=2E=20Franceschini-Santos?= Date: Tue, 9 Jul 2024 06:02:52 -0300 Subject: [PATCH 0133/1589] Update parm to v0.0.3 (#49029) --- recipes/parm/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/parm/meta.yaml b/recipes/parm/meta.yaml index b1563801d83de..8a9136750dcbc 100644 --- a/recipes/parm/meta.yaml +++ b/recipes/parm/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.0.2" %} -{% set sha256 = "a4a39e3f07eab33968ae6a96d1853c63b50b8acbfd1cf5361bae8288fa389ddf" %} +{% set version = "0.0.3" %} +{% set sha256 = "c04f8ec7d0d595e6dee291115aa1626371f17a36e125724d1576e7d4b829d8c7" %} package: name: parm From 13936c7070c2b7726f51259e8c956ce62bc4432d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 08:01:13 -0400 Subject: [PATCH 0134/1589] Update metabolights-utils to 1.1.3 (#49031) --- recipes/metabolights-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/metabolights-utils/meta.yaml b/recipes/metabolights-utils/meta.yaml index 7cf6ac64097b8..c2ed7fc4b6ca6 100644 --- a/recipes/metabolights-utils/meta.yaml +++ b/recipes/metabolights-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "metabolights-utils" %} -{% set version = "1.1.2" %} +{% set version = "1.1.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/metabolights_utils-{{ version }}.tar.gz - sha256: 8ee604a991c739203c3f228253a9465399682b9bd8ae985350f50fdcc56b9a03 + sha256: 77a18d9f69e61f6fe607b7497f9b627b56a773a1d00575776f01f0ae3f901eb9 build: entry_points: From a71c97784847e95470d4cd0e2e081acbc74427e3 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 08:01:42 -0400 Subject: [PATCH 0135/1589] Update scirpy to 0.17.2 (#49032) --- recipes/scirpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/scirpy/meta.yaml b/recipes/scirpy/meta.yaml index 290b5babc4e93..98fde15171638 100644 --- a/recipes/scirpy/meta.yaml +++ b/recipes/scirpy/meta.yaml @@ -1,5 +1,5 @@ {% set name = "scirpy" %} -{% set version = "0.17.1" %} +{% set version = "0.17.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 8fbca858f432fbf3c34d02aa5100f4dcd3520219ce2978c90bc084dc0951f2fe + sha256: 37dc159bb6d4f033039dde9073a69104f8445be4459cec4532fdcbf84eef13b3 folder: "{{ name }}-{{ version }}" build: From 8b57681bf042d4b743be9bc4cef129a385db46e7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 08:06:29 -0400 Subject: [PATCH 0136/1589] Update ska2 to 0.3.8 (#49036) --- recipes/ska2/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/ska2/meta.yaml b/recipes/ska2/meta.yaml index 715c5a72cae5e..02b0a45464bd5 100644 --- a/recipes/ska2/meta.yaml +++ b/recipes/ska2/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ska2" %} -{% set version = "0.3.7" %} +{% set version = "0.3.8" %} package: name: {{ name|lower}} @@ -7,10 +7,10 @@ package: source: url: https://github.com/bacpop/ska.rust/archive/v{{ version }}.tar.gz - sha256: ea7234428f253638b2093abdd6c8b1e8362ecad0ba56e3b29700af9a4481d911 + sha256: 5abadd0222db05b2bfa787a896d422675312837c7ac850df6283e6a64d4f204b build: - number: 2 + number: 0 script: "cargo install --no-track --locked --verbose --root \"${PREFIX}\" --path ." run_exports: - {{ pin_subpackage("ska2", max_pin="x.x") }} @@ -32,4 +32,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 From 8da1c31fe6fb46185075741f95f2a1fd2317a569 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 08:18:43 -0400 Subject: [PATCH 0137/1589] Update seqchromloader to 0.7.6 (#49018) --- recipes/seqchromloader/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/seqchromloader/meta.yaml b/recipes/seqchromloader/meta.yaml index ec89ee7eb03ce..0dc4fe0e80f6a 100644 --- a/recipes/seqchromloader/meta.yaml +++ b/recipes/seqchromloader/meta.yaml @@ -1,5 +1,5 @@ {% set name = "seqchromloader" %} -{% set version = "0.7.5" %} +{% set version = "0.7.6" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 151335f3197a16140106ec55733321f7a01c3571ffaeaa968618cc88ac21393a + sha256: 17fa1f9c1a3f286a93c454518c3af5f70bf9274003bdfcdb436f30419a29f93e build: number: 0 From af3db253a20d527ee42eda20eb452341e2a2321f Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 9 Jul 2024 15:18:58 +0300 Subject: [PATCH 0138/1589] pybigtools: add linux-aarch64 build (#49027) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/pybigtools/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/pybigtools/meta.yaml b/recipes/pybigtools/meta.yaml index d584f297c19e9..ccc184ca0c425 100644 --- a/recipes/pybigtools/meta.yaml +++ b/recipes/pybigtools/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('pybigtools', max_pin="x.x") }} @@ -41,5 +41,7 @@ about: dev_url: https://github.com/jackh726/bigtools/ extra: + additional-platforms: + - linux-aarch64 identifiers: - doi:10.5281/zenodo.10606493 From 837c446dc4caf2719d89c1f4a7887820f793bb91 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 9 Jul 2024 15:19:57 +0300 Subject: [PATCH 0139/1589] art: add linux-aarch64 build (#48998) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/art/build.sh | 4 +- recipes/art/build_failure.linux-64.yaml | 104 ------------------------ recipes/art/build_failure.osx-64.yaml | 104 ------------------------ recipes/art/meta.yaml | 12 ++- 4 files changed, 13 insertions(+), 211 deletions(-) delete mode 100644 recipes/art/build_failure.linux-64.yaml delete mode 100644 recipes/art/build_failure.osx-64.yaml diff --git a/recipes/art/build.sh b/recipes/art/build.sh index dba8ae009f959..0ed4c0e67646f 100644 --- a/recipes/art/build.sh +++ b/recipes/art/build.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -xe + export CFLAGS="-I$PREFIX/include" export LDFLAGS="-L$PREFIX/lib" export CPATH=${PREFIX}/include @@ -7,7 +9,7 @@ export CPATH=${PREFIX}/include mkdir -p $PREFIX/bin ./configure --prefix=$PREFIX -make +make -j ${CPU_COUNT} make install for platform in illumina 454 SOLiD; diff --git a/recipes/art/build_failure.linux-64.yaml b/recipes/art/build_failure.linux-64.yaml deleted file mode 100644 index fe51189dce6f4..0000000000000 --- a/recipes/art/build_failure.linux-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: f30c59ba2eda60063e1b2d77f2a81886d1fa778acb7bf4d97990fd57e56b6189 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - sysroot_linux-64: 2.12-he073ed8_15 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - Source cache directory is: /opt/conda/conda-bld/src_cache - INFO:conda_build.source:Source cache directory is: /opt/conda/conda-bld/src_cache - Downloading source to cache: artsrcmountrainier2016.06.05linux_6df7ce4760.tgz - INFO:conda_build.source:Downloading source to cache: artsrcmountrainier2016.06.05linux_6df7ce4760.tgz - Downloading https://www.niehs.nih.gov/research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz - INFO:conda_build.source:Downloading https://www.niehs.nih.gov/research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz - DEBUG:urllib3.util.retry:Incremented Retry for (url='/research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz'): Retry(total=2, connect=None, read=None, redirect=None, status=None) - WARNING:urllib3.connectionpool:Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))': /research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz - DEBUG:urllib3.util.retry:Incremented Retry for (url='/research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz'): Retry(total=1, connect=None, read=None, redirect=None, status=None) - WARNING:urllib3.connectionpool:Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))': /research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz - DEBUG:urllib3.util.retry:Incremented Retry for (url='/research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz'): Retry(total=0, connect=None, read=None, redirect=None, status=None) - WARNING:urllib3.connectionpool:Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))': /research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz - Traceback (most recent call last): - File "/opt/conda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 670, in urlopen - httplib_response = self._make_request( - File "/opt/conda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 381, in _make_request - self._validate_conn(conn) - File "/opt/conda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 978, in _validate_conn - conn.connect() - File "/opt/conda/lib/python3.8/site-packages/urllib3/connection.py", line 362, in connect - self.sock = ssl_wrap_socket( - File "/opt/conda/lib/python3.8/site-packages/urllib3/util/ssl_.py", line 386, in ssl_wrap_socket - return context.wrap_socket(sock, server_hostname=server_hostname) - File "/opt/conda/lib/python3.8/ssl.py", line 500, in wrap_socket - return self.sslsocket_class._create( - File "/opt/conda/lib/python3.8/ssl.py", line 1040, in _create - self.do_handshake() - File "/opt/conda/lib/python3.8/ssl.py", line 1309, in do_handshake - self._sslobj.do_handshake() - ssl.SSLError: [SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131) - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/conda/lib/python3.8/site-packages/requests/adapters.py", line 439, in send - resp = conn.urlopen( - File "/opt/conda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 754, in urlopen - return self.urlopen( - File "/opt/conda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 754, in urlopen - return self.urlopen( - File "/opt/conda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 754, in urlopen - return self.urlopen( - File "/opt/conda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 726, in urlopen - retries = retries.increment( - File "/opt/conda/lib/python3.8/site-packages/urllib3/util/retry.py", line 446, in increment - raise MaxRetryError(_pool, url, error or ResponseError(cause)) - urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='www.niehs.nih.gov', port=443): Max retries exceeded with url: /research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz (Caused by SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))) - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/conda/lib/python3.8/site-packages/conda/gateways/connection/download.py", line 48, in download - resp = session.get(url, stream=True, proxies=session.proxies, timeout=timeout) - File "/opt/conda/lib/python3.8/site-packages/requests/sessions.py", line 546, in get - return self.request('GET', url, **kwargs) - File "/opt/conda/lib/python3.8/site-packages/requests/sessions.py", line 533, in request - resp = self.send(prep, **send_kwargs) - File "/opt/conda/lib/python3.8/site-packages/requests/sessions.py", line 646, in send - r = adapter.send(request, **kwargs) - File "/opt/conda/lib/python3.8/site-packages/requests/adapters.py", line 514, in send - raise SSLError(e, request=request) - requests.exceptions.SSLError: HTTPSConnectionPool(host='www.niehs.nih.gov', port=443): Max retries exceeded with url: /research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz (Caused by SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))) - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/conda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/conda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 2125, in build - try_download(m, no_download_source=False, raise_error=True) - File "/opt/conda/lib/python3.8/site-packages/conda_build/render.py", line 650, in try_download - source.provide(metadata) - File "/opt/conda/lib/python3.8/site-packages/conda_build/source.py", line 871, in provide - unpack(source_dict, src_dir, metadata.config.src_cache, recipe_path=metadata.path, - File "/opt/conda/lib/python3.8/site-packages/conda_build/source.py", line 146, in unpack - src_path, unhashed_fn = download_to_cache(cache_folder, recipe_path, source_dict, verbose) - File "/opt/conda/lib/python3.8/site-packages/conda_build/source.py", line 89, in download_to_cache - download(url, path) - File "/opt/conda/lib/python3.8/site-packages/conda/exports.py", line 374, in download - return _download(url, dst_path, md5=md5sum, sha256=sha256, size=size) - File "/opt/conda/lib/python3.8/site-packages/conda/common/io.py", line 84, in decorated - return f(*args, **kwds) - File "/opt/conda/lib/python3.8/site-packages/conda/gateways/connection/download.py", line 152, in download - raise CondaSSLError( - conda.exceptions.CondaSSLError: Encountered an SSL error. Most likely a certificate verification issue. - - Exception: HTTPSConnectionPool(host='www.niehs.nih.gov', port=443): Max retries exceeded with url: /research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz (Caused by SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))) -# Last 100 lines of the build log. diff --git a/recipes/art/build_failure.osx-64.yaml b/recipes/art/build_failure.osx-64.yaml deleted file mode 100644 index 7c058b08fdcd6..0000000000000 --- a/recipes/art/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: f30c59ba2eda60063e1b2d77f2a81886d1fa778acb7bf4d97990fd57e56b6189 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - zstd: 1.5.2-hbc0c0cd_6 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache - Downloading source to cache: artsrcmountrainier2016.06.05linux_6df7ce4760.tgz - INFO:conda_build.source:Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache - Downloading https://www.niehs.nih.gov/research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz - INFO:conda_build.source:Downloading source to cache: artsrcmountrainier2016.06.05linux_6df7ce4760.tgz - INFO:conda_build.source:Downloading https://www.niehs.nih.gov/research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz - DEBUG:urllib3.util.retry:Incremented Retry for (url='/research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz'): Retry(total=2, connect=None, read=None, redirect=None, status=None) - WARNING:urllib3.connectionpool:Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))': /research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz - DEBUG:urllib3.util.retry:Incremented Retry for (url='/research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz'): Retry(total=1, connect=None, read=None, redirect=None, status=None) - WARNING:urllib3.connectionpool:Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))': /research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz - DEBUG:urllib3.util.retry:Incremented Retry for (url='/research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz'): Retry(total=0, connect=None, read=None, redirect=None, status=None) - WARNING:urllib3.connectionpool:Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))': /research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 670, in urlopen - httplib_response = self._make_request( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 381, in _make_request - self._validate_conn(conn) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 978, in _validate_conn - conn.connect() - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connection.py", line 362, in connect - self.sock = ssl_wrap_socket( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/util/ssl_.py", line 386, in ssl_wrap_socket - return context.wrap_socket(sock, server_hostname=server_hostname) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/ssl.py", line 500, in wrap_socket - return self.sslsocket_class._create( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/ssl.py", line 1040, in _create - self.do_handshake() - File "/opt/mambaforge/envs/bioconda/lib/python3.8/ssl.py", line 1309, in do_handshake - self._sslobj.do_handshake() - ssl.SSLError: [SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131) - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/requests/adapters.py", line 439, in send - resp = conn.urlopen( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 754, in urlopen - return self.urlopen( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 754, in urlopen - return self.urlopen( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 754, in urlopen - return self.urlopen( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 726, in urlopen - retries = retries.increment( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/util/retry.py", line 446, in increment - raise MaxRetryError(_pool, url, error or ResponseError(cause)) - urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='www.niehs.nih.gov', port=443): Max retries exceeded with url: /research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz (Caused by SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))) - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda/gateways/connection/download.py", line 48, in download - resp = session.get(url, stream=True, proxies=session.proxies, timeout=timeout) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/requests/sessions.py", line 546, in get - return self.request('GET', url, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/requests/sessions.py", line 533, in request - resp = self.send(prep, **send_kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/requests/sessions.py", line 646, in send - r = adapter.send(request, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/requests/adapters.py", line 514, in send - raise SSLError(e, request=request) - requests.exceptions.SSLError: HTTPSConnectionPool(host='www.niehs.nih.gov', port=443): Max retries exceeded with url: /research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz (Caused by SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))) - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 2125, in build - try_download(m, no_download_source=False, raise_error=True) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/render.py", line 650, in try_download - source.provide(metadata) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/source.py", line 871, in provide - unpack(source_dict, src_dir, metadata.config.src_cache, recipe_path=metadata.path, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/source.py", line 146, in unpack - src_path, unhashed_fn = download_to_cache(cache_folder, recipe_path, source_dict, verbose) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/source.py", line 89, in download_to_cache - download(url, path) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda/exports.py", line 374, in download - return _download(url, dst_path, md5=md5sum, sha256=sha256, size=size) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda/common/io.py", line 84, in decorated - return f(*args, **kwds) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda/gateways/connection/download.py", line 152, in download - raise CondaSSLError( - conda.exceptions.CondaSSLError: Encountered an SSL error. Most likely a certificate verification issue. - - Exception: HTTPSConnectionPool(host='www.niehs.nih.gov', port=443): Max retries exceeded with url: /research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz (Caused by SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))) -# Last 100 lines of the build log. diff --git a/recipes/art/meta.yaml b/recipes/art/meta.yaml index 77be0c47cf51c..cefbaaa1b2e1e 100644 --- a/recipes/art/meta.yaml +++ b/recipes/art/meta.yaml @@ -6,7 +6,9 @@ package: version: {{ version }} build: - number: 10 + number: 11 + run_exports: + - {{ pin_subpackage(name, max_pin=None) }} source: url: https://www.niehs.nih.gov/research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz @@ -30,5 +32,11 @@ test: about: home: http://www.niehs.nih.gov/research/resources/software/biostatistics/art/ - license: GPLv2 + license: GPL-3.0-only + license_file: GPLv3.txt + license_family: GPL3 summary: 'Illumina, 454 and Solid read simulator' + +extra: + additional-platforms: + - linux-aarch64 From 172a4e4f3f1724a6d5988e77fef0bd7517efad53 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 09:27:08 -0400 Subject: [PATCH 0140/1589] Update somaticseq to 3.8.0 (#49026) * Update somaticseq to 3.8.0 * Add pydantic as a runtime dependency Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov --- recipes/somaticseq/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/somaticseq/meta.yaml b/recipes/somaticseq/meta.yaml index cd81c589f93e9..74a9c02ee9b89 100644 --- a/recipes/somaticseq/meta.yaml +++ b/recipes/somaticseq/meta.yaml @@ -1,6 +1,6 @@ {% set name = "somaticseq" %} -{% set version = "3.7.4" %} -{% set sha256 = "d072300bc403f12265fcadba74c4e6ba82175e749f22f66b46a1e32bf851e24d" %} +{% set version = "3.8.0" %} +{% set sha256 = "d936bab4b042ce6f7e13420fda747c264e4047be9e1ed0186c2379a74f526412" %} package: name: {{ name|lower }} @@ -37,6 +37,7 @@ requirements: - muse - lofreq - scalpel + - pydantic # Strelka relies on python 2 and cannot be included test: From 35ea8f5b3240f61403fbcdcfa21890e4adb6a211 Mon Sep 17 00:00:00 2001 From: sverre-branders <154252137+sverre-branders@users.noreply.github.com> Date: Tue, 9 Jul 2024 15:27:39 +0200 Subject: [PATCH 0141/1589] Add voyager (#49034) * Added voyager recipe * Minor fixes * updated recipe data * Fixed lint * Updated licence in recipes/voyager/meta.yaml Co-authored-by: Martin Grigorov --------- Co-authored-by: Martin Grigorov --- recipes/voyager/build.sh | 14 ++++++++++++++ recipes/voyager/meta.yaml | 37 +++++++++++++++++++++++++++++++++++++ recipes/voyager/run_test.sh | 5 +++++ 3 files changed, 56 insertions(+) create mode 100755 recipes/voyager/build.sh create mode 100755 recipes/voyager/meta.yaml create mode 100644 recipes/voyager/run_test.sh diff --git a/recipes/voyager/build.sh b/recipes/voyager/build.sh new file mode 100755 index 0000000000000..110e53095ec3f --- /dev/null +++ b/recipes/voyager/build.sh @@ -0,0 +1,14 @@ +#!/bin/bash +mkdir -p "$PREFIX/bin" + +cp voyager-cli $PREFIX/bin/ +cp voyager-build-cli $PREFIX/bin/ +cp voyager-combine-cli $PREFIX/bin/ +cp voyager-debug-index $PREFIX/bin/ + +mkdir -p "$PREFIX/lib" +cp voyager-monitor-0.1.0-SNAPSHOT.jar $PREFIX/lib/ + +echo '#!/bin/bash' > ${PREFIX}/bin/voyager-monitor +echo 'java -jar "'$PREFIX'/lib/voyager-monitor-1.0.00-SNAPSHOT.jar" "$@"' >> $PREFIX/bin/voyager-monitor +chmod +x "${PREFIX}/bin/voyager-monitor" diff --git a/recipes/voyager/meta.yaml b/recipes/voyager/meta.yaml new file mode 100755 index 0000000000000..dc5947046d51d --- /dev/null +++ b/recipes/voyager/meta.yaml @@ -0,0 +1,37 @@ +{% set version = "0.1.0" %} +{% set base = "https://bitbucket.org/sverre-phd-work/voyager/downloads" %} +{% set sha256 = "57a87fb9878a25a3848c1bde6f6f873fd154ff6f1b229b09afccf602d3ea82a9" %} + +package: + name: voyager + version: '{{version}}' + +source: + url: {{base}}/voyager-linux64-v{{version}}.tar.gz + sha256: '{{sha256}}' + +build: + number: 0 + noarch: generic + run_exports: + - {{ pin_subpackage('voyager', max_pin="x.x") }} + +requirements: + build: + # + host: + - openjdk >=11 + run: + - openjdk >=11 + +about: + home: "https://bitbucket.org/sverre-phd-work/voyager/" + license: LGPL-3.0-only + license_file : COPYING.LESSER + summary: "Rapid and efficient mapping algorithm for long sequencing reads with insertion- and deletion errors." + doc_url: "https://bitbucket.org/sverre-phd-work/voyager/wiki/Home" + dev_url: "https://bitbucket.org/sverre-phd-work/voyager/" + +extra: + identifiers: + - doi:10.1101/2024.04.13.589333 diff --git a/recipes/voyager/run_test.sh b/recipes/voyager/run_test.sh new file mode 100644 index 0000000000000..b99b38a28a097 --- /dev/null +++ b/recipes/voyager/run_test.sh @@ -0,0 +1,5 @@ +#!/bin/bash +voyager-cli -v >/dev/null +voyager-build-cli -v >/dev/null +voyager-combine-cli -v >/dev/null +voyager-debug-index -v >/dev/null From c293285c4deeeaf2c24c794992ce3ee57b2e1b82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A1n=20Diaz?= Date: Tue, 9 Jul 2024 16:24:07 +0200 Subject: [PATCH 0142/1589] Add Constava v1.1.0 (#49033) * Add constava v1.0.0 * Add GPL3 license file * Fix meta * Better meta * Update LICENSE * Fix build issues * Update meta * Bump version to 1.1.0 * Apply suggestions from code review Co-authored-by: Martin Grigorov * Solve review comments * Fix linting issues --------- Co-authored-by: Martin Grigorov --- recipes/constava/LICENSE | 16 +++++ recipes/constava/meta.yaml | 119 +++++++++++++++++++++++++++++++++++++ 2 files changed, 135 insertions(+) create mode 100644 recipes/constava/LICENSE create mode 100644 recipes/constava/meta.yaml diff --git a/recipes/constava/LICENSE b/recipes/constava/LICENSE new file mode 100644 index 0000000000000..f38837717b5a8 --- /dev/null +++ b/recipes/constava/LICENSE @@ -0,0 +1,16 @@ +Constava: Probabilistic assessment of protein conformational states. + +Copyright (C) 2023 Wim Vranken + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . diff --git a/recipes/constava/meta.yaml b/recipes/constava/meta.yaml new file mode 100644 index 0000000000000..b6a6c8bca7bbc --- /dev/null +++ b/recipes/constava/meta.yaml @@ -0,0 +1,119 @@ +{% set name = "constava" %} +{% set version = "1.1.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/constava-{{ version }}.tar.gz + sha256: 6ac0a19544aa7bb800cb2a5b7b85499d5473fe132ded49cefddca032065cb2a9 + +build: + number: 0 + entry_points: + - constava = constava.__main__:main + noarch: python + script: "{{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv" + run_exports: + - {{ pin_subpackage('constava', max_pin="x") }} + +requirements: + host: + - python >=3.8 + - pip + run: + - python >=3.8 + - matplotlib-base + - mdanalysis + - numpy + - pandas + - scikit-learn + +test: + imports: + - constava + - constava.utils + - constava.utils.dihedrals + commands: + - pip check + - constava --version + - constava --help + - constava dihedrals -h + - constava analyze -h + - constava fit-model -h + - constava test + requires: + - pip + + +about: + home: https://github.com/bio2byte/constava + summary: Calculate conformational states probability and variability from a protein structure ensemble + description: | + Constava analyzes conformational ensembles calculating conformational state propensities and + conformational state variability. The conformational state propensities indicate the likelihood + of a residue residing in a given conformational state, while the conformational state variability + is a measure of the residues ability to transition between conformational states. + + Each conformational state is a statistical model of based on the backbone dihedrals (phi, psi). The + default models were derived from an analysis of NMR ensembles and chemical shifts. To analyze a + conformational ensemble, the phi- and psi-angles for each conformational state in the ensemble + need to be provided. + + As input data Constava needs the backbone dihedral angles extracted from the conformational ensemble. + These dihedrals can be obtained using GROMACS' gmx chi module (set `--input-format=xvg`) + or using the constava dihedrals submodule, which supports a wide range of MD and structure formats. + + The software is subdivided in three submodules: + + The constava dihedrals submodule provides a simple way to extract backbone dihedral angles from MD + simulations or PDB ensembles. For more information run: `constava dihedrals -h`. Alternatively, + the backbone dihedrals may be extracted with GROMACS' gmx chi module. + + The constava analyze submodule analyzes the provided backbone dihedral angles and infers + the propensities for each residue to reside in a given conformational state. For more information run: + `constava analyze -h`. + + The constava fit-model can be used to train a custom probabilistic model of conformational states. The + default models were derived from an analysis of NMR ensembles and chemical shifts; they cover six + conformational states: + + 1. Core Helix - Exclusively alpha-helical, low backbone dynamics + 2. Surrounding Helix - Mostly alpha-helical, high backbone dynamics + 3. Core Sheet - Exclusively beta-sheet, low backbone dynamics + 4. Surrounding Sheet - Mostly extended conformation, high backbone dynamics + 5. Turn - Mostly turn, high backbone dynamics + 6. Other - Mostly coil, high backbone dynamics + + For more information run: `constava fit-model -h`. + + This software tool has been developed by the Bio2Byte research group at Vrije Universiteit Brussel (VUB) + in Belgium and it is distributed under the GNU General Public License v3 (GPLv3) License. + + Please cite: + + Jose Gavalda-Garcia, David Bickel, Joel Roca-Martinez, Daniele Raimondi, Gabriele Orlando, Wim Vranken, + Data-driven probabilistic definition of the low energy conformational states of protein residues, + NAR Genomics and Bioinformatics, Volume 6, Issue 3, September 2024, lqae082, + https://doi.org/10.1093/nargab/lqae082 (Published: 09 July 2024) + + Contact us: or + license: GPL-3.0-or-later + license_file: LICENSE + license_family: GPL3 + dev_url: https://github.com/bio2byte/constava + doc_url: https://pypi.org/project/constava/ + doc_source_url: https://github.com/Bio2Byte/constava/blob/main/README.md + +extra: + author: Wim Vranken , Jose Gavalda-Garcia , David Bickel , Joel Roca-Martinez , Daniele Raimondi , Gabriele Orlando + recipe-maintainers: + - agdiaz + - aethertier + - GavaldaGarcia + maintainers: + - aethertier + - GavaldaGarcia + identifiers: + - doi:10.1093/nargab/lqae082 # NAR Genomics and Bioinformatics From 826feb0c111eddae98750237b86fb8d106d8c8e4 Mon Sep 17 00:00:00 2001 From: John Lees Date: Tue, 9 Jul 2024 15:47:16 +0100 Subject: [PATCH 0143/1589] Update poppunk to v2.6.7 (#49039) --- recipes/poppunk/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/poppunk/meta.yaml b/recipes/poppunk/meta.yaml index 88a2bf49f541e..fb5756890a9fc 100644 --- a/recipes/poppunk/meta.yaml +++ b/recipes/poppunk/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.6.5" %} +{% set version = "2.6.7" %} {% set name = "PopPUNK" %} package: @@ -7,10 +7,10 @@ package: source: url: https://github.com/bacpop/{{ name|lower }}/archive/v{{ version }}.tar.gz - sha256: d587b77c6b38e73035f9bd1b5cfcea9a048714112391a77139bb52e0a160b968 + sha256: faa11756c6c7acc0df2ef50a1deaf27432f1e510219a7484cc16f92e44b2e179 build: - number: 1 + number: 0 skip: true # [py < 38] script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed --no-cache-dir -vvv" entry_points: @@ -91,7 +91,7 @@ test: - poppunk_info --help about: - home: https://www.poppunk.net + home: https://poppunk.bacpop.org/ license: Apache-2.0 license_family: APACHE summary: 'PopPUNK (POPulation Partitioning Using Nucleotide Kmers)' From 8fc8f46d4250392a28091245092768e4240e76fc Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 10:47:45 -0400 Subject: [PATCH 0144/1589] Update snakemake to 8.16.0 (#49041) --- recipes/snakemake/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake/meta.yaml b/recipes/snakemake/meta.yaml index de065cbd5e5ac..1081e75cde7ef 100644 --- a/recipes/snakemake/meta.yaml +++ b/recipes/snakemake/meta.yaml @@ -1,7 +1,7 @@ # Attention: when upgrading the version, please compare below dependencies with # https://github.com/snakemake/snakemake/blob/{version}/setup.cfg {% set name = "snakemake" %} -{% set version = "8.15.2" %} +{% set version = "8.16.0" %} package: name: {{ name }} @@ -9,7 +9,7 @@ package: source: url: https://pypi.io/packages/source/s/{{ name }}/snakemake-{{ version }}.tar.gz - sha256: 3bcc407dc02cc25c545691b275e9d5e65d414e6361f7682020fc76cb8164267a + sha256: 3906ae1a5e16b941755b61537a8d16e249106cbbeb0d40b9552933e96ff07af4 build: number: 0 From 493a89dde61db31c8f6486d9d29a9bf455f9310e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 10:48:14 -0400 Subject: [PATCH 0145/1589] Update pycomo to 0.2.0 (#49042) --- recipes/pycomo/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pycomo/meta.yaml b/recipes/pycomo/meta.yaml index a92c2b57fa40f..13a5d832d13b2 100644 --- a/recipes/pycomo/meta.yaml +++ b/recipes/pycomo/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pycomo" %} -{% set version = "0.1.3" %} +{% set version = "0.2.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pycomo-{{ version }}.tar.gz - sha256: be95b8610a3b40ca69dd5ed055356c6bdb838059c66afa796343ea624b07be6c + sha256: 48ffd67190484a57f16ad9a81a631e7464dd5d37a7da79907d9940232f3c3433 build: entry_points: From 07ad2bb2e597aed4b1f214e12c5ef4f8b366614e Mon Sep 17 00:00:00 2001 From: Rauf Salamzade Date: Tue, 9 Jul 2024 09:48:51 -0500 Subject: [PATCH 0146/1589] Update zol (#49038) * Update meta.yaml * Update meta.yaml * Update meta.yaml --- recipes/zol/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/zol/meta.yaml b/recipes/zol/meta.yaml index 09a59909ca95f..503f5652016b7 100644 --- a/recipes/zol/meta.yaml +++ b/recipes/zol/meta.yaml @@ -10,7 +10,7 @@ source: sha256: b4a6a2f62bf9763de6b78ab0832a692696ac8250161998adc50677d829df1a7b build: - number: 0 + number: 1 skip: True # [py <= 311] run_exports: - {{ pin_subpackage('zol', max_pin='x.x') }} @@ -33,7 +33,7 @@ requirements: - pal2nal >=14.1 - hmmer >=3.0.0 - fasttree - - diamond + - diamond >=2.1.7 - pyrodigal - prodigal - prodigal-gv From 589f118e069cbd12840021d0792c687c00a90052 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 12:17:59 -0400 Subject: [PATCH 0147/1589] Update ena-webin-cli to 7.3.1 (#49047) --- recipes/ena-webin-cli/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ena-webin-cli/meta.yaml b/recipes/ena-webin-cli/meta.yaml index 35ddf00a451a6..cd4dc94fffa01 100644 --- a/recipes/ena-webin-cli/meta.yaml +++ b/recipes/ena-webin-cli/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "7.3.0" %} -{% set sha256 = "793a54f4ad01cc32be1b38ce96ce89944485d594affcec6665148854d336f419" %} +{% set version = "7.3.1" %} +{% set sha256 = "e6dbb93e8b39c81e53ef96afcba0e958869c95a2d1dda83e1a6077a73f9f4cfb" %} package: name: ena-webin-cli From b28e9f376eaac4a553bcdfc1ad8561e0a40ee453 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 12:18:19 -0400 Subject: [PATCH 0148/1589] Update seqchromloader to 0.7.7 (#49046) --- recipes/seqchromloader/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/seqchromloader/meta.yaml b/recipes/seqchromloader/meta.yaml index 0dc4fe0e80f6a..6c69d088838a2 100644 --- a/recipes/seqchromloader/meta.yaml +++ b/recipes/seqchromloader/meta.yaml @@ -1,5 +1,5 @@ {% set name = "seqchromloader" %} -{% set version = "0.7.6" %} +{% set version = "0.7.7" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 17fa1f9c1a3f286a93c454518c3af5f70bf9274003bdfcdb436f30419a29f93e + sha256: c4d37d0b8c91e0d666e7ae0a581884c113ed84862526b3621f86704668bb8b27 build: number: 0 From b964737a5b895419a051d1c6d4f7b899ee79ef06 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 9 Jul 2024 19:18:41 +0300 Subject: [PATCH 0149/1589] fasta3: add linux-aarch64 build (#49045) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/fasta3/build.sh | 6 ++++-- recipes/fasta3/meta.yaml | 8 +++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/recipes/fasta3/build.sh b/recipes/fasta3/build.sh index 615d9a68dce78..a66a0586643b0 100755 --- a/recipes/fasta3/build.sh +++ b/recipes/fasta3/build.sh @@ -1,10 +1,12 @@ #!/bin/bash +set -xe + mkdir -pv ${PREFIX}/bin ${PREFIX}/share case $(uname) in - Darwin) make -C src -f ../make/Makefile.os_x86_64 all \ + Darwin) make -j ${CPU_COUNT} -C src -f ../make/Makefile.os_x86_64 all \ CC="${CC} ${CPPFLAGS} ${CFLAGS}" LDFLAGS="${LDFLAGS}" LIB_M='-lm' ;; - *) make -C src -f ../make/Makefile.linux64_sse2 all \ + *) make -j ${CPU_COUNT} -C src -f ../make/Makefile.linux64_sse2 all \ CC="${CC} ${CPPFLAGS} ${CFLAGS}" LDFLAGS="${LDFLAGS}" LIB_M='-lm' ;; esac cp {bin/*36,bin/map_db,scripts/*.pl,misc/*.pl} ${PREFIX}/bin diff --git a/recipes/fasta3/meta.yaml b/recipes/fasta3/meta.yaml index 46874424c5e50..0ea1ef17edd12 100644 --- a/recipes/fasta3/meta.yaml +++ b/recipes/fasta3/meta.yaml @@ -10,7 +10,9 @@ source: sha256: b4b1c3c9be6beebcbaf4215368e159d69255e34c0bdbc84affa10cdb473ce008 build: - number: 0 + number: 1 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} requirements: build: @@ -39,3 +41,7 @@ about: license: Apache 2.0 summary: The FASTA package - protein and DNA sequence similarity searching and alignment programs license_file: LICENSE + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From e9059a7df063e55b09e276fb20b8e96a7153a763 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 9 Jul 2024 19:18:57 +0300 Subject: [PATCH 0150/1589] cpat: add linux-aarch64 build (#49044) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/cpat/meta.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/recipes/cpat/meta.yaml b/recipes/cpat/meta.yaml index 6d65b6398e5eb..b3c44608b4a8c 100644 --- a/recipes/cpat/meta.yaml +++ b/recipes/cpat/meta.yaml @@ -6,8 +6,8 @@ package: version: "{{ version }}" build: - number: 1 - skip: True # [py2k or py > 39] + number: 2 + skip: True # [py > 39] run_exports: - {{ pin_subpackage('cpat', max_pin="x") }} @@ -44,3 +44,7 @@ about: license: GPL-2.0-or-later license_file: LICENSE.txt summary: Coding Potential Assessment Tool + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From 86df8ec118e4960adb7159c6e0ffafebb347b755 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 9 Jul 2024 19:19:16 +0300 Subject: [PATCH 0151/1589] generax: add linux-aarch64 build (#49043) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/generax/build.sh | 4 +++- recipes/generax/meta.yaml | 22 ++++++++++++---------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/recipes/generax/build.sh b/recipes/generax/build.sh index 5b2e98394ac02..7ec5e9ac9e71f 100644 --- a/recipes/generax/build.sh +++ b/recipes/generax/build.sh @@ -1,10 +1,12 @@ #!/bin/bash +set -xe + # pthreads mkdir build pushd build cmake .. - make + make -j ${CPU_COUNT} install -d ${PREFIX}/bin install ../build/bin/generax ${PREFIX}/bin popd diff --git a/recipes/generax/meta.yaml b/recipes/generax/meta.yaml index 0c662c20d3c3d..d3bd3bbf28fd4 100644 --- a/recipes/generax/meta.yaml +++ b/recipes/generax/meta.yaml @@ -12,7 +12,7 @@ source: sha256: unused build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('generax', max_pin="x") }} requirements: @@ -33,17 +33,19 @@ test: about: home: https://github.com/benoitmorel/generax - license: AGPL-3 + license: AGPL-3.0-only license_family: AGPL license_file: LICENSE.txt summary: "GeneRax: a parallel tool for species tree-aware maximum likelihood based gene tree inference under gene duplication, transfer, and loss." extra: - container: - # openmpi needs ssh client - extended-base: true - skip-lints: - # uses submodules - - uses_vcs_url - identifiers: - - doi:10.1101/779066 + additional-platforms: + - linux-aarch64 + container: + # openmpi needs ssh client + extended-base: true + skip-lints: + # uses submodules + - uses_vcs_url + identifiers: + - doi:10.1101/779066 From 274ebf04b1ee840746547542e9eb0773f2ee3299 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 9 Jul 2024 19:19:42 +0300 Subject: [PATCH 0152/1589] ipk: add linux-aarch64 build (#48996) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/ipk/meta.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/recipes/ipk/meta.yaml b/recipes/ipk/meta.yaml index 4820721d2a44e..d64d17598877b 100644 --- a/recipes/ipk/meta.yaml +++ b/recipes/ipk/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('ipk', max_pin="x.x") }} @@ -50,3 +50,6 @@ about: summary: "IPK is a tool for computing phylo-k-mers for a fixed phylogeny." description: "IPK is a tool for computing phylo-k-mers for a fixed phylogeny. Please cite: doi.org/10.1093/bioinformatics/btad692" +extra: + additional-platforms: + - linux-aarch64 From 461cb2c6227bccb425e7ab64f7fbfa61629345a6 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 9 Jul 2024 22:14:50 +0300 Subject: [PATCH 0153/1589] trust4: add linux-aarch64 build (#49035) * trust4: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Try to build with newer samtools that supports linux-aarch64 Signed-off-by: Martin Tzvetanov Grigorov * Use the inlined samtools 0.1.19 for non-x86_64 Signed-off-by: Martin Tzvetanov Grigorov * Use $CC for the build of samtools 0.1.19 on linux-aarch64 Signed-off-by: Martin Tzvetanov Grigorov * Use ./samtools-0.1.19 only when building it, i.e. for linux-aarch64 Signed-off-by: Martin Tzvetanov Grigorov * Use `test -x $PREFIX/bin/{{executable}}`. `which {{executable}}` does not work Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/trust4/build.sh | 17 ++++++++++++++--- recipes/trust4/meta.yaml | 22 +++++++++++++--------- 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/recipes/trust4/build.sh b/recipes/trust4/build.sh index 14a6edf8accf5..0c58f85fd002c 100755 --- a/recipes/trust4/build.sh +++ b/recipes/trust4/build.sh @@ -1,10 +1,21 @@ #!/bin/bash -sed -i.bak 's/-f .\/samtools-0.1.19\/libbam.a/1/' Makefile -make \ +set -xe + +LINKPATH="${LDFLAGS}" +if [ "$(uname -m)" == "x86_64" ]; then + # use samtools 0.1.19 as a dependency + sed -i.bak 's/-f .\/samtools-0.1.19\/libbam.a/1/' Makefile +else + # build the vendored samtools 0.1.19 + sed -i.bak 's/cd samtools-0.1.19 ; make /cd samtools-0.1.19 ; make CC="${CC}" CFLAGS="${CFLAGS} -L${PREFIX}\/lib" LDFLAGS="${LDFLAGS}" LIBPATH="-L${PREFIX}\/lib"/' Makefile + LINKPATH="${LDFLAGS} -I./samtools-0.1.19 -L./samtools-0.1.19" +fi + +make -j ${CPU_COUNT} \ CXX="${CXX}" \ CXXFLAGS="${CXXFLAGS} -Wformat -O3" \ - LINKPATH="${LDFLAGS} -I./samtools-0.1.19" + LINKPATH="${LINKPATH}" install -d "${PREFIX}/bin" install trust4 fastq-extractor bam-extractor annotator run-trust4 \ trust-simplerep.pl trust-barcoderep.pl trust-smartseq.pl trust-airr.pl \ diff --git a/recipes/trust4/meta.yaml b/recipes/trust4/meta.yaml index b80e36056574d..d71466e7da114 100644 --- a/recipes/trust4/meta.yaml +++ b/recipes/trust4/meta.yaml @@ -5,7 +5,7 @@ package: version: '{{ version }}' build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('trust4', max_pin="x") }} @@ -19,7 +19,7 @@ requirements: - {{ compiler('cxx') }} - {{ compiler('c') }} host: - - samtools 0.1.19.* + - samtools 0.1.19.* # [x86_64] - zlib run: - perl @@ -30,13 +30,13 @@ test: - fastq-extractor 2>&1 | cat > /dev/null - bam-extractor 2>&1 | cat > /dev/null - annotator 2>&1 | cat > /dev/null - - which trust-simplerep.pl - - which trust-barcoderep.pl - - which trust-smartseq.pl - - which trust-airr.pl - - which BuildDatabaseFa.pl - - which BuildImgtAnnot.pl - - which run-trust4 + - test -x ${PREFIX}/bin/trust-simplerep.pl + - test -x ${PREFIX}/bin/trust-barcoderep.pl + - test -x ${PREFIX}/bin/trust-smartseq.pl + - test -x ${PREFIX}/bin/trust-airr.pl + - test -x ${PREFIX}/bin/BuildDatabaseFa.pl + - test -x ${PREFIX}/bin/BuildImgtAnnot.pl + - test -x ${PREFIX}/bin/run-trust4 about: home: https://github.com/liulab-dfci/TRUST4 @@ -44,3 +44,7 @@ about: license: GPL-3.0-only license_family: GPL3 license_file: LICENSE.txt + +extra: + additional-platforms: + - linux-aarch64 From 4b67d87f762cd5c52b0d7c4ca36c7d27d3754ee5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 15:14:57 -0400 Subject: [PATCH 0154/1589] Update multiqc to 1.23 (#49055) --- recipes/multiqc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/multiqc/meta.yaml b/recipes/multiqc/meta.yaml index 6fed175b273f5..05c07f9b53a31 100644 --- a/recipes/multiqc/meta.yaml +++ b/recipes/multiqc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "multiqc" %} -{% set version = "1.22.3" %} +{% set version = "1.23" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/MultiQC/MultiQC/archive/v{{ version }}.tar.gz - sha256: b9055c561459bd7e0a4869a6c7d83c7d9f8f31310be6e4ceaaebcdf93c05ae73 + sha256: 1f874e3bdaf3f183ff474126e76791e420732764c2988d8074b826d92aa7282a build: number: 0 From 28047dd6504642979b9ed6dbdd3f61cf1b7dfbb0 Mon Sep 17 00:00:00 2001 From: richard-burhans Date: Tue, 9 Jul 2024 15:18:43 -0400 Subject: [PATCH 0155/1589] removing old files. testing build without no_static.patch (#49053) * removing old files. testing build without no_static.patch * resetting build to 0 --------- Co-authored-by: Richard C. Burhans --- recipes/ncbi-fcs-gx/0.4.1/aria_split_16.patch | 26 ----------- recipes/ncbi-fcs-gx/0.4.1/build.sh | 18 -------- recipes/ncbi-fcs-gx/0.4.1/meta.yaml | 41 ----------------- recipes/ncbi-fcs-gx/0.5.0/aria_split_16.patch | 26 ----------- recipes/ncbi-fcs-gx/0.5.0/build.sh | 13 ------ recipes/ncbi-fcs-gx/0.5.0/meta.yaml | 45 ------------------- recipes/ncbi-fcs-gx/0.5.0/no_static.patch | 10 ----- recipes/ncbi-fcs-gx/aria_split_16.patch | 26 ----------- recipes/ncbi-fcs-gx/no_static.patch | 10 ----- 9 files changed, 215 deletions(-) delete mode 100755 recipes/ncbi-fcs-gx/0.4.1/aria_split_16.patch delete mode 100644 recipes/ncbi-fcs-gx/0.4.1/build.sh delete mode 100644 recipes/ncbi-fcs-gx/0.4.1/meta.yaml delete mode 100755 recipes/ncbi-fcs-gx/0.5.0/aria_split_16.patch delete mode 100644 recipes/ncbi-fcs-gx/0.5.0/build.sh delete mode 100644 recipes/ncbi-fcs-gx/0.5.0/meta.yaml delete mode 100644 recipes/ncbi-fcs-gx/0.5.0/no_static.patch delete mode 100755 recipes/ncbi-fcs-gx/aria_split_16.patch delete mode 100644 recipes/ncbi-fcs-gx/no_static.patch diff --git a/recipes/ncbi-fcs-gx/0.4.1/aria_split_16.patch b/recipes/ncbi-fcs-gx/0.4.1/aria_split_16.patch deleted file mode 100755 index dbc30ef59b262..0000000000000 --- a/recipes/ncbi-fcs-gx/0.4.1/aria_split_16.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/scripts/sync_files.py b/scripts/sync_files.py -index 3c404d37..2d87a87e 100755 ---- a/scripts/sync_files.py -+++ b/scripts/sync_files.py -@@ -360,16 +360,18 @@ def check_space(mft, dir): - def download_file_with_aria(url, file_path): - - aria_config = file_path.with_suffix(".aria2_config") -+ num_connections = 4 if "ncbi.nlm.nih.gov" in url else 16 -+ - with open(aria_config, "w", encoding="ascii") as f: -- f.write(""" -+ f.write(f""" - file-allocation=none - check-certificate=false - allow-overwrite=true - auto-file-renaming=false - max-tries=5 -- max-connection-per-server=5 -- max-concurrent-downloads=5 -- split=5 -+ max-concurrent-downloads=2 -+ max-connection-per-server={num_connections} -+ split={num_connections} - console-log-level=warn - """) diff --git a/recipes/ncbi-fcs-gx/0.4.1/build.sh b/recipes/ncbi-fcs-gx/0.4.1/build.sh deleted file mode 100644 index 1597a84f75f1d..0000000000000 --- a/recipes/ncbi-fcs-gx/0.4.1/build.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash -e -set -uex - -mkdir -vp ${PREFIX}/bin - -ls -l . - -$GCC --version -$GCC -print-search-dirs - -#cd fcs-gx-0.4.0 -make VERBOSE=1 - -cp $SRC_DIR/build/src/gx ${PREFIX}/bin/ -cp $SRC_DIR/scripts/* ${PREFIX}/bin/ -cp $SRC_DIR/make_gxdb/blast_names_mapping.tsv ${PREFIX}/bin/ -chmod ua+x ${PREFIX}/bin/gx - diff --git a/recipes/ncbi-fcs-gx/0.4.1/meta.yaml b/recipes/ncbi-fcs-gx/0.4.1/meta.yaml deleted file mode 100644 index b4503a798fb23..0000000000000 --- a/recipes/ncbi-fcs-gx/0.4.1/meta.yaml +++ /dev/null @@ -1,41 +0,0 @@ -package: - name: ncbi-fcs-gx - version: 0.4.1 - -source: - url: https://github.com/ncbi/fcs-gx/archive/refs/tags/v0.4.1.zip - sha256: 7bedb6a43945df4821d3e23fd1c5c4bf117cd70001cb96b310d177f0fd049a6b - patches: - - aria_split_16.patch - -requirements: - build: - - {{ compiler('cxx') }} - - make - - cmake - - libstdcxx-ng - - libgcc-ng - run: - - python >=3.9 - - aria2 =1.36.0 - - gzip >=1.5 - - pv >=1.4.6 - - rclone =1.61.1 - - grep >=3.4 - -build: - number: 1 - skip: True # [not linux or not x86_64] - run_exports: - - {{ pin_compatible('nxbi-fcs-gx', max_pin="x.x") }} - -test: - commands: - - gx --help - -about: - home: https://github.com/ncbi/fcs - summary: The NCBI Foreign Contamination Screen. Genomic cross-species aligner, for contamination detection. - license: NCBI-PD - license_url: https://github.com/ncbi/fcs/blob/main/LICENSE.txt - diff --git a/recipes/ncbi-fcs-gx/0.5.0/aria_split_16.patch b/recipes/ncbi-fcs-gx/0.5.0/aria_split_16.patch deleted file mode 100755 index dbc30ef59b262..0000000000000 --- a/recipes/ncbi-fcs-gx/0.5.0/aria_split_16.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/scripts/sync_files.py b/scripts/sync_files.py -index 3c404d37..2d87a87e 100755 ---- a/scripts/sync_files.py -+++ b/scripts/sync_files.py -@@ -360,16 +360,18 @@ def check_space(mft, dir): - def download_file_with_aria(url, file_path): - - aria_config = file_path.with_suffix(".aria2_config") -+ num_connections = 4 if "ncbi.nlm.nih.gov" in url else 16 -+ - with open(aria_config, "w", encoding="ascii") as f: -- f.write(""" -+ f.write(f""" - file-allocation=none - check-certificate=false - allow-overwrite=true - auto-file-renaming=false - max-tries=5 -- max-connection-per-server=5 -- max-concurrent-downloads=5 -- split=5 -+ max-concurrent-downloads=2 -+ max-connection-per-server={num_connections} -+ split={num_connections} - console-log-level=warn - """) diff --git a/recipes/ncbi-fcs-gx/0.5.0/build.sh b/recipes/ncbi-fcs-gx/0.5.0/build.sh deleted file mode 100644 index 1f6b00d23102a..0000000000000 --- a/recipes/ncbi-fcs-gx/0.5.0/build.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -e -set -uex - -mkdir -vp ${PREFIX}/bin - -make VERBOSE=1 -j ${CPU_COUNT} - -cp $SRC_DIR/build/src/gx ${PREFIX}/bin/ -cp $SRC_DIR/scripts/* ${PREFIX}/bin/ -cp $SRC_DIR/make_gxdb/blast_names_mapping.tsv ${PREFIX}/bin/ - -chmod ua+x ${PREFIX}/bin/gx - diff --git a/recipes/ncbi-fcs-gx/0.5.0/meta.yaml b/recipes/ncbi-fcs-gx/0.5.0/meta.yaml deleted file mode 100644 index 1173cc87b9678..0000000000000 --- a/recipes/ncbi-fcs-gx/0.5.0/meta.yaml +++ /dev/null @@ -1,45 +0,0 @@ -package: - name: ncbi-fcs-gx - version: 0.5.0 - -source: - url: https://github.com/ncbi/fcs-gx/archive/refs/tags/v0.5.0.zip - sha256: 2f6b6099584495e1a9115403a5e4cb5f5dac1ddbbc691da9a3158a75391ffe8a - patches: - - aria_split_16.patch - - no_static.patch - - -requirements: - build: - - {{ compiler('cxx') }} - - make - - cmake - - libstdcxx-ng <=12.2 - - libgcc-ng <=12.2 - run: - - python >=3.9 - - aria2 =1.36.0 - - gzip >=1.5 - - pv >=1.4.6 - - rclone =1.61.1 - - grep >=3.4 - -build: - number: 3 - skip: True # [not linux or not x86_64] - run_exports: - - {{ pin_compatible('ncbi-fcs-gx', max_pin="x.x") }} - -test: - commands: - - gx --help - - ls -l ${PREFIX}/bin/ - - ${PREFIX}/bin/gx --help - -about: - home: https://github.com/ncbi/fcs - summary: The NCBI Foreign Contamination Screen. Genomic cross-species aligner, for contamination detection. - license: NCBI-PD - license_url: https://github.com/ncbi/fcs/blob/main/LICENSE.txt - diff --git a/recipes/ncbi-fcs-gx/0.5.0/no_static.patch b/recipes/ncbi-fcs-gx/0.5.0/no_static.patch deleted file mode 100644 index 8d8e22f22579e..0000000000000 --- a/recipes/ncbi-fcs-gx/0.5.0/no_static.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -5,6 +5,6 @@ - set(gx_VERSION_MINOR 0) - - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -O0 -ggdb3 -DDEBUG") --set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -static -O2 -DNDEBUG") # TODO: investigate whether can/should enable -march=x86-64-v4 -+set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -O2 -DNDEBUG") # TODO: investigate whether can/should enable -march=x86-64-v4 - - add_subdirectory(src) diff --git a/recipes/ncbi-fcs-gx/aria_split_16.patch b/recipes/ncbi-fcs-gx/aria_split_16.patch deleted file mode 100755 index dbc30ef59b262..0000000000000 --- a/recipes/ncbi-fcs-gx/aria_split_16.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/scripts/sync_files.py b/scripts/sync_files.py -index 3c404d37..2d87a87e 100755 ---- a/scripts/sync_files.py -+++ b/scripts/sync_files.py -@@ -360,16 +360,18 @@ def check_space(mft, dir): - def download_file_with_aria(url, file_path): - - aria_config = file_path.with_suffix(".aria2_config") -+ num_connections = 4 if "ncbi.nlm.nih.gov" in url else 16 -+ - with open(aria_config, "w", encoding="ascii") as f: -- f.write(""" -+ f.write(f""" - file-allocation=none - check-certificate=false - allow-overwrite=true - auto-file-renaming=false - max-tries=5 -- max-connection-per-server=5 -- max-concurrent-downloads=5 -- split=5 -+ max-concurrent-downloads=2 -+ max-connection-per-server={num_connections} -+ split={num_connections} - console-log-level=warn - """) diff --git a/recipes/ncbi-fcs-gx/no_static.patch b/recipes/ncbi-fcs-gx/no_static.patch deleted file mode 100644 index 8d8e22f22579e..0000000000000 --- a/recipes/ncbi-fcs-gx/no_static.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -5,6 +5,6 @@ - set(gx_VERSION_MINOR 0) - - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -O0 -ggdb3 -DDEBUG") --set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -static -O2 -DNDEBUG") # TODO: investigate whether can/should enable -march=x86-64-v4 -+set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -O2 -DNDEBUG") # TODO: investigate whether can/should enable -march=x86-64-v4 - - add_subdirectory(src) From 5cc825ca3813fa09e2be5bcdb1977696bba01315 Mon Sep 17 00:00:00 2001 From: Lee Katz Date: Tue, 9 Jul 2024 15:19:44 -0400 Subject: [PATCH 0156/1589] Sneakernet-qc (#49052) * perl-bio-seqfeature * address errors for bld.bat and having tests * new download instructions; added src tsv and dmp files to build * new download instructions; added src tsv and dmp files to build * remove perl-bio-seqfeature * merged changes * merge * sneakernet v0.27 * ignore kalamari changes * corrected shasum * ignore kalamari changes * negate kalamari artifacts --- recipes/sneakernet-qc/meta.yaml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/recipes/sneakernet-qc/meta.yaml b/recipes/sneakernet-qc/meta.yaml index 7f0f666dbb590..541ebf9d9e863 100644 --- a/recipes/sneakernet-qc/meta.yaml +++ b/recipes/sneakernet-qc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "sneakernet-qc" %} -{% set version = "0.26.0" %} +{% set version = "0.27.0" %} package: name: {{ name }} @@ -13,7 +13,7 @@ build: source: url: https://github.com/lskatz/sneakernet/archive/v{{ version }}.tar.gz - sha256: 668a4a8d5afe9eb882f784f6b85e8917c913ff9763180919608313f3b026caf8 + sha256: 4fd8c041f5c18ea0392c2734f7a09c136ccbb4662afaea7a7f189ca0ca63ddc4 test: commands: @@ -51,8 +51,7 @@ requirements: - krona - lighter - make - # - perl-bio-kmer # remove because requires jellyfish2 which is in conflict with kraken1 - # - lskatz::perl-text-fuzzy + - perl-text-levenshtein >=0.15 - mash >=2 - megahit - mlst From bc6208ec9da53372edfb8f47eb47baec0eae6b11 Mon Sep 17 00:00:00 2001 From: Devon Ryan Date: Tue, 9 Jul 2024 21:19:52 +0200 Subject: [PATCH 0157/1589] Patch odgi for bugfix (#49021) * Debug odgi munmap_chunk in python * patch for stl * Need to LD_PRELOAD libjemalloc or we get a segfault@ --------- Co-authored-by: Devon Ryan --- recipes/odgi/meta.yaml | 4 +++- recipes/odgi/patch | 12 ++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 recipes/odgi/patch diff --git a/recipes/odgi/meta.yaml b/recipes/odgi/meta.yaml index 2302747d1b450..f75494a207e1f 100644 --- a/recipes/odgi/meta.yaml +++ b/recipes/odgi/meta.yaml @@ -8,10 +8,12 @@ package: source: url: https://github.com/pangenome/{{ name }}/releases/download/v{{ version }}/{{ name }}-v{{ version }}.tar.gz sha256: a6db190b782608082b14b42c660389aa18010791de1e2d07e29f7f61d8787754 + patches: + - patch build: skip: True # [osx or py27] - number: 1 + number: 2 run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} diff --git a/recipes/odgi/patch b/recipes/odgi/patch new file mode 100644 index 0000000000000..f5e417a8ecd37 --- /dev/null +++ b/recipes/odgi/patch @@ -0,0 +1,12 @@ +diff --git a/src/pythonmodule.cpp b/src/pythonmodule.cpp +index 6a7942b..e38b12b 100644 +--- a/src/pythonmodule.cpp ++++ b/src/pythonmodule.cpp +@@ -5,6 +5,7 @@ + #include + #include + #include ++#include + + namespace py = pybind11; + From 78a75d86cb49d8866a499ea97e39522b95bc141e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 15:22:19 -0400 Subject: [PATCH 0158/1589] Update cpstools to 1.0.11 (#48982) * Update cpstools to 1.0.6 * Update cpstools to 1.0.8 * Update cpstools to 1.0.10 * Update cpstools to 1.0.11 * clean up recipe * add home URL --------- Co-authored-by: mencian --- recipes/cpstools/build.sh | 3 -- recipes/cpstools/meta.yaml | 66 ++++++++++++++++++++++---------------- 2 files changed, 39 insertions(+), 30 deletions(-) delete mode 100644 recipes/cpstools/build.sh diff --git a/recipes/cpstools/build.sh b/recipes/cpstools/build.sh deleted file mode 100644 index 04547dc83fe20..0000000000000 --- a/recipes/cpstools/build.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -$PYTHON setup.py install --single-version-externally-managed --record=record.txt \ No newline at end of file diff --git a/recipes/cpstools/meta.yaml b/recipes/cpstools/meta.yaml index 0004e60bd506b..1d49cc214a881 100644 --- a/recipes/cpstools/meta.yaml +++ b/recipes/cpstools/meta.yaml @@ -1,37 +1,49 @@ +{% set name = "cpstools" %} +{% set version = "1.0.11" %} +{% set sha256 = "035420514fad0af1e0e06bd6f8932e9fe74e642aa97250b7279e7ce9009b5a31" %} + package: - name: cpstools - version: 1.0.0 + name: {{ name|lower }} + version: {{ version }} source: - url: "https://files.pythonhosted.org/packages/2b/97/6614cf90ac95ac650bd2561405c2dbb69264548e7b3a5e7b0a8c2c86a07a/cpstools-1.0.1.tar.gz" - sha256: 7aafded5255edd3be05b1ba4eff94a74f12d37c4b59a177a2696cea90985b35a + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/cpstools-{{ version }}.tar.gz + sha256: {{ sha256 }} build: - number: 0 - noarch: python - run_exports: - - {{ pin_subpackage('cpstools', max_pin="x") }} - entry_points: - - cpstools = cpstools.cmdline:main + entry_points: + - cpstools = cpstools.cmdline:main + noarch: python + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + number: 0 + run_exports: + - {{ pin_subpackage('cpstools', max_pin="x") }} requirements: - build: - - python >=3.8 - - setuptools - run: - - python >=3.8 - - numpy >=1.24 - - biopython >=1.83 - + host: + - python >=3.10 + - poetry-core + - pip + run: + - python >=3.10.0 + - biopython >=1.84.0 + - numpy >=1.26.4 + test: - imports: - - cpstools - - commands: - - cpstools -h + imports: + - cpstools + commands: + - cpstools --help about: - home: https://github.com/Xwb7533/CPStools - license: MIT - summary: "CPStools is a package for analyzing chloroplast genome sequences." - description: "CPStools is a package for analyzing chloroplast genome sequences." + home: "https://github.com/Xwb7533/CPStools" + summary: "CPStools is a package for analyzing chloroplast genome sequences." + license: MIT + license_family: MIT + license_file: LICENSE + description: "CPStools is a package for analyzing chloroplast genome sequences." + dev_url: "https://github.com/Xwb7533/CPStools" + +extra: + recipe-maintainers: + - mencian From fd7a6da01e5314a93d835ca9caa9fd30719d9fef Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 15:22:34 -0400 Subject: [PATCH 0159/1589] Update phylornn to 1.1 (#48988) * Update phylornn to 1.1 * add ete3 --------- Co-authored-by: mencian --- recipes/phylornn/meta.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/recipes/phylornn/meta.yaml b/recipes/phylornn/meta.yaml index fd87847f297f0..a1331f7fd74c9 100644 --- a/recipes/phylornn/meta.yaml +++ b/recipes/phylornn/meta.yaml @@ -1,29 +1,29 @@ -{% set version = "1.0" %} # Remember to also update sha256 below -{% set sha256 = "3c78cff8031dff8f428c4ec2942d03404a9218cbd138cff85b4614020c531d78" %} +{% set version = "1.1" %} # Remember to also update sha256 below +{% set sha256 = "b06e459ca0d525b37d2b64b9922b1a743b126fca4641bf7512ae349325467bbe" %} package: name: phylornn version: {{ version }} source: - url: https://github.com/phyloRNN/phyloRNN/archive/refs/tags/v{{ version }}.tar.gz + url: https://github.com/phyloRNN/phyloRNN/archive/refs/tags/v{{ version }}.tar.gz sha256: {{ sha256 }} build: noarch: python number: 0 - script: {{ PYTHON }} -m pip install . -vv + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv run_exports: - {{ pin_subpackage('phylornn', max_pin="x") }} requirements: host: - python >=3.8 - # - setuptools + - pip run: - python >=3.8 - numpy >=1.23.1,<1.24 - - seaborn >=0.11.2,<0.12 + - seaborn-base >=0.11.2,<0.12 - matplotlib-base >=3.5.2,<3.6 - pandas >=1.4.3,<1.5 - scipy >=1.8.1,<1.9 @@ -33,6 +33,7 @@ requirements: - seq-gen >=1.3.0,<1.4 - phyml >=3.3.0,<3.4 - biopython >=1.81,<2 + - ete3 test: imports: @@ -43,4 +44,3 @@ about: license: LPGL-2.1-only license_family: LGPL summary: PhyloRNN - From 35437cd4955b84d8173e3acf5657696c2fdefd61 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 15:39:19 -0400 Subject: [PATCH 0160/1589] Update vamos to 2.1.2 (#49056) --- recipes/vamos/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/vamos/meta.yaml b/recipes/vamos/meta.yaml index f682f257b4f28..1e9e60cb01f74 100644 --- a/recipes/vamos/meta.yaml +++ b/recipes/vamos/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.1.1" %} +{% set version = "2.1.2" %} {% set name = "vamos" %} package: @@ -7,11 +7,11 @@ package: source: url: https://github.com/ChaissonLab/vamos/archive/refs/tags/vamos-v{{ version }}.tar.gz - sha256: 2ddd1d0eee9df8090d1a920334154bc3909bddf2a605125a947c8b1da32516aa + sha256: 6c3f7b667daec2723ce970bb6b9dba9f9c2f5ba7379dbd57b3a9068d72251c46 build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage(name, max_pin='x') }} From ac6d23c9d6cf09b867d24b509b3f97f743004ec2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 16:35:17 -0400 Subject: [PATCH 0161/1589] Update selene-sdk to 0.5.3 (#49054) * Update selene-sdk to 0.5.2 * Update selene-sdk to 0.5.3 --- recipes/selene-sdk/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/selene-sdk/meta.yaml b/recipes/selene-sdk/meta.yaml index acaeef01b7fab..663dafc365e8b 100644 --- a/recipes/selene-sdk/meta.yaml +++ b/recipes/selene-sdk/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.5.0" %} +{% set version = "0.5.3" %} package: name: selene-sdk @@ -6,10 +6,10 @@ package: source: url: https://github.com/FunctionLab/selene/archive/refs/tags/{{ version }}.tar.gz - sha256: daa7969fc99f6ffa00dda2f7657442f4a1d84771b7a83c8b3464db0221ca8b32 + sha256: 2b895b29e7be9fee47d2ae21cb5a82e5cfb32e56a32a7367ec0ce0020051ddf7 build: - number: 5 + number: 0 script: python setup.py install --single-version-externally-managed --record=record.txt run_exports: - {{ pin_subpackage("selene-sdk", max_pin="x.x") }} From 32d43f8d134e8441952561b950bb329658373b7a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 16:55:07 -0400 Subject: [PATCH 0162/1589] Update ucsc-cell-browser to 1.2.8 (#49057) --- recipes/ucsc-cell-browser/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ucsc-cell-browser/meta.yaml b/recipes/ucsc-cell-browser/meta.yaml index fef5654535f84..a934f9f917891 100644 --- a/recipes/ucsc-cell-browser/meta.yaml +++ b/recipes/ucsc-cell-browser/meta.yaml @@ -1,4 +1,4 @@ -{% set version = '1.2.7' %} +{% set version = '1.2.8' %} {% set name = "cellbrowser" %} package: @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: "67b1c96db001ba4bf1a126a4923d404e1edc6a2dd344b2b15cf70b96f1f338f5" + sha256: "2fe4a16c8b9daaa04be6d168c187e2c3561d66513600e9e5c847f8539bf4ba4d" build: number: 0 From 2eff3329b2d07b523977b3cbc51eb840a65fb857 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 01:03:12 -0400 Subject: [PATCH 0163/1589] Update physher to 2.0.1 (#49066) --- recipes/physher/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/physher/meta.yaml b/recipes/physher/meta.yaml index 7c864f1e5360d..43d23ed5a48e8 100644 --- a/recipes/physher/meta.yaml +++ b/recipes/physher/meta.yaml @@ -1,5 +1,5 @@ {% set name = "physher" %} -{% set version = "2.0.0" %} +{% set version = "2.0.1" %} package: name: "{{ name|lower }}" @@ -12,7 +12,7 @@ build: source: url: https://github.com/4ment/physher/archive/refs/tags/v{{ version }}.tar.gz - sha256: 89de0789af1136ca9a08f009b1db45d441bcb1d4ea7519103a998916b37c618f + sha256: b87a69f49a81401e02cde0c99331f6ddbb10b53c8b4e671419510fb3093796d4 requirements: From cdb76148ecaa52b453f3f5ad8d75da2387579576 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 01:03:44 -0400 Subject: [PATCH 0164/1589] Update pharokka to 1.7.3 (#49064) --- recipes/pharokka/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pharokka/meta.yaml b/recipes/pharokka/meta.yaml index 063f5f8b190f6..d7af0ffffce0f 100644 --- a/recipes/pharokka/meta.yaml +++ b/recipes/pharokka/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "1.7.2" %} +{% set version = "1.7.3" %} {% set name = "pharokka" %} -{% set sha256 = "2e58e1d15c40d9ac03a0136e1f41ddef0b819e9a8172ee429bdaf5ad1353f78b" %} +{% set sha256 = "52b35358babd46ea2b8ed152e2bfd5486f898fef5163b7c206f65de804d77f9b" %} {% set user = "gbouras13" %} package: From 0fa5758117996b2bc831db31229a9a3ba6721c4f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 01:04:40 -0400 Subject: [PATCH 0165/1589] Update t1k to 1.0.6 (#49063) --- recipes/t1k/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/t1k/meta.yaml b/recipes/t1k/meta.yaml index 8a80c8f20c3f9..4a4914fe77fe5 100644 --- a/recipes/t1k/meta.yaml +++ b/recipes/t1k/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.0.5" %} +{% set version = "1.0.6" %} package: name: t1k @@ -11,7 +11,7 @@ build: source: url: https://github.com/mourisl/T1K/archive/v{{ version }}.tar.gz - sha256: 8230d732ec92f66ca7dedb5786e8823d5def8c00dd020d9b99a889de8ed849e3 + sha256: 4b2a7ac9e7c5813380f60bb65d6c3b8995474217c9c90364f1e1206c6f8ab420 requirements: build: From defda83c45a20b9a39d56988b7fa5ab25ec76636 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 01:07:55 -0400 Subject: [PATCH 0166/1589] Update vamos to 2.1.3 (#49060) --- recipes/vamos/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/vamos/meta.yaml b/recipes/vamos/meta.yaml index 1e9e60cb01f74..57f68480e8002 100644 --- a/recipes/vamos/meta.yaml +++ b/recipes/vamos/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.1.2" %} +{% set version = "2.1.3" %} {% set name = "vamos" %} package: @@ -7,7 +7,7 @@ package: source: url: https://github.com/ChaissonLab/vamos/archive/refs/tags/vamos-v{{ version }}.tar.gz - sha256: 6c3f7b667daec2723ce970bb6b9dba9f9c2f5ba7379dbd57b3a9068d72251c46 + sha256: 7925787ae9cbe214b0eb94b494e393f7fc48c318a884ab106470d7034101b14f build: From 91935bbe59e75c273657ebcafafc20999c0ed6eb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 01:08:57 -0400 Subject: [PATCH 0167/1589] Update nextflow to 24.04.3 (#49058) --- recipes/nextflow/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/nextflow/meta.yaml b/recipes/nextflow/meta.yaml index 02b05a70e1e66..68e2ac3b81319 100644 --- a/recipes/nextflow/meta.yaml +++ b/recipes/nextflow/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "24.04.2" %} -{% set sha256 = "19fb76325146dddc8d09695bab108de77df76aa31c98bf8894f0a764e6b88dc3" %} +{% set version = "24.04.3" %} +{% set sha256 = "e258f6395a38f044eb734cba6790af98b561aa521f63e2701fe95c050986e11c" %} package: name: nextflow From 12cbbc5262c356a52123872970358546ce0fff9f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 03:16:54 -0400 Subject: [PATCH 0168/1589] Update hmftools-cuppa to 2.2.1 (#48501) * Update hmftools-cuppa to 2.2.0 * Update hmftools-cuppa to 2.2.1 * Remove CUPPA chart BASH script * Add pycuppa * Fix classpath regex in CUPPA BASH script * Update dependencies * Update/add tests * Do not create build variants for Python <3.9 * Set arch to python to enable variant build skip * Set correct use of noarch and version pinning * Set noarch python * Revert to noarch: generic and pin Python version --------- Co-authored-by: Stephen Watts --- recipes/hmftools-cuppa/build.sh | 6 ++--- recipes/hmftools-cuppa/cuppa-chart.sh | 23 ------------------ recipes/hmftools-cuppa/cuppa.sh | 2 +- recipes/hmftools-cuppa/meta.yaml | 34 ++++++++++++++------------- 4 files changed, 21 insertions(+), 44 deletions(-) delete mode 100755 recipes/hmftools-cuppa/cuppa-chart.sh diff --git a/recipes/hmftools-cuppa/build.sh b/recipes/hmftools-cuppa/build.sh index a11f515c544f5..0cd12bf1a92f0 100644 --- a/recipes/hmftools-cuppa/build.sh +++ b/recipes/hmftools-cuppa/build.sh @@ -6,9 +6,7 @@ TGT="$PREFIX/share/$PKG_NAME-$PKG_VERSION-$PKG_BUILDNUM" cd "${SRC_DIR}" mv jar/cuppa*.jar $TGT/cuppa.jar -mv src/cuppa/src/main/resources/cuppa-chart/* $TGT/chart/ +${PYTHON} -m pip install --no-build-isolation --no-deps --no-cache-dir -vvv src/cuppa/src/main/python/pycuppa/ cp $RECIPE_DIR/cuppa.sh $TGT/cuppa -cp $RECIPE_DIR/cuppa-chart.sh $TGT/cuppa-chart -ln -s $TGT/cuppa{,-chart} ${PREFIX}/bin/ -chmod 0755 ${PREFIX}/bin/cuppa{,-chart} +ln -s $TGT/cuppa ${PREFIX}/bin/ diff --git a/recipes/hmftools-cuppa/cuppa-chart.sh b/recipes/hmftools-cuppa/cuppa-chart.sh deleted file mode 100755 index 98ffa9f9ad790..0000000000000 --- a/recipes/hmftools-cuppa/cuppa-chart.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -# hmftools CUPPA chart executable shell script -# https://github.com/hartwigmedical/hmftools/tree/master/cuppa -set -eu -o pipefail - -export LC_ALL=en_US.UTF-8 - -# Find original directory of bash script, resolving symlinks -# http://stackoverflow.com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in/246128#246128 -SOURCE="${BASH_SOURCE[0]}" -while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink - DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )" - SOURCE="$(readlink "$SOURCE")" - [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located -done -DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )" - -ENV_PREFIX="$(dirname $(dirname $DIR))" -# Use Python installed with Anaconda to ensure correct version -python="$ENV_PREFIX/bin/python" - -# Run with argument passthrough -eval ${python} ${DIR}/chart/cuppa-chart.py ${@} diff --git a/recipes/hmftools-cuppa/cuppa.sh b/recipes/hmftools-cuppa/cuppa.sh index 33e257cb82296..d3300113ab61b 100755 --- a/recipes/hmftools-cuppa/cuppa.sh +++ b/recipes/hmftools-cuppa/cuppa.sh @@ -60,7 +60,7 @@ if [ "$jvm_mem_opts" == "" ]; then fi pass_arr=($pass_args) -if [[ ${pass_arr[0]:=} == org* ]] +if [[ ${pass_arr[0]:=} == com.hartwig.* ]] then eval "$java" $jvm_mem_opts $jvm_prop_opts -cp "$JAR_DIR/cuppa.jar" $pass_args else diff --git a/recipes/hmftools-cuppa/meta.yaml b/recipes/hmftools-cuppa/meta.yaml index 11c76e5964d28..0b3ed8f2b8aa6 100644 --- a/recipes/hmftools-cuppa/meta.yaml +++ b/recipes/hmftools-cuppa/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "2.1.1" %} -{% set sha256_jar = "3d1eadc1b6f270358a182a2dd41f17ae0db745abb43ef4b9f2f56b03c2ae9f6d" %} -{% set sha256_src = "97ae8cab9e6631ce3b31e84ddf3242eabb5613f4a2ca5dda535e9aadbdf4bf99" %} +{% set version = "2.2.1" %} +{% set sha256_jar = "38669b46befd678059426342b9c71ec3a2b007d850174e132e42ec7cd13e8752" %} +{% set sha256_src = "eb27b92670999bd8825305496508df63da56d59569e8eb64ed93bd814e6d35c3" %} package: name: hmftools-cuppa @@ -21,26 +21,28 @@ build: - {{ pin_subpackage("hmftools-cuppa", max_pin="x.x") }} requirements: + host: + - python ==3.11 + - r-base >=4.2,<4.3.0a0 run: - openjdk >=8 - - r-base >=4 - - r-cowplot - - r-ggplot2 - - r-gridextra - - r-stringi - - r-tidyr - - matplotlib-base >=3.3,<4 - - numpy >=1.19,<2 - - pandas >=1.1,<2 - - scipy >=1,<2 - - seaborn >=0.11,<1 + - python ==3.11 + - numpy >=1.24 + - pandas ==2.0.* + - scikit-learn ==1.3.0 + - r-base >=4.2,<4.3.0a0 + - r-ggh4x >=0.2 + - r-ggplot2 >=3.5 + - r-patchwork >=1.2 + - r-stringr >=1.5 test: commands: - - 'cuppa | grep "missing required config: ref_data_dir: Reference data directory"' + - 'cuppa com.hartwig.hmftools.cup.prep.CuppaDataPrep -version | grep "Cuppa version"' + - 'python -m cuppa.predict 2>&1 | grep "predict.py:"' about: home: https://github.com/hartwigmedical/hmftools/blob/master/cuppa/README.md license: GPL-3.0-only license_family: GPL3 - summary: Predict tissue of origin for tumor samples from WGTS data. \ No newline at end of file + summary: Predict tissue of origin for tumor samples from WGTS data. From 6f69b1e8f03a8599c286bb79ba0a90e0ce0f0b2a Mon Sep 17 00:00:00 2001 From: Kez Cleal <42997789+kcleal@users.noreply.github.com> Date: Wed, 10 Jul 2024 12:10:10 +0100 Subject: [PATCH 0169/1589] Gw v0.10.0 (#49007) * GW v0.10.0 * Gw v0.10.0 * Update meta.yaml * Update meta.yaml * Update meta.yaml * Create fix-linker-issues.patch * Update meta.yaml * Update fix-linker-issues.patch * Update fix-linker-issues.patch * Update fix-linker-issues.patch * Update fix-linker-issues.patch * Update fix-linker-issues.patch * Update fix-linker-issues.patch * Update meta.yaml * Update build.sh * Update build.sh * Update build.sh * Update build.sh * Create fix-ldflags.patch * Update meta.yaml * Update fix-ldflags.patch * Update meta.yaml * trigger re build * Update recipes/gw/build.sh Co-authored-by: Martin Grigorov --------- Co-authored-by: Martin Grigorov --- recipes/gw/build.sh | 3 ++- recipes/gw/fix-ldflags.patch | 5 +++++ recipes/gw/fix-linker-issues.patch | 5 +++++ recipes/gw/meta.yaml | 20 ++++++++++++++------ 4 files changed, 26 insertions(+), 7 deletions(-) create mode 100644 recipes/gw/fix-ldflags.patch create mode 100644 recipes/gw/fix-linker-issues.patch diff --git a/recipes/gw/build.sh b/recipes/gw/build.sh index d04ce0b29c4d9..7fddb127f886d 100644 --- a/recipes/gw/build.sh +++ b/recipes/gw/build.sh @@ -5,9 +5,10 @@ if [[ "$OSTYPE" != "darwin"* ]]; then sed -i 's/-lEGL -lGLESv2/-lGL/' Makefile fi make prep -CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY" make +CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY" LDFLAGS="${LDFLAGS} -L${PREFIX}" prefix="${PREFIX}" make -j ${CPU_COUNT} mkdir -p $PREFIX/bin cp gw $PREFIX/bin/gw cp -n .gw.ini $PREFIX/bin/.gw.ini chmod +x $PREFIX/bin/gw chmod +rw $PREFIX/bin/.gw.ini + diff --git a/recipes/gw/fix-ldflags.patch b/recipes/gw/fix-ldflags.patch new file mode 100644 index 0000000000000..a6ca9f35a7f78 --- /dev/null +++ b/recipes/gw/fix-ldflags.patch @@ -0,0 +1,5 @@ ++++ b/Makefile +@@ -55,1 +55,1 @@ +- LDFLAGS= ++ + diff --git a/recipes/gw/fix-linker-issues.patch b/recipes/gw/fix-linker-issues.patch new file mode 100644 index 0000000000000..b8092058913e6 --- /dev/null +++ b/recipes/gw/fix-linker-issues.patch @@ -0,0 +1,5 @@ +--- a/Makefile ++++ b/Makefile +@@ -132,1 +132,1 @@ +- $(CXX) $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) $(LDLIBS) -o $@ ++ $(CXX) $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) $(LDLIBS) -Wl,-rpath,$(PREFIX)/lib -Wl,-rpath-link,$(PREFIX)/lib -lxcb-glx -lxcb-dri2 -lexpat -o $@ diff --git a/recipes/gw/meta.yaml b/recipes/gw/meta.yaml index 5594f0a8c7aa8..ae43abb52a571 100644 --- a/recipes/gw/meta.yaml +++ b/recipes/gw/meta.yaml @@ -1,6 +1,7 @@ -{% set version = "0.9.3" %} -{% set sha256 = "43445ef6d96bd8a09a9a45cd18e21481d7fefe7e9ab26aec4abd8d1f4bff3fcd" %} +{% set version = "0.10.0" %} +{% set sha256 = "81d9a560152af6d1c45d90336c74ad051edb5ea29bab5b8791c323b1ed3ac608" %} + package: name: gw @@ -10,10 +11,13 @@ package: source: url: https://github.com/kcleal/gw/archive/refs/tags/v{{ version }}.tar.gz sha256: {{ sha256 }} + patches: + - fix-linker-issues.patch # [linux] + - fix-ldflags.patch build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('gw', max_pin="x") }} @@ -29,16 +33,20 @@ requirements: - {{ cdt('libxxf86vm') }} # [linux] - {{ cdt('libxfixes') }} # [linux] - {{ cdt('libxext') }} # [linux] - - wget - - unzip host: - fontconfig + - libuuid - libcurl - libdeflate >=1.0 - htslib >=1.12 - glfw >=3.3 + - wget + - unzip - freetype - - xorg-libxfixes # [linux] + - xorg-libxfixes # [linux] + - xorg-libx11 # [linux] + - xorg-libxcb # [linux] + - expat # [linux] run: - glfw >=3.3 - htslib >=1.12 From 71e8ce72e3a62d419a744dc737ed315d867d0dd5 Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Wed, 10 Jul 2024 13:11:23 +0200 Subject: [PATCH 0170/1589] Fix pathphynder to include auxiliary function files (#49069) * pathphynder: add linux-aarch64 build * Get the reamining function files and patch to point to this * Update recipes/pathphynder/meta.yaml --- recipes/pathphynder/build.sh | 3 +++ recipes/pathphynder/meta.yaml | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/recipes/pathphynder/build.sh b/recipes/pathphynder/build.sh index f76d464e2b5e7..492598857ae17 100644 --- a/recipes/pathphynder/build.sh +++ b/recipes/pathphynder/build.sh @@ -1,3 +1,6 @@ #!/bin/bash +mkdir -p $PREFIX/lib/R/library/pathphynder +cp -r R/ data/ $PREFIX/lib/R/library/pathphynder +sed -i "s#^packpwd<-.*\+\$#packpwd<-'$PREFIX/lib/R/library/pathphynder/R'#g" pathPhynder.R cp pathPhynder.R $PREFIX/bin/pathPhynder diff --git a/recipes/pathphynder/meta.yaml b/recipes/pathphynder/meta.yaml index 3a6b98cfae316..b855b661f24ef 100644 --- a/recipes/pathphynder/meta.yaml +++ b/recipes/pathphynder/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 2 noarch: generic run_exports: - {{ pin_subpackage( 'pathphynder', max_pin='x.x') }} From 21c10344824144356d8bc126d6e9eced83d1ac71 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 07:23:06 -0400 Subject: [PATCH 0171/1589] Update cmat to 3.2.1 (#48884) * Update cmat to 3.2.0 * pin requests to 2.32.0 * requests == 2.32.3. There is no 2.32.0 * requests == 2.32.3. There is no 2.32.0 * Update cmat to 3.2.1 --------- Co-authored-by: mencian Co-authored-by: Martin Grigorov --- recipes/cmat/build.sh | 8 ++++---- recipes/cmat/meta.yaml | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/recipes/cmat/build.sh b/recipes/cmat/build.sh index 035f39b8879b4..376a98566a511 100644 --- a/recipes/cmat/build.sh +++ b/recipes/cmat/build.sh @@ -1,11 +1,11 @@ -#!/bin/bash +#!/bin/bash -euo -$PYTHON -m pip install . +$PYTHON -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv CMAT="${PREFIX}/share/${PKG_NAME}-${PKG_VERSION}" mkdir -p ${PREFIX}/bin ${CMAT} chmod 775 bin/cmat/* -cp bin/cmat/* ${PREFIX}/bin +cp -f bin/cmat/* ${PREFIX}/bin -mv bin/ mappings/ pipelines/ ${CMAT} \ No newline at end of file +mv bin/ mappings/ pipelines/ ${CMAT} diff --git a/recipes/cmat/meta.yaml b/recipes/cmat/meta.yaml index b05472e761e06..ffcbd6088a86c 100644 --- a/recipes/cmat/meta.yaml +++ b/recipes/cmat/meta.yaml @@ -1,5 +1,5 @@ {% set name = "cmat" %} -{% set version = "3.1.3" %} +{% set version = "3.2.1" %} package: name: {{ name }} @@ -7,13 +7,13 @@ package: source: url: https://github.com/EBIvariation/CMAT/archive/v{{version}}.tar.gz - sha256: e084d692249e14181c7997c4e09685b6dfe7b9d953078d2872e3005049b2356a + sha256: f7368fe08422080f333b51c90f63b450b59300437169686b9729c21c1f142224 build: number: 0 noarch: generic run_exports: - - {{ pin_subpackage(name, max_pin="x.x") }} + - {{ pin_subpackage(name, max_pin="x") }} requirements: host: @@ -27,7 +27,7 @@ requirements: - pandas ==1.5.3 - pytest ==7.2.2 - pytest-cov ==2.10.0 - - requests ==2.31.0 + - requests ==2.32.3 - requests-mock ==1.8.0 - retry ==0.9.2 run: @@ -41,7 +41,7 @@ requirements: - pandas ==1.5.3 - pytest ==7.2.2 - pytest-cov ==2.10.0 - - requests ==2.31.0 + - requests ==2.32.3 - requests-mock ==1.8.0 - retry ==0.9.2 From 53d10f70cbfd441c8eabba01c27119e67469231a Mon Sep 17 00:00:00 2001 From: Benjamin Linard <22132778+blinard-BIOINFO@users.noreply.github.com> Date: Wed, 10 Jul 2024 13:49:47 +0200 Subject: [PATCH 0172/1589] Ipk: issue related to boost-cpp version which differs in bioconda-build CI and local install. (#49000) * Pin boost version to 1.85 to avoid boost version mismatches when installing the package * bumps build number --------- Co-authored-by: Jacques Dainat Co-authored-by: Benjamin Linard Co-authored-by: Martin Grigorov --- recipes/ipk/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/ipk/meta.yaml b/recipes/ipk/meta.yaml index d64d17598877b..6aa9bfb9e74c2 100644 --- a/recipes/ipk/meta.yaml +++ b/recipes/ipk/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('ipk', max_pin="x.x") }} @@ -21,10 +21,10 @@ requirements: - {{ compiler('cxx') }} - cmake host: - - boost-cpp >=1.67 + - boost-cpp =1.85 - zlib run: - - boost-cpp >=1.67 + - boost-cpp =1.85 - raxml-ng - phyml - python From 42401322feea4633b8fb3ee6ab5f47c6b40827ab Mon Sep 17 00:00:00 2001 From: Rob Patro Date: Wed, 10 Jul 2024 07:57:30 -0400 Subject: [PATCH 0173/1589] Update piscem to 0.10.1 (#49065) * Try to figure out how to trigger autobot * Update meta.yaml * change location to just "source.tar.gz" * Update piscem to 0.10.1 * Update meta.yaml --------- Co-authored-by: BiocondaBot <47040946+BiocondaBot@users.noreply.github.com> --- recipes/piscem/meta.yaml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/recipes/piscem/meta.yaml b/recipes/piscem/meta.yaml index fd6566d3b29ab..b781bafa4b557 100644 --- a/recipes/piscem/meta.yaml +++ b/recipes/piscem/meta.yaml @@ -1,7 +1,9 @@ -{% set version = "0.10.0" %} +{% set version = "0.10.1" %} +{% set name = "piscem" %} +{% set sha256 = "1f53716a6b0c23bd174616893c29cd93a01f57cd5306cb276898bc549d2b7edf" %} package: - name: piscem + name: {{ name }} version: {{ version }} build: @@ -10,8 +12,8 @@ build: - {{ pin_subpackage("piscem", max_pin="x.x") }} source: - url: https://github.com/COMBINE-lab/piscem/releases/download/v{{ version }}/source_recursive.tar.gz - sha256: c2bad3704086e6f7d1930fe5ac38c1d724a50aa88dc19b82445cc23e3b7a207c + url: https://github.com/COMBINE-lab/piscem/releases/download/v{{ version }}/source.tar.gz + sha256: {{ sha256 }} requirements: build: From 0b4352b9922c058bede911f78d2235ca1f240f03 Mon Sep 17 00:00:00 2001 From: Tom L Kaufmann <17513791+tlkaufmann@users.noreply.github.com> Date: Wed, 10 Jul 2024 15:31:02 +0200 Subject: [PATCH 0174/1589] Update MEDICC2 to version 1.0.4 (#49071) * Updated dependencies for MEDICC2 and updated to version 1.0.4 * Reset the build number to 0 Signed-off-by: Martin Tzvetanov Grigorov * restrict python versions for medicc2 --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov --- recipes/medicc2/meta.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/recipes/medicc2/meta.yaml b/recipes/medicc2/meta.yaml index c0c4852257814..34c7f0f7d235e 100644 --- a/recipes/medicc2/meta.yaml +++ b/recipes/medicc2/meta.yaml @@ -1,6 +1,6 @@ {% set name = "medicc2" %} -{% set version = "1.0.2" %} -{% set hash = "0acfcea5646706ce4ceb787a36eef2e9d7272928442b147e23813c56ecde5987" %} +{% set version = "1.0.4" %} +{% set hash = "ed890c608b5d6ad08ea1e459af93a844242c1e12a02bd0f03b542a3654dcc720" %} package: @@ -12,7 +12,7 @@ source: sha256: {{ hash }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage("medicc2", max_pin="x") }} script: {{ PYTHON }} -m pip install . -vv @@ -22,7 +22,7 @@ requirements: - {{ compiler('c') }} - {{ compiler("cxx") }} host: - - python + - python >=3.8,<3.11 - pip # The following are needed for building the Cython extension - numpy >=1.20.1 @@ -30,11 +30,11 @@ requirements: - setuptools - cython ==0.29.* run: - - python - - numpy >=1.20.1 + - python >=3.8,<3.11 + - numpy >=1.20.1,<2.0 - pyyaml >=5.4.1 - {{ pin_compatible('openfst', max_pin='x.x.x') }} - - pandas >=1.2.2 + - pandas >=1.2.2,<2.1 - joblib >=1.0.1 - biopython >=1.78 - scipy >=1.7 From 1ca03e6ca5dd68b23421d9b0e117beac105689d5 Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Wed, 10 Jul 2024 15:50:40 +0200 Subject: [PATCH 0175/1589] Fix AMDirT dependency (#49076) * Update meta.yaml * Pin version of aggrid * Update meta.yaml --- recipes/amdirt/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/amdirt/meta.yaml b/recipes/amdirt/meta.yaml index 607c51f610b82..7969b929a6ad4 100644 --- a/recipes/amdirt/meta.yaml +++ b/recipes/amdirt/meta.yaml @@ -14,7 +14,7 @@ build: - AMDirT = AMDirT.cli:cli noarch: python script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv - number: 0 + number: 1 run_exports: - {{ pin_subpackage("amdirt", max_pin="x") }} @@ -32,8 +32,8 @@ requirements: - python >=3.9 - requests - rich - - streamlit - - streamlit-aggrid + - streamlit <=1.35.0 + - streamlit-aggrid <=0.3.5 - tabulate test: From c6aa5ae015670c9cdf1bbcbcf62ca9c6419e27e2 Mon Sep 17 00:00:00 2001 From: Ryan Koeksal Date: Wed, 10 Jul 2024 15:51:16 +0200 Subject: [PATCH 0176/1589] Add rnaformer (#49072) * Add rnaformer * Update recipes/rnaformer/meta.yml Co-authored-by: Martin Grigorov --------- Co-authored-by: Martin Grigorov --- recipes/rnaformer/meta.yml | 57 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 recipes/rnaformer/meta.yml diff --git a/recipes/rnaformer/meta.yml b/recipes/rnaformer/meta.yml new file mode 100644 index 0000000000000..5259da88ef507 --- /dev/null +++ b/recipes/rnaformer/meta.yml @@ -0,0 +1,57 @@ +{% set name = "RNAformer" %} +{% set version = "0.0.1" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/r/{{ name|lower }}/{{ name|lower }}-{{ version }}.tar.gz + sha256: 36374aa476ffd0be681e8ad29fec64cb074b6e341db1dc8179fcbd43cdf5da55 + +build: + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + +requirements: + host: + - python >=3.10 + - pip + run: + - python >=3.10 + - pytorch + - torchvision + - tqdm + - pyyaml + - pyaml + - numpy + - packaging + - wheel + - tabulate + - scipy + - pandas + - scikit-learn + - matplotlib-base + - polars + - loralib + - tensorboard + - transformers + - datasets + - pytorch-lightning + - deepspeed + - rotary-embedding-torch + +test: + imports: + - RNAformer + +about: + home: https://github.com/automl/RNAformer + summary: 'RNAformer: a simple single-sequence-based deep learning model for RNA secondary structure prediction.' + license: Apache-2.0 + license_file: LICENSE + +extra: + recipe-maintainers: + - ivelet From 80f683ff0b5e84c9b2e9d1ed345a8d26e5b61364 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 10:39:31 -0400 Subject: [PATCH 0177/1589] Update gencove to 2.18.1 (#49081) --- recipes/gencove/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gencove/meta.yaml b/recipes/gencove/meta.yaml index d68732c137bbb..820f2fee7f560 100644 --- a/recipes/gencove/meta.yaml +++ b/recipes/gencove/meta.yaml @@ -1,6 +1,6 @@ {% set name = "gencove" %} -{% set version = "2.18.0" %} -{% set sha256 = "c918361baadae2f27fee47a570c02a07392e7d2bfaed64ee537a7ee284251c09" %} +{% set version = "2.18.1" %} +{% set sha256 = "3e9cd5172ba7b72017685de0e6f141584177f74647746ab964f686f5c6470e8b" %} package: name: {{ name }} From 6d4b410b09d385bfbff32b090513ad173f2237c1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 10:39:43 -0400 Subject: [PATCH 0178/1589] Update locarna to 2.0.1 (#49078) --- recipes/locarna/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/locarna/meta.yaml b/recipes/locarna/meta.yaml index 044f0c71cdf47..68b1253eb8c61 100644 --- a/recipes/locarna/meta.yaml +++ b/recipes/locarna/meta.yaml @@ -1,5 +1,5 @@ -{% set version="2.0.0" %} -{% set sha256="3be0d2cac7f7451f8b741983e22803b546de2074d837b425fb1b69ccc718ebbc" %} +{% set version="2.0.1" %} +{% set sha256="1f50748d2f8f4bf5888394154d366e0eed8d4e20a3cd0da8b33e200aa1d9edf7" %} {% set vrnaversion="2.5.1" %} package: @@ -13,7 +13,7 @@ about: summary: Multiple alignment of RNAs build: - number: 5 + number: 0 run_exports: - {{ pin_subpackage('locarna', max_pin="x.x") }} From ce3804e5229925c3734e2d385d7755c8eca2b72f Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 10 Jul 2024 17:40:25 +0300 Subject: [PATCH 0179/1589] t1k: add linux-aarch64 build (#49077) * t1k: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Allow signed chars for linux-aarch64 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/t1k/build.sh | 21 ++++++++++++++++++--- recipes/t1k/meta.yaml | 20 ++++++++++++-------- 2 files changed, 30 insertions(+), 11 deletions(-) diff --git a/recipes/t1k/build.sh b/recipes/t1k/build.sh index 1edb8133c8526..e86d0285023c0 100755 --- a/recipes/t1k/build.sh +++ b/recipes/t1k/build.sh @@ -1,10 +1,25 @@ #!/bin/bash -sed -i.bak 's/-f .\/samtools-0.1.19\/libbam.a/1/' Makefile -make \ +set -xe + +if [ "$(uname -m)" == "aarch64" ]; then + export CXXFLAGS="${CXXFLAGS} -fsigned-char" +fi + +LINKPATH="${LDFLAGS}" +if [ "$(uname -m)" == "x86_64" ]; then + # use samtools 0.1.19 as a dependency + sed -i.bak 's/-f .\/samtools-0.1.19\/libbam.a/1/' Makefile +else + # build the vendored samtools 0.1.19 + sed -i.bak 's/cd samtools-0.1.19 ; make /cd samtools-0.1.19 ; make CC="${CC}" CFLAGS="${CFLAGS} -L${PREFIX}\/lib" LDFLAGS="${LDFLAGS}" LIBPATH="-L${PREFIX}\/lib"/' Makefile + LINKPATH="${LDFLAGS} -I./samtools-0.1.19 -L./samtools-0.1.19" +fi + +make -j ${CPU_COUNT} \ CXX="${CXX}" \ CXXFLAGS="${CXXFLAGS} -Wformat -O3" \ - LINKPATH="${LDFLAGS} -I./samtools-0.1.19" + LINKPATH="${LINKPATH}" install -d "${PREFIX}/bin" install genotyper analyzer fastq-extractor bam-extractor run-t1k \ t1k-build.pl ParseDatFile.pl AddGeneCoord.pl t1k-smartseq.pl t1k-merge.py \ diff --git a/recipes/t1k/meta.yaml b/recipes/t1k/meta.yaml index 4a4914fe77fe5..d1a157c3a6e45 100644 --- a/recipes/t1k/meta.yaml +++ b/recipes/t1k/meta.yaml @@ -5,7 +5,7 @@ package: version: '{{ version }}' build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('t1k', max_pin="x") }} @@ -19,7 +19,7 @@ requirements: - {{ compiler('cxx') }} - {{ compiler('c') }} host: - - samtools 0.1.19.* + - samtools 0.1.19.* # [x86_64] - zlib run: - perl @@ -31,12 +31,12 @@ test: - fastq-extractor 2>&1 | cat > /dev/null - bam-extractor 2>&1 | cat > /dev/null - analyzer 2>&1 | cat > /dev/null - - which t1k-build.pl - - which ParseDatFile.pl - - which AddGeneCoord.pl - - which t1k-smartseq.pl - - which t1k-merge.py - - which run-t1k + - test -x ${PREFIX}/bin/t1k-build.pl + - test -x ${PREFIX}/bin/ParseDatFile.pl + - test -x ${PREFIX}/bin/AddGeneCoord.pl + - test -x ${PREFIX}/bin/t1k-smartseq.pl + - test -x ${PREFIX}/bin/t1k-merge.py + - test -x ${PREFIX}/bin/run-t1k about: home: https://github.com/mourisl/T1K @@ -44,3 +44,7 @@ about: license: MIT license_family: MIT license_file: LICENSE.txt + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From b39af75326567b00a9a2e89e1fa66101c693e467 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 10 Jul 2024 17:40:45 +0300 Subject: [PATCH 0180/1589] physher: add linux-aarch64 build (#49070) * physher: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Disable SSE for linux-aarch64 Signed-off-by: Martin Tzvetanov Grigorov * Use sse2neon for SSE support for linux-aarch64 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/physher/build.sh | 4 +++- recipes/physher/meta.yaml | 7 +++++-- recipes/physher/physher-aarch64.patch | 27 +++++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 recipes/physher/physher-aarch64.patch diff --git a/recipes/physher/build.sh b/recipes/physher/build.sh index 9e841b22143c6..fe14d56a4bb4f 100644 --- a/recipes/physher/build.sh +++ b/recipes/physher/build.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -xe + cmake -S . -B build -DBUILD_CPP_WRAPPER=on -DCMAKE_INSTALL_PREFIX=$PREFIX -cmake --build build/ --target install \ No newline at end of file +cmake --build build/ --target install -j ${CPU_COUNT} \ No newline at end of file diff --git a/recipes/physher/meta.yaml b/recipes/physher/meta.yaml index 43d23ed5a48e8..d049c02266827 100644 --- a/recipes/physher/meta.yaml +++ b/recipes/physher/meta.yaml @@ -6,14 +6,15 @@ package: version: "{{ version }}" build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('physher', max_pin="x") }} source: url: https://github.com/4ment/physher/archive/refs/tags/v{{ version }}.tar.gz sha256: b87a69f49a81401e02cde0c99331f6ddbb10b53c8b4e671419510fb3093796d4 - + patches: + - physher-aarch64.patch # [linux and aarch64] requirements: build: @@ -36,6 +37,8 @@ about: summary: A multi-algorithmic framework for phylogenetic inference extra: + additional-platforms: + - linux-aarch64 maintainers: - 4ment identifiers: diff --git a/recipes/physher/physher-aarch64.patch b/recipes/physher/physher-aarch64.patch new file mode 100644 index 0000000000000..0e60282fade6f --- /dev/null +++ b/recipes/physher/physher-aarch64.patch @@ -0,0 +1,27 @@ +diff --git i/CMakeLists.txt w/CMakeLists.txt +index c587912..4b2a2a9 100644 +--- i/CMakeLists.txt ++++ w/CMakeLists.txt +@@ -150,13 +150,8 @@ IF(USE_SSE_SUPPORT) + + add_definitions("-DSSE3_ENABLED") + +- IF(APPLE AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") +- MESSAGE(STATUS "Using sse2neon for arm64 Apple M1") +- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv8-a+fp+simd+crypto+crc") +- ELSE() +- MESSAGE(STATUS "Using SSE ${SSE_LEVEL}") +- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m${SSE_LEVEL}") +- ENDIF() ++ MESSAGE(STATUS "Using sse2neon for aarch64") ++ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=native") + + SET(${LIBRARY_NAME}_SSE_ENABLED "1") + SET(${LIBRARY_NAME}_SSE_LEVEL ${SSE_LEVEL}) +@@ -401,4 +396,4 @@ ENDIF (BUILD_TESTING) + + IF (BUILD_BENCHMARKING) + add_subdirectory(examples) +-ENDIF (BUILD_BENCHMARKING) +\ No newline at end of file ++ENDIF (BUILD_BENCHMARKING) From c57e26e318deb81a7a68dd42324afb206c8baccf Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 10 Jul 2024 17:41:01 +0300 Subject: [PATCH 0181/1589] haplomap: add linux-aarch64 build (#49068) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/haplomap/build.sh | 4 +++- recipes/haplomap/meta.yaml | 10 +++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/recipes/haplomap/build.sh b/recipes/haplomap/build.sh index 86bc15452fabc..5b1eb4c060eee 100644 --- a/recipes/haplomap/build.sh +++ b/recipes/haplomap/build.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -xe + # https://bioconda.github.io/troubleshooting.html#zlib-errors export CFLAGS="-I${PREFIX}/include" export LDFLAGS="-L${PREFIX}/lib" @@ -11,5 +13,5 @@ export C_INCLUDE_PATH=${PREFIX}/include mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=${PREFIX}/bin -DCMAKE_BUILD_TYPE=Release .. -make +make -j ${CPU_COUNT} make install diff --git a/recipes/haplomap/meta.yaml b/recipes/haplomap/meta.yaml index eed0c6397f6bd..0948847322532 100644 --- a/recipes/haplomap/meta.yaml +++ b/recipes/haplomap/meta.yaml @@ -10,7 +10,9 @@ source: sha256: '{{sha256}}' build: - number: 2 + number: 3 + run_exports: + - {{ pin_subpackage('haplomap', max_pin='x.x') }} requirements: build: @@ -18,8 +20,6 @@ requirements: - cmake - {{ compiler('c') }} - {{ compiler('cxx') }} - - gsl - host: - gsl run: @@ -33,3 +33,7 @@ about: home: https://github.com/zqfang/haplomap license: MIT summary: Haplotype-based computational genetic mapping + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From 00e29c0a1badf7fce52c9481337e38b39bce6360 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 10 Jul 2024 17:41:09 +0300 Subject: [PATCH 0182/1589] vamos: add linux-aarch64 build (#49067) * vamos: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Add a patch to build on linux-aarch64. Use sse2neon for abPOA Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/vamos/build.sh | 4 +- recipes/vamos/meta.yaml | 8 +- recipes/vamos/vamos-aarch64.patch | 9336 +++++++++++++++++++++++++++++ 3 files changed, 9346 insertions(+), 2 deletions(-) create mode 100644 recipes/vamos/vamos-aarch64.patch diff --git a/recipes/vamos/build.sh b/recipes/vamos/build.sh index e6e2422f4273f..7906e90e177e4 100644 --- a/recipes/vamos/build.sh +++ b/recipes/vamos/build.sh @@ -1,11 +1,13 @@ #!/bin/bash +set -xe + mkdir -p $PREFIX/bin export CFLAGS="$CFLAGS -I$PREFIX/include" export LDFLAGS="$LDFLAGS -L$PREFIX/lib" export CPATH=${PREFIX}/include -cd src && make CC="${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -fPIE " CXX="${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} -fPIE" && cd .. +cd src && make -j ${CPU_COUNT} CC="${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -fPIE " CXX="${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} -fPIE" && cd .. cp src/vamos $PREFIX/bin diff --git a/recipes/vamos/meta.yaml b/recipes/vamos/meta.yaml index 57f68480e8002..c8358ec898074 100644 --- a/recipes/vamos/meta.yaml +++ b/recipes/vamos/meta.yaml @@ -8,10 +8,12 @@ package: source: url: https://github.com/ChaissonLab/vamos/archive/refs/tags/vamos-v{{ version }}.tar.gz sha256: 7925787ae9cbe214b0eb94b494e393f7fc48c318a884ab106470d7034101b14f + patches: + - vamos-aarch64.patch # [linux and aarch64] build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin='x') }} @@ -41,3 +43,7 @@ about: license: USC-RL v1.0 license_file: LICENSE.txt summary: 'VNTR annotation using efficient motif selection' + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file diff --git a/recipes/vamos/vamos-aarch64.patch b/recipes/vamos/vamos-aarch64.patch new file mode 100644 index 0000000000000..ee5ce9518dc73 --- /dev/null +++ b/recipes/vamos/vamos-aarch64.patch @@ -0,0 +1,9336 @@ +diff --git c/abPOA-1.4.1/include/simd_instruction.h i/abPOA-1.4.1/include/simd_instruction.h +index 41deb16..030adc8 100644 +--- c/abPOA-1.4.1/include/simd_instruction.h ++++ i/abPOA-1.4.1/include/simd_instruction.h +@@ -18,7 +18,11 @@ + #undef __AVX512BW__ + + #ifndef USE_SIMDE ++#ifdef __ARM_NEON ++#include "sse2neon.h" ++#else + #include ++#endif + #else // use SIMDE + #ifdef __AVX512F__ + #include "simde/simde/x86/avx512.h" +diff --git c/abPOA-1.4.1/include/sse2neon.h i/abPOA-1.4.1/include/sse2neon.h +new file mode 100644 +index 0000000..2b12721 +--- /dev/null ++++ i/abPOA-1.4.1/include/sse2neon.h +@@ -0,0 +1,9301 @@ ++#ifndef SSE2NEON_H ++#define SSE2NEON_H ++ ++/* ++ * sse2neon is freely redistributable under the MIT License. ++ * ++ * Copyright (c) 2015-2024 SSE2NEON Contributors. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a copy ++ * of this software and associated documentation files (the "Software"), to deal ++ * in the Software without restriction, including without limitation the rights ++ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ++ * copies of the Software, and to permit persons to whom the Software is ++ * furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice shall be included in ++ * all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++ * SOFTWARE. ++ */ ++ ++// This header file provides a simple API translation layer ++// between SSE intrinsics to their corresponding Arm/Aarch64 NEON versions ++// ++// Contributors to this work are: ++// John W. Ratcliff ++// Brandon Rowlett ++// Ken Fast ++// Eric van Beurden ++// Alexander Potylitsin ++// Hasindu Gamaarachchi ++// Jim Huang ++// Mark Cheng ++// Malcolm James MacLeod ++// Devin Hussey (easyaspi314) ++// Sebastian Pop ++// Developer Ecosystem Engineering ++// Danila Kutenin ++// François Turban (JishinMaster) ++// Pei-Hsuan Hung ++// Yang-Hao Yuan ++// Syoyo Fujita ++// Brecht Van Lommel ++// Jonathan Hue ++// Cuda Chen ++// Aymen Qader ++// Anthony Roberts ++ ++/* Tunable configurations */ ++ ++/* Enable precise implementation of math operations ++ * This would slow down the computation a bit, but gives consistent result with ++ * x86 SSE. (e.g. would solve a hole or NaN pixel in the rendering result) ++ */ ++/* _mm_min|max_ps|ss|pd|sd */ ++#ifndef SSE2NEON_PRECISE_MINMAX ++#define SSE2NEON_PRECISE_MINMAX (0) ++#endif ++/* _mm_rcp_ps */ ++#ifndef SSE2NEON_PRECISE_DIV ++#define SSE2NEON_PRECISE_DIV (0) ++#endif ++/* _mm_sqrt_ps and _mm_rsqrt_ps */ ++#ifndef SSE2NEON_PRECISE_SQRT ++#define SSE2NEON_PRECISE_SQRT (0) ++#endif ++/* _mm_dp_pd */ ++#ifndef SSE2NEON_PRECISE_DP ++#define SSE2NEON_PRECISE_DP (0) ++#endif ++ ++/* Enable inclusion of windows.h on MSVC platforms ++ * This makes _mm_clflush functional on windows, as there is no builtin. ++ */ ++#ifndef SSE2NEON_INCLUDE_WINDOWS_H ++#define SSE2NEON_INCLUDE_WINDOWS_H (0) ++#endif ++ ++/* compiler specific definitions */ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma push_macro("FORCE_INLINE") ++#pragma push_macro("ALIGN_STRUCT") ++#define FORCE_INLINE static inline __attribute__((always_inline)) ++#define ALIGN_STRUCT(x) __attribute__((aligned(x))) ++#define _sse2neon_likely(x) __builtin_expect(!!(x), 1) ++#define _sse2neon_unlikely(x) __builtin_expect(!!(x), 0) ++#elif defined(_MSC_VER) ++#if _MSVC_TRADITIONAL ++#error Using the traditional MSVC preprocessor is not supported! Use /Zc:preprocessor instead. ++#endif ++#ifndef FORCE_INLINE ++#define FORCE_INLINE static inline ++#endif ++#ifndef ALIGN_STRUCT ++#define ALIGN_STRUCT(x) __declspec(align(x)) ++#endif ++#define _sse2neon_likely(x) (x) ++#define _sse2neon_unlikely(x) (x) ++#else ++#pragma message("Macro name collisions may happen with unsupported compilers.") ++#endif ++ ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma push_macro("FORCE_INLINE_OPTNONE") ++#define FORCE_INLINE_OPTNONE static inline __attribute__((optimize("O0"))) ++#elif defined(__clang__) ++#pragma push_macro("FORCE_INLINE_OPTNONE") ++#define FORCE_INLINE_OPTNONE static inline __attribute__((optnone)) ++#else ++#define FORCE_INLINE_OPTNONE FORCE_INLINE ++#endif ++ ++#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ < 10 ++#warning "GCC versions earlier than 10 are not supported." ++#endif ++ ++/* C language does not allow initializing a variable with a function call. */ ++#ifdef __cplusplus ++#define _sse2neon_const static const ++#else ++#define _sse2neon_const const ++#endif ++ ++#include ++#include ++ ++#if defined(_WIN32) ++/* Definitions for _mm_{malloc,free} are provided by ++ * from both MinGW-w64 and MSVC. ++ */ ++#define SSE2NEON_ALLOC_DEFINED ++#endif ++ ++/* If using MSVC */ ++#ifdef _MSC_VER ++#include ++#if SSE2NEON_INCLUDE_WINDOWS_H ++#include ++#include ++#endif ++ ++#if !defined(__cplusplus) ++#error SSE2NEON only supports C++ compilation with this compiler ++#endif ++ ++#ifdef SSE2NEON_ALLOC_DEFINED ++#include ++#endif ++ ++#if (defined(_M_AMD64) || defined(__x86_64__)) || \ ++ (defined(_M_ARM64) || defined(__arm64__)) ++#define SSE2NEON_HAS_BITSCAN64 ++#endif ++#endif ++ ++#if defined(__GNUC__) || defined(__clang__) ++#define _sse2neon_define0(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define1(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define2(type, a, b, body) \ ++ __extension__({ \ ++ type _a = (a), _b = (b); \ ++ body \ ++ }) ++#define _sse2neon_return(ret) (ret) ++#else ++#define _sse2neon_define0(type, a, body) [=](type _a) { body }(a) ++#define _sse2neon_define1(type, a, body) [](type _a) { body }(a) ++#define _sse2neon_define2(type, a, b, body) \ ++ [](type _a, type _b) { body }((a), (b)) ++#define _sse2neon_return(ret) return ret ++#endif ++ ++#define _sse2neon_init(...) \ ++ { \ ++ __VA_ARGS__ \ ++ } ++ ++/* Compiler barrier */ ++#if defined(_MSC_VER) ++#define SSE2NEON_BARRIER() _ReadWriteBarrier() ++#else ++#define SSE2NEON_BARRIER() \ ++ do { \ ++ __asm__ __volatile__("" ::: "memory"); \ ++ (void) 0; \ ++ } while (0) ++#endif ++ ++/* Memory barriers ++ * __atomic_thread_fence does not include a compiler barrier; instead, ++ * the barrier is part of __atomic_load/__atomic_store's "volatile-like" ++ * semantics. ++ */ ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) ++#include ++#endif ++ ++FORCE_INLINE void _sse2neon_smp_mb(void) ++{ ++ SSE2NEON_BARRIER(); ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && \ ++ !defined(__STDC_NO_ATOMICS__) ++ atomic_thread_fence(memory_order_seq_cst); ++#elif defined(__GNUC__) || defined(__clang__) ++ __atomic_thread_fence(__ATOMIC_SEQ_CST); ++#else /* MSVC */ ++ __dmb(_ARM64_BARRIER_ISH); ++#endif ++} ++ ++/* Architecture-specific build options */ ++/* FIXME: #pragma GCC push_options is only available on GCC */ ++#if defined(__GNUC__) ++#if defined(__arm__) && __ARM_ARCH == 7 ++/* According to ARM C Language Extensions Architecture specification, ++ * __ARM_NEON is defined to a value indicating the Advanced SIMD (NEON) ++ * architecture supported. ++ */ ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error "You must enable NEON instructions (e.g. -mfpu=neon) to use SSE2NEON." ++#endif ++#if !defined(__clang__) ++#pragma GCC push_options ++#pragma GCC target("fpu=neon") ++#endif ++#elif defined(__aarch64__) || defined(_M_ARM64) ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#pragma GCC target("+simd") ++#endif ++#elif __ARM_ARCH == 8 ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error \ ++ "You must enable NEON instructions (e.g. -mfpu=neon-fp-armv8) to use SSE2NEON." ++#endif ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#endif ++#else ++#error \ ++ "Unsupported target. Must be either ARMv7-A+NEON or ARMv8-A \ ++(you could try setting target explicitly with -march or -mcpu)" ++#endif ++#endif ++ ++#include ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) && (__ARM_ARCH == 8) ++#if defined __has_include && __has_include() ++#include ++#endif ++#endif ++ ++/* Apple Silicon cache lines are double of what is commonly used by Intel, AMD ++ * and other Arm microarchitectures use. ++ * From sysctl -a on Apple M1: ++ * hw.cachelinesize: 128 ++ */ ++#if defined(__APPLE__) && (defined(__aarch64__) || defined(__arm64__)) ++#define SSE2NEON_CACHELINE_SIZE 128 ++#else ++#define SSE2NEON_CACHELINE_SIZE 64 ++#endif ++ ++/* Rounding functions require either Aarch64 instructions or libm fallback */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#include ++#endif ++ ++/* On ARMv7, some registers, such as PMUSERENR and PMCCNTR, are read-only ++ * or even not accessible in user mode. ++ * To write or access to these registers in user mode, ++ * we have to perform syscall instead. ++ */ ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) ++#include ++#endif ++ ++/* "__has_builtin" can be used to query support for built-in functions ++ * provided by gcc/clang and other compilers that support it. ++ */ ++#ifndef __has_builtin /* GCC prior to 10 or non-clang compilers */ ++/* Compatibility with gcc <= 9 */ ++#if defined(__GNUC__) && (__GNUC__ <= 9) ++#define __has_builtin(x) HAS##x ++#define HAS__builtin_popcount 1 ++#define HAS__builtin_popcountll 1 ++ ++// __builtin_shuffle introduced in GCC 4.7.0 ++#if (__GNUC__ >= 5) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) ++#define HAS__builtin_shuffle 1 ++#else ++#define HAS__builtin_shuffle 0 ++#endif ++ ++#define HAS__builtin_shufflevector 0 ++#define HAS__builtin_nontemporal_store 0 ++#else ++#define __has_builtin(x) 0 ++#endif ++#endif ++ ++/** ++ * MACRO for shuffle parameter for _mm_shuffle_ps(). ++ * Argument fp3 is a digit[0123] that represents the fp from argument "b" ++ * of mm_shuffle_ps that will be placed in fp3 of result. fp2 is the same ++ * for fp2 in result. fp1 is a digit[0123] that represents the fp from ++ * argument "a" of mm_shuffle_ps that will be places in fp1 of result. ++ * fp0 is the same for fp0 of result. ++ */ ++#define _MM_SHUFFLE(fp3, fp2, fp1, fp0) \ ++ (((fp3) << 6) | ((fp2) << 4) | ((fp1) << 2) | ((fp0))) ++ ++#if __has_builtin(__builtin_shufflevector) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __builtin_shufflevector(a, b, __VA_ARGS__) ++#elif __has_builtin(__builtin_shuffle) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __extension__({ \ ++ type tmp = {__VA_ARGS__}; \ ++ __builtin_shuffle(a, b, tmp); \ ++ }) ++#endif ++ ++#ifdef _sse2neon_shuffle ++#define vshuffle_s16(a, b, ...) _sse2neon_shuffle(int16x4_t, a, b, __VA_ARGS__) ++#define vshuffleq_s16(a, b, ...) _sse2neon_shuffle(int16x8_t, a, b, __VA_ARGS__) ++#define vshuffle_s32(a, b, ...) _sse2neon_shuffle(int32x2_t, a, b, __VA_ARGS__) ++#define vshuffleq_s32(a, b, ...) _sse2neon_shuffle(int32x4_t, a, b, __VA_ARGS__) ++#define vshuffle_s64(a, b, ...) _sse2neon_shuffle(int64x1_t, a, b, __VA_ARGS__) ++#define vshuffleq_s64(a, b, ...) _sse2neon_shuffle(int64x2_t, a, b, __VA_ARGS__) ++#endif ++ ++/* Rounding mode macros. */ ++#define _MM_FROUND_TO_NEAREST_INT 0x00 ++#define _MM_FROUND_TO_NEG_INF 0x01 ++#define _MM_FROUND_TO_POS_INF 0x02 ++#define _MM_FROUND_TO_ZERO 0x03 ++#define _MM_FROUND_CUR_DIRECTION 0x04 ++#define _MM_FROUND_NO_EXC 0x08 ++#define _MM_FROUND_RAISE_EXC 0x00 ++#define _MM_FROUND_NINT (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_FLOOR (_MM_FROUND_TO_NEG_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_CEIL (_MM_FROUND_TO_POS_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_TRUNC (_MM_FROUND_TO_ZERO | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_RINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_NEARBYINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_NO_EXC) ++#define _MM_ROUND_NEAREST 0x0000 ++#define _MM_ROUND_DOWN 0x2000 ++#define _MM_ROUND_UP 0x4000 ++#define _MM_ROUND_TOWARD_ZERO 0x6000 ++/* Flush zero mode macros. */ ++#define _MM_FLUSH_ZERO_MASK 0x8000 ++#define _MM_FLUSH_ZERO_ON 0x8000 ++#define _MM_FLUSH_ZERO_OFF 0x0000 ++/* Denormals are zeros mode macros. */ ++#define _MM_DENORMALS_ZERO_MASK 0x0040 ++#define _MM_DENORMALS_ZERO_ON 0x0040 ++#define _MM_DENORMALS_ZERO_OFF 0x0000 ++ ++/* indicate immediate constant argument in a given range */ ++#define __constrange(a, b) const ++ ++/* A few intrinsics accept traditional data types like ints or floats, but ++ * most operate on data types that are specific to SSE. ++ * If a vector type ends in d, it contains doubles, and if it does not have ++ * a suffix, it contains floats. An integer vector type can contain any type ++ * of integer, from chars to shorts to unsigned long longs. ++ */ ++typedef int64x1_t __m64; ++typedef float32x4_t __m128; /* 128-bit vector containing 4 floats */ ++// On ARM 32-bit architecture, the float64x2_t is not supported. ++// The data type __m128d should be represented in a different way for related ++// intrinsic conversion. ++#if defined(__aarch64__) || defined(_M_ARM64) ++typedef float64x2_t __m128d; /* 128-bit vector containing 2 doubles */ ++#else ++typedef float32x4_t __m128d; ++#endif ++typedef int64x2_t __m128i; /* 128-bit vector containing integers */ ++ ++// Some intrinsics operate on unaligned data types. ++typedef int16_t ALIGN_STRUCT(1) unaligned_int16_t; ++typedef int32_t ALIGN_STRUCT(1) unaligned_int32_t; ++typedef int64_t ALIGN_STRUCT(1) unaligned_int64_t; ++ ++// __int64 is defined in the Intrinsics Guide which maps to different datatype ++// in different data model ++#if !(defined(_WIN32) || defined(_WIN64) || defined(__int64)) ++#if (defined(__x86_64__) || defined(__i386__)) ++#define __int64 long long ++#else ++#define __int64 int64_t ++#endif ++#endif ++ ++/* type-safe casting between types */ ++ ++#define vreinterpretq_m128_f16(x) vreinterpretq_f32_f16(x) ++#define vreinterpretq_m128_f32(x) (x) ++#define vreinterpretq_m128_f64(x) vreinterpretq_f32_f64(x) ++ ++#define vreinterpretq_m128_u8(x) vreinterpretq_f32_u8(x) ++#define vreinterpretq_m128_u16(x) vreinterpretq_f32_u16(x) ++#define vreinterpretq_m128_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128_s8(x) vreinterpretq_f32_s8(x) ++#define vreinterpretq_m128_s16(x) vreinterpretq_f32_s16(x) ++#define vreinterpretq_m128_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_f16_m128(x) vreinterpretq_f16_f32(x) ++#define vreinterpretq_f32_m128(x) (x) ++#define vreinterpretq_f64_m128(x) vreinterpretq_f64_f32(x) ++ ++#define vreinterpretq_u8_m128(x) vreinterpretq_u8_f32(x) ++#define vreinterpretq_u16_m128(x) vreinterpretq_u16_f32(x) ++#define vreinterpretq_u32_m128(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_s8_m128(x) vreinterpretq_s8_f32(x) ++#define vreinterpretq_s16_m128(x) vreinterpretq_s16_f32(x) ++#define vreinterpretq_s32_m128(x) vreinterpretq_s32_f32(x) ++#define vreinterpretq_s64_m128(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_m128i_s8(x) vreinterpretq_s64_s8(x) ++#define vreinterpretq_m128i_s16(x) vreinterpretq_s64_s16(x) ++#define vreinterpretq_m128i_s32(x) vreinterpretq_s64_s32(x) ++#define vreinterpretq_m128i_s64(x) (x) ++ ++#define vreinterpretq_m128i_u8(x) vreinterpretq_s64_u8(x) ++#define vreinterpretq_m128i_u16(x) vreinterpretq_s64_u16(x) ++#define vreinterpretq_m128i_u32(x) vreinterpretq_s64_u32(x) ++#define vreinterpretq_m128i_u64(x) vreinterpretq_s64_u64(x) ++ ++#define vreinterpretq_f32_m128i(x) vreinterpretq_f32_s64(x) ++#define vreinterpretq_f64_m128i(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_s8_m128i(x) vreinterpretq_s8_s64(x) ++#define vreinterpretq_s16_m128i(x) vreinterpretq_s16_s64(x) ++#define vreinterpretq_s32_m128i(x) vreinterpretq_s32_s64(x) ++#define vreinterpretq_s64_m128i(x) (x) ++ ++#define vreinterpretq_u8_m128i(x) vreinterpretq_u8_s64(x) ++#define vreinterpretq_u16_m128i(x) vreinterpretq_u16_s64(x) ++#define vreinterpretq_u32_m128i(x) vreinterpretq_u32_s64(x) ++#define vreinterpretq_u64_m128i(x) vreinterpretq_u64_s64(x) ++ ++#define vreinterpret_m64_s8(x) vreinterpret_s64_s8(x) ++#define vreinterpret_m64_s16(x) vreinterpret_s64_s16(x) ++#define vreinterpret_m64_s32(x) vreinterpret_s64_s32(x) ++#define vreinterpret_m64_s64(x) (x) ++ ++#define vreinterpret_m64_u8(x) vreinterpret_s64_u8(x) ++#define vreinterpret_m64_u16(x) vreinterpret_s64_u16(x) ++#define vreinterpret_m64_u32(x) vreinterpret_s64_u32(x) ++#define vreinterpret_m64_u64(x) vreinterpret_s64_u64(x) ++ ++#define vreinterpret_m64_f16(x) vreinterpret_s64_f16(x) ++#define vreinterpret_m64_f32(x) vreinterpret_s64_f32(x) ++#define vreinterpret_m64_f64(x) vreinterpret_s64_f64(x) ++ ++#define vreinterpret_u8_m64(x) vreinterpret_u8_s64(x) ++#define vreinterpret_u16_m64(x) vreinterpret_u16_s64(x) ++#define vreinterpret_u32_m64(x) vreinterpret_u32_s64(x) ++#define vreinterpret_u64_m64(x) vreinterpret_u64_s64(x) ++ ++#define vreinterpret_s8_m64(x) vreinterpret_s8_s64(x) ++#define vreinterpret_s16_m64(x) vreinterpret_s16_s64(x) ++#define vreinterpret_s32_m64(x) vreinterpret_s32_s64(x) ++#define vreinterpret_s64_m64(x) (x) ++ ++#define vreinterpret_f32_m64(x) vreinterpret_f32_s64(x) ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f64_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f64_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) vreinterpretq_f64_f32(x) ++#define vreinterpretq_m128d_f64(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f64(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f64(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f64(x) ++ ++#define vreinterpretq_f64_m128d(x) (x) ++#define vreinterpretq_f32_m128d(x) vreinterpretq_f32_f64(x) ++#else ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_m128d_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_f32_m128d(x) (x) ++#endif ++ ++// A struct is defined in this header file called 'SIMDVec' which can be used ++// by applications which attempt to access the contents of an __m128 struct ++// directly. It is important to note that accessing the __m128 struct directly ++// is bad coding practice by Microsoft: @see: ++// https://learn.microsoft.com/en-us/cpp/cpp/m128 ++// ++// However, some legacy source code may try to access the contents of an __m128 ++// struct directly so the developer can use the SIMDVec as an alias for it. Any ++// casting must be done manually by the developer, as you cannot cast or ++// otherwise alias the base NEON data type for intrinsic operations. ++// ++// union intended to allow direct access to an __m128 variable using the names ++// that the MSVC compiler provides. This union should really only be used when ++// trying to access the members of the vector as integer values. GCC/clang ++// allow native access to the float members through a simple array access ++// operator (in C since 4.6, in C++ since 4.8). ++// ++// Ideally direct accesses to SIMD vectors should not be used since it can cause ++// a performance hit. If it really is needed however, the original __m128 ++// variable can be aliased with a pointer to this union and used to access ++// individual components. The use of this union should be hidden behind a macro ++// that is used throughout the codebase to access the members instead of always ++// declaring this type of variable. ++typedef union ALIGN_STRUCT(16) SIMDVec { ++ float m128_f32[4]; // as floats - DON'T USE. Added for convenience. ++ int8_t m128_i8[16]; // as signed 8-bit integers. ++ int16_t m128_i16[8]; // as signed 16-bit integers. ++ int32_t m128_i32[4]; // as signed 32-bit integers. ++ int64_t m128_i64[2]; // as signed 64-bit integers. ++ uint8_t m128_u8[16]; // as unsigned 8-bit integers. ++ uint16_t m128_u16[8]; // as unsigned 16-bit integers. ++ uint32_t m128_u32[4]; // as unsigned 32-bit integers. ++ uint64_t m128_u64[2]; // as unsigned 64-bit integers. ++} SIMDVec; ++ ++// casting using SIMDVec ++#define vreinterpretq_nth_u64_m128i(x, n) (((SIMDVec *) &x)->m128_u64[n]) ++#define vreinterpretq_nth_u32_m128i(x, n) (((SIMDVec *) &x)->m128_u32[n]) ++#define vreinterpretq_nth_u8_m128i(x, n) (((SIMDVec *) &x)->m128_u8[n]) ++ ++/* SSE macros */ ++#define _MM_GET_FLUSH_ZERO_MODE _sse2neon_mm_get_flush_zero_mode ++#define _MM_SET_FLUSH_ZERO_MODE _sse2neon_mm_set_flush_zero_mode ++#define _MM_GET_DENORMALS_ZERO_MODE _sse2neon_mm_get_denormals_zero_mode ++#define _MM_SET_DENORMALS_ZERO_MODE _sse2neon_mm_set_denormals_zero_mode ++ ++// Function declaration ++// SSE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void); ++FORCE_INLINE __m128 _mm_move_ss(__m128, __m128); ++FORCE_INLINE __m128 _mm_or_ps(__m128, __m128); ++FORCE_INLINE __m128 _mm_set_ps1(float); ++FORCE_INLINE __m128 _mm_setzero_ps(void); ++// SSE2 ++FORCE_INLINE __m128i _mm_and_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_castps_si128(__m128); ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128); ++FORCE_INLINE __m128d _mm_move_sd(__m128d, __m128d); ++FORCE_INLINE __m128i _mm_or_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_set_epi32(int, int, int, int); ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t, int64_t); ++FORCE_INLINE __m128d _mm_set_pd(double, double); ++FORCE_INLINE __m128i _mm_set1_epi32(int); ++FORCE_INLINE __m128i _mm_setzero_si128(void); ++// SSE4.1 ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d); ++FORCE_INLINE __m128 _mm_ceil_ps(__m128); ++FORCE_INLINE __m128d _mm_floor_pd(__m128d); ++FORCE_INLINE __m128 _mm_floor_ps(__m128); ++FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d, int); ++FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128, int); ++// SSE4.2 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t, uint8_t); ++ ++/* Backwards compatibility for compilers with lack of specific type support */ ++ ++// Older gcc does not define vld1q_u8_x4 type ++#if defined(__GNUC__) && !defined(__clang__) && \ ++ ((__GNUC__ <= 13 && defined(__arm__)) || \ ++ (__GNUC__ == 10 && __GNUC_MINOR__ < 3 && defined(__aarch64__)) || \ ++ (__GNUC__ <= 9 && defined(__aarch64__))) ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ uint8x16x4_t ret; ++ ret.val[0] = vld1q_u8(p + 0); ++ ret.val[1] = vld1q_u8(p + 16); ++ ret.val[2] = vld1q_u8(p + 32); ++ ret.val[3] = vld1q_u8(p + 48); ++ return ret; ++} ++#else ++// Wraps vld1q_u8_x4 ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ return vld1q_u8_x4(p); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddv u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ const uint64x1_t v1 = vpaddl_u32(vpaddl_u16(vpaddl_u8(v8))); ++ return vget_lane_u8(vreinterpret_u8_u64(v1), 0); ++} ++#else ++// Wraps vaddv_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ return vaddv_u8(v8); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ uint8x8_t tmp = vpadd_u8(vget_low_u8(a), vget_high_u8(a)); ++ uint8_t res = 0; ++ for (int i = 0; i < 8; ++i) ++ res += tmp[i]; ++ return res; ++} ++#else ++// Wraps vaddvq_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ return vaddvq_u8(a); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u16 variant */ ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ uint32x4_t m = vpaddlq_u16(a); ++ uint64x2_t n = vpaddlq_u32(m); ++ uint64x1_t o = vget_low_u64(n) + vget_high_u64(n); ++ ++ return vget_lane_u32((uint32x2_t) o, 0); ++} ++#else ++// Wraps vaddvq_u16 ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ return vaddvq_u16(a); ++} ++#endif ++ ++/* Function Naming Conventions ++ * The naming convention of SSE intrinsics is straightforward. A generic SSE ++ * intrinsic function is given as follows: ++ * _mm__ ++ * ++ * The parts of this format are given as follows: ++ * 1. describes the operation performed by the intrinsic ++ * 2. identifies the data type of the function's primary arguments ++ * ++ * This last part, , is a little complicated. It identifies the ++ * content of the input values, and can be set to any of the following values: ++ * + ps - vectors contain floats (ps stands for packed single-precision) ++ * + pd - vectors contain doubles (pd stands for packed double-precision) ++ * + epi8/epi16/epi32/epi64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * signed integers ++ * + epu8/epu16/epu32/epu64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * unsigned integers ++ * + si128 - unspecified 128-bit vector or 256-bit vector ++ * + m128/m128i/m128d - identifies input vector types when they are different ++ * than the type of the returned vector ++ * ++ * For example, _mm_setzero_ps. The _mm implies that the function returns ++ * a 128-bit vector. The _ps at the end implies that the argument vectors ++ * contain floats. ++ * ++ * A complete example: Byte Shuffle - pshufb (_mm_shuffle_epi8) ++ * // Set packed 16-bit integers. 128 bits, 8 short, per 16 bits ++ * __m128i v_in = _mm_setr_epi16(1, 2, 3, 4, 5, 6, 7, 8); ++ * // Set packed 8-bit integers ++ * // 128 bits, 16 chars, per 8 bits ++ * __m128i v_perm = _mm_setr_epi8(1, 0, 2, 3, 8, 9, 10, 11, ++ * 4, 5, 12, 13, 6, 7, 14, 15); ++ * // Shuffle packed 8-bit integers ++ * __m128i v_out = _mm_shuffle_epi8(v_in, v_perm); // pshufb ++ */ ++ ++/* Constants for use with _mm_prefetch. */ ++enum _mm_hint { ++ _MM_HINT_NTA = 0, /* load data to L1 and L2 cache, mark it as NTA */ ++ _MM_HINT_T0 = 1, /* load data to L1 and L2 cache */ ++ _MM_HINT_T1 = 2, /* load data to L2 cache only */ ++ _MM_HINT_T2 = 3, /* load data to L2 cache only, mark it as NTA */ ++}; ++ ++// The bit field mapping to the FPCR(floating-point control register) ++typedef struct { ++ uint16_t res0; ++ uint8_t res1 : 6; ++ uint8_t bit22 : 1; ++ uint8_t bit23 : 1; ++ uint8_t bit24 : 1; ++ uint8_t res2 : 7; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32_t res3; ++#endif ++} fpcr_bitfield; ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of b and places it into the high end of the result. ++FORCE_INLINE __m128 _mm_shuffle_ps_1032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in high ++// end of result takes the higher two 32 bit values from b and swaps them and ++// places in low end of result. ++FORCE_INLINE __m128 _mm_shuffle_ps_2301(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b23 = vrev64_f32(vget_high_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b23)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0321(__m128 a, __m128 b) ++{ ++ float32x2_t a21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a21, b03)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2103(__m128 a, __m128 b) ++{ ++ float32x2_t a03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a03, b21)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0101(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b01)); ++} ++ ++// keeps the low 64 bits of b in the low and puts the high 64 bits of a in the ++// high ++FORCE_INLINE __m128 _mm_shuffle_ps_3210(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0011(__m128 a, __m128 b) ++{ ++ float32x2_t a11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a11, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0022(__m128 a, __m128 b) ++{ ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a22, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2200(__m128 a, __m128 b) ++{ ++ float32x2_t a00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a00, b22)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_3202(__m128 a, __m128 b) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t a02 = vset_lane_f32(a0, a22, 1); /* TODO: use vzip ?*/ ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a02, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1133(__m128 a, __m128 b) ++{ ++ float32x2_t a33 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a33, b11)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b20)); ++} ++ ++// For MSVC, we check only if it is ARM64, as every single ARM64 processor ++// supported by WoA has crypto extensions. If this changes in the future, ++// this can be verified via the runtime-only method of: ++// IsProcessorFeaturePresent(PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE) ++#if (defined(_M_ARM64) && !defined(__clang__)) || \ ++ (defined(__ARM_FEATURE_CRYPTO) && \ ++ (defined(__aarch64__) || __has_builtin(__builtin_arm_crypto_vmullp64))) ++// Wraps vmull_p64 ++FORCE_INLINE uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly64_t a = vget_lane_p64(vreinterpret_p64_u64(_a), 0); ++ poly64_t b = vget_lane_p64(vreinterpret_p64_u64(_b), 0); ++#if defined(_MSC_VER) ++ __n64 a1 = {a}, b1 = {b}; ++ return vreinterpretq_u64_p128(vmull_p64(a1, b1)); ++#else ++ return vreinterpretq_u64_p128(vmull_p64(a, b)); ++#endif ++} ++#else // ARMv7 polyfill ++// ARMv7/some A64 lacks vmull_p64, but it has vmull_p8. ++// ++// vmull_p8 calculates 8 8-bit->16-bit polynomial multiplies, but we need a ++// 64-bit->128-bit polynomial multiply. ++// ++// It needs some work and is somewhat slow, but it is still faster than all ++// known scalar methods. ++// ++// Algorithm adapted to C from ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/, which is adapted ++// from "Fast Software Polynomial Multiplication on ARM Processors Using the ++// NEON Engine" by Danilo Camara, Conrado Gouvea, Julio Lopez and Ricardo Dahab ++// (https://hal.inria.fr/hal-01506572) ++static uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly8x8_t a = vreinterpret_p8_u64(_a); ++ poly8x8_t b = vreinterpret_p8_u64(_b); ++ ++ // Masks ++ uint8x16_t k48_32 = vcombine_u8(vcreate_u8(0x0000ffffffffffff), ++ vcreate_u8(0x00000000ffffffff)); ++ uint8x16_t k16_00 = vcombine_u8(vcreate_u8(0x000000000000ffff), ++ vcreate_u8(0x0000000000000000)); ++ ++ // Do the multiplies, rotating with vext to get all combinations ++ uint8x16_t d = vreinterpretq_u8_p16(vmull_p8(a, b)); // D = A0 * B0 ++ uint8x16_t e = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 1))); // E = A0 * B1 ++ uint8x16_t f = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 1), b)); // F = A1 * B0 ++ uint8x16_t g = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 2))); // G = A0 * B2 ++ uint8x16_t h = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 2), b)); // H = A2 * B0 ++ uint8x16_t i = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 3))); // I = A0 * B3 ++ uint8x16_t j = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 3), b)); // J = A3 * B0 ++ uint8x16_t k = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 4))); // L = A0 * B4 ++ ++ // Add cross products ++ uint8x16_t l = veorq_u8(e, f); // L = E + F ++ uint8x16_t m = veorq_u8(g, h); // M = G + H ++ uint8x16_t n = veorq_u8(i, j); // N = I + J ++ ++ // Interleave. Using vzip1 and vzip2 prevents Clang from emitting TBL ++ // instructions. ++#if defined(__aarch64__) ++ uint8x16_t lm_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t lm_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t nk_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++ uint8x16_t nk_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++#else ++ uint8x16_t lm_p0 = vcombine_u8(vget_low_u8(l), vget_low_u8(m)); ++ uint8x16_t lm_p1 = vcombine_u8(vget_high_u8(l), vget_high_u8(m)); ++ uint8x16_t nk_p0 = vcombine_u8(vget_low_u8(n), vget_low_u8(k)); ++ uint8x16_t nk_p1 = vcombine_u8(vget_high_u8(n), vget_high_u8(k)); ++#endif ++ // t0 = (L) (P0 + P1) << 8 ++ // t1 = (M) (P2 + P3) << 16 ++ uint8x16_t t0t1_tmp = veorq_u8(lm_p0, lm_p1); ++ uint8x16_t t0t1_h = vandq_u8(lm_p1, k48_32); ++ uint8x16_t t0t1_l = veorq_u8(t0t1_tmp, t0t1_h); ++ ++ // t2 = (N) (P4 + P5) << 24 ++ // t3 = (K) (P6 + P7) << 32 ++ uint8x16_t t2t3_tmp = veorq_u8(nk_p0, nk_p1); ++ uint8x16_t t2t3_h = vandq_u8(nk_p1, k16_00); ++ uint8x16_t t2t3_l = veorq_u8(t2t3_tmp, t2t3_h); ++ ++ // De-interleave ++#if defined(__aarch64__) ++ uint8x16_t t0 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t1 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t2 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++ uint8x16_t t3 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++#else ++ uint8x16_t t1 = vcombine_u8(vget_high_u8(t0t1_l), vget_high_u8(t0t1_h)); ++ uint8x16_t t0 = vcombine_u8(vget_low_u8(t0t1_l), vget_low_u8(t0t1_h)); ++ uint8x16_t t3 = vcombine_u8(vget_high_u8(t2t3_l), vget_high_u8(t2t3_h)); ++ uint8x16_t t2 = vcombine_u8(vget_low_u8(t2t3_l), vget_low_u8(t2t3_h)); ++#endif ++ // Shift the cross products ++ uint8x16_t t0_shift = vextq_u8(t0, t0, 15); // t0 << 8 ++ uint8x16_t t1_shift = vextq_u8(t1, t1, 14); // t1 << 16 ++ uint8x16_t t2_shift = vextq_u8(t2, t2, 13); // t2 << 24 ++ uint8x16_t t3_shift = vextq_u8(t3, t3, 12); // t3 << 32 ++ ++ // Accumulate the products ++ uint8x16_t cross1 = veorq_u8(t0_shift, t1_shift); ++ uint8x16_t cross2 = veorq_u8(t2_shift, t3_shift); ++ uint8x16_t mix = veorq_u8(d, cross1); ++ uint8x16_t r = veorq_u8(mix, cross2); ++ return vreinterpretq_u64_u8(r); ++} ++#endif // ARMv7 polyfill ++ ++// C equivalent: ++// __m128i _mm_shuffle_epi32_default(__m128i a, ++// __constrange(0, 255) int imm) { ++// __m128i ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = a[(imm >> 4) & 0x03]; ret[3] = a[(imm >> 6) & 0x03]; ++// return ret; ++// } ++#define _mm_shuffle_epi32_default(a, imm) \ ++ vreinterpretq_m128i_s32(vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), \ ++ ((imm) >> 2) & 0x3), \ ++ vmovq_n_s32(vgetq_lane_s32( \ ++ vreinterpretq_s32_m128i(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of a and places it into the high end of the result. ++FORCE_INLINE __m128i _mm_shuffle_epi_1032(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in low end ++// of result takes the higher two 32 bit values from a and swaps them and places ++// in high end of result. ++FORCE_INLINE __m128i _mm_shuffle_epi_2301(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a23 = vrev64_s32(vget_high_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a23)); ++} ++ ++// rotates the least significant 32 bits into the most significant 32 bits, and ++// shifts the rest down ++FORCE_INLINE __m128i _mm_shuffle_epi_0321(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 1)); ++} ++ ++// rotates the most significant 32 bits into the least significant 32 bits, and ++// shifts the rest up ++FORCE_INLINE __m128i _mm_shuffle_epi_2103(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 3)); ++} ++ ++// gets the lower 64 bits of a, and places it in the upper 64 bits ++// gets the lower 64 bits of a and places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1010(__m128i a) ++{ ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a10, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements, and places it in the ++// lower 64 bits gets the lower 64 bits of a, and places it in the upper 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1001(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements and places it in the ++// upper 64 bits gets the lower 64 bits of a, swaps the 0 and 1 elements, and ++// places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_0101(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_2211(__m128i a) ++{ ++ int32x2_t a11 = vdup_lane_s32(vget_low_s32(vreinterpretq_s32_m128i(a)), 1); ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ return vreinterpretq_m128i_s32(vcombine_s32(a11, a22)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_0122(__m128i a) ++{ ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a22, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_3332(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a33 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 1); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a33)); ++} ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32(vdupq_laneq_s32(vreinterpretq_s32_m128i(a), (imm))) ++#else ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vdupq_n_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)))) ++#endif ++ ++// NEON does not support a general purpose permute intrinsic. ++// Shuffle single-precision (32-bit) floating-point elements in a using the ++// control in imm8, and store the results in dst. ++// ++// C equivalent: ++// __m128 _mm_shuffle_ps_default(__m128 a, __m128 b, ++// __constrange(0, 255) int imm) { ++// __m128 ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = b[(imm >> 4) & 0x03]; ret[3] = b[(imm >> 6) & 0x03]; ++// return ret; ++// } ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_ps ++#define _mm_shuffle_ps_default(a, b, imm) \ ++ vreinterpretq_m128_f32(vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), ((imm) >> 2) & 0x3), \ ++ vmovq_n_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Shuffle 16-bit integers in the low 64 bits of a using the control in imm8. ++// Store the results in the low 64 bits of dst, with the high 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflelo_epi16 ++#define _mm_shufflelo_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t lowBits = vget_low_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, (imm) & (0x3)), ret, 0); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++// Shuffle 16-bit integers in the high 64 bits of a using the control in imm8. ++// Store the results in the high 64 bits of dst, with the low 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflehi_epi16 ++#define _mm_shufflehi_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t highBits = vget_high_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, (imm) & (0x3)), ret, 4); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 2) & 0x3), ret, \ ++ 5); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 4) & 0x3), ret, \ ++ 6); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 6) & 0x3), ret, \ ++ 7); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++/* MMX */ ++ ++//_mm_empty is a no-op on arm ++FORCE_INLINE void _mm_empty(void) {} ++ ++/* SSE */ ++ ++// Add packed single-precision (32-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ps ++FORCE_INLINE __m128 _mm_add_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Add the lower single-precision (32-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ss ++FORCE_INLINE __m128 _mm_add_ss(__m128 a, __m128 b) ++{ ++ float32_t b0 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++ float32x4_t value = vsetq_lane_f32(b0, vdupq_n_f32(0), 0); ++ // the upper values in the result must be the remnants of . ++ return vreinterpretq_m128_f32(vaddq_f32(a, value)); ++} ++ ++// Compute the bitwise AND of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_ps ++FORCE_INLINE __m128 _mm_and_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vandq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Compute the bitwise NOT of packed single-precision (32-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_ps ++FORCE_INLINE __m128 _mm_andnot_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vbicq_s32(vreinterpretq_s32_m128(b), ++ vreinterpretq_s32_m128(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu16 ++FORCE_INLINE __m64 _mm_avg_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16( ++ vrhadd_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu8 ++FORCE_INLINE __m64 _mm_avg_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vrhadd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ps ++FORCE_INLINE __m128 _mm_cmpeq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ss ++FORCE_INLINE __m128 _mm_cmpeq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpeq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ps ++FORCE_INLINE __m128 _mm_cmpge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ss ++FORCE_INLINE __m128 _mm_cmpge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ps ++FORCE_INLINE __m128 _mm_cmpgt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ss ++FORCE_INLINE __m128 _mm_cmpgt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpgt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ps ++FORCE_INLINE __m128 _mm_cmple_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ss ++FORCE_INLINE __m128 _mm_cmple_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmple_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ps ++FORCE_INLINE __m128 _mm_cmplt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ss ++FORCE_INLINE __m128 _mm_cmplt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmplt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ps ++FORCE_INLINE __m128 _mm_cmpneq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ss ++FORCE_INLINE __m128 _mm_cmpneq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpneq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ps ++FORCE_INLINE __m128 _mm_cmpnge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ss ++FORCE_INLINE __m128 _mm_cmpnge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ps ++FORCE_INLINE __m128 _mm_cmpngt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ss ++FORCE_INLINE __m128 _mm_cmpngt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpngt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ps ++FORCE_INLINE __m128 _mm_cmpnle_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ss ++FORCE_INLINE __m128 _mm_cmpnle_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnle_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ps ++FORCE_INLINE __m128 _mm_cmpnlt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ss ++FORCE_INLINE __m128 _mm_cmpnlt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnlt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ps ++// ++// See also: ++// http://stackoverflow.com/questions/8627331/what-does-ordered-unordered-comparison-mean ++// http://stackoverflow.com/questions/29349621/neon-isnanval-intrinsics ++FORCE_INLINE __m128 _mm_cmpord_ps(__m128 a, __m128 b) ++{ ++ // Note: NEON does not have ordered compare builtin ++ // Need to compare a eq a and b eq b to check for NaN ++ // Do AND of results to get final ++ uint32x4_t ceqaa = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t ceqbb = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vandq_u32(ceqaa, ceqbb)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ss ++FORCE_INLINE __m128 _mm_cmpord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpord_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ps ++FORCE_INLINE __m128 _mm_cmpunord_ps(__m128 a, __m128 b) ++{ ++ uint32x4_t f32a = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t f32b = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vmvnq_u32(vandq_u32(f32a, f32b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ss ++FORCE_INLINE __m128 _mm_cmpunord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpunord_ps(a, b)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_ss ++FORCE_INLINE int _mm_comieq_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_eq_b = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_eq_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_ss ++FORCE_INLINE int _mm_comige_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_ge_b = ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_ge_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_ss ++FORCE_INLINE int _mm_comigt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_gt_b = ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_gt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_ss ++FORCE_INLINE int _mm_comile_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_le_b = ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_le_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_ss ++FORCE_INLINE int _mm_comilt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_lt_b = ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_lt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_ss ++FORCE_INLINE int _mm_comineq_ss(__m128 a, __m128 b) ++{ ++ return !_mm_comieq_ss(a, b); ++} ++ ++// Convert packed signed 32-bit integers in b to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, and copy the upper 2 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_pi2ps ++FORCE_INLINE __m128 _mm_cvt_pi2ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ps2pi ++FORCE_INLINE __m64 _mm_cvt_ps2pi(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))))); ++#else ++ return vreinterpret_m64_s32(vcvt_s32_f32(vget_low_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION))))); ++#endif ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_si2ss ++FORCE_INLINE __m128 _mm_cvt_si2ss(__m128 a, int b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ss2si ++FORCE_INLINE int _mm_cvt_ss2si(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vgetq_lane_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))), ++ 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int32_t) data; ++#endif ++} ++ ++// Convert packed 16-bit integers in a to packed single-precision (32-bit) ++// floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi16_ps ++FORCE_INLINE __m128 _mm_cvtpi16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vmovl_s16(vreinterpret_s16_m64(a)))); ++} ++ ++// Convert packed 32-bit integers in b to packed single-precision (32-bit) ++// floating-point elements, store the results in the lower 2 elements of dst, ++// and copy the upper 2 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_ps ++FORCE_INLINE __m128 _mm_cvtpi32_ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, then convert the packed signed 32-bit integers in b to ++// single-precision (32-bit) floating-point element, and store the results in ++// the upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32x2_ps ++FORCE_INLINE __m128 _mm_cvtpi32x2_ps(__m64 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vcombine_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b)))); ++} ++ ++// Convert the lower packed 8-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi8_ps ++FORCE_INLINE __m128 _mm_cvtpi8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vmovl_s16(vget_low_s16(vmovl_s8(vreinterpret_s8_m64(a)))))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 16-bit integers, and store the results in dst. Note: this intrinsic ++// will generate 0x7FFF, rather than 0x8000, for input values between 0x7FFF and ++// 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi16 ++FORCE_INLINE __m64 _mm_cvtps_pi16(__m128 a) ++{ ++ return vreinterpret_m64_s16( ++ vqmovn_s32(vreinterpretq_s32_m128i(_mm_cvtps_epi32(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi32 ++#define _mm_cvtps_pi32(a) _mm_cvt_ps2pi(a) ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 8-bit integers, and store the results in lower 4 elements of dst. ++// Note: this intrinsic will generate 0x7F, rather than 0x80, for input values ++// between 0x7F and 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi8 ++FORCE_INLINE __m64 _mm_cvtps_pi8(__m128 a) ++{ ++ return vreinterpret_m64_s8(vqmovn_s16( ++ vcombine_s16(vreinterpret_s16_m64(_mm_cvtps_pi16(a)), vdup_n_s16(0)))); ++} ++ ++// Convert packed unsigned 16-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu16_ps ++FORCE_INLINE __m128 _mm_cvtpu16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_u32(vmovl_u16(vreinterpret_u16_m64(a)))); ++} ++ ++// Convert the lower packed unsigned 8-bit integers in a to packed ++// single-precision (32-bit) floating-point elements, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu8_ps ++FORCE_INLINE __m128 _mm_cvtpu8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_u32( ++ vmovl_u16(vget_low_u16(vmovl_u8(vreinterpret_u8_m64(a)))))); ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_ss ++#define _mm_cvtsi32_ss(a, b) _mm_cvt_si2ss(a, b) ++ ++// Convert the signed 64-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_ss ++FORCE_INLINE __m128 _mm_cvtsi64_ss(__m128 a, int64_t b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Copy the lower single-precision (32-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_f32 ++FORCE_INLINE float _mm_cvtss_f32(__m128 a) ++{ ++ return vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si32 ++#define _mm_cvtss_si32(a) _mm_cvt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si64 ++FORCE_INLINE int64_t _mm_cvtss_si64(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return (int64_t) vgetq_lane_f32(vrndiq_f32(vreinterpretq_f32_m128(a)), 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int64_t) data; ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ps2pi ++FORCE_INLINE __m64 _mm_cvtt_ps2pi(__m128 a) ++{ ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ss2si ++FORCE_INLINE int _mm_cvtt_ss2si(__m128 a) ++{ ++ return vgetq_lane_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)), 0); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_pi32 ++#define _mm_cvttps_pi32(a) _mm_cvtt_ps2pi(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si32 ++#define _mm_cvttss_si32(a) _mm_cvtt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si64 ++FORCE_INLINE int64_t _mm_cvttss_si64(__m128 a) ++{ ++ return (int64_t) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Divide packed single-precision (32-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise division intrinsic, we implement ++// division by multiplying a by b's reciprocal before using the Newton-Raphson ++// method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ps ++FORCE_INLINE __m128 _mm_div_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vdivq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(b)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(a), recip)); ++#endif ++} ++ ++// Divide the lower single-precision (32-bit) floating-point element in a by the ++// lower single-precision (32-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper 3 packed elements from a to ++// the upper elements of dst. ++// Warning: ARMv7-A does not produce the same result compared to Intel and not ++// IEEE-compliant. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ss ++FORCE_INLINE __m128 _mm_div_ss(__m128 a, __m128 b) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_div_ps(a, b)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_pi16 ++#define _mm_extract_pi16(a, imm) \ ++ (int32_t) vget_lane_u16(vreinterpret_u16_m64(a), (imm)) ++ ++// Free aligned memory that was allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_free ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void _mm_free(void *addr) ++{ ++ free(addr); ++} ++#endif ++ ++FORCE_INLINE uint64_t _sse2neon_get_fpcr(void) ++{ ++ uint64_t value; ++#if defined(_MSC_VER) ++ value = _ReadStatusReg(ARM64_FPCR); ++#else ++ __asm__ __volatile__("mrs %0, FPCR" : "=r"(value)); /* read */ ++#endif ++ return value; ++} ++ ++FORCE_INLINE void _sse2neon_set_fpcr(uint64_t value) ++{ ++#if defined(_MSC_VER) ++ _WriteStatusReg(ARM64_FPCR, value); ++#else ++ __asm__ __volatile__("msr FPCR, %0" ::"r"(value)); /* write */ ++#endif ++} ++ ++// Macro: Get the flush zero bits from the MXCSR control and status register. ++// The flush zero may contain any of the following flags: _MM_FLUSH_ZERO_ON or ++// _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_FLUSH_ZERO_MODE ++FORCE_INLINE unsigned int _sse2neon_mm_get_flush_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_FLUSH_ZERO_ON : _MM_FLUSH_ZERO_OFF; ++} ++ ++// Macro: Get the rounding mode bits from the MXCSR control and status register. ++// The rounding mode may contain any of the following flags: _MM_ROUND_NEAREST, ++// _MM_ROUND_DOWN, _MM_ROUND_UP, _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_ROUNDING_MODE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ if (r.field.bit22) { ++ return r.field.bit23 ? _MM_ROUND_TOWARD_ZERO : _MM_ROUND_UP; ++ } else { ++ return r.field.bit23 ? _MM_ROUND_DOWN : _MM_ROUND_NEAREST; ++ } ++} ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_pi16 ++#define _mm_insert_pi16(a, b, imm) \ ++ vreinterpret_m64_s16(vset_lane_s16((b), vreinterpret_s16_m64(a), (imm))) ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps ++FORCE_INLINE __m128 _mm_load_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// ++// dst[31:0] := MEM[mem_addr+31:mem_addr] ++// dst[63:32] := MEM[mem_addr+31:mem_addr] ++// dst[95:64] := MEM[mem_addr+31:mem_addr] ++// dst[127:96] := MEM[mem_addr+31:mem_addr] ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps1 ++#define _mm_load_ps1 _mm_load1_ps ++ ++// Load a single-precision (32-bit) floating-point element from memory into the ++// lower of dst, and zero the upper 3 elements. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ss ++FORCE_INLINE __m128 _mm_load_ss(const float *p) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(*p, vdupq_n_f32(0), 0)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_ps ++FORCE_INLINE __m128 _mm_load1_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_dup_f32(p)); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// upper 2 elements of dst, and copy the lower 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pi ++FORCE_INLINE __m128 _mm_loadh_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vget_low_f32(a), vld1_f32((const float32_t *) p))); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// lower 2 elements of dst, and copy the upper 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pi ++FORCE_INLINE __m128 _mm_loadl_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vld1_f32((const float32_t *) p), vget_high_f32(a))); ++} ++ ++// Load 4 single-precision (32-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_ps ++FORCE_INLINE __m128 _mm_loadr_ps(const float *p) ++{ ++ float32x4_t v = vrev64q_f32(vld1q_f32(p)); ++ return vreinterpretq_m128_f32(vextq_f32(v, v, 2)); ++} ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_ps ++FORCE_INLINE __m128 _mm_loadu_ps(const float *p) ++{ ++ // for neon, alignment doesn't matter, so _mm_load_ps and _mm_loadu_ps are ++ // equivalent for neon ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load unaligned 16-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si16 ++FORCE_INLINE __m128i _mm_loadu_si16(const void *p) ++{ ++ return vreinterpretq_m128i_s16( ++ vsetq_lane_s16(*(const unaligned_int16_t *) p, vdupq_n_s16(0), 0)); ++} ++ ++// Load unaligned 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si64 ++FORCE_INLINE __m128i _mm_loadu_si64(const void *p) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(*(const unaligned_int64_t *) p, vdupq_n_s64(0), 0)); ++} ++ ++// Allocate size bytes of memory, aligned to the alignment specified in align, ++// and return a pointer to the allocated memory. _mm_free should be used to free ++// memory that is allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_malloc ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void *_mm_malloc(size_t size, size_t align) ++{ ++ void *ptr; ++ if (align == 1) ++ return malloc(size); ++ if (align == 2 || (sizeof(void *) == 8 && align == 4)) ++ align = sizeof(void *); ++ if (!posix_memalign(&ptr, align, size)) ++ return ptr; ++ return NULL; ++} ++#endif ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmove_si64 ++FORCE_INLINE void _mm_maskmove_si64(__m64 a, __m64 mask, char *mem_addr) ++{ ++ int8x8_t shr_mask = vshr_n_s8(vreinterpret_s8_m64(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x8_t masked = ++ vbsl_s8(vreinterpret_u8_s8(shr_mask), vreinterpret_s8_m64(a), ++ vreinterpret_s8_u64(vget_low_u64(vreinterpretq_u64_m128(b)))); ++ vst1_s8((int8_t *) mem_addr, masked); ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_maskmovq ++#define _m_maskmovq(a, mask, mem_addr) _mm_maskmove_si64(a, mask, mem_addr) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pi16 ++FORCE_INLINE __m64 _mm_max_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmax_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) maximum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ps ++FORCE_INLINE __m128 _mm_max_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcgtq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vmaxq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pu8 ++FORCE_INLINE __m64 _mm_max_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmax_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) maximum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ss ++FORCE_INLINE __m128 _mm_max_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_max_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pi16 ++FORCE_INLINE __m64 _mm_min_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmin_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) minimum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ps ++FORCE_INLINE __m128 _mm_min_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcltq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vminq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pu8 ++FORCE_INLINE __m64 _mm_min_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmin_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) minimum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ss ++FORCE_INLINE __m128 _mm_min_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_min_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the lower single-precision (32-bit) floating-point element from b to the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_ss ++FORCE_INLINE __m128 _mm_move_ss(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(vgetq_lane_f32(vreinterpretq_f32_m128(b), 0), ++ vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the upper 2 single-precision (32-bit) floating-point elements from b to ++// the lower 2 elements of dst, and copy the upper 2 elements from a to the ++// upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehl_ps ++FORCE_INLINE __m128 _mm_movehl_ps(__m128 a, __m128 b) ++{ ++#if defined(aarch64__) ++ return vreinterpretq_m128_u64( ++ vzip2q_u64(vreinterpretq_u64_m128(b), vreinterpretq_u64_m128(a))); ++#else ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(b32, a32)); ++#endif ++} ++ ++// Move the lower 2 single-precision (32-bit) floating-point elements from b to ++// the upper 2 elements of dst, and copy the lower 2 elements from a to the ++// lower 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movelh_ps ++FORCE_INLINE __m128 _mm_movelh_ps(__m128 __A, __m128 __B) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(__A)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(__B)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pi8 ++FORCE_INLINE int _mm_movemask_pi8(__m64 a) ++{ ++ uint8x8_t input = vreinterpret_u8_m64(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int8_t shift[8] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint8x8_t tmp = vshr_n_u8(input, 7); ++ return vaddv_u8(vshl_u8(tmp, vld1_s8(shift))); ++#else ++ // Refer the implementation of `_mm_movemask_epi8` ++ uint16x4_t high_bits = vreinterpret_u16_u8(vshr_n_u8(input, 7)); ++ uint32x2_t paired16 = ++ vreinterpret_u32_u16(vsra_n_u16(high_bits, high_bits, 7)); ++ uint8x8_t paired32 = ++ vreinterpret_u8_u32(vsra_n_u32(paired16, paired16, 14)); ++ return vget_lane_u8(paired32, 0) | ((int) vget_lane_u8(paired32, 4) << 4); ++#endif ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed single-precision (32-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_ps ++FORCE_INLINE int _mm_movemask_ps(__m128 a) ++{ ++ uint32x4_t input = vreinterpretq_u32_m128(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int32_t shift[4] = {0, 1, 2, 3}; ++ uint32x4_t tmp = vshrq_n_u32(input, 31); ++ return vaddvq_u32(vshlq_u32(tmp, vld1q_s32(shift))); ++#else ++ // Uses the exact same method as _mm_movemask_epi8, see that for details. ++ // Shift out everything but the sign bits with a 32-bit unsigned shift ++ // right. ++ uint64x2_t high_bits = vreinterpretq_u64_u32(vshrq_n_u32(input, 31)); ++ // Merge the two pairs together with a 64-bit unsigned shift right + add. ++ uint8x16_t paired = ++ vreinterpretq_u8_u64(vsraq_n_u64(high_bits, high_bits, 31)); ++ // Extract the result. ++ return vgetq_lane_u8(paired, 0) | (vgetq_lane_u8(paired, 8) << 2); ++#endif ++} ++ ++// Multiply packed single-precision (32-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ps ++FORCE_INLINE_OPTNONE __m128 _mm_mul_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vmulq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Multiply the lower single-precision (32-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ss ++FORCE_INLINE __m128 _mm_mul_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_mul_ps(a, b)); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_pu16 ++FORCE_INLINE __m64 _mm_mulhi_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16(vshrn_n_u32( ++ vmull_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b)), 16)); ++} ++ ++// Compute the bitwise OR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_ps ++FORCE_INLINE __m128 _mm_or_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vorrq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgb ++#define _m_pavgb(a, b) _mm_avg_pu8(a, b) ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgw ++#define _m_pavgw(a, b) _mm_avg_pu16(a, b) ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pextrw ++#define _m_pextrw(a, imm) _mm_extract_pi16(a, imm) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_pinsrw ++#define _m_pinsrw(a, i, imm) _mm_insert_pi16(a, i, imm) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxsw ++#define _m_pmaxsw(a, b) _mm_max_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxub ++#define _m_pmaxub(a, b) _mm_max_pu8(a, b) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminsw ++#define _m_pminsw(a, b) _mm_min_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminub ++#define _m_pminub(a, b) _mm_min_pu8(a, b) ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmovmskb ++#define _m_pmovmskb(a) _mm_movemask_pi8(a) ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmulhuw ++#define _m_pmulhuw(a, b) _mm_mulhi_pu16(a, b) ++ ++// Fetch the line of data from memory that contains address p to a location in ++// the cache hierarchy specified by the locality hint i. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_prefetch ++FORCE_INLINE void _mm_prefetch(char const *p, int i) ++{ ++ (void) i; ++#if defined(_MSC_VER) ++ switch (i) { ++ case _MM_HINT_NTA: ++ __prefetch2(p, 1); ++ break; ++ case _MM_HINT_T0: ++ __prefetch2(p, 0); ++ break; ++ case _MM_HINT_T1: ++ __prefetch2(p, 2); ++ break; ++ case _MM_HINT_T2: ++ __prefetch2(p, 4); ++ break; ++ } ++#else ++ switch (i) { ++ case _MM_HINT_NTA: ++ __builtin_prefetch(p, 0, 0); ++ break; ++ case _MM_HINT_T0: ++ __builtin_prefetch(p, 0, 3); ++ break; ++ case _MM_HINT_T1: ++ __builtin_prefetch(p, 0, 2); ++ break; ++ case _MM_HINT_T2: ++ __builtin_prefetch(p, 0, 1); ++ break; ++ } ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_psadbw ++#define _m_psadbw(a, b) _mm_sad_pu8(a, b) ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pshufw ++#define _m_pshufw(a, imm) _mm_shuffle_pi16(a, imm) ++ ++// Compute the approximate reciprocal of packed single-precision (32-bit) ++// floating-point elements in a, and store the results in dst. The maximum ++// relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ps ++FORCE_INLINE __m128 _mm_rcp_ps(__m128 in) ++{ ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(in)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#if SSE2NEON_PRECISE_DIV ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#endif ++ return vreinterpretq_m128_f32(recip); ++} ++ ++// Compute the approximate reciprocal of the lower single-precision (32-bit) ++// floating-point element in a, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ss ++FORCE_INLINE __m128 _mm_rcp_ss(__m128 a) ++{ ++ return _mm_move_ss(a, _mm_rcp_ps(a)); ++} ++ ++// Compute the approximate reciprocal square root of packed single-precision ++// (32-bit) floating-point elements in a, and store the results in dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ps ++FORCE_INLINE __m128 _mm_rsqrt_ps(__m128 in) ++{ ++ float32x4_t out = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Generate masks for detecting whether input has any 0.0f/-0.0f ++ // (which becomes positive/negative infinity by IEEE-754 arithmetic rules). ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t neg_inf = vdupq_n_u32(0xFF800000); ++ const uint32x4_t has_pos_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(out)); ++ const uint32x4_t has_neg_zero = ++ vceqq_u32(neg_inf, vreinterpretq_u32_f32(out)); ++ ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#if SSE2NEON_PRECISE_SQRT ++ // Additional Netwon-Raphson iteration for accuracy ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#endif ++ ++ // Set output vector element to infinity/negative-infinity if ++ // the corresponding input vector element is 0.0f/-0.0f. ++ out = vbslq_f32(has_pos_zero, (float32x4_t) pos_inf, out); ++ out = vbslq_f32(has_neg_zero, (float32x4_t) neg_inf, out); ++ ++ return vreinterpretq_m128_f32(out); ++} ++ ++// Compute the approximate reciprocal square root of the lower single-precision ++// (32-bit) floating-point element in a, store the result in the lower element ++// of dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ss ++FORCE_INLINE __m128 _mm_rsqrt_ss(__m128 in) ++{ ++ return vsetq_lane_f32(vgetq_lane_f32(_mm_rsqrt_ps(in), 0), in, 0); ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_pu8 ++FORCE_INLINE __m64 _mm_sad_pu8(__m64 a, __m64 b) ++{ ++ uint64x1_t t = vpaddl_u32(vpaddl_u16( ++ vpaddl_u8(vabd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))))); ++ return vreinterpret_m64_u16( ++ vset_lane_u16((int) vget_lane_u64(t, 0), vdup_n_u16(0), 0)); ++} ++ ++// Macro: Set the flush zero bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The flush zero may contain any of the ++// following flags: _MM_FLUSH_ZERO_ON or _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_FLUSH_ZERO_MODE ++FORCE_INLINE void _sse2neon_mm_set_flush_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_FLUSH_ZERO_MASK) == _MM_FLUSH_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps ++FORCE_INLINE __m128 _mm_set_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {x, y, z, w}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps1 ++FORCE_INLINE __m128 _mm_set_ps1(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Macro: Set the rounding mode bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The rounding mode may contain any of ++// the following flags: _MM_ROUND_NEAREST, _MM_ROUND_DOWN, _MM_ROUND_UP, ++// _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_ROUNDING_MODE ++FORCE_INLINE void _MM_SET_ROUNDING_MODE(int rounding) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ switch (rounding) { ++ case _MM_ROUND_TOWARD_ZERO: ++ r.field.bit22 = 1; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_DOWN: ++ r.field.bit22 = 0; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_UP: ++ r.field.bit22 = 1; ++ r.field.bit23 = 0; ++ break; ++ default: //_MM_ROUND_NEAREST ++ r.field.bit22 = 0; ++ r.field.bit23 = 0; ++ } ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Copy single-precision (32-bit) floating-point element a to the lower element ++// of dst, and zero the upper 3 elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ss ++FORCE_INLINE __m128 _mm_set_ss(float a) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(a, vdupq_n_f32(0), 0)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_ps ++FORCE_INLINE __m128 _mm_set1_ps(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Set the MXCSR control and status register with the value in unsigned 32-bit ++// integer a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setcsr ++// FIXME: _mm_setcsr() implementation supports changing the rounding mode only. ++FORCE_INLINE void _mm_setcsr(unsigned int a) ++{ ++ _MM_SET_ROUNDING_MODE(a); ++} ++ ++// Get the unsigned 32-bit value of the MXCSR control and status register. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_getcsr ++// FIXME: _mm_getcsr() implementation supports reading the rounding mode only. ++FORCE_INLINE unsigned int _mm_getcsr(void) ++{ ++ return _MM_GET_ROUNDING_MODE(); ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_ps ++FORCE_INLINE __m128 _mm_setr_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {w, z, y, x}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Return vector of type __m128 with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_ps ++FORCE_INLINE __m128 _mm_setzero_ps(void) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(0)); ++} ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi16 ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pi16(a, imm) \ ++ vreinterpret_m64_s16(vshuffle_s16( \ ++ vreinterpret_s16_m64(a), vreinterpret_s16_m64(a), (imm & 0x3), \ ++ ((imm >> 2) & 0x3), ((imm >> 4) & 0x3), ((imm >> 6) & 0x3))) ++#else ++#define _mm_shuffle_pi16(a, imm) \ ++ _sse2neon_define1( \ ++ __m64, a, int16x4_t ret; \ ++ ret = vmov_n_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), (imm) & (0x3))); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpret_m64_s16(ret));) ++#endif ++ ++// Perform a serializing operation on all store-to-memory instructions that were ++// issued prior to this instruction. Guarantees that every store instruction ++// that precedes, in program order, is globally visible before any store ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sfence ++FORCE_INLINE void _mm_sfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory and store-to-memory ++// instructions that were issued prior to this instruction. Guarantees that ++// every memory access that precedes, in program order, the memory fence ++// instruction is globally visible before any memory instruction which follows ++// the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mfence ++FORCE_INLINE void _mm_mfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory instructions that ++// were issued prior to this instruction. Guarantees that every load instruction ++// that precedes, in program order, is globally visible before any load ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lfence ++FORCE_INLINE void _mm_lfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// FORCE_INLINE __m128 _mm_shuffle_ps(__m128 a, __m128 b, __constrange(0,255) ++// int imm) ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_ps(a, b, imm) \ ++ __extension__({ \ ++ float32x4_t _input1 = vreinterpretq_f32_m128(a); \ ++ float32x4_t _input2 = vreinterpretq_f32_m128(b); \ ++ float32x4_t _shuf = \ ++ vshuffleq_s32(_input1, _input2, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ (((imm) >> 4) & 0x3) + 4, (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128_f32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_ps(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128, a, b, __m128 ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_1032(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_ps_2301(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_ps_0321(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_ps_2103(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_movelh_ps(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_1001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_ps_0101(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 1, 0): \ ++ ret = _mm_shuffle_ps_3210(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 1, 1): \ ++ ret = _mm_shuffle_ps_0011(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 2, 2): \ ++ ret = _mm_shuffle_ps_0022(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 0, 0): \ ++ ret = _mm_shuffle_ps_2200(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 0, 2): \ ++ ret = _mm_shuffle_ps_3202(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 3, 2): \ ++ ret = _mm_movehl_ps(_b, _a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 3, 3): \ ++ ret = _mm_shuffle_ps_1133(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 1, 0): \ ++ ret = _mm_shuffle_ps_2010(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_2001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_2032(_a, _b); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_ps_default(_a, _b, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Compute the square root of packed single-precision (32-bit) floating-point ++// elements in a, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise square root intrinsic, we implement ++// square root by multiplying input in with its reciprocal square root before ++// using the Newton-Raphson method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ps ++FORCE_INLINE __m128 _mm_sqrt_ps(__m128 in) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) && !SSE2NEON_PRECISE_SQRT ++ return vreinterpretq_m128_f32(vsqrtq_f32(vreinterpretq_f32_m128(in))); ++#else ++ float32x4_t recip = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Test for vrsqrteq_f32(0) -> positive infinity case. ++ // Change to zero, so that s * 1/sqrt(s) result is zero too. ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t div_by_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(recip)); ++ recip = vreinterpretq_f32_u32( ++ vandq_u32(vmvnq_u32(div_by_zero), vreinterpretq_u32_f32(recip))); ++ ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ ++ // sqrt(s) = s * 1/sqrt(s) ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(in), recip)); ++#endif ++} ++ ++// Compute the square root of the lower single-precision (32-bit) floating-point ++// element in a, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ss ++FORCE_INLINE __m128 _mm_sqrt_ss(__m128 in) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_sqrt_ps(in)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(in), 0)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps ++FORCE_INLINE void _mm_store_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps1 ++FORCE_INLINE void _mm_store_ps1(float *p, __m128 a) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ vst1q_f32(p, vdupq_n_f32(a0)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ss ++FORCE_INLINE void _mm_store_ss(float *p, __m128 a) ++{ ++ vst1q_lane_f32(p, vreinterpretq_f32_m128(a), 0); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store1_ps ++#define _mm_store1_ps _mm_store_ps1 ++ ++// Store the upper 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pi ++FORCE_INLINE void _mm_storeh_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_high_f32(a)); ++} ++ ++// Store the lower 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pi ++FORCE_INLINE void _mm_storel_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_low_f32(a)); ++} ++ ++// Store 4 single-precision (32-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_ps ++FORCE_INLINE void _mm_storer_ps(float *p, __m128 a) ++{ ++ float32x4_t tmp = vrev64q_f32(vreinterpretq_f32_m128(a)); ++ float32x4_t rev = vextq_f32(tmp, tmp, 2); ++ vst1q_f32(p, rev); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_ps ++FORCE_INLINE void _mm_storeu_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Stores 16-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si16 ++FORCE_INLINE void _mm_storeu_si16(void *p, __m128i a) ++{ ++ vst1q_lane_s16((int16_t *) p, vreinterpretq_s16_m128i(a), 0); ++} ++ ++// Stores 64-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si64 ++FORCE_INLINE void _mm_storeu_si64(void *p, __m128i a) ++{ ++ vst1q_lane_s64((int64_t *) p, vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Store 64-bits of integer data from a into memory using a non-temporal memory ++// hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pi ++FORCE_INLINE void _mm_stream_pi(__m64 *p, __m64 a) ++{ ++ vst1_s64((int64_t *) p, vreinterpret_s64_m64(a)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating- ++// point elements) from a into memory using a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_ps ++FORCE_INLINE void _mm_stream_ps(float *p, __m128 a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (float32x4_t *) p); ++#else ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++#endif ++} ++ ++// Subtract packed single-precision (32-bit) floating-point elements in b from ++// packed single-precision (32-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ps ++FORCE_INLINE __m128 _mm_sub_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Subtract the lower single-precision (32-bit) floating-point element in b from ++// the lower single-precision (32-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper 3 packed elements from ++// a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ss ++FORCE_INLINE __m128 _mm_sub_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_sub_ps(a, b)); ++} ++ ++// Macro: Transpose the 4x4 matrix formed by the 4 rows of single-precision ++// (32-bit) floating-point elements in row0, row1, row2, and row3, and store the ++// transposed matrix in these vectors (row0 now contains column 0, etc.). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=MM_TRANSPOSE4_PS ++#define _MM_TRANSPOSE4_PS(row0, row1, row2, row3) \ ++ do { \ ++ float32x4x2_t ROW01 = vtrnq_f32(row0, row1); \ ++ float32x4x2_t ROW23 = vtrnq_f32(row2, row3); \ ++ row0 = vcombine_f32(vget_low_f32(ROW01.val[0]), \ ++ vget_low_f32(ROW23.val[0])); \ ++ row1 = vcombine_f32(vget_low_f32(ROW01.val[1]), \ ++ vget_low_f32(ROW23.val[1])); \ ++ row2 = vcombine_f32(vget_high_f32(ROW01.val[0]), \ ++ vget_high_f32(ROW23.val[0])); \ ++ row3 = vcombine_f32(vget_high_f32(ROW01.val[1]), \ ++ vget_high_f32(ROW23.val[1])); \ ++ } while (0) ++ ++// according to the documentation, these intrinsics behave the same as the ++// non-'u' versions. We'll just alias them here. ++#define _mm_ucomieq_ss _mm_comieq_ss ++#define _mm_ucomige_ss _mm_comige_ss ++#define _mm_ucomigt_ss _mm_comigt_ss ++#define _mm_ucomile_ss _mm_comile_ss ++#define _mm_ucomilt_ss _mm_comilt_ss ++#define _mm_ucomineq_ss _mm_comineq_ss ++ ++// Return vector of type __m128i with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_undefined_si128 ++FORCE_INLINE __m128i _mm_undefined_si128(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128i a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_si128(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Return vector of type __m128 with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_ps ++FORCE_INLINE __m128 _mm_undefined_ps(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128 a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_ps(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the high half a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_ps ++FORCE_INLINE __m128 _mm_unpackhi_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_ps ++FORCE_INLINE __m128 _mm_unpacklo_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Compute the bitwise XOR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_ps ++FORCE_INLINE __m128 _mm_xor_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ veorq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++/* SSE2 */ ++ ++// Add packed 16-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi16 ++FORCE_INLINE __m128i _mm_add_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed 32-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi32 ++FORCE_INLINE __m128i _mm_add_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vaddq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Add packed 64-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi64 ++FORCE_INLINE __m128i _mm_add_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vaddq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Add packed 8-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi8 ++FORCE_INLINE __m128i _mm_add_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed double-precision (64-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_pd ++FORCE_INLINE __m128d _mm_add_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1] + db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add the lower double-precision (64-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper element from ++// a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_sd ++FORCE_INLINE __m128d _mm_add_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_add_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add 64-bit integers a and b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_si64 ++FORCE_INLINE __m64 _mm_add_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vadd_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Add packed signed 16-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi16 ++FORCE_INLINE __m128i _mm_adds_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed signed 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi8 ++FORCE_INLINE __m128i _mm_adds_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed unsigned 16-bit integers in a and b using saturation, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu16 ++FORCE_INLINE __m128i _mm_adds_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqaddq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Add packed unsigned 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu8 ++FORCE_INLINE __m128i _mm_adds_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compute the bitwise AND of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_pd ++FORCE_INLINE __m128d _mm_and_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vandq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_si128 ++FORCE_INLINE __m128i _mm_and_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vandq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compute the bitwise NOT of packed double-precision (64-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_pd ++FORCE_INLINE __m128d _mm_andnot_pd(__m128d a, __m128d b) ++{ ++ // *NOTE* argument swap ++ return vreinterpretq_m128d_s64( ++ vbicq_s64(vreinterpretq_s64_m128d(b), vreinterpretq_s64_m128d(a))); ++} ++ ++// Compute the bitwise NOT of 128 bits (representing integer data) in a and then ++// AND with b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_si128 ++FORCE_INLINE __m128i _mm_andnot_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vbicq_s32(vreinterpretq_s32_m128i(b), ++ vreinterpretq_s32_m128i(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu16 ++FORCE_INLINE __m128i _mm_avg_epu16(__m128i a, __m128i b) ++{ ++ return (__m128i) vrhaddq_u16(vreinterpretq_u16_m128i(a), ++ vreinterpretq_u16_m128i(b)); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu8 ++FORCE_INLINE __m128i _mm_avg_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vrhaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bslli_si128 ++#define _mm_bslli_si128(a, imm) _mm_slli_si128(a, imm) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bsrli_si128 ++#define _mm_bsrli_si128(a, imm) _mm_srli_si128(a, imm) ++ ++// Cast vector of type __m128d to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_ps ++FORCE_INLINE __m128 _mm_castpd_ps(__m128d a) ++{ ++ return vreinterpretq_m128_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128d to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_si128 ++FORCE_INLINE __m128i _mm_castpd_si128(__m128d a) ++{ ++ return vreinterpretq_m128i_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128 to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_pd ++FORCE_INLINE __m128d _mm_castps_pd(__m128 a) ++{ ++ return vreinterpretq_m128d_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128 to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_si128 ++FORCE_INLINE __m128i _mm_castps_si128(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128i to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_pd ++FORCE_INLINE __m128d _mm_castsi128_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vreinterpretq_f64_m128i(a)); ++#else ++ return vreinterpretq_m128d_f32(vreinterpretq_f32_m128i(a)); ++#endif ++} ++ ++// Cast vector of type __m128i to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_ps ++FORCE_INLINE __m128 _mm_castsi128_ps(__m128i a) ++{ ++ return vreinterpretq_m128_s32(vreinterpretq_s32_m128i(a)); ++} ++ ++// Invalidate and flush the cache line that contains p from all levels of the ++// cache hierarchy. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clflush ++#if defined(__APPLE__) ++#include ++#endif ++FORCE_INLINE void _mm_clflush(void const *p) ++{ ++ (void) p; ++ ++ /* sys_icache_invalidate is supported since macOS 10.5. ++ * However, it does not work on non-jailbroken iOS devices, although the ++ * compilation is successful. ++ */ ++#if defined(__APPLE__) ++ sys_icache_invalidate((void *) (uintptr_t) p, SSE2NEON_CACHELINE_SIZE); ++#elif defined(__GNUC__) || defined(__clang__) ++ uintptr_t ptr = (uintptr_t) p; ++ __builtin___clear_cache((char *) ptr, ++ (char *) ptr + SSE2NEON_CACHELINE_SIZE); ++#elif (_MSC_VER) && SSE2NEON_INCLUDE_WINDOWS_H ++ FlushInstructionCache(GetCurrentProcess(), p, SSE2NEON_CACHELINE_SIZE); ++#endif ++} ++ ++// Compare packed 16-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi16 ++FORCE_INLINE __m128i _mm_cmpeq_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vceqq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed 32-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi32 ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vceqq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed 8-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi8 ++FORCE_INLINE __m128i _mm_cmpeq_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vceqq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_pd ++FORCE_INLINE __m128d _mm_cmpeq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_sd ++FORCE_INLINE __m128d _mm_cmpeq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpeq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_pd ++FORCE_INLINE __m128d _mm_cmpge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) >= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_sd ++FORCE_INLINE __m128d _mm_cmpge_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpge_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi16 ++FORCE_INLINE __m128i _mm_cmpgt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcgtq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi32 ++FORCE_INLINE __m128i _mm_cmpgt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcgtq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi8 ++FORCE_INLINE __m128i _mm_cmpgt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcgtq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_pd ++FORCE_INLINE __m128d _mm_cmpgt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_sd ++FORCE_INLINE __m128d _mm_cmpgt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpgt_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_pd ++FORCE_INLINE __m128d _mm_cmple_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) <= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_sd ++FORCE_INLINE __m128d _mm_cmple_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmple_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtw instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi16 ++FORCE_INLINE __m128i _mm_cmplt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcltq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtd instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi32 ++FORCE_INLINE __m128i _mm_cmplt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcltq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtb instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi8 ++FORCE_INLINE __m128i _mm_cmplt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcltq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_pd ++FORCE_INLINE __m128d _mm_cmplt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_sd ++FORCE_INLINE __m128d _mm_cmplt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmplt_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_pd ++FORCE_INLINE __m128d _mm_cmpneq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_s32(vmvnq_s32(vreinterpretq_s32_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vmvnq_u32(vandq_u32(cmp, swapped))); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_sd ++FORCE_INLINE __m128d _mm_cmpneq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpneq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_pd ++FORCE_INLINE __m128d _mm_cmpnge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) >= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) >= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_sd ++FORCE_INLINE __m128d _mm_cmpnge_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnge_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_cmpngt_pd ++FORCE_INLINE __m128d _mm_cmpngt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) > (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) > (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_sd ++FORCE_INLINE __m128d _mm_cmpngt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpngt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_pd ++FORCE_INLINE __m128d _mm_cmpnle_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) <= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) <= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_sd ++FORCE_INLINE __m128d _mm_cmpnle_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnle_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_pd ++FORCE_INLINE __m128d _mm_cmpnlt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) < (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) < (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_sd ++FORCE_INLINE __m128d _mm_cmpnlt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnlt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_pd ++FORCE_INLINE __m128d _mm_cmpord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Excluding NaNs, any two floating point numbers can be compared. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_u64(vandq_u64(not_nan_a, not_nan_b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_sd ++FORCE_INLINE __m128d _mm_cmpord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_pd ++FORCE_INLINE __m128d _mm_cmpunord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Two NaNs are not equal in comparison operation. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_s32( ++ vmvnq_s32(vreinterpretq_s32_u64(vandq_u64(not_nan_a, not_nan_b)))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_sd ++FORCE_INLINE __m128d _mm_cmpunord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpunord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_sd ++FORCE_INLINE int _mm_comige_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgeq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 >= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_sd ++FORCE_INLINE int _mm_comigt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgtq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 > *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_sd ++FORCE_INLINE int _mm_comile_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcleq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 <= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_sd ++FORCE_INLINE int _mm_comilt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcltq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 < *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_sd ++FORCE_INLINE int _mm_comieq_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vceqq_f64(a, b), 0) & 0x1; ++#else ++ uint32x4_t a_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(a)); ++ uint32x4_t b_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(b), vreinterpretq_u32_m128d(b)); ++ uint32x4_t a_and_b_not_nan = vandq_u32(a_not_nan, b_not_nan); ++ uint32x4_t a_eq_b = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint64x2_t and_results = vandq_u64(vreinterpretq_u64_u32(a_and_b_not_nan), ++ vreinterpretq_u64_u32(a_eq_b)); ++ return vgetq_lane_u64(and_results, 0) & 0x1; ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_sd ++FORCE_INLINE int _mm_comineq_sd(__m128d a, __m128d b) ++{ ++ return !_mm_comieq_sd(a, b); ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_pd ++FORCE_INLINE __m128d _mm_cvtepi32_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a))))); ++#else ++ double a0 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++ double a1 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_ps ++FORCE_INLINE __m128 _mm_cvtepi32_ps(__m128i a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_epi32 ++FORCE_INLINE_OPTNONE __m128i _mm_cvtpd_epi32(__m128d a) ++{ ++// vrnd32xq_f64 not supported on clang ++#if defined(__ARM_FEATURE_FRINT) && !defined(__clang__) ++ float64x2_t rounded = vrnd32xq_f64(vreinterpretq_f64_m128d(a)); ++ int64x2_t integers = vcvtq_s64_f64(rounded); ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vmovn_s64(integers), vdup_n_s32(0))); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) d1, (int32_t) d0); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_pi32 ++FORCE_INLINE_OPTNONE __m64 _mm_cvtpd_pi32(__m128d a) ++{ ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) d0, (int32_t) d1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed single-precision (32-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_ps ++FORCE_INLINE __m128 _mm_cvtpd_ps(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float32x2_t tmp = vcvt_f32_f64(vreinterpretq_f64_m128d(a)); ++ return vreinterpretq_m128_f32(vcombine_f32(tmp, vdup_n_f32(0))); ++#else ++ float a0 = (float) ((double *) &a)[0]; ++ float a1 = (float) ((double *) &a)[1]; ++ return _mm_set_ps(0, 0, a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_pd ++FORCE_INLINE __m128d _mm_cvtpi32_pd(__m64 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vreinterpret_s32_m64(a)))); ++#else ++ double a0 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 0); ++ double a1 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_epi32 ++// *NOTE*. The default rounding mode on SSE is 'round to even', which ARMv7-A ++// does not support! It is supported on ARMv8-A however. ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128 a) ++{ ++#if defined(__ARM_FEATURE_FRINT) ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vrnd32xq_f32(a))); ++#elif (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: ++ return vreinterpretq_m128i_s32(vcvtnq_s32_f32(a)); ++ case _MM_ROUND_DOWN: ++ return vreinterpretq_m128i_s32(vcvtmq_s32_f32(a)); ++ case _MM_ROUND_UP: ++ return vreinterpretq_m128i_s32(vcvtpq_s32_f32(a)); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(a)); ++ } ++#else ++ float *f = (float *) &a; ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128i_s32( ++ vbslq_s32(is_delta_half, r_even, r_normal)); ++ } ++ case _MM_ROUND_DOWN: ++ return _mm_set_epi32(floorf(f[3]), floorf(f[2]), floorf(f[1]), ++ floorf(f[0])); ++ case _MM_ROUND_UP: ++ return _mm_set_epi32(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ++ ceilf(f[0])); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return _mm_set_epi32((int32_t) f[3], (int32_t) f[2], (int32_t) f[1], ++ (int32_t) f[0]); ++ } ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed double-precision (64-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pd ++FORCE_INLINE __m128d _mm_cvtps_pd(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvt_f64_f32(vget_low_f32(vreinterpretq_f32_m128(a)))); ++#else ++ double a0 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ double a1 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Copy the lower double-precision (64-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_f64 ++FORCE_INLINE double _mm_cvtsd_f64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (double) vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0); ++#else ++ return ((double *) &a)[0]; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si32 ++FORCE_INLINE int32_t _mm_cvtsd_si32(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int32_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int32_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64 ++FORCE_INLINE int64_t _mm_cvtsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int64_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64x ++#define _mm_cvtsd_si64x _mm_cvtsd_si64 ++ ++// Convert the lower double-precision (64-bit) floating-point element in b to a ++// single-precision (32-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_ss ++FORCE_INLINE __m128 _mm_cvtsd_ss(__m128 a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32(vsetq_lane_f32( ++ vget_lane_f32(vcvt_f32_f64(vreinterpretq_f64_m128d(b)), 0), ++ vreinterpretq_f32_m128(a), 0)); ++#else ++ return vreinterpretq_m128_f32(vsetq_lane_f32((float) ((double *) &b)[0], ++ vreinterpretq_f32_m128(a), 0)); ++#endif ++} ++ ++// Copy the lower 32-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si32 ++FORCE_INLINE int _mm_cvtsi128_si32(__m128i a) ++{ ++ return vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64 ++FORCE_INLINE int64_t _mm_cvtsi128_si64(__m128i a) ++{ ++ return vgetq_lane_s64(vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Convert the signed 32-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_sd ++FORCE_INLINE __m128d _mm_cvtsi32_sd(__m128d a, int32_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Copy 32-bit integer a to the lower elements of dst, and zero the upper ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_si128 ++FORCE_INLINE __m128i _mm_cvtsi32_si128(int a) ++{ ++ return vreinterpretq_m128i_s32(vsetq_lane_s32(a, vdupq_n_s32(0), 0)); ++} ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_sd ++FORCE_INLINE __m128d _mm_cvtsi64_sd(__m128d a, int64_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_si128 ++FORCE_INLINE __m128i _mm_cvtsi64_si128(int64_t a) ++{ ++ return vreinterpretq_m128i_s64(vsetq_lane_s64(a, vdupq_n_s64(0), 0)); ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_si128 ++#define _mm_cvtsi64x_si128(a) _mm_cvtsi64_si128(a) ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_sd ++#define _mm_cvtsi64x_sd(a, b) _mm_cvtsi64_sd(a, b) ++ ++// Convert the lower single-precision (32-bit) floating-point element in b to a ++// double-precision (64-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_sd ++FORCE_INLINE __m128d _mm_cvtss_sd(__m128d a, __m128 b) ++{ ++ double d = (double) vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(d, vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &d, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_epi32 ++FORCE_INLINE __m128i _mm_cvttpd_epi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) a1, (int32_t) a0); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_pi32 ++FORCE_INLINE __m64 _mm_cvttpd_pi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) a0, (int32_t) a1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_epi32 ++FORCE_INLINE __m128i _mm_cvttps_epi32(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a))); ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si32 ++FORCE_INLINE int32_t _mm_cvttsd_si32(__m128d a) ++{ ++ double ret = *((double *) &a); ++ return (int32_t) ret; ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64 ++FORCE_INLINE int64_t _mm_cvttsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_s64(vcvtq_s64_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ double ret = *((double *) &a); ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64x ++#define _mm_cvttsd_si64x(a) _mm_cvttsd_si64(a) ++ ++// Divide packed double-precision (64-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_pd ++FORCE_INLINE __m128d _mm_div_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] / db[0]; ++ c[1] = da[1] / db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Divide the lower double-precision (64-bit) floating-point element in a by the ++// lower double-precision (64-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper element from a to the upper ++// element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_sd ++FORCE_INLINE __m128d _mm_div_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t tmp = ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1), tmp, 1)); ++#else ++ return _mm_move_sd(a, _mm_div_pd(a, b)); ++#endif ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi16 ++// FORCE_INLINE int _mm_extract_epi16(__m128i a, __constrange(0,8) int imm) ++#define _mm_extract_epi16(a, imm) \ ++ vgetq_lane_u16(vreinterpretq_u16_m128i(a), (imm)) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi16 ++// FORCE_INLINE __m128i _mm_insert_epi16(__m128i a, int b, ++// __constrange(0,8) int imm) ++#define _mm_insert_epi16(a, b, imm) \ ++ vreinterpretq_m128i_s16( \ ++ vsetq_lane_s16((b), vreinterpretq_s16_m128i(a), (imm))) ++ ++// Load 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd ++FORCE_INLINE __m128d _mm_load_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64(p)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], fp[2], fp[3]}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd1 ++#define _mm_load_pd1 _mm_load1_pd ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower of dst, and zero the upper element. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_sd ++FORCE_INLINE __m128d _mm_load_sd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(*p, vdupq_n_f64(0), 0)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], 0, 0}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_si128 ++FORCE_INLINE __m128i _mm_load_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const int32_t *) p)); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_pd ++FORCE_INLINE __m128d _mm_load1_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_dup_f64(p)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(const int64_t *) p)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// upper element of dst, and copy the lower element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pd ++FORCE_INLINE __m128d _mm_loadh_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vget_low_f64(vreinterpretq_f64_m128d(a)), vld1_f64(p))); ++#else ++ return vreinterpretq_m128d_f32(vcombine_f32( ++ vget_low_f32(vreinterpretq_f32_m128d(a)), vld1_f32((const float *) p))); ++#endif ++} ++ ++// Load 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_epi64 ++FORCE_INLINE __m128i _mm_loadl_epi64(__m128i const *p) ++{ ++ /* Load the lower 64 bits of the value pointed to by p into the ++ * lower 64 bits of the result, zeroing the upper 64 bits of the result. ++ */ ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vld1_s32((int32_t const *) p), vcreate_s32(0))); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower element of dst, and copy the upper element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pd ++FORCE_INLINE __m128d _mm_loadl_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vld1_f64(p), vget_high_f64(vreinterpretq_f64_m128d(a)))); ++#else ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vld1_f32((const float *) p), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++#endif ++} ++ ++// Load 2 double-precision (64-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_pd ++FORCE_INLINE __m128d _mm_loadr_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t v = vld1q_f64(p); ++ return vreinterpretq_m128d_f64(vextq_f64(v, v, 1)); ++#else ++ int64x2_t v = vld1q_s64((const int64_t *) p); ++ return vreinterpretq_m128d_s64(vextq_s64(v, v, 1)); ++#endif ++} ++ ++// Loads two double-precision from unaligned memory, floating-point values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_pd ++FORCE_INLINE __m128d _mm_loadu_pd(const double *p) ++{ ++ return _mm_load_pd(p); ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si128 ++FORCE_INLINE __m128i _mm_loadu_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const unaligned_int32_t *) p)); ++} ++ ++// Load unaligned 32-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si32 ++FORCE_INLINE __m128i _mm_loadu_si32(const void *p) ++{ ++ return vreinterpretq_m128i_s32( ++ vsetq_lane_s32(*(const unaligned_int32_t *) p, vdupq_n_s32(0), 0)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Horizontally add adjacent pairs of intermediate ++// 32-bit integers, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_madd_epi16 ++FORCE_INLINE __m128i _mm_madd_epi16(__m128i a, __m128i b) ++{ ++ int32x4_t low = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t high = ++ vmull_high_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b)); ++ ++ return vreinterpretq_m128i_s32(vpaddq_s32(low, high)); ++#else ++ int32x4_t high = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ int32x2_t low_sum = vpadd_s32(vget_low_s32(low), vget_high_s32(low)); ++ int32x2_t high_sum = vpadd_s32(vget_low_s32(high), vget_high_s32(high)); ++ ++ return vreinterpretq_m128i_s32(vcombine_s32(low_sum, high_sum)); ++#endif ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. mem_addr does not need to be aligned ++// on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmoveu_si128 ++FORCE_INLINE void _mm_maskmoveu_si128(__m128i a, __m128i mask, char *mem_addr) ++{ ++ int8x16_t shr_mask = vshrq_n_s8(vreinterpretq_s8_m128i(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x16_t masked = ++ vbslq_s8(vreinterpretq_u8_s8(shr_mask), vreinterpretq_s8_m128i(a), ++ vreinterpretq_s8_m128(b)); ++ vst1q_s8((int8_t *) mem_addr, masked); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi16 ++FORCE_INLINE __m128i _mm_max_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmaxq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu8 ++FORCE_INLINE __m128i _mm_max_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vmaxq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pd ++FORCE_INLINE __m128d _mm_max_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcgtq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vmaxq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? a1 : b1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_sd ++FORCE_INLINE __m128d _mm_max_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_max_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] > db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi16 ++FORCE_INLINE __m128i _mm_min_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vminq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu8 ++FORCE_INLINE __m128i _mm_min_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vminq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pd ++FORCE_INLINE __m128d _mm_min_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcltq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vminq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? a1 : b1; ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_sd ++FORCE_INLINE __m128d _mm_min_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_min_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] < db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to the lower element of dst, and zero the ++// upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_epi64 ++FORCE_INLINE __m128i _mm_move_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(0, vreinterpretq_s64_m128i(a), 1)); ++} ++ ++// Move the lower double-precision (64-bit) floating-point element from b to the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_sd ++FORCE_INLINE __m128d _mm_move_sd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vget_low_f32(vreinterpretq_f32_m128d(b)), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_epi8 ++FORCE_INLINE int _mm_movemask_epi8(__m128i a) ++{ ++ // Use increasingly wide shifts+adds to collect the sign bits ++ // together. ++ // Since the widening shifts would be rather confusing to follow in little ++ // endian, everything will be illustrated in big endian order instead. This ++ // has a different result - the bits would actually be reversed on a big ++ // endian machine. ++ ++ // Starting input (only half the elements are shown): ++ // 89 ff 1d c0 00 10 99 33 ++ uint8x16_t input = vreinterpretq_u8_m128i(a); ++ ++ // Shift out everything but the sign bits with an unsigned shift right. ++ // ++ // Bytes of the vector:: ++ // 89 ff 1d c0 00 10 99 33 ++ // \ \ \ \ \ \ \ \ high_bits = (uint16x4_t)(input >> 7) ++ // | | | | | | | | ++ // 01 01 00 01 00 00 01 00 ++ // ++ // Bits of first important lane(s): ++ // 10001001 (89) ++ // \______ ++ // | ++ // 00000001 (01) ++ uint16x8_t high_bits = vreinterpretq_u16_u8(vshrq_n_u8(input, 7)); ++ ++ // Merge the even lanes together with a 16-bit unsigned shift right + add. ++ // 'xx' represents garbage data which will be ignored in the final result. ++ // In the important bytes, the add functions like a binary OR. ++ // ++ // 01 01 00 01 00 00 01 00 ++ // \_ | \_ | \_ | \_ | paired16 = (uint32x4_t)(input + (input >> 7)) ++ // \| \| \| \| ++ // xx 03 xx 01 xx 00 xx 02 ++ // ++ // 00000001 00000001 (01 01) ++ // \_______ | ++ // \| ++ // xxxxxxxx xxxxxx11 (xx 03) ++ uint32x4_t paired16 = ++ vreinterpretq_u32_u16(vsraq_n_u16(high_bits, high_bits, 7)); ++ ++ // Repeat with a wider 32-bit shift + add. ++ // xx 03 xx 01 xx 00 xx 02 ++ // \____ | \____ | paired32 = (uint64x1_t)(paired16 + (paired16 >> ++ // 14)) ++ // \| \| ++ // xx xx xx 0d xx xx xx 02 ++ // ++ // 00000011 00000001 (03 01) ++ // \\_____ || ++ // '----.\|| ++ // xxxxxxxx xxxx1101 (xx 0d) ++ uint64x2_t paired32 = ++ vreinterpretq_u64_u32(vsraq_n_u32(paired16, paired16, 14)); ++ ++ // Last, an even wider 64-bit shift + add to get our result in the low 8 bit ++ // lanes. xx xx xx 0d xx xx xx 02 ++ // \_________ | paired64 = (uint8x8_t)(paired32 + (paired32 >> ++ // 28)) ++ // \| ++ // xx xx xx xx xx xx xx d2 ++ // ++ // 00001101 00000010 (0d 02) ++ // \ \___ | | ++ // '---. \| | ++ // xxxxxxxx 11010010 (xx d2) ++ uint8x16_t paired64 = ++ vreinterpretq_u8_u64(vsraq_n_u64(paired32, paired32, 28)); ++ ++ // Extract the low 8 bits from each 64-bit lane with 2 8-bit extracts. ++ // xx xx xx xx xx xx xx d2 ++ // || return paired64[0] ++ // d2 ++ // Note: Little endian would return the correct value 4b (01001011) instead. ++ return vgetq_lane_u8(paired64, 0) | ((int) vgetq_lane_u8(paired64, 8) << 8); ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed double-precision (64-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pd ++FORCE_INLINE int _mm_movemask_pd(__m128d a) ++{ ++ uint64x2_t input = vreinterpretq_u64_m128d(a); ++ uint64x2_t high_bits = vshrq_n_u64(input, 63); ++ return (int) (vgetq_lane_u64(high_bits, 0) | ++ (vgetq_lane_u64(high_bits, 1) << 1)); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movepi64_pi64 ++FORCE_INLINE __m64 _mm_movepi64_pi64(__m128i a) ++{ ++ return vreinterpret_m64_s64(vget_low_s64(vreinterpretq_s64_m128i(a))); ++} ++ ++// Copy the 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movpi64_epi64 ++FORCE_INLINE __m128i _mm_movpi64_epi64(__m64 a) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vreinterpret_s64_m64(a), vdup_n_s64(0))); ++} ++ ++// Multiply the low unsigned 32-bit integers from each packed 64-bit element in ++// a and b, and store the unsigned 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epu32 ++FORCE_INLINE __m128i _mm_mul_epu32(__m128i a, __m128i b) ++{ ++ // vmull_u32 upcasts instead of masking, so we downcast. ++ uint32x2_t a_lo = vmovn_u64(vreinterpretq_u64_m128i(a)); ++ uint32x2_t b_lo = vmovn_u64(vreinterpretq_u64_m128i(b)); ++ return vreinterpretq_m128i_u64(vmull_u32(a_lo, b_lo)); ++} ++ ++// Multiply packed double-precision (64-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_pd ++FORCE_INLINE __m128d _mm_mul_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vmulq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] * db[0]; ++ c[1] = da[1] * db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Multiply the lower double-precision (64-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper element ++// from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_mul_sd ++FORCE_INLINE __m128d _mm_mul_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_mul_pd(a, b)); ++} ++ ++// Multiply the low unsigned 32-bit integers from a and b, and store the ++// unsigned 64-bit result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_su32 ++FORCE_INLINE __m64 _mm_mul_su32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u64(vget_low_u64( ++ vmull_u32(vreinterpret_u32_m64(a), vreinterpret_u32_m64(b)))); ++} ++ ++// Multiply the packed signed 16-bit integers in a and b, producing intermediate ++// 32-bit integers, and store the high 16 bits of the intermediate integers in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epi16 ++FORCE_INLINE __m128i _mm_mulhi_epi16(__m128i a, __m128i b) ++{ ++ /* FIXME: issue with large values because of result saturation */ ++ // int16x8_t ret = vqdmulhq_s16(vreinterpretq_s16_m128i(a), ++ // vreinterpretq_s16_m128i(b)); /* =2*a*b */ return ++ // vreinterpretq_m128i_s16(vshrq_n_s16(ret, 1)); ++ int16x4_t a3210 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b3210 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab3210 = vmull_s16(a3210, b3210); /* 3333222211110000 */ ++ int16x4_t a7654 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b7654 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab7654 = vmull_s16(a7654, b7654); /* 7777666655554444 */ ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_s32(ab3210), vreinterpretq_u16_s32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epu16 ++FORCE_INLINE __m128i _mm_mulhi_epu16(__m128i a, __m128i b) ++{ ++ uint16x4_t a3210 = vget_low_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b3210 = vget_low_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab3210 = vmull_u16(a3210, b3210); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32x4_t ab7654 = ++ vmull_high_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ uint16x8_t r = vuzp2q_u16(vreinterpretq_u16_u32(ab3210), ++ vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r); ++#else ++ uint16x4_t a7654 = vget_high_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b7654 = vget_high_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab7654 = vmull_u16(a7654, b7654); ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_u32(ab3210), vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++#endif ++} ++ ++// Multiply the packed 16-bit integers in a and b, producing intermediate 32-bit ++// integers, and store the low 16 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi16 ++FORCE_INLINE __m128i _mm_mullo_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmulq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compute the bitwise OR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_or_pd ++FORCE_INLINE __m128d _mm_or_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vorrq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise OR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_si128 ++FORCE_INLINE __m128i _mm_or_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vorrq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi16 ++FORCE_INLINE __m128i _mm_packs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vqmovn_s16(vreinterpretq_s16_m128i(a)), ++ vqmovn_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi32 ++FORCE_INLINE __m128i _mm_packs_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vqmovn_s32(vreinterpretq_s32_m128i(a)), ++ vqmovn_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi16 ++FORCE_INLINE __m128i _mm_packus_epi16(const __m128i a, const __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcombine_u8(vqmovun_s16(vreinterpretq_s16_m128i(a)), ++ vqmovun_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Pause the processor. This is typically used in spin-wait loops and depending ++// on the x86 processor typical values are in the 40-100 cycle range. The ++// 'yield' instruction isn't a good fit because it's effectively a nop on most ++// Arm cores. Experience with several databases has shown has shown an 'isb' is ++// a reasonable approximation. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_pause ++FORCE_INLINE void _mm_pause(void) ++{ ++#if defined(_MSC_VER) ++ __isb(_ARM64_BARRIER_SY); ++#else ++ __asm__ __volatile__("isb\n"); ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce two ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of 64-bit elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_epu8 ++FORCE_INLINE __m128i _mm_sad_epu8(__m128i a, __m128i b) ++{ ++ uint16x8_t t = vpaddlq_u8(vabdq_u8((uint8x16_t) a, (uint8x16_t) b)); ++ return vreinterpretq_m128i_u64(vpaddlq_u32(vpaddlq_u16(t))); ++} ++ ++// Set packed 16-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi16 ++FORCE_INLINE __m128i _mm_set_epi16(short i7, ++ short i6, ++ short i5, ++ short i4, ++ short i3, ++ short i2, ++ short i1, ++ short i0) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {i0, i1, i2, i3, i4, i5, i6, i7}; ++ return vreinterpretq_m128i_s16(vld1q_s16(data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi32 ++FORCE_INLINE __m128i _mm_set_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i0, i1, i2, i3}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64 ++FORCE_INLINE __m128i _mm_set_epi64(__m64 i1, __m64 i2) ++{ ++ return _mm_set_epi64x(vget_lane_s64(i1, 0), vget_lane_s64(i2, 0)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64x ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t i1, int64_t i2) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vcreate_s64(i2), vcreate_s64(i1))); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi8 ++FORCE_INLINE __m128i _mm_set_epi8(signed char b15, ++ signed char b14, ++ signed char b13, ++ signed char b12, ++ signed char b11, ++ signed char b10, ++ signed char b9, ++ signed char b8, ++ signed char b7, ++ signed char b6, ++ signed char b5, ++ signed char b4, ++ signed char b3, ++ signed char b2, ++ signed char b1, ++ signed char b0) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd ++FORCE_INLINE __m128d _mm_set_pd(double e1, double e0) ++{ ++ double ALIGN_STRUCT(16) data[2] = {e0, e1}; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64((float64_t *) data)); ++#else ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) data)); ++#endif ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd1 ++#define _mm_set_pd1 _mm_set1_pd ++ ++// Copy double-precision (64-bit) floating-point element a to the lower element ++// of dst, and zero the upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_sd ++FORCE_INLINE __m128d _mm_set_sd(double a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(a, vdupq_n_f64(0), 0)); ++#else ++ return _mm_set_pd(0, a); ++#endif ++} ++ ++// Broadcast 16-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi16 ++FORCE_INLINE __m128i _mm_set1_epi16(short w) ++{ ++ return vreinterpretq_m128i_s16(vdupq_n_s16(w)); ++} ++ ++// Broadcast 32-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi32 ++FORCE_INLINE __m128i _mm_set1_epi32(int _i) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(_i)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64 ++FORCE_INLINE __m128i _mm_set1_epi64(__m64 _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_lane_s64(_i, 0)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64x ++FORCE_INLINE __m128i _mm_set1_epi64x(int64_t _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_n_s64(_i)); ++} ++ ++// Broadcast 8-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi8 ++FORCE_INLINE __m128i _mm_set1_epi8(signed char w) ++{ ++ return vreinterpretq_m128i_s8(vdupq_n_s8(w)); ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_pd ++FORCE_INLINE __m128d _mm_set1_pd(double d) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(d)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(int64_t *) &d)); ++#endif ++} ++ ++// Set packed 16-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi16 ++FORCE_INLINE __m128i _mm_setr_epi16(short w0, ++ short w1, ++ short w2, ++ short w3, ++ short w4, ++ short w5, ++ short w6, ++ short w7) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {w0, w1, w2, w3, w4, w5, w6, w7}; ++ return vreinterpretq_m128i_s16(vld1q_s16((int16_t *) data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi32 ++FORCE_INLINE __m128i _mm_setr_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i3, i2, i1, i0}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi64 ++FORCE_INLINE __m128i _mm_setr_epi64(__m64 e1, __m64 e0) ++{ ++ return vreinterpretq_m128i_s64(vcombine_s64(e1, e0)); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi8 ++FORCE_INLINE __m128i _mm_setr_epi8(signed char b0, ++ signed char b1, ++ signed char b2, ++ signed char b3, ++ signed char b4, ++ signed char b5, ++ signed char b6, ++ signed char b7, ++ signed char b8, ++ signed char b9, ++ signed char b10, ++ signed char b11, ++ signed char b12, ++ signed char b13, ++ signed char b14, ++ signed char b15) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_pd ++FORCE_INLINE __m128d _mm_setr_pd(double e1, double e0) ++{ ++ return _mm_set_pd(e0, e1); ++} ++ ++// Return vector of type __m128d with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_pd ++FORCE_INLINE __m128d _mm_setzero_pd(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(0)); ++#else ++ return vreinterpretq_m128d_f32(vdupq_n_f32(0)); ++#endif ++} ++ ++// Return vector of type __m128i with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_si128 ++FORCE_INLINE __m128i _mm_setzero_si128(void) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(0)); ++} ++ ++// Shuffle 32-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi32 ++// FORCE_INLINE __m128i _mm_shuffle_epi32(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shuffle_epi32(a, imm) \ ++ __extension__({ \ ++ int32x4_t _input = vreinterpretq_s32_m128i(a); \ ++ int32x4_t _shuf = \ ++ vshuffleq_s32(_input, _input, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ ((imm) >> 4) & 0x3, ((imm) >> 6) & 0x3); \ ++ vreinterpretq_m128i_s32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_epi32(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, __m128i ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_epi_1032(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_epi_2301(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_epi_0321(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_epi_2103(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_shuffle_epi_1010(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_epi_1001(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_epi_0101(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 1, 1): \ ++ ret = _mm_shuffle_epi_2211(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 2, 2): \ ++ ret = _mm_shuffle_epi_0122(_a); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 2): \ ++ ret = _mm_shuffle_epi_3332(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 0, 0): \ ++ ret = _mm_shuffle_epi32_splat(_a, 0); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 1, 1): \ ++ ret = _mm_shuffle_epi32_splat(_a, 1); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 2, 2): \ ++ ret = _mm_shuffle_epi32_splat(_a, 2); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 3): \ ++ ret = _mm_shuffle_epi32_splat(_a, 3); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_epi32_default(_a, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Shuffle double-precision (64-bit) floating-point elements using the control ++// in imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pd ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pd(a, b, imm8) \ ++ vreinterpretq_m128d_s64( \ ++ vshuffleq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b), \ ++ imm8 & 0x1, ((imm8 & 0x2) >> 1) + 2)) ++#else ++#define _mm_shuffle_pd(a, b, imm8) \ ++ _mm_castsi128_pd(_mm_set_epi64x( \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(b), (imm8 & 0x2) >> 1), \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(a), imm8 & 0x1))) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflehi_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflehi_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = \ ++ vshuffleq_s16(_input, _input, 0, 1, 2, 3, ((imm) & (0x3)) + 4, \ ++ (((imm) >> 2) & 0x3) + 4, (((imm) >> 4) & 0x3) + 4, \ ++ (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflehi_epi16(a, imm) _mm_shufflehi_epi16_function((a), (imm)) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflelo_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflelo_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = vshuffleq_s16( \ ++ _input, _input, ((imm) & (0x3)), (((imm) >> 2) & 0x3), \ ++ (((imm) >> 4) & 0x3), (((imm) >> 6) & 0x3), 4, 5, 6, 7); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflelo_epi16(a, imm) _mm_shufflelo_epi16_function((a), (imm)) ++#endif ++ ++// Shift packed 16-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi16 ++FORCE_INLINE __m128i _mm_sll_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16((int16_t) c); ++ return vreinterpretq_m128i_s16(vshlq_s16(vreinterpretq_s16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi32 ++FORCE_INLINE __m128i _mm_sll_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32((int32_t) c); ++ return vreinterpretq_m128i_s32(vshlq_s32(vreinterpretq_s32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi64 ++FORCE_INLINE __m128i _mm_sll_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64((int64_t) c); ++ return vreinterpretq_m128i_s64(vshlq_s64(vreinterpretq_s64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi16 ++FORCE_INLINE __m128i _mm_slli_epi16(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~15)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16(vreinterpretq_s16_m128i(a), vdupq_n_s16(imm))); ++} ++ ++// Shift packed 32-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi32 ++FORCE_INLINE __m128i _mm_slli_epi32(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~31)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32(vreinterpretq_s32_m128i(a), vdupq_n_s32(imm))); ++} ++ ++// Shift packed 64-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi64 ++FORCE_INLINE __m128i _mm_slli_epi64(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~63)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s64( ++ vshlq_s64(vreinterpretq_s64_m128i(a), vdupq_n_s64(imm))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_si128 ++#define _mm_slli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely(imm == 0)) ret = vreinterpretq_s8_m128i(_a); \ ++ else if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vdupq_n_s8(0), vreinterpretq_s8_m128i(_a), \ ++ ((imm <= 0 || imm > 15) ? 0 : (16 - imm))); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Compute the square root of packed double-precision (64-bit) floating-point ++// elements in a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_pd ++FORCE_INLINE __m128d _mm_sqrt_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsqrtq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double a0 = sqrt(((double *) &a)[0]); ++ double a1 = sqrt(((double *) &a)[1]); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Compute the square root of the lower double-precision (64-bit) floating-point ++// element in b, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_sd ++FORCE_INLINE __m128d _mm_sqrt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_sqrt_pd(b)); ++#else ++ return _mm_set_pd(((double *) &a)[1], sqrt(((double *) &b)[0])); ++#endif ++} ++ ++// Shift packed 16-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi16 ++FORCE_INLINE __m128i _mm_sra_epi16(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_cmplt_epi16(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16((int16x8_t) a, vdupq_n_s16((int) -c))); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi32 ++FORCE_INLINE __m128i _mm_sra_epi32(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_cmplt_epi32(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32((int32x4_t) a, vdupq_n_s32((int) -c))); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in sign ++// bits, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi16 ++FORCE_INLINE __m128i _mm_srai_epi16(__m128i a, int imm) ++{ ++ const int count = (imm & ~15) ? 15 : imm; ++ return (__m128i) vshlq_s16((int16x8_t) a, vdupq_n_s16(-count)); ++} ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi32 ++// FORCE_INLINE __m128i _mm_srai_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srai_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) == 0)) { \ ++ ret = _a; \ ++ } else if (_sse2neon_likely(0 < (imm) && (imm) < 32)) { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshlq_s32(vreinterpretq_s32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } else { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshrq_n_s32(vreinterpretq_s32_m128i(_a), 31)); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 16-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi16 ++FORCE_INLINE __m128i _mm_srl_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16(-(int16_t) c); ++ return vreinterpretq_m128i_u16(vshlq_u16(vreinterpretq_u16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi32 ++FORCE_INLINE __m128i _mm_srl_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32(-(int32_t) c); ++ return vreinterpretq_m128i_u32(vshlq_u32(vreinterpretq_u32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi64 ++FORCE_INLINE __m128i _mm_srl_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64(-(int64_t) c); ++ return vreinterpretq_m128i_u64(vshlq_u64(vreinterpretq_u64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi16 ++#define _mm_srli_epi16(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~15)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u16( \ ++ vshlq_u16(vreinterpretq_u16_m128i(_a), vdupq_n_s16(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi32 ++// FORCE_INLINE __m128i _mm_srli_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srli_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~31)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u32( \ ++ vshlq_u32(vreinterpretq_u32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 64-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi64 ++#define _mm_srli_epi64(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~63)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u64( \ ++ vshlq_u64(vreinterpretq_u64_m128i(_a), vdupq_n_s64(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_si128 ++#define _mm_srli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vreinterpretq_s8_m128i(_a), vdupq_n_s8(0), \ ++ (imm > 15 ? 0 : imm)); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd ++FORCE_INLINE void _mm_store_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64((float64_t *) mem_addr, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_f32((float32_t *) mem_addr, vreinterpretq_f32_m128d(a)); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd1 ++FORCE_INLINE void _mm_store_pd1(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x1_t a_low = vget_low_f64(vreinterpretq_f64_m128d(a)); ++ vst1q_f64((float64_t *) mem_addr, ++ vreinterpretq_f64_m128d(vcombine_f64(a_low, a_low))); ++#else ++ float32x2_t a_low = vget_low_f32(vreinterpretq_f32_m128d(a)); ++ vst1q_f32((float32_t *) mem_addr, ++ vreinterpretq_f32_m128d(vcombine_f32(a_low, a_low))); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_store_sd ++FORCE_INLINE void _mm_store_sd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_u64((uint64_t *) mem_addr, vget_low_u64(vreinterpretq_u64_m128d(a))); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_si128 ++FORCE_INLINE void _mm_store_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#expand=9,526,5601&text=_mm_store1_pd ++#define _mm_store1_pd _mm_store_pd1 ++ ++// Store the upper double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pd ++FORCE_INLINE void _mm_storeh_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_high_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_high_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 64-bit integer from the first element of a into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_epi64 ++FORCE_INLINE void _mm_storel_epi64(__m128i *a, __m128i b) ++{ ++ vst1_u64((uint64_t *) a, vget_low_u64(vreinterpretq_u64_m128i(b))); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pd ++FORCE_INLINE void _mm_storel_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_low_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 2 double-precision (64-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_pd ++FORCE_INLINE void _mm_storer_pd(double *mem_addr, __m128d a) ++{ ++ float32x4_t f = vreinterpretq_f32_m128d(a); ++ _mm_store_pd(mem_addr, vreinterpretq_m128d_f32(vextq_f32(f, f, 2))); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_pd ++FORCE_INLINE void _mm_storeu_pd(double *mem_addr, __m128d a) ++{ ++ _mm_store_pd(mem_addr, a); ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si128 ++FORCE_INLINE void _mm_storeu_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store 32-bit integer from the first element of a into memory. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si32 ++FORCE_INLINE void _mm_storeu_si32(void *p, __m128i a) ++{ ++ vst1q_lane_s32((int32_t *) p, vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory using a non-temporal memory hint. mem_addr must ++// be aligned on a 16-byte boundary or a general-protection exception may be ++// generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pd ++FORCE_INLINE void _mm_stream_pd(double *p, __m128d a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (__m128d *) p); ++#elif defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64(p, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128d(a)); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory using a non-temporal memory ++// hint. mem_addr must be aligned on a 16-byte boundary or a general-protection ++// exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si128 ++FORCE_INLINE void _mm_stream_si128(__m128i *p, __m128i a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, p); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128i(a)); ++#endif ++} ++ ++// Store 32-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si32 ++FORCE_INLINE void _mm_stream_si32(int *p, int a) ++{ ++ vst1q_lane_s32((int32_t *) p, vdupq_n_s32(a), 0); ++} ++ ++// Store 64-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si64 ++FORCE_INLINE void _mm_stream_si64(__int64 *p, __int64 a) ++{ ++ vst1_s64((int64_t *) p, vdup_n_s64((int64_t) a)); ++} ++ ++// Subtract packed 16-bit integers in b from packed 16-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi16 ++FORCE_INLINE __m128i _mm_sub_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed 32-bit integers in b from packed 32-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi32 ++FORCE_INLINE __m128i _mm_sub_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Subtract packed 64-bit integers in b from packed 64-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi64 ++FORCE_INLINE __m128i _mm_sub_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vsubq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Subtract packed 8-bit integers in b from packed 8-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi8 ++FORCE_INLINE __m128i _mm_sub_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed double-precision (64-bit) floating-point elements in b from ++// packed double-precision (64-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_sub_pd ++FORCE_INLINE __m128d _mm_sub_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] - db[0]; ++ c[1] = da[1] - db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Subtract the lower double-precision (64-bit) floating-point element in b from ++// the lower double-precision (64-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_sd ++FORCE_INLINE __m128d _mm_sub_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_sub_pd(a, b)); ++} ++ ++// Subtract 64-bit integer b from 64-bit integer a, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_si64 ++FORCE_INLINE __m64 _mm_sub_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vsub_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Subtract packed signed 16-bit integers in b from packed 16-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi16 ++FORCE_INLINE __m128i _mm_subs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed signed 8-bit integers in b from packed 8-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi8 ++FORCE_INLINE __m128i _mm_subs_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed unsigned 16-bit integers in b from packed unsigned 16-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu16 ++FORCE_INLINE __m128i _mm_subs_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqsubq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Subtract packed unsigned 8-bit integers in b from packed unsigned 8-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu8 ++FORCE_INLINE __m128i _mm_subs_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqsubq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++#define _mm_ucomieq_sd _mm_comieq_sd ++#define _mm_ucomige_sd _mm_comige_sd ++#define _mm_ucomigt_sd _mm_comigt_sd ++#define _mm_ucomile_sd _mm_comile_sd ++#define _mm_ucomilt_sd _mm_comilt_sd ++#define _mm_ucomineq_sd _mm_comineq_sd ++ ++// Return vector of type __m128d with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_pd ++FORCE_INLINE __m128d _mm_undefined_pd(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128d a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_pd(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi16 ++FORCE_INLINE __m128i _mm_unpackhi_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip2q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi32 ++FORCE_INLINE __m128i _mm_unpackhi_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip2q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_high_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi64 ++FORCE_INLINE __m128i _mm_unpackhi_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip2q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_h = vget_high_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_h = vget_high_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_h, b_h)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the high half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi8 ++FORCE_INLINE __m128i _mm_unpackhi_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip2q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the high half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_pd ++FORCE_INLINE __m128d _mm_unpackhi_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip2q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_high_s64(vreinterpretq_s64_m128d(a)), ++ vget_high_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi16 ++FORCE_INLINE __m128i _mm_unpacklo_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip1q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi32 ++FORCE_INLINE __m128i _mm_unpacklo_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip1q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_low_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi64 ++FORCE_INLINE __m128i _mm_unpacklo_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip1q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_l = vget_low_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_l = vget_low_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_l, b_l)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi8 ++FORCE_INLINE __m128i _mm_unpacklo_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip1q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_pd ++FORCE_INLINE __m128d _mm_unpacklo_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip1q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_low_s64(vreinterpretq_s64_m128d(a)), ++ vget_low_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Compute the bitwise XOR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_pd ++FORCE_INLINE __m128d _mm_xor_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ veorq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise XOR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_si128 ++FORCE_INLINE __m128i _mm_xor_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ veorq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++/* SSE3 */ ++ ++// Alternatively add and subtract packed double-precision (64-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_addsub_pd ++FORCE_INLINE __m128d _mm_addsub_pd(__m128d a, __m128d b) ++{ ++ _sse2neon_const __m128d mask = _mm_set_pd(1.0f, -1.0f); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vfmaq_f64(vreinterpretq_f64_m128d(a), ++ vreinterpretq_f64_m128d(b), ++ vreinterpretq_f64_m128d(mask))); ++#else ++ return _mm_add_pd(_mm_mul_pd(b, mask), a); ++#endif ++} ++ ++// Alternatively add and subtract packed single-precision (32-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=addsub_ps ++FORCE_INLINE __m128 _mm_addsub_ps(__m128 a, __m128 b) ++{ ++ _sse2neon_const __m128 mask = _mm_setr_ps(-1.0f, 1.0f, -1.0f, 1.0f); ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_FMA) /* VFPv4+ */ ++ return vreinterpretq_m128_f32(vfmaq_f32(vreinterpretq_f32_m128(a), ++ vreinterpretq_f32_m128(mask), ++ vreinterpretq_f32_m128(b))); ++#else ++ return _mm_add_ps(_mm_mul_ps(b, mask), a); ++#endif ++} ++ ++// Horizontally add adjacent pairs of double-precision (64-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pd ++FORCE_INLINE __m128d _mm_hadd_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vpaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[] = {da[0] + da[1], db[0] + db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of single-precision (32-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_ps ++FORCE_INLINE __m128 _mm_hadd_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vpaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vpadd_f32(a10, a32), vpadd_f32(b10, b32))); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of double-precision (64-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pd ++FORCE_INLINE __m128d _mm_hsub_pd(__m128d _a, __m128d _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vuzp1q_f64(a, b), vuzp2q_f64(a, b))); ++#else ++ double *da = (double *) &_a; ++ double *db = (double *) &_b; ++ double c[] = {da[0] - da[1], db[0] - db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of single-precision (32-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_ps ++FORCE_INLINE __m128 _mm_hsub_ps(__m128 _a, __m128 _b) ++{ ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vuzp1q_f32(a, b), vuzp2q_f32(a, b))); ++#else ++ float32x4x2_t c = vuzpq_f32(a, b); ++ return vreinterpretq_m128_f32(vsubq_f32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Load 128-bits of integer data from unaligned memory into dst. This intrinsic ++// may perform better than _mm_loadu_si128 when the data crosses a cache line ++// boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lddqu_si128 ++#define _mm_lddqu_si128 _mm_loadu_si128 ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loaddup_pd ++#define _mm_loaddup_pd _mm_load1_pd ++ ++// Duplicate the low double-precision (64-bit) floating-point element from a, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movedup_pd ++FORCE_INLINE __m128d _mm_movedup_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdupq_laneq_f64(vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_u64( ++ vdupq_n_u64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0))); ++#endif ++} ++ ++// Duplicate odd-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehdup_ps ++FORCE_INLINE __m128 _mm_movehdup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 1, 1, 3, 3)); ++#else ++ float32_t a1 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ float32_t a3 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 3); ++ float ALIGN_STRUCT(16) data[4] = {a1, a1, a3, a3}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Duplicate even-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_moveldup_ps ++FORCE_INLINE __m128 _mm_moveldup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 0, 0, 2, 2)); ++#else ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32_t a2 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 2); ++ float ALIGN_STRUCT(16) data[4] = {a0, a0, a2, a2}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++/* SSSE3 */ ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi16 ++FORCE_INLINE __m128i _mm_abs_epi16(__m128i a) ++{ ++ return vreinterpretq_m128i_s16(vabsq_s16(vreinterpretq_s16_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi32 ++FORCE_INLINE __m128i _mm_abs_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32(vabsq_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi8 ++FORCE_INLINE __m128i _mm_abs_epi8(__m128i a) ++{ ++ return vreinterpretq_m128i_s8(vabsq_s8(vreinterpretq_s8_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi16 ++FORCE_INLINE __m64 _mm_abs_pi16(__m64 a) ++{ ++ return vreinterpret_m64_s16(vabs_s16(vreinterpret_s16_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi32 ++FORCE_INLINE __m64 _mm_abs_pi32(__m64 a) ++{ ++ return vreinterpret_m64_s32(vabs_s32(vreinterpret_s32_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi8 ++FORCE_INLINE __m64 _mm_abs_pi8(__m64 a) ++{ ++ return vreinterpret_m64_s8(vabs_s8(vreinterpret_s8_m64(a))); ++} ++ ++// Concatenate 16-byte blocks in a and b into a 32-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 16 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_epi8 ++#if defined(__GNUC__) && !defined(__clang__) ++#define _mm_alignr_epi8(a, b, imm) \ ++ __extension__({ \ ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); \ ++ uint8x16_t _b = vreinterpretq_u8_m128i(b); \ ++ __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) \ ++ ret = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) \ ++ ret = _mm_srli_si128(a, imm >= 16 ? imm - 16 : 0); \ ++ else \ ++ ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(_b, _a, imm < 16 ? imm : 0)); \ ++ ret; \ ++ }) ++ ++#else ++#define _mm_alignr_epi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, uint8x16_t __a = vreinterpretq_u8_m128i(_a); \ ++ uint8x16_t __b = vreinterpretq_u8_m128i(_b); __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) ret = \ ++ vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) ret = \ ++ _mm_srli_si128(_a, imm >= 16 ? imm - 16 : 0); \ ++ else ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(__b, __a, imm < 16 ? imm : 0)); \ ++ _sse2neon_return(ret);) ++ ++#endif ++ ++// Concatenate 8-byte blocks in a and b into a 16-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 8 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_pi8 ++#define _mm_alignr_pi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m64, a, b, __m64 ret; if (_sse2neon_unlikely((imm) >= 16)) { \ ++ ret = vreinterpret_m64_s8(vdup_n_s8(0)); \ ++ } else { \ ++ uint8x8_t tmp_low; \ ++ uint8x8_t tmp_high; \ ++ if ((imm) >= 8) { \ ++ const int idx = (imm) -8; \ ++ tmp_low = vreinterpret_u8_m64(_a); \ ++ tmp_high = vdup_n_u8(0); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } else { \ ++ const int idx = (imm); \ ++ tmp_low = vreinterpret_u8_m64(_b); \ ++ tmp_high = vreinterpret_u8_m64(_a); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } \ ++ } _sse2neon_return(ret);) ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi16 ++FORCE_INLINE __m128i _mm_hadd_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16(vpaddq_s16(a, b)); ++#else ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(vget_low_s16(a), vget_high_s16(a)), ++ vpadd_s16(vget_low_s16(b), vget_high_s16(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi32 ++FORCE_INLINE __m128i _mm_hadd_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32(vpaddq_s32(a, b)); ++#else ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vpadd_s32(vget_low_s32(a), vget_high_s32(a)), ++ vpadd_s32(vget_low_s32(b), vget_high_s32(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi16 ++FORCE_INLINE __m64 _mm_hadd_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vpadd_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi32 ++FORCE_INLINE __m64 _mm_hadd_pi32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s32( ++ vpadd_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_epi16 ++FORCE_INLINE __m128i _mm_hadds_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ return vreinterpretq_s64_s16( ++ vqaddq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ // Interleave using vshrn/vmovn ++ // [a0|a2|a4|a6|b0|b2|b4|b6] ++ // [a1|a3|a5|a7|b1|b3|b5|b7] ++ int16x8_t ab0246 = vcombine_s16(vmovn_s32(a), vmovn_s32(b)); ++ int16x8_t ab1357 = vcombine_s16(vshrn_n_s32(a, 16), vshrn_n_s32(b, 16)); ++ // Saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(ab0246, ab1357)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_pi16 ++FORCE_INLINE __m64 _mm_hadds_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_s64_s16(vqadd_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t res = vuzp_s16(a, b); ++ return vreinterpret_s64_s16(vqadd_s16(res.val[0], res.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi16 ++FORCE_INLINE __m128i _mm_hsub_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi32 ++FORCE_INLINE __m128i _mm_hsub_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vuzp1q_s32(a, b), vuzp2q_s32(a, b))); ++#else ++ int32x4x2_t c = vuzpq_s32(a, b); ++ return vreinterpretq_m128i_s32(vsubq_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pi16 ++FORCE_INLINE __m64 _mm_hsub_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_hsub_pi32 ++FORCE_INLINE __m64 _mm_hsub_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s32(vsub_s32(vuzp1_s32(a, b), vuzp2_s32(a, b))); ++#else ++ int32x2x2_t c = vuzp_s32(a, b); ++ return vreinterpret_m64_s32(vsub_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_epi16 ++FORCE_INLINE __m128i _mm_hsubs_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vqsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_pi16 ++FORCE_INLINE __m64 _mm_hsubs_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vqsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vqsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, ++// and pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_epi16 ++FORCE_INLINE __m128i _mm_maddubs_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ int16x8_t tl = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_low_u8(a))), ++ vmovl_s8(vget_low_s8(b))); ++ int16x8_t th = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_high_u8(a))), ++ vmovl_s8(vget_high_s8(b))); ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vuzp1q_s16(tl, th), vuzp2q_s16(tl, th))); ++#else ++ // This would be much simpler if x86 would choose to zero extend OR sign ++ // extend, not both. This could probably be optimized better. ++ uint16x8_t a = vreinterpretq_u16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // Zero extend a ++ int16x8_t a_odd = vreinterpretq_s16_u16(vshrq_n_u16(a, 8)); ++ int16x8_t a_even = vreinterpretq_s16_u16(vbicq_u16(a, vdupq_n_u16(0xff00))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x8_t b_even = vshrq_n_s16(vshlq_n_s16(b, 8), 8); ++ int16x8_t b_odd = vshrq_n_s16(b, 8); ++ ++ // multiply ++ int16x8_t prod1 = vmulq_s16(a_even, b_even); ++ int16x8_t prod2 = vmulq_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(prod1, prod2)); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, and ++// pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_pi16 ++FORCE_INLINE __m64 _mm_maddubs_pi16(__m64 _a, __m64 _b) ++{ ++ uint16x4_t a = vreinterpret_u16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // Zero extend a ++ int16x4_t a_odd = vreinterpret_s16_u16(vshr_n_u16(a, 8)); ++ int16x4_t a_even = vreinterpret_s16_u16(vand_u16(a, vdup_n_u16(0xff))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x4_t b_even = vshr_n_s16(vshl_n_s16(b, 8), 8); ++ int16x4_t b_odd = vshr_n_s16(b, 8); ++ ++ // multiply ++ int16x4_t prod1 = vmul_s16(a_even, b_even); ++ int16x4_t prod2 = vmul_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpret_m64_s16(vqadd_s16(prod1, prod2)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Shift right by 15 bits while rounding up, and store ++// the packed 16-bit integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_epi16 ++FORCE_INLINE __m128i _mm_mulhrs_epi16(__m128i a, __m128i b) ++{ ++ // Has issues due to saturation ++ // return vreinterpretq_m128i_s16(vqrdmulhq_s16(a, b)); ++ ++ // Multiply ++ int32x4_t mul_lo = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int32x4_t mul_hi = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ // Rounding narrowing shift right ++ // narrow = (int16_t)((mul + 16384) >> 15); ++ int16x4_t narrow_lo = vrshrn_n_s32(mul_lo, 15); ++ int16x4_t narrow_hi = vrshrn_n_s32(mul_hi, 15); ++ ++ // Join together ++ return vreinterpretq_m128i_s16(vcombine_s16(narrow_lo, narrow_hi)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Truncate each intermediate integer to the 18 most ++// significant bits, round by adding 1, and store bits [16:1] to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_pi16 ++FORCE_INLINE __m64 _mm_mulhrs_pi16(__m64 a, __m64 b) ++{ ++ int32x4_t mul_extend = ++ vmull_s16((vreinterpret_s16_m64(a)), (vreinterpret_s16_m64(b))); ++ ++ // Rounding narrowing shift right ++ return vreinterpret_m64_s16(vrshrn_n_s32(mul_extend, 15)); ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi8 ++FORCE_INLINE __m128i _mm_shuffle_epi8(__m128i a, __m128i b) ++{ ++ int8x16_t tbl = vreinterpretq_s8_m128i(a); // input a ++ uint8x16_t idx = vreinterpretq_u8_m128i(b); // input b ++ uint8x16_t idx_masked = ++ vandq_u8(idx, vdupq_n_u8(0x8F)); // avoid using meaningless bits ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8(vqtbl1q_s8(tbl, idx_masked)); ++#elif defined(__GNUC__) ++ int8x16_t ret; ++ // %e and %f represent the even and odd D registers ++ // respectively. ++ __asm__ __volatile__( ++ "vtbl.8 %e[ret], {%e[tbl], %f[tbl]}, %e[idx]\n" ++ "vtbl.8 %f[ret], {%e[tbl], %f[tbl]}, %f[idx]\n" ++ : [ret] "=&w"(ret) ++ : [tbl] "w"(tbl), [idx] "w"(idx_masked)); ++ return vreinterpretq_m128i_s8(ret); ++#else ++ // use this line if testing on aarch64 ++ int8x8x2_t a_split = {vget_low_s8(tbl), vget_high_s8(tbl)}; ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vtbl2_s8(a_split, vget_low_u8(idx_masked)), ++ vtbl2_s8(a_split, vget_high_u8(idx_masked)))); ++#endif ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi8 ++FORCE_INLINE __m64 _mm_shuffle_pi8(__m64 a, __m64 b) ++{ ++ const int8x8_t controlMask = ++ vand_s8(vreinterpret_s8_m64(b), vdup_n_s8((int8_t) (0x1 << 7 | 0x07))); ++ int8x8_t res = vtbl1_s8(vreinterpret_s8_m64(a), controlMask); ++ return vreinterpret_m64_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed ++// 16-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi16 ++FORCE_INLINE __m128i _mm_sign_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x8_t ltMask = vreinterpretq_u16_s16(vshrq_n_s16(b, 15)); ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqzq_s16(b)); ++#else ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqq_s16(b, vdupq_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s16(a) equals to negative ++ // 'a') based on ltMask ++ int16x8_t masked = vbslq_s16(ltMask, vnegq_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x8_t res = vbicq_s16(masked, zeroMask); ++ return vreinterpretq_m128i_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed ++// 32-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi32 ++FORCE_INLINE __m128i _mm_sign_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x4_t ltMask = vreinterpretq_u32_s32(vshrq_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqzq_s32(b)); ++#else ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqq_s32(b, vdupq_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s32(a) equals to negative ++ // 'a') based on ltMask ++ int32x4_t masked = vbslq_s32(ltMask, vnegq_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x4_t res = vbicq_s32(masked, zeroMask); ++ return vreinterpretq_m128i_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed ++// 8-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi8 ++FORCE_INLINE __m128i _mm_sign_epi8(__m128i _a, __m128i _b) ++{ ++ int8x16_t a = vreinterpretq_s8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x16_t ltMask = vreinterpretq_u8_s8(vshrq_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqzq_s8(b)); ++#else ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqq_s8(b, vdupq_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s8(a) return negative 'a') ++ // based on ltMask ++ int8x16_t masked = vbslq_s8(ltMask, vnegq_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x16_t res = vbicq_s8(masked, zeroMask); ++ ++ return vreinterpretq_m128i_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed 16-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi16 ++FORCE_INLINE __m64 _mm_sign_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x4_t ltMask = vreinterpret_u16_s16(vshr_n_s16(b, 15)); ++ ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceqz_s16(b)); ++#else ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceq_s16(b, vdup_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s16(a) return negative 'a') ++ // based on ltMask ++ int16x4_t masked = vbsl_s16(ltMask, vneg_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x4_t res = vbic_s16(masked, zeroMask); ++ ++ return vreinterpret_m64_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed 32-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi32 ++FORCE_INLINE __m64 _mm_sign_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x2_t ltMask = vreinterpret_u32_s32(vshr_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceqz_s32(b)); ++#else ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceq_s32(b, vdup_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s32(a) return negative 'a') ++ // based on ltMask ++ int32x2_t masked = vbsl_s32(ltMask, vneg_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x2_t res = vbic_s32(masked, zeroMask); ++ ++ return vreinterpret_m64_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed 8-bit integer ++// in b is negative, and store the results in dst. Element in dst are zeroed out ++// when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi8 ++FORCE_INLINE __m64 _mm_sign_pi8(__m64 _a, __m64 _b) ++{ ++ int8x8_t a = vreinterpret_s8_m64(_a); ++ int8x8_t b = vreinterpret_s8_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x8_t ltMask = vreinterpret_u8_s8(vshr_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceqz_s8(b)); ++#else ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceq_s8(b, vdup_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s8(a) return negative 'a') ++ // based on ltMask ++ int8x8_t masked = vbsl_s8(ltMask, vneg_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x8_t res = vbic_s8(masked, zeroMask); ++ ++ return vreinterpret_m64_s8(res); ++} ++ ++/* SSE4.1 */ ++ ++// Blend packed 16-bit integers from a and b using control mask imm8, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_epi16 ++// FORCE_INLINE __m128i _mm_blend_epi16(__m128i a, __m128i b, ++// __constrange(0,255) int imm) ++#define _mm_blend_epi16(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, \ ++ const uint16_t _mask[8] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 1)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 2)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 3)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 4)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 5)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 6)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 7)) ? (uint16_t) -1 : 0x0); \ ++ uint16x8_t _mask_vec = vld1q_u16(_mask); \ ++ uint16x8_t __a = vreinterpretq_u16_m128i(_a); \ ++ uint16x8_t __b = vreinterpretq_u16_m128i(_b); _sse2neon_return( \ ++ vreinterpretq_m128i_u16(vbslq_u16(_mask_vec, __b, __a)));) ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using control mask imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_pd ++#define _mm_blend_pd(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128d, a, b, \ ++ const uint64_t _mask[2] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? ~UINT64_C(0) : UINT64_C(0), \ ++ ((imm) & (1 << 1)) ? ~UINT64_C(0) : UINT64_C(0)); \ ++ uint64x2_t _mask_vec = vld1q_u64(_mask); \ ++ uint64x2_t __a = vreinterpretq_u64_m128d(_a); \ ++ uint64x2_t __b = vreinterpretq_u64_m128d(_b); _sse2neon_return( \ ++ vreinterpretq_m128d_u64(vbslq_u64(_mask_vec, __b, __a)));) ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_ps ++FORCE_INLINE __m128 _mm_blend_ps(__m128 _a, __m128 _b, const char imm8) ++{ ++ const uint32_t ALIGN_STRUCT(16) ++ data[4] = {((imm8) & (1 << 0)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0}; ++ uint32x4_t mask = vld1q_u32(data); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Blend packed 8-bit integers from a and b using mask, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_epi8 ++FORCE_INLINE __m128i _mm_blendv_epi8(__m128i _a, __m128i _b, __m128i _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint8x16_t mask = ++ vreinterpretq_u8_s8(vshrq_n_s8(vreinterpretq_s8_m128i(_mask), 7)); ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ uint8x16_t b = vreinterpretq_u8_m128i(_b); ++ return vreinterpretq_m128i_u8(vbslq_u8(mask, b, a)); ++} ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_pd ++FORCE_INLINE __m128d _mm_blendv_pd(__m128d _a, __m128d _b, __m128d _mask) ++{ ++ uint64x2_t mask = ++ vreinterpretq_u64_s64(vshrq_n_s64(vreinterpretq_s64_m128d(_mask), 63)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64(vbslq_f64(mask, b, a)); ++#else ++ uint64x2_t a = vreinterpretq_u64_m128d(_a); ++ uint64x2_t b = vreinterpretq_u64_m128d(_b); ++ return vreinterpretq_m128d_u64(vbslq_u64(mask, b, a)); ++#endif ++} ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_ps ++FORCE_INLINE __m128 _mm_blendv_ps(__m128 _a, __m128 _b, __m128 _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint32x4_t mask = ++ vreinterpretq_u32_s32(vshrq_n_s32(vreinterpretq_s32_m128(_mask), 31)); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a up ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_pd ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndpq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(ceil(f[1]), ceil(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a up to ++// an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ps ++FORCE_INLINE __m128 _mm_ceil_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndpq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ceilf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b up to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_sd ++FORCE_INLINE __m128d _mm_ceil_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_ceil_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b up to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ss ++FORCE_INLINE __m128 _mm_ceil_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_ceil_ps(b)); ++} ++ ++// Compare packed 64-bit integers in a and b for equality, and store the results ++// in dst ++FORCE_INLINE __m128i _mm_cmpeq_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vceqq_u64(vreinterpretq_u64_m128i(a), vreinterpretq_u64_m128i(b))); ++#else ++ // ARMv7 lacks vceqq_u64 ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128i_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Sign extend packed 16-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi32 ++FORCE_INLINE __m128i _mm_cvtepi16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vmovl_s16(vget_low_s16(vreinterpretq_s16_m128i(a)))); ++} ++ ++// Sign extend packed 16-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi64 ++FORCE_INLINE __m128i _mm_cvtepi16_epi64(__m128i a) ++{ ++ int16x8_t s16x8 = vreinterpretq_s16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Sign extend packed 32-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_epi64 ++FORCE_INLINE __m128i _mm_cvtepi32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a)))); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 16-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi16 ++FORCE_INLINE __m128i _mm_cvtepi8_epi16(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ return vreinterpretq_m128i_s16(s16x8); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi32 ++FORCE_INLINE __m128i _mm_cvtepi8_epi32(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_s32(s32x4); ++} ++ ++// Sign extend packed 8-bit integers in the low 8 bytes of a to packed 64-bit ++// integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi64 ++FORCE_INLINE __m128i _mm_cvtepi8_epi64(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi32 ++FORCE_INLINE __m128i _mm_cvtepu16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_u32( ++ vmovl_u16(vget_low_u16(vreinterpretq_u16_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi64 ++FORCE_INLINE __m128i _mm_cvtepu16_epi64(__m128i a) ++{ ++ uint16x8_t u16x8 = vreinterpretq_u16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Zero extend packed unsigned 32-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu32_epi64 ++FORCE_INLINE __m128i _mm_cvtepu32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_u64( ++ vmovl_u32(vget_low_u32(vreinterpretq_u32_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 16-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi16 ++FORCE_INLINE __m128i _mm_cvtepu8_epi16(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx HGFE DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0H0G 0F0E 0D0C 0B0A */ ++ return vreinterpretq_m128i_u16(u16x8); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi32 ++FORCE_INLINE __m128i _mm_cvtepu8_epi32(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_u32(u32x4); ++} ++ ++// Zero extend packed unsigned 8-bit integers in the low 8 bytes of a to packed ++// 64-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi64 ++FORCE_INLINE __m128i _mm_cvtepu8_epi64(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Conditionally multiply the packed double-precision (64-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, and ++// conditionally store the sum in dst using the low 4 bits of imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_pd ++FORCE_INLINE __m128d _mm_dp_pd(__m128d a, __m128d b, const int imm) ++{ ++ // Generate mask value from constant immediate bit value ++ const int64_t bit0Mask = imm & 0x01 ? UINT64_MAX : 0; ++ const int64_t bit1Mask = imm & 0x02 ? UINT64_MAX : 0; ++#if !SSE2NEON_PRECISE_DP ++ const int64_t bit4Mask = imm & 0x10 ? UINT64_MAX : 0; ++ const int64_t bit5Mask = imm & 0x20 ? UINT64_MAX : 0; ++#endif ++ // Conditional multiplication ++#if !SSE2NEON_PRECISE_DP ++ __m128d mul = _mm_mul_pd(a, b); ++ const __m128d mulMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit5Mask, bit4Mask)); ++ __m128d tmp = _mm_and_pd(mul, mulMask); ++#else ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double d0 = (imm & 0x10) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 0) ++ : 0; ++ double d1 = (imm & 0x20) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 1) ++ : 0; ++#else ++ double d0 = (imm & 0x10) ? ((double *) &a)[0] * ((double *) &b)[0] : 0; ++ double d1 = (imm & 0x20) ? ((double *) &a)[1] * ((double *) &b)[1] : 0; ++#endif ++ __m128d tmp = _mm_set_pd(d1, d0); ++#endif ++ // Sum the products ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double sum = vpaddd_f64(vreinterpretq_f64_m128d(tmp)); ++#else ++ double sum = *((double *) &tmp) + *(((double *) &tmp) + 1); ++#endif ++ // Conditionally store the sum ++ const __m128d sumMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit1Mask, bit0Mask)); ++ __m128d res = _mm_and_pd(_mm_set_pd1(sum), sumMask); ++ return res; ++} ++ ++// Conditionally multiply the packed single-precision (32-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, ++// and conditionally store the sum in dst using the low 4 bits of imm. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_ps ++FORCE_INLINE __m128 _mm_dp_ps(__m128 a, __m128 b, const int imm) ++{ ++ float32x4_t elementwise_prod = _mm_mul_ps(a, b); ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ /* shortcuts */ ++ if (imm == 0xFF) { ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++ ++ if ((imm & 0x0F) == 0x0F) { ++ if (!(imm & (1 << 4))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 0); ++ if (!(imm & (1 << 5))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 1); ++ if (!(imm & (1 << 6))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 2); ++ if (!(imm & (1 << 7))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 3); ++ ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++#endif ++ ++ float s = 0.0f; ++ ++ if (imm & (1 << 4)) ++ s += vgetq_lane_f32(elementwise_prod, 0); ++ if (imm & (1 << 5)) ++ s += vgetq_lane_f32(elementwise_prod, 1); ++ if (imm & (1 << 6)) ++ s += vgetq_lane_f32(elementwise_prod, 2); ++ if (imm & (1 << 7)) ++ s += vgetq_lane_f32(elementwise_prod, 3); ++ ++ const float32_t res[4] = { ++ (imm & 0x1) ? s : 0.0f, ++ (imm & 0x2) ? s : 0.0f, ++ (imm & 0x4) ? s : 0.0f, ++ (imm & 0x8) ? s : 0.0f, ++ }; ++ return vreinterpretq_m128_f32(vld1q_f32(res)); ++} ++ ++// Extract a 32-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi32 ++// FORCE_INLINE int _mm_extract_epi32(__m128i a, __constrange(0,4) int imm) ++#define _mm_extract_epi32(a, imm) \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)) ++ ++// Extract a 64-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi64 ++// FORCE_INLINE __int64 _mm_extract_epi64(__m128i a, __constrange(0,2) int imm) ++#define _mm_extract_epi64(a, imm) \ ++ vgetq_lane_s64(vreinterpretq_s64_m128i(a), (imm)) ++ ++// Extract an 8-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. FORCE_INLINE int _mm_extract_epi8(__m128i a, ++// __constrange(0,16) int imm) ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi8 ++#define _mm_extract_epi8(a, imm) vgetq_lane_u8(vreinterpretq_u8_m128i(a), (imm)) ++ ++// Extracts the selected single-precision (32-bit) floating-point from a. ++// FORCE_INLINE int _mm_extract_ps(__m128 a, __constrange(0,4) int imm) ++#define _mm_extract_ps(a, imm) vgetq_lane_s32(vreinterpretq_s32_m128(a), (imm)) ++ ++// Round the packed double-precision (64-bit) floating-point elements in a down ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_pd ++FORCE_INLINE __m128d _mm_floor_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndmq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(floor(f[1]), floor(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a down ++// to an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ps ++FORCE_INLINE __m128 _mm_floor_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndmq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(floorf(f[3]), floorf(f[2]), floorf(f[1]), floorf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b down to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_sd ++FORCE_INLINE __m128d _mm_floor_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_floor_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b down to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ss ++FORCE_INLINE __m128 _mm_floor_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_floor_ps(b)); ++} ++ ++// Copy a to dst, and insert the 32-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi32 ++// FORCE_INLINE __m128i _mm_insert_epi32(__m128i a, int b, ++// __constrange(0,4) int imm) ++#define _mm_insert_epi32(a, b, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vsetq_lane_s32((b), vreinterpretq_s32_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the 64-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi64 ++// FORCE_INLINE __m128i _mm_insert_epi64(__m128i a, __int64 b, ++// __constrange(0,2) int imm) ++#define _mm_insert_epi64(a, b, imm) \ ++ vreinterpretq_m128i_s64( \ ++ vsetq_lane_s64((b), vreinterpretq_s64_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the lower 8-bit integer from i into dst at the ++// location specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi8 ++// FORCE_INLINE __m128i _mm_insert_epi8(__m128i a, int b, ++// __constrange(0,16) int imm) ++#define _mm_insert_epi8(a, b, imm) \ ++ vreinterpretq_m128i_s8(vsetq_lane_s8((b), vreinterpretq_s8_m128i(a), (imm))) ++ ++// Copy a to tmp, then insert a single-precision (32-bit) floating-point ++// element from b into tmp using the control in imm8. Store tmp to dst using ++// the mask in imm8 (elements are zeroed out when the corresponding bit is set). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=insert_ps ++#define _mm_insert_ps(a, b, imm8) \ ++ _sse2neon_define2( \ ++ __m128, a, b, \ ++ float32x4_t tmp1 = \ ++ vsetq_lane_f32(vgetq_lane_f32(_b, (imm8 >> 6) & 0x3), \ ++ vreinterpretq_f32_m128(_a), 0); \ ++ float32x4_t tmp2 = \ ++ vsetq_lane_f32(vgetq_lane_f32(tmp1, 0), \ ++ vreinterpretq_f32_m128(_a), ((imm8 >> 4) & 0x3)); \ ++ const uint32_t data[4] = \ ++ _sse2neon_init(((imm8) & (1 << 0)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0); \ ++ uint32x4_t mask = vld1q_u32(data); \ ++ float32x4_t all_zeros = vdupq_n_f32(0); \ ++ \ ++ _sse2neon_return(vreinterpretq_m128_f32( \ ++ vbslq_f32(mask, all_zeros, vreinterpretq_f32_m128(tmp2))));) ++ ++// Compare packed signed 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi32 ++FORCE_INLINE __m128i _mm_max_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmaxq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi8 ++FORCE_INLINE __m128i _mm_max_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vmaxq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu16 ++FORCE_INLINE __m128i _mm_max_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vmaxq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_max_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vmaxq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi32 ++FORCE_INLINE __m128i _mm_min_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vminq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi8 ++FORCE_INLINE __m128i _mm_min_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vminq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu16 ++FORCE_INLINE __m128i _mm_min_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vminq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_min_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vminq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Horizontally compute the minimum amongst the packed unsigned 16-bit integers ++// in a, store the minimum and index in dst, and zero the remaining bits in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_minpos_epu16 ++FORCE_INLINE __m128i _mm_minpos_epu16(__m128i a) ++{ ++ __m128i dst; ++ uint16_t min, idx = 0; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Find the minimum value ++ min = vminvq_u16(vreinterpretq_u16_m128i(a)); ++ ++ // Get the index of the minimum value ++ static const uint16_t idxv[] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint16x8_t minv = vdupq_n_u16(min); ++ uint16x8_t cmeq = vceqq_u16(minv, vreinterpretq_u16_m128i(a)); ++ idx = vminvq_u16(vornq_u16(vld1q_u16(idxv), cmeq)); ++#else ++ // Find the minimum value ++ __m64 tmp; ++ tmp = vreinterpret_m64_u16( ++ vmin_u16(vget_low_u16(vreinterpretq_u16_m128i(a)), ++ vget_high_u16(vreinterpretq_u16_m128i(a)))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ min = vget_lane_u16(vreinterpret_u16_m64(tmp), 0); ++ // Get the index of the minimum value ++ int i; ++ for (i = 0; i < 8; i++) { ++ if (min == vgetq_lane_u16(vreinterpretq_u16_m128i(a), 0)) { ++ idx = (uint16_t) i; ++ break; ++ } ++ a = _mm_srli_si128(a, 2); ++ } ++#endif ++ // Generate result ++ dst = _mm_setzero_si128(); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(min, vreinterpretq_u16_m128i(dst), 0)); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(idx, vreinterpretq_u16_m128i(dst), 1)); ++ return dst; ++} ++ ++// Compute the sum of absolute differences (SADs) of quadruplets of unsigned ++// 8-bit integers in a compared to those in b, and store the 16-bit results in ++// dst. Eight SADs are performed using one quadruplet from b and eight ++// quadruplets from a. One quadruplet is selected from b starting at on the ++// offset specified in imm8. Eight quadruplets are formed from sequential 8-bit ++// integers selected from a starting at the offset specified in imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mpsadbw_epu8 ++FORCE_INLINE __m128i _mm_mpsadbw_epu8(__m128i a, __m128i b, const int imm) ++{ ++ uint8x16_t _a, _b; ++ ++ switch (imm & 0x4) { ++ case 0: ++ // do nothing ++ _a = vreinterpretq_u8_m128i(a); ++ break; ++ case 4: ++ _a = vreinterpretq_u8_u32(vextq_u32(vreinterpretq_u32_m128i(a), ++ vreinterpretq_u32_m128i(a), 1)); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ switch (imm & 0x3) { ++ case 0: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 0))); ++ break; ++ case 1: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 1))); ++ break; ++ case 2: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 2))); ++ break; ++ case 3: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 3))); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ int16x8_t c04, c15, c26, c37; ++ uint8x8_t low_b = vget_low_u8(_b); ++ c04 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a), low_b)); ++ uint8x16_t _a_1 = vextq_u8(_a, _a, 1); ++ c15 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_1), low_b)); ++ uint8x16_t _a_2 = vextq_u8(_a, _a, 2); ++ c26 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_2), low_b)); ++ uint8x16_t _a_3 = vextq_u8(_a, _a, 3); ++ c37 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_3), low_b)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // |0|4|2|6| ++ c04 = vpaddq_s16(c04, c26); ++ // |1|5|3|7| ++ c15 = vpaddq_s16(c15, c37); ++ ++ int32x4_t trn1_c = ++ vtrn1q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ int32x4_t trn2_c = ++ vtrn2q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ return vreinterpretq_m128i_s16(vpaddq_s16(vreinterpretq_s16_s32(trn1_c), ++ vreinterpretq_s16_s32(trn2_c))); ++#else ++ int16x4_t c01, c23, c45, c67; ++ c01 = vpadd_s16(vget_low_s16(c04), vget_low_s16(c15)); ++ c23 = vpadd_s16(vget_low_s16(c26), vget_low_s16(c37)); ++ c45 = vpadd_s16(vget_high_s16(c04), vget_high_s16(c15)); ++ c67 = vpadd_s16(vget_high_s16(c26), vget_high_s16(c37)); ++ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(c01, c23), vpadd_s16(c45, c67))); ++#endif ++} ++ ++// Multiply the low signed 32-bit integers from each packed 64-bit element in ++// a and b, and store the signed 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epi32 ++FORCE_INLINE __m128i _mm_mul_epi32(__m128i a, __m128i b) ++{ ++ // vmull_s32 upcasts instead of masking, so we downcast. ++ int32x2_t a_lo = vmovn_s64(vreinterpretq_s64_m128i(a)); ++ int32x2_t b_lo = vmovn_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vmull_s32(a_lo, b_lo)); ++} ++ ++// Multiply the packed 32-bit integers in a and b, producing intermediate 64-bit ++// integers, and store the low 32 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi32 ++FORCE_INLINE __m128i _mm_mullo_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmulq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi32 ++FORCE_INLINE __m128i _mm_packus_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcombine_u16(vqmovun_s32(vreinterpretq_s32_m128i(a)), ++ vqmovun_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_pd ++FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d a, int rounding) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndnq_f64(vreinterpretq_f64_m128d(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_pd(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_pd(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndq_f64(vreinterpretq_f64_m128d(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128d_f64(vrndiq_f64(vreinterpretq_f64_m128d(a))); ++ } ++#else ++ double *v_double = (double *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ double res[2], tmp; ++ for (int i = 0; i < 2; i++) { ++ tmp = (v_double[i] < 0) ? -v_double[i] : v_double[i]; ++ double roundDown = floor(tmp); // Round down value ++ double roundUp = ceil(tmp); // Round up value ++ double diffDown = tmp - roundDown; ++ double diffUp = roundUp - tmp; ++ if (diffDown < diffUp) { ++ /* If it's closer to the round down value, then use it */ ++ res[i] = roundDown; ++ } else if (diffDown > diffUp) { ++ /* If it's closer to the round up value, then use it */ ++ res[i] = roundUp; ++ } else { ++ /* If it's equidistant between round up and round down value, ++ * pick the one which is an even number */ ++ double half = roundDown / 2; ++ if (half != floor(half)) { ++ /* If the round down value is odd, return the round up value ++ */ ++ res[i] = roundUp; ++ } else { ++ /* If the round up value is odd, return the round down value ++ */ ++ res[i] = roundDown; ++ } ++ } ++ res[i] = (v_double[i] < 0) ? -res[i] : res[i]; ++ } ++ return _mm_set_pd(res[1], res[0]); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_pd(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_pd(a); ++ } ++ return _mm_set_pd(v_double[1] > 0 ? floor(v_double[1]) : ceil(v_double[1]), ++ v_double[0] > 0 ? floor(v_double[0]) : ceil(v_double[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed single-precision ++// floating-point elements in dst. ++// software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_round_ps ++FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128 a, int rounding) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndnq_f32(vreinterpretq_f32_m128(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_ps(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_ps(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndq_f32(vreinterpretq_f32_m128(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128_f32(vrndiq_f32(vreinterpretq_f32_m128(a))); ++ } ++#else ++ float *v_float = (float *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vbslq_s32(is_delta_half, r_even, r_normal))); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_ps(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_ps(a); ++ } ++ return _mm_set_ps(v_float[3] > 0 ? floorf(v_float[3]) : ceilf(v_float[3]), ++ v_float[2] > 0 ? floorf(v_float[2]) : ceilf(v_float[2]), ++ v_float[1] > 0 ? floorf(v_float[1]) : ceilf(v_float[1]), ++ v_float[0] > 0 ? floorf(v_float[0]) : ceilf(v_float[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b using ++// the rounding parameter, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_sd ++FORCE_INLINE __m128d _mm_round_sd(__m128d a, __m128d b, int rounding) ++{ ++ return _mm_move_sd(a, _mm_round_pd(b, rounding)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b using ++// the rounding parameter, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. Rounding is done according to the ++// rounding[3:0] parameter, which can be one of: ++// (_MM_FROUND_TO_NEAREST_INT |_MM_FROUND_NO_EXC) // round to nearest, and ++// suppress exceptions ++// (_MM_FROUND_TO_NEG_INF |_MM_FROUND_NO_EXC) // round down, and ++// suppress exceptions ++// (_MM_FROUND_TO_POS_INF |_MM_FROUND_NO_EXC) // round up, and suppress ++// exceptions ++// (_MM_FROUND_TO_ZERO |_MM_FROUND_NO_EXC) // truncate, and suppress ++// exceptions _MM_FROUND_CUR_DIRECTION // use MXCSR.RC; see ++// _MM_SET_ROUNDING_MODE ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_ss ++FORCE_INLINE __m128 _mm_round_ss(__m128 a, __m128 b, int rounding) ++{ ++ return _mm_move_ss(a, _mm_round_ps(b, rounding)); ++} ++ ++// Load 128-bits of integer data from memory into dst using a non-temporal ++// memory hint. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_load_si128 ++FORCE_INLINE __m128i _mm_stream_load_si128(__m128i *p) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ return __builtin_nontemporal_load(p); ++#else ++ return vreinterpretq_m128i_s64(vld1q_s64((int64_t *) p)); ++#endif ++} ++ ++// Compute the bitwise NOT of a and then AND with a 128-bit vector containing ++// all 1's, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_ones ++FORCE_INLINE int _mm_test_all_ones(__m128i a) ++{ ++ return (uint64_t) (vgetq_lane_s64(a, 0) & vgetq_lane_s64(a, 1)) == ++ ~(uint64_t) 0; ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_zeros ++FORCE_INLINE int _mm_test_all_zeros(__m128i a, __m128i mask) ++{ ++ int64x2_t a_and_mask = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(mask)); ++ return !(vgetq_lane_s64(a_and_mask, 0) | vgetq_lane_s64(a_and_mask, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute ++// the bitwise NOT of a and then AND with mask, and set CF to 1 if the result is ++// zero, otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_test_mix_ones_zero ++// Note: Argument names may be wrong in the Intel intrinsics guide. ++FORCE_INLINE int _mm_test_mix_ones_zeros(__m128i a, __m128i mask) ++{ ++ uint64x2_t v = vreinterpretq_u64_m128i(a); ++ uint64x2_t m = vreinterpretq_u64_m128i(mask); ++ ++ // find ones (set-bits) and zeros (clear-bits) under clip mask ++ uint64x2_t ones = vandq_u64(m, v); ++ uint64x2_t zeros = vbicq_u64(m, v); ++ ++ // If both 128-bit variables are populated (non-zero) then return 1. ++ // For comparison purposes, first compact each var down to 32-bits. ++ uint32x2_t reduced = vpmax_u32(vqmovn_u64(ones), vqmovn_u64(zeros)); ++ ++ // if folding minimum is non-zero then both vars must be non-zero ++ return (vget_lane_u32(vpmin_u32(reduced, reduced), 0) != 0); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the CF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testc_si128 ++FORCE_INLINE int _mm_testc_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vbicq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testnzc_si128 ++#define _mm_testnzc_si128(a, b) _mm_test_mix_ones_zeros(a, b) ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the ZF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testz_si128 ++FORCE_INLINE int _mm_testz_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++/* SSE4.2 */ ++ ++static const uint16_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask16b[8] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++static const uint8_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask8b[16] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++ ++/* specify the source data format */ ++#define _SIDD_UBYTE_OPS 0x00 /* unsigned 8-bit characters */ ++#define _SIDD_UWORD_OPS 0x01 /* unsigned 16-bit characters */ ++#define _SIDD_SBYTE_OPS 0x02 /* signed 8-bit characters */ ++#define _SIDD_SWORD_OPS 0x03 /* signed 16-bit characters */ ++ ++/* specify the comparison operation */ ++#define _SIDD_CMP_EQUAL_ANY 0x00 /* compare equal any: strchr */ ++#define _SIDD_CMP_RANGES 0x04 /* compare ranges */ ++#define _SIDD_CMP_EQUAL_EACH 0x08 /* compare equal each: strcmp */ ++#define _SIDD_CMP_EQUAL_ORDERED 0x0C /* compare equal ordered */ ++ ++/* specify the polarity */ ++#define _SIDD_POSITIVE_POLARITY 0x00 ++#define _SIDD_MASKED_POSITIVE_POLARITY 0x20 ++#define _SIDD_NEGATIVE_POLARITY 0x10 /* negate results */ ++#define _SIDD_MASKED_NEGATIVE_POLARITY \ ++ 0x30 /* negate results only before end of string */ ++ ++/* specify the output selection in _mm_cmpXstri */ ++#define _SIDD_LEAST_SIGNIFICANT 0x00 ++#define _SIDD_MOST_SIGNIFICANT 0x40 ++ ++/* specify the output selection in _mm_cmpXstrm */ ++#define _SIDD_BIT_MASK 0x00 ++#define _SIDD_UNIT_MASK 0x40 ++ ++/* Pattern Matching for C macros. ++ * https://github.com/pfultz2/Cloak/wiki/C-Preprocessor-tricks,-tips,-and-idioms ++ */ ++ ++/* catenate */ ++#define SSE2NEON_PRIMITIVE_CAT(a, ...) a##__VA_ARGS__ ++#define SSE2NEON_CAT(a, b) SSE2NEON_PRIMITIVE_CAT(a, b) ++ ++#define SSE2NEON_IIF(c) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_IIF_, c) ++/* run the 2nd parameter */ ++#define SSE2NEON_IIF_0(t, ...) __VA_ARGS__ ++/* run the 1st parameter */ ++#define SSE2NEON_IIF_1(t, ...) t ++ ++#define SSE2NEON_COMPL(b) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_COMPL_, b) ++#define SSE2NEON_COMPL_0 1 ++#define SSE2NEON_COMPL_1 0 ++ ++#define SSE2NEON_DEC(x) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_DEC_, x) ++#define SSE2NEON_DEC_1 0 ++#define SSE2NEON_DEC_2 1 ++#define SSE2NEON_DEC_3 2 ++#define SSE2NEON_DEC_4 3 ++#define SSE2NEON_DEC_5 4 ++#define SSE2NEON_DEC_6 5 ++#define SSE2NEON_DEC_7 6 ++#define SSE2NEON_DEC_8 7 ++#define SSE2NEON_DEC_9 8 ++#define SSE2NEON_DEC_10 9 ++#define SSE2NEON_DEC_11 10 ++#define SSE2NEON_DEC_12 11 ++#define SSE2NEON_DEC_13 12 ++#define SSE2NEON_DEC_14 13 ++#define SSE2NEON_DEC_15 14 ++#define SSE2NEON_DEC_16 15 ++ ++/* detection */ ++#define SSE2NEON_CHECK_N(x, n, ...) n ++#define SSE2NEON_CHECK(...) SSE2NEON_CHECK_N(__VA_ARGS__, 0, ) ++#define SSE2NEON_PROBE(x) x, 1, ++ ++#define SSE2NEON_NOT(x) SSE2NEON_CHECK(SSE2NEON_PRIMITIVE_CAT(SSE2NEON_NOT_, x)) ++#define SSE2NEON_NOT_0 SSE2NEON_PROBE(~) ++ ++#define SSE2NEON_BOOL(x) SSE2NEON_COMPL(SSE2NEON_NOT(x)) ++#define SSE2NEON_IF(c) SSE2NEON_IIF(SSE2NEON_BOOL(c)) ++ ++#define SSE2NEON_EAT(...) ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++#define SSE2NEON_WHEN(c) SSE2NEON_IF(c)(SSE2NEON_EXPAND, SSE2NEON_EAT) ++ ++/* recursion */ ++/* deferred expression */ ++#define SSE2NEON_EMPTY() ++#define SSE2NEON_DEFER(id) id SSE2NEON_EMPTY() ++#define SSE2NEON_OBSTRUCT(...) __VA_ARGS__ SSE2NEON_DEFER(SSE2NEON_EMPTY)() ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++ ++#define SSE2NEON_EVAL(...) \ ++ SSE2NEON_EVAL1(SSE2NEON_EVAL1(SSE2NEON_EVAL1(__VA_ARGS__))) ++#define SSE2NEON_EVAL1(...) \ ++ SSE2NEON_EVAL2(SSE2NEON_EVAL2(SSE2NEON_EVAL2(__VA_ARGS__))) ++#define SSE2NEON_EVAL2(...) \ ++ SSE2NEON_EVAL3(SSE2NEON_EVAL3(SSE2NEON_EVAL3(__VA_ARGS__))) ++#define SSE2NEON_EVAL3(...) __VA_ARGS__ ++ ++#define SSE2NEON_REPEAT(count, macro, ...) \ ++ SSE2NEON_WHEN(count) \ ++ (SSE2NEON_OBSTRUCT(SSE2NEON_REPEAT_INDIRECT)()( \ ++ SSE2NEON_DEC(count), macro, \ ++ __VA_ARGS__) SSE2NEON_OBSTRUCT(macro)(SSE2NEON_DEC(count), \ ++ __VA_ARGS__)) ++#define SSE2NEON_REPEAT_INDIRECT() SSE2NEON_REPEAT ++ ++#define SSE2NEON_SIZE_OF_byte 8 ++#define SSE2NEON_NUMBER_OF_LANES_byte 16 ++#define SSE2NEON_SIZE_OF_word 16 ++#define SSE2NEON_NUMBER_OF_LANES_word 8 ++ ++#define SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE(i, type) \ ++ mtx[i] = vreinterpretq_m128i_##type(vceqq_##type( \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)), \ ++ vreinterpretq_##type##_m128i(a))); ++ ++#define SSE2NEON_FILL_LANE(i, type) \ ++ vec_b[i] = \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)); ++ ++#define PCMPSTR_RANGES(a, b, mtx, data_type_prefix, type_prefix, size, \ ++ number_of_lanes, byte_or_word) \ ++ do { \ ++ SSE2NEON_CAT( \ ++ data_type_prefix, \ ++ SSE2NEON_CAT(size, \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(number_of_lanes, _t)))) \ ++ vec_b[number_of_lanes]; \ ++ __m128i mask = SSE2NEON_IIF(byte_or_word)( \ ++ vreinterpretq_m128i_u16(vdupq_n_u16(0xff)), \ ++ vreinterpretq_m128i_u32(vdupq_n_u32(0xffff))); \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, SSE2NEON_FILL_LANE, \ ++ SSE2NEON_CAT(type_prefix, size))) \ ++ for (int i = 0; i < number_of_lanes; i++) { \ ++ mtx[i] = SSE2NEON_CAT(vreinterpretq_m128i_u, \ ++ size)(SSE2NEON_CAT(vbslq_u, size)( \ ++ SSE2NEON_CAT(vreinterpretq_u, \ ++ SSE2NEON_CAT(size, _m128i))(mask), \ ++ SSE2NEON_CAT(vcgeq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))), \ ++ SSE2NEON_CAT(vcleq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))))); \ ++ } \ ++ } while (0) ++ ++#define PCMPSTR_EQ(a, b, mtx, size, number_of_lanes) \ ++ do { \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, \ ++ SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE, \ ++ SSE2NEON_CAT(u, size))) \ ++ } while (0) ++ ++#define SSE2NEON_CMP_EQUAL_ANY_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_any(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_any_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_RANGES_IMPL(type, data_type, us, byte_or_word) \ ++ static int _sse2neon_cmp_##us##type##_ranges(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_RANGES( \ ++ a, b, mtx, data_type, us, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), byte_or_word); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_ranges_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_EQUAL_ORDERED_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_ordered(__m128i a, int la, \ ++ __m128i b, int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_ordered_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type))))( \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), la, lb, mtx); \ ++ } ++ ++static int _sse2neon_aggregate_equal_any_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ int tmp = _sse2neon_vaddvq_u8(vreinterpretq_u8_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_equal_any_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ int tmp = _sse2neon_vaddvq_u16(vreinterpretq_u16_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ANY(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ANY(SSE2NEON_CMP_EQUAL_ANY_) ++ ++static int _sse2neon_aggregate_ranges_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ __m128i tmp = vreinterpretq_m128i_u32( ++ vshrq_n_u32(vreinterpretq_u32_m128i(mtx[j]), 16)); ++ uint32x4_t vec_res = vandq_u32(vreinterpretq_u32_m128i(mtx[j]), ++ vreinterpretq_u32_m128i(tmp)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int t = vaddvq_u32(vec_res) ? 1 : 0; ++#else ++ uint64x2_t sumh = vpaddlq_u32(vec_res); ++ int t = vgetq_lane_u64(sumh, 0) + vgetq_lane_u64(sumh, 1); ++#endif ++ res |= (t << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_ranges_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ __m128i tmp = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 8)); ++ uint16x8_t vec_res = vandq_u16(vreinterpretq_u16_m128i(mtx[j]), ++ vreinterpretq_u16_m128i(tmp)); ++ int t = _sse2neon_vaddvq_u16(vec_res) ? 1 : 0; ++ res |= (t << j); ++ } ++ return res; ++} ++ ++#define SSE2NEON_CMP_RANGES_IS_BYTE 1 ++#define SSE2NEON_CMP_RANGES_IS_WORD 0 ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_RANGES(prefix) \ ++ prefix##IMPL(byte, uint, u, prefix##IS_BYTE) \ ++ prefix##IMPL(byte, int, s, prefix##IS_BYTE) \ ++ prefix##IMPL(word, uint, u, prefix##IS_WORD) \ ++ prefix##IMPL(word, int, s, prefix##IS_WORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_RANGES(SSE2NEON_CMP_RANGES_) ++ ++#undef SSE2NEON_CMP_RANGES_IS_BYTE ++#undef SSE2NEON_CMP_RANGES_IS_WORD ++ ++static int _sse2neon_cmp_byte_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint8x16_t mtx = ++ vceqq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x10000 - (1 << la); ++ int tb = 0x10000 - (1 << lb); ++ uint8x8_t vec_mask, vec0_lo, vec0_hi, vec1_lo, vec1_hi; ++ uint8x8_t tmp_lo, tmp_hi, res_lo, res_hi; ++ vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ vec0_lo = vtst_u8(vdup_n_u8(m0), vec_mask); ++ vec0_hi = vtst_u8(vdup_n_u8(m0 >> 8), vec_mask); ++ vec1_lo = vtst_u8(vdup_n_u8(m1), vec_mask); ++ vec1_hi = vtst_u8(vdup_n_u8(m1 >> 8), vec_mask); ++ tmp_lo = vtst_u8(vdup_n_u8(tb), vec_mask); ++ tmp_hi = vtst_u8(vdup_n_u8(tb >> 8), vec_mask); ++ ++ res_lo = vbsl_u8(vec0_lo, vdup_n_u8(0), vget_low_u8(mtx)); ++ res_hi = vbsl_u8(vec0_hi, vdup_n_u8(0), vget_high_u8(mtx)); ++ res_lo = vbsl_u8(vec1_lo, tmp_lo, res_lo); ++ res_hi = vbsl_u8(vec1_hi, tmp_hi, res_hi); ++ res_lo = vand_u8(res_lo, vec_mask); ++ res_hi = vand_u8(res_hi, vec_mask); ++ ++ int res = _sse2neon_vaddv_u8(res_lo) + (_sse2neon_vaddv_u8(res_hi) << 8); ++ return res; ++} ++ ++static int _sse2neon_cmp_word_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint16x8_t mtx = ++ vceqq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x100 - (1 << la); ++ int tb = 0x100 - (1 << lb); ++ uint16x8_t vec_mask = vld1q_u16(_sse2neon_cmpestr_mask16b); ++ uint16x8_t vec0 = vtstq_u16(vdupq_n_u16(m0), vec_mask); ++ uint16x8_t vec1 = vtstq_u16(vdupq_n_u16(m1), vec_mask); ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(tb), vec_mask); ++ mtx = vbslq_u16(vec0, vdupq_n_u16(0), mtx); ++ mtx = vbslq_u16(vec1, tmp, mtx); ++ mtx = vandq_u16(mtx, vec_mask); ++ return _sse2neon_vaddvq_u16(mtx); ++} ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE 1 ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD 0 ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IMPL(size, number_of_lanes, data_type) \ ++ static int _sse2neon_aggregate_equal_ordered_##size##x##number_of_lanes( \ ++ int bound, int la, int lb, __m128i mtx[16]) \ ++ { \ ++ int res = 0; \ ++ int m1 = SSE2NEON_IIF(data_type)(0x10000, 0x100) - (1 << la); \ ++ uint##size##x8_t vec_mask = SSE2NEON_IIF(data_type)( \ ++ vld1_u##size(_sse2neon_cmpestr_mask##size##b), \ ++ vld1q_u##size(_sse2neon_cmpestr_mask##size##b)); \ ++ uint##size##x##number_of_lanes##_t vec1 = SSE2NEON_IIF(data_type)( \ ++ vcombine_u##size(vtst_u##size(vdup_n_u##size(m1), vec_mask), \ ++ vtst_u##size(vdup_n_u##size(m1 >> 8), vec_mask)), \ ++ vtstq_u##size(vdupq_n_u##size(m1), vec_mask)); \ ++ uint##size##x##number_of_lanes##_t vec_minusone = vdupq_n_u##size(-1); \ ++ uint##size##x##number_of_lanes##_t vec_zero = vdupq_n_u##size(0); \ ++ for (int j = 0; j < lb; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size(vbslq_u##size( \ ++ vec1, vec_minusone, vreinterpretq_u##size##_m128i(mtx[j]))); \ ++ } \ ++ for (int j = lb; j < bound; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size( \ ++ vbslq_u##size(vec1, vec_minusone, vec_zero)); \ ++ } \ ++ unsigned SSE2NEON_IIF(data_type)(char, short) *ptr = \ ++ (unsigned SSE2NEON_IIF(data_type)(char, short) *) mtx; \ ++ for (int i = 0; i < bound; i++) { \ ++ int val = 1; \ ++ for (int j = 0, k = i; j < bound - i && k < bound; j++, k++) \ ++ val &= ptr[k * bound + j]; \ ++ res += val << i; \ ++ } \ ++ return res; \ ++ } ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(prefix) \ ++ prefix##IMPL(8, 16, prefix##IS_UBYTE) \ ++ prefix##IMPL(16, 8, prefix##IS_UWORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(SSE2NEON_AGGREGATE_EQUAL_ORDER_) ++ ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(SSE2NEON_CMP_EQUAL_ORDERED_) ++ ++#define SSE2NEON_CMPESTR_LIST \ ++ _(CMP_UBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_UWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_SBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_SWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_UBYTE_RANGES, cmp_ubyte_ranges) \ ++ _(CMP_UWORD_RANGES, cmp_uword_ranges) \ ++ _(CMP_SBYTE_RANGES, cmp_sbyte_ranges) \ ++ _(CMP_SWORD_RANGES, cmp_sword_ranges) \ ++ _(CMP_UBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_UWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_SBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_SWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_UBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_UWORD_EQUAL_ORDERED, cmp_word_equal_ordered) \ ++ _(CMP_SBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_SWORD_EQUAL_ORDERED, cmp_word_equal_ordered) ++ ++enum { ++#define _(name, func_suffix) name, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++typedef int (*cmpestr_func_t)(__m128i a, int la, __m128i b, int lb); ++static cmpestr_func_t _sse2neon_cmpfunc_table[] = { ++#define _(name, func_suffix) _sse2neon_##func_suffix, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++ ++FORCE_INLINE int _sse2neon_sido_negative(int res, int lb, int imm8, int bound) ++{ ++ switch (imm8 & 0x30) { ++ case _SIDD_NEGATIVE_POLARITY: ++ res ^= 0xffffffff; ++ break; ++ case _SIDD_MASKED_NEGATIVE_POLARITY: ++ res ^= (1 << lb) - 1; ++ break; ++ default: ++ break; ++ } ++ ++ return res & ((bound == 8) ? 0xFF : 0xFFFF); ++} ++ ++FORCE_INLINE int _sse2neon_clz(unsigned int x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt = 0; ++ if (_BitScanReverse(&cnt, x)) ++ return 31 - cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_clz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctz(unsigned int x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt = 0; ++ if (_BitScanForward(&cnt, x)) ++ return cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_ctz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctzll(unsigned long long x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt; ++#if defined(SSE2NEON_HAS_BITSCAN64) ++ if (_BitScanForward64(&cnt, x)) ++ return (int) (cnt); ++#else ++ if (_BitScanForward(&cnt, (unsigned long) (x))) ++ return (int) cnt; ++ if (_BitScanForward(&cnt, (unsigned long) (x >> 32))) ++ return (int) (cnt + 32); ++#endif /* SSE2NEON_HAS_BITSCAN64 */ ++ return 64; ++#else /* assume GNU compatible compilers */ ++ return x != 0 ? __builtin_ctzll(x) : 64; ++#endif ++} ++ ++#define SSE2NEON_MIN(x, y) (x) < (y) ? (x) : (y) ++ ++#define SSE2NEON_CMPSTR_SET_UPPER(var, imm) \ ++ const int var = (imm & 0x01) ? 8 : 16 ++ ++#define SSE2NEON_CMPESTRX_LEN_PAIR(a, b, la, lb) \ ++ int tmp1 = la ^ (la >> 31); \ ++ la = tmp1 - (la >> 31); \ ++ int tmp2 = lb ^ (lb >> 31); \ ++ lb = tmp2 - (lb >> 31); \ ++ la = SSE2NEON_MIN(la, bound); \ ++ lb = SSE2NEON_MIN(lb, bound) ++ ++// Compare all pairs of character in string a and b, ++// then aggregate the result. ++// As the only difference of PCMPESTR* and PCMPISTR* is the way to calculate the ++// length of string, we use SSE2NEON_CMP{I,E}STRX_GET_LEN to get the length of ++// string a and b. ++#define SSE2NEON_COMP_AGG(a, b, la, lb, imm8, IE) \ ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); \ ++ SSE2NEON_##IE##_LEN_PAIR(a, b, la, lb); \ ++ int r2 = (_sse2neon_cmpfunc_table[imm8 & 0x0f])(a, la, b, lb); \ ++ r2 = _sse2neon_sido_negative(r2, lb, imm8, bound) ++ ++#define SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8) \ ++ return (r2 == 0) ? bound \ ++ : ((imm8 & 0x40) ? (31 - _sse2neon_clz(r2)) \ ++ : _sse2neon_ctz(r2)) ++ ++#define SSE2NEON_CMPSTR_GENERATE_MASK(dst) \ ++ __m128i dst = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ if (imm8 & 0x40) { \ ++ if (bound == 8) { \ ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(r2), \ ++ vld1q_u16(_sse2neon_cmpestr_mask16b)); \ ++ dst = vreinterpretq_m128i_u16(vbslq_u16( \ ++ tmp, vdupq_n_u16(-1), vreinterpretq_u16_m128i(dst))); \ ++ } else { \ ++ uint8x16_t vec_r2 = \ ++ vcombine_u8(vdup_n_u8(r2), vdup_n_u8(r2 >> 8)); \ ++ uint8x16_t tmp = \ ++ vtstq_u8(vec_r2, vld1q_u8(_sse2neon_cmpestr_mask8b)); \ ++ dst = vreinterpretq_m128i_u8( \ ++ vbslq_u8(tmp, vdupq_n_u8(-1), vreinterpretq_u8_m128i(dst))); \ ++ } \ ++ } else { \ ++ if (bound == 16) { \ ++ dst = vreinterpretq_m128i_u16( \ ++ vsetq_lane_u16(r2 & 0xffff, vreinterpretq_u16_m128i(dst), 0)); \ ++ } else { \ ++ dst = vreinterpretq_m128i_u8( \ ++ vsetq_lane_u8(r2 & 0xff, vreinterpretq_u8_m128i(dst), 0)); \ ++ } \ ++ } \ ++ return dst ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and returns 1 if b did not contain a null character and the ++// resulting mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestra ++FORCE_INLINE int _mm_cmpestra(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ int lb_cpy = lb; ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return !r2 & (lb_cpy > bound); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrc ++FORCE_INLINE int _mm_cmpestrc(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestri ++FORCE_INLINE int _mm_cmpestri(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrm ++FORCE_INLINE __m128i ++_mm_cmpestrm(__m128i a, int la, __m128i b, int lb, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestro ++FORCE_INLINE int _mm_cmpestro(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrs ++FORCE_INLINE int _mm_cmpestrs(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) lb; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrz ++FORCE_INLINE int _mm_cmpestrz(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) la; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return lb <= (bound - 1); ++} ++ ++#define SSE2NEON_CMPISTRX_LENGTH(str, len, imm8) \ ++ do { \ ++ if (imm8 & 0x01) { \ ++ uint16x8_t equal_mask_##str = \ ++ vceqq_u16(vreinterpretq_u16_m128i(str), vdupq_n_u16(0)); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 3; \ ++ } else { \ ++ uint16x8_t equal_mask_##str = vreinterpretq_u16_u8( \ ++ vceqq_u8(vreinterpretq_u8_m128i(str), vdupq_n_u8(0))); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 2; \ ++ } \ ++ } while (0) ++ ++#define SSE2NEON_CMPISTRX_LEN_PAIR(a, b, la, lb) \ ++ int la, lb; \ ++ do { \ ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); \ ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); \ ++ } while (0) ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if b did not contain a null character and the resulting ++// mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistra ++FORCE_INLINE int _mm_cmpistra(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return !r2 & (lb >= bound); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrc ++FORCE_INLINE int _mm_cmpistrc(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistri ++FORCE_INLINE int _mm_cmpistri(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrm ++FORCE_INLINE __m128i _mm_cmpistrm(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistro ++FORCE_INLINE int _mm_cmpistro(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrs ++FORCE_INLINE int _mm_cmpistrs(__m128i a, __m128i b, const int imm8) ++{ ++ (void) b; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int la; ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrz ++FORCE_INLINE int _mm_cmpistrz(__m128i a, __m128i b, const int imm8) ++{ ++ (void) a; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int lb; ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); ++ return lb <= (bound - 1); ++} ++ ++// Compares the 2 signed 64-bit integers in a and the 2 signed 64-bit integers ++// in b for greater than. ++FORCE_INLINE __m128i _mm_cmpgt_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vcgtq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ return vreinterpretq_m128i_s64(vshrq_n_s64( ++ vqsubq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)), ++ 63)); ++#endif ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 16-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u16 ++FORCE_INLINE uint32_t _mm_crc32_u16(uint32_t crc, uint16_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32ch %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32ch(crc, v); ++#else ++ crc = _mm_crc32_u8(crc, v & 0xff); ++ crc = _mm_crc32_u8(crc, (v >> 8) & 0xff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 32-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u32 ++FORCE_INLINE uint32_t _mm_crc32_u32(uint32_t crc, uint32_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cw %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cw(crc, v); ++#else ++ crc = _mm_crc32_u16(crc, v & 0xffff); ++ crc = _mm_crc32_u16(crc, (v >> 16) & 0xffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 64-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u64 ++FORCE_INLINE uint64_t _mm_crc32_u64(uint64_t crc, uint64_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cx %w[c], %w[c], %x[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cd((uint32_t) crc, v); ++#else ++ crc = _mm_crc32_u32((uint32_t) (crc), v & 0xffffffff); ++ crc = _mm_crc32_u32((uint32_t) (crc), (v >> 32) & 0xffffffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 8-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u8 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t crc, uint8_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cb %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cb(crc, v); ++#else ++ crc ^= v; ++#if defined(__ARM_FEATURE_CRYPTO) ++ // Adapted from: https://mary.rs/lab/crc32/ ++ // Barrent reduction ++ uint64x2_t orig = ++ vcombine_u64(vcreate_u64((uint64_t) (crc) << 24), vcreate_u64(0x0)); ++ uint64x2_t tmp = orig; ++ ++ // Polynomial P(x) of CRC32C ++ uint64_t p = 0x105EC76F1; ++ // Barrett Reduction (in bit-reflected form) constant mu_{64} = \lfloor ++ // 2^{64} / P(x) \rfloor = 0x11f91caf6 ++ uint64_t mu = 0x1dea713f1; ++ ++ // Multiply by mu_{64} ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(mu)); ++ // Divide by 2^{64} (mask away the unnecessary bits) ++ tmp = ++ vandq_u64(tmp, vcombine_u64(vcreate_u64(0xFFFFFFFF), vcreate_u64(0x0))); ++ // Multiply by P(x) (shifted left by 1 for alignment reasons) ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(p)); ++ // Subtract original from result ++ tmp = veorq_u64(tmp, orig); ++ ++ // Extract the 'lower' (in bit-reflected sense) 32 bits ++ crc = vgetq_lane_u32(vreinterpretq_u32_u64(tmp), 1); ++#else // Fall back to the generic table lookup approach ++ // Adapted from: https://create.stephan-brumme.com/crc32/ ++ // Apply half-byte comparison algorithm for the best ratio between ++ // performance and lookup table. ++ ++ // The lookup table just needs to store every 16th entry ++ // of the standard look-up table. ++ static const uint32_t crc32_half_byte_tbl[] = { ++ 0x00000000, 0x105ec76f, 0x20bd8ede, 0x30e349b1, 0x417b1dbc, 0x5125dad3, ++ 0x61c69362, 0x7198540d, 0x82f63b78, 0x92a8fc17, 0xa24bb5a6, 0xb21572c9, ++ 0xc38d26c4, 0xd3d3e1ab, 0xe330a81a, 0xf36e6f75, ++ }; ++ ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++#endif ++#endif ++ return crc; ++} ++ ++/* AES */ ++ ++#if !defined(__ARM_FEATURE_CRYPTO) && (!defined(_M_ARM64) || defined(__clang__)) ++/* clang-format off */ ++#define SSE2NEON_AES_SBOX(w) \ ++ { \ ++ w(0x63), w(0x7c), w(0x77), w(0x7b), w(0xf2), w(0x6b), w(0x6f), \ ++ w(0xc5), w(0x30), w(0x01), w(0x67), w(0x2b), w(0xfe), w(0xd7), \ ++ w(0xab), w(0x76), w(0xca), w(0x82), w(0xc9), w(0x7d), w(0xfa), \ ++ w(0x59), w(0x47), w(0xf0), w(0xad), w(0xd4), w(0xa2), w(0xaf), \ ++ w(0x9c), w(0xa4), w(0x72), w(0xc0), w(0xb7), w(0xfd), w(0x93), \ ++ w(0x26), w(0x36), w(0x3f), w(0xf7), w(0xcc), w(0x34), w(0xa5), \ ++ w(0xe5), w(0xf1), w(0x71), w(0xd8), w(0x31), w(0x15), w(0x04), \ ++ w(0xc7), w(0x23), w(0xc3), w(0x18), w(0x96), w(0x05), w(0x9a), \ ++ w(0x07), w(0x12), w(0x80), w(0xe2), w(0xeb), w(0x27), w(0xb2), \ ++ w(0x75), w(0x09), w(0x83), w(0x2c), w(0x1a), w(0x1b), w(0x6e), \ ++ w(0x5a), w(0xa0), w(0x52), w(0x3b), w(0xd6), w(0xb3), w(0x29), \ ++ w(0xe3), w(0x2f), w(0x84), w(0x53), w(0xd1), w(0x00), w(0xed), \ ++ w(0x20), w(0xfc), w(0xb1), w(0x5b), w(0x6a), w(0xcb), w(0xbe), \ ++ w(0x39), w(0x4a), w(0x4c), w(0x58), w(0xcf), w(0xd0), w(0xef), \ ++ w(0xaa), w(0xfb), w(0x43), w(0x4d), w(0x33), w(0x85), w(0x45), \ ++ w(0xf9), w(0x02), w(0x7f), w(0x50), w(0x3c), w(0x9f), w(0xa8), \ ++ w(0x51), w(0xa3), w(0x40), w(0x8f), w(0x92), w(0x9d), w(0x38), \ ++ w(0xf5), w(0xbc), w(0xb6), w(0xda), w(0x21), w(0x10), w(0xff), \ ++ w(0xf3), w(0xd2), w(0xcd), w(0x0c), w(0x13), w(0xec), w(0x5f), \ ++ w(0x97), w(0x44), w(0x17), w(0xc4), w(0xa7), w(0x7e), w(0x3d), \ ++ w(0x64), w(0x5d), w(0x19), w(0x73), w(0x60), w(0x81), w(0x4f), \ ++ w(0xdc), w(0x22), w(0x2a), w(0x90), w(0x88), w(0x46), w(0xee), \ ++ w(0xb8), w(0x14), w(0xde), w(0x5e), w(0x0b), w(0xdb), w(0xe0), \ ++ w(0x32), w(0x3a), w(0x0a), w(0x49), w(0x06), w(0x24), w(0x5c), \ ++ w(0xc2), w(0xd3), w(0xac), w(0x62), w(0x91), w(0x95), w(0xe4), \ ++ w(0x79), w(0xe7), w(0xc8), w(0x37), w(0x6d), w(0x8d), w(0xd5), \ ++ w(0x4e), w(0xa9), w(0x6c), w(0x56), w(0xf4), w(0xea), w(0x65), \ ++ w(0x7a), w(0xae), w(0x08), w(0xba), w(0x78), w(0x25), w(0x2e), \ ++ w(0x1c), w(0xa6), w(0xb4), w(0xc6), w(0xe8), w(0xdd), w(0x74), \ ++ w(0x1f), w(0x4b), w(0xbd), w(0x8b), w(0x8a), w(0x70), w(0x3e), \ ++ w(0xb5), w(0x66), w(0x48), w(0x03), w(0xf6), w(0x0e), w(0x61), \ ++ w(0x35), w(0x57), w(0xb9), w(0x86), w(0xc1), w(0x1d), w(0x9e), \ ++ w(0xe1), w(0xf8), w(0x98), w(0x11), w(0x69), w(0xd9), w(0x8e), \ ++ w(0x94), w(0x9b), w(0x1e), w(0x87), w(0xe9), w(0xce), w(0x55), \ ++ w(0x28), w(0xdf), w(0x8c), w(0xa1), w(0x89), w(0x0d), w(0xbf), \ ++ w(0xe6), w(0x42), w(0x68), w(0x41), w(0x99), w(0x2d), w(0x0f), \ ++ w(0xb0), w(0x54), w(0xbb), w(0x16) \ ++ } ++#define SSE2NEON_AES_RSBOX(w) \ ++ { \ ++ w(0x52), w(0x09), w(0x6a), w(0xd5), w(0x30), w(0x36), w(0xa5), \ ++ w(0x38), w(0xbf), w(0x40), w(0xa3), w(0x9e), w(0x81), w(0xf3), \ ++ w(0xd7), w(0xfb), w(0x7c), w(0xe3), w(0x39), w(0x82), w(0x9b), \ ++ w(0x2f), w(0xff), w(0x87), w(0x34), w(0x8e), w(0x43), w(0x44), \ ++ w(0xc4), w(0xde), w(0xe9), w(0xcb), w(0x54), w(0x7b), w(0x94), \ ++ w(0x32), w(0xa6), w(0xc2), w(0x23), w(0x3d), w(0xee), w(0x4c), \ ++ w(0x95), w(0x0b), w(0x42), w(0xfa), w(0xc3), w(0x4e), w(0x08), \ ++ w(0x2e), w(0xa1), w(0x66), w(0x28), w(0xd9), w(0x24), w(0xb2), \ ++ w(0x76), w(0x5b), w(0xa2), w(0x49), w(0x6d), w(0x8b), w(0xd1), \ ++ w(0x25), w(0x72), w(0xf8), w(0xf6), w(0x64), w(0x86), w(0x68), \ ++ w(0x98), w(0x16), w(0xd4), w(0xa4), w(0x5c), w(0xcc), w(0x5d), \ ++ w(0x65), w(0xb6), w(0x92), w(0x6c), w(0x70), w(0x48), w(0x50), \ ++ w(0xfd), w(0xed), w(0xb9), w(0xda), w(0x5e), w(0x15), w(0x46), \ ++ w(0x57), w(0xa7), w(0x8d), w(0x9d), w(0x84), w(0x90), w(0xd8), \ ++ w(0xab), w(0x00), w(0x8c), w(0xbc), w(0xd3), w(0x0a), w(0xf7), \ ++ w(0xe4), w(0x58), w(0x05), w(0xb8), w(0xb3), w(0x45), w(0x06), \ ++ w(0xd0), w(0x2c), w(0x1e), w(0x8f), w(0xca), w(0x3f), w(0x0f), \ ++ w(0x02), w(0xc1), w(0xaf), w(0xbd), w(0x03), w(0x01), w(0x13), \ ++ w(0x8a), w(0x6b), w(0x3a), w(0x91), w(0x11), w(0x41), w(0x4f), \ ++ w(0x67), w(0xdc), w(0xea), w(0x97), w(0xf2), w(0xcf), w(0xce), \ ++ w(0xf0), w(0xb4), w(0xe6), w(0x73), w(0x96), w(0xac), w(0x74), \ ++ w(0x22), w(0xe7), w(0xad), w(0x35), w(0x85), w(0xe2), w(0xf9), \ ++ w(0x37), w(0xe8), w(0x1c), w(0x75), w(0xdf), w(0x6e), w(0x47), \ ++ w(0xf1), w(0x1a), w(0x71), w(0x1d), w(0x29), w(0xc5), w(0x89), \ ++ w(0x6f), w(0xb7), w(0x62), w(0x0e), w(0xaa), w(0x18), w(0xbe), \ ++ w(0x1b), w(0xfc), w(0x56), w(0x3e), w(0x4b), w(0xc6), w(0xd2), \ ++ w(0x79), w(0x20), w(0x9a), w(0xdb), w(0xc0), w(0xfe), w(0x78), \ ++ w(0xcd), w(0x5a), w(0xf4), w(0x1f), w(0xdd), w(0xa8), w(0x33), \ ++ w(0x88), w(0x07), w(0xc7), w(0x31), w(0xb1), w(0x12), w(0x10), \ ++ w(0x59), w(0x27), w(0x80), w(0xec), w(0x5f), w(0x60), w(0x51), \ ++ w(0x7f), w(0xa9), w(0x19), w(0xb5), w(0x4a), w(0x0d), w(0x2d), \ ++ w(0xe5), w(0x7a), w(0x9f), w(0x93), w(0xc9), w(0x9c), w(0xef), \ ++ w(0xa0), w(0xe0), w(0x3b), w(0x4d), w(0xae), w(0x2a), w(0xf5), \ ++ w(0xb0), w(0xc8), w(0xeb), w(0xbb), w(0x3c), w(0x83), w(0x53), \ ++ w(0x99), w(0x61), w(0x17), w(0x2b), w(0x04), w(0x7e), w(0xba), \ ++ w(0x77), w(0xd6), w(0x26), w(0xe1), w(0x69), w(0x14), w(0x63), \ ++ w(0x55), w(0x21), w(0x0c), w(0x7d) \ ++ } ++/* clang-format on */ ++ ++/* X Macro trick. See https://en.wikipedia.org/wiki/X_Macro */ ++#define SSE2NEON_AES_H0(x) (x) ++static const uint8_t _sse2neon_sbox[256] = SSE2NEON_AES_SBOX(SSE2NEON_AES_H0); ++static const uint8_t _sse2neon_rsbox[256] = SSE2NEON_AES_RSBOX(SSE2NEON_AES_H0); ++#undef SSE2NEON_AES_H0 ++ ++/* x_time function and matrix multiply function */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#define SSE2NEON_XT(x) (((x) << 1) ^ ((((x) >> 7) & 1) * 0x1b)) ++#define SSE2NEON_MULTIPLY(x, y) \ ++ (((y & 1) * x) ^ ((y >> 1 & 1) * SSE2NEON_XT(x)) ^ \ ++ ((y >> 2 & 1) * SSE2NEON_XT(SSE2NEON_XT(x))) ^ \ ++ ((y >> 3 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))) ^ \ ++ ((y >> 4 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))))) ++#endif ++ ++// In the absence of crypto extensions, implement aesenc using regular NEON ++// intrinsics instead. See: ++// https://www.workofard.com/2017/01/accelerated-aes-for-the-arm64-linux-kernel/ ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/ and ++// for more information. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ /* shift rows */ ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ /* sub bytes */ ++ // Here, we separate the whole 256-bytes table into 4 64-bytes tables, and ++ // look up each of the table. After each lookup, we load the next table ++ // which locates at the next 64-bytes. In the meantime, the index in the ++ // table would be smaller than it was, so the index parameters of ++ // `vqtbx4q_u8()` need to be added the same constant as the loaded tables. ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ // 'w-0x40' equals to 'vsubq_u8(w, vdupq_n_u8(0x40))' ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ /* mix columns */ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ /* add round key */ ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A implementation for a table-based AES */ ++#define SSE2NEON_AES_B2W(b0, b1, b2, b3) \ ++ (((uint32_t) (b3) << 24) | ((uint32_t) (b2) << 16) | \ ++ ((uint32_t) (b1) << 8) | (uint32_t) (b0)) ++// multiplying 'x' by 2 in GF(2^8) ++#define SSE2NEON_AES_F2(x) ((x << 1) ^ (((x >> 7) & 1) * 0x011b /* WPOLY */)) ++// multiplying 'x' by 3 in GF(2^8) ++#define SSE2NEON_AES_F3(x) (SSE2NEON_AES_F2(x) ^ x) ++#define SSE2NEON_AES_U0(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F2(p), p, p, SSE2NEON_AES_F3(p)) ++#define SSE2NEON_AES_U1(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p, p) ++#define SSE2NEON_AES_U2(p) \ ++ SSE2NEON_AES_B2W(p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p) ++#define SSE2NEON_AES_U3(p) \ ++ SSE2NEON_AES_B2W(p, p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p)) ++ ++ // this generates a table containing every possible permutation of ++ // shift_rows() and sub_bytes() with mix_columns(). ++ static const uint32_t ALIGN_STRUCT(16) aes_table[4][256] = { ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U0), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U1), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U2), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U3), ++ }; ++#undef SSE2NEON_AES_B2W ++#undef SSE2NEON_AES_F2 ++#undef SSE2NEON_AES_F3 ++#undef SSE2NEON_AES_U0 ++#undef SSE2NEON_AES_U1 ++#undef SSE2NEON_AES_U2 ++#undef SSE2NEON_AES_U3 ++ ++ uint32_t x0 = _mm_cvtsi128_si32(a); // get a[31:0] ++ uint32_t x1 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); // get a[63:32] ++ uint32_t x2 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xAA)); // get a[95:64] ++ uint32_t x3 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); // get a[127:96] ++ ++ // finish the modulo addition step in mix_columns() ++ __m128i out = _mm_set_epi32( ++ (aes_table[0][x3 & 0xff] ^ aes_table[1][(x0 >> 8) & 0xff] ^ ++ aes_table[2][(x1 >> 16) & 0xff] ^ aes_table[3][x2 >> 24]), ++ (aes_table[0][x2 & 0xff] ^ aes_table[1][(x3 >> 8) & 0xff] ^ ++ aes_table[2][(x0 >> 16) & 0xff] ^ aes_table[3][x1 >> 24]), ++ (aes_table[0][x1 & 0xff] ^ aes_table[1][(x2 >> 8) & 0xff] ^ ++ aes_table[2][(x3 >> 16) & 0xff] ^ aes_table[3][x0 >> 24]), ++ (aes_table[0][x0 & 0xff] ^ aes_table[1][(x1 >> 8) & 0xff] ^ ++ aes_table[2][(x2 >> 16) & 0xff] ^ aes_table[3][x3 >> 24])); ++ ++ return _mm_xor_si128(out, RoundKey); ++#endif ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // inverse mix columns ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & ++ 0x1b); // multiplying 'v' by 2 in GF(2^8) ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ // inverse mix columns ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ // sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A implementation */ ++ uint8_t v[16] = { ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 0)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 5)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 10)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 15)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 4)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 9)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 14)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 3)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 8)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 13)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 2)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 7)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 12)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 1)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 6)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 11)], ++ }; ++ ++ return vreinterpretq_m128i_u8(vld1q_u8(v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (int i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++#if defined(__aarch64__) ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ uint8x16_t v = vreinterpretq_u8_m128i(a); ++ uint8x16_t w; ++ ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ // multiplying 'v' by 2 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ return vreinterpretq_m128i_u8(w); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ vst1q_u8((uint8_t *) v, vreinterpretq_u8_m128i(a)); ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)); ++#endif ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++// ++// Emits the Advanced Encryption Standard (AES) instruction aeskeygenassist. ++// This instruction generates a round key for AES encryption. See ++// https://kazakov.life/2017/11/01/cryptocurrency-mining-on-ios-devices/ ++// for details. ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++#if defined(__aarch64__) ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); ++ uint8x16_t v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), _a); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), _a - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), _a - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), _a - 0xc0); ++ ++ uint32x4_t v_u32 = vreinterpretq_u32_u8(v); ++ uint32x4_t ror_v = vorrq_u32(vshrq_n_u32(v_u32, 8), vshlq_n_u32(v_u32, 24)); ++ uint32x4_t ror_xor_v = veorq_u32(ror_v, vdupq_n_u32(rcon)); ++ ++ return vreinterpretq_m128i_u32(vtrn2q_u32(v_u32, ror_xor_v)); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint32_t X1 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); ++ uint32_t X3 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); ++ for (int i = 0; i < 4; ++i) { ++ ((uint8_t *) &X1)[i] = _sse2neon_sbox[((uint8_t *) &X1)[i]]; ++ ((uint8_t *) &X3)[i] = _sse2neon_sbox[((uint8_t *) &X3)[i]]; ++ } ++ return _mm_set_epi32(((X3 >> 8) | (X3 << 24)) ^ rcon, X3, ++ ((X1 >> 8) | (X1 << 24)) ^ rcon, X1); ++#endif ++} ++#undef SSE2NEON_AES_SBOX ++#undef SSE2NEON_AES_RSBOX ++ ++#if defined(__aarch64__) ++#undef SSE2NEON_XT ++#undef SSE2NEON_MULTIPLY ++#endif ++ ++#else /* __ARM_FEATURE_CRYPTO */ ++// Implements equivalent of 'aesenc' by combining AESE (with an empty key) and ++// AESMC and then manually applying the real key as an xor operation. This ++// unfortunately means an additional xor op; the compiler should be able to ++// optimize this away for repeated calls however. See ++// https://blog.michaelbrase.com/2018/05/08/emulating-x86-aes-intrinsics-on-armv8-a ++// for more details. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesmcq_u8(vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(b))); ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesimcq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return _mm_xor_si128(vreinterpretq_m128i_u8(vaeseq_u8( ++ vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ RoundKey); ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8( ++ veorq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++ return vreinterpretq_m128i_u8(vaesimcq_u8(vreinterpretq_u8_m128i(a))); ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst." ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++ // AESE does ShiftRows and SubBytes on A ++ uint8x16_t u8 = vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)); ++ ++#ifndef _MSC_VER ++ uint8x16_t dest = { ++ // Undo ShiftRows step from AESE and extract X1 and X3 ++ u8[0x4], u8[0x1], u8[0xE], u8[0xB], // SubBytes(X1) ++ u8[0x1], u8[0xE], u8[0xB], u8[0x4], // ROT(SubBytes(X1)) ++ u8[0xC], u8[0x9], u8[0x6], u8[0x3], // SubBytes(X3) ++ u8[0x9], u8[0x6], u8[0x3], u8[0xC], // ROT(SubBytes(X3)) ++ }; ++ uint32x4_t r = {0, (unsigned) rcon, 0, (unsigned) rcon}; ++ return vreinterpretq_m128i_u8(dest) ^ vreinterpretq_m128i_u32(r); ++#else ++ // We have to do this hack because MSVC is strictly adhering to the CPP ++ // standard, in particular C++03 8.5.1 sub-section 15, which states that ++ // unions must be initialized by their first member type. ++ ++ // As per the Windows ARM64 ABI, it is always little endian, so this works ++ __n128 dest{ ++ ((uint64_t) u8.n128_u8[0x4] << 0) | ((uint64_t) u8.n128_u8[0x1] << 8) | ++ ((uint64_t) u8.n128_u8[0xE] << 16) | ++ ((uint64_t) u8.n128_u8[0xB] << 24) | ++ ((uint64_t) u8.n128_u8[0x1] << 32) | ++ ((uint64_t) u8.n128_u8[0xE] << 40) | ++ ((uint64_t) u8.n128_u8[0xB] << 48) | ++ ((uint64_t) u8.n128_u8[0x4] << 56), ++ ((uint64_t) u8.n128_u8[0xC] << 0) | ((uint64_t) u8.n128_u8[0x9] << 8) | ++ ((uint64_t) u8.n128_u8[0x6] << 16) | ++ ((uint64_t) u8.n128_u8[0x3] << 24) | ++ ((uint64_t) u8.n128_u8[0x9] << 32) | ++ ((uint64_t) u8.n128_u8[0x6] << 40) | ++ ((uint64_t) u8.n128_u8[0x3] << 48) | ++ ((uint64_t) u8.n128_u8[0xC] << 56)}; ++ ++ dest.n128_u32[1] = dest.n128_u32[1] ^ rcon; ++ dest.n128_u32[3] = dest.n128_u32[3] ^ rcon; ++ ++ return dest; ++#endif ++} ++#endif ++ ++/* Others */ ++ ++// Perform a carry-less multiplication of two 64-bit integers, selected from a ++// and b according to imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clmulepi64_si128 ++FORCE_INLINE __m128i _mm_clmulepi64_si128(__m128i _a, __m128i _b, const int imm) ++{ ++ uint64x2_t a = vreinterpretq_u64_m128i(_a); ++ uint64x2_t b = vreinterpretq_u64_m128i(_b); ++ switch (imm & 0x11) { ++ case 0x00: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_low_u64(b))); ++ case 0x01: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_low_u64(b))); ++ case 0x10: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_high_u64(b))); ++ case 0x11: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_high_u64(b))); ++ default: ++ abort(); ++ } ++} ++ ++FORCE_INLINE unsigned int _sse2neon_mm_get_denormals_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_DENORMALS_ZERO_ON : _MM_DENORMALS_ZERO_OFF; ++} ++ ++// Count the number of bits set to 1 in unsigned 32-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u32 ++FORCE_INLINE int _mm_popcnt_u32(unsigned int a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcount) ++ return __builtin_popcount(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits(a); ++#else ++ return (int) vaddlv_u8(vcnt_u8(vcreate_u8((uint64_t) a))); ++#endif ++#else ++ uint32_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ ++ vst1_u32(&count, count32x2_val); ++ return count; ++#endif ++} ++ ++// Count the number of bits set to 1 in unsigned 64-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u64 ++FORCE_INLINE int64_t _mm_popcnt_u64(uint64_t a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcountll) ++ return __builtin_popcountll(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits64(a); ++#else ++ return (int64_t) vaddlv_u8(vcnt_u8(vcreate_u8(a))); ++#endif ++#else ++ uint64_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ uint64x1_t count64x1_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ count64x1_val = vpaddl_u32(count32x2_val); ++ vst1_u64(&count, count64x1_val); ++ return count; ++#endif ++} ++ ++FORCE_INLINE void _sse2neon_mm_set_denormals_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_DENORMALS_ZERO_MASK) == _MM_DENORMALS_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Return the current 64-bit value of the processor's time-stamp counter. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=rdtsc ++FORCE_INLINE uint64_t _rdtsc(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t val; ++ ++ /* According to ARM DDI 0487F.c, from Armv8.0 to Armv8.5 inclusive, the ++ * system counter is at least 56 bits wide; from Armv8.6, the counter ++ * must be 64 bits wide. So the system counter could be less than 64 ++ * bits wide and it is attributed with the flag 'cap_user_time_short' ++ * is true. ++ */ ++#if defined(_MSC_VER) ++ val = _ReadStatusReg(ARM64_SYSREG(3, 3, 14, 0, 2)); ++#else ++ __asm__ __volatile__("mrs %0, cntvct_el0" : "=r"(val)); ++#endif ++ ++ return val; ++#else ++ uint32_t pmccntr, pmuseren, pmcntenset; ++ // Read the user mode Performance Monitoring Unit (PMU) ++ // User Enable Register (PMUSERENR) access permissions. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c14, 0" : "=r"(pmuseren)); ++ if (pmuseren & 1) { // Allows reading PMUSERENR for user mode code. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c12, 1" : "=r"(pmcntenset)); ++ if (pmcntenset & 0x80000000UL) { // Is it counting? ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c13, 0" : "=r"(pmccntr)); ++ // The counter is set up to count every 64th cycle ++ return (uint64_t) (pmccntr) << 6; ++ } ++ } ++ ++ // Fallback to syscall as we can't enable PMUSERENR in user mode. ++ struct timeval tv; ++ gettimeofday(&tv, NULL); ++ return (uint64_t) (tv.tv_sec) * 1000000 + tv.tv_usec; ++#endif ++} ++ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma pop_macro("ALIGN_STRUCT") ++#pragma pop_macro("FORCE_INLINE") ++#pragma pop_macro("FORCE_INLINE_OPTNONE") ++#endif ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma GCC pop_options ++#endif ++ ++#endif +diff --git c/src/Makefile i/src/Makefile +index 3ed6c1c..82bb3b7 100644 +--- c/src/Makefile ++++ i/src/Makefile +@@ -50,7 +50,7 @@ endif + $(ABPOA_DIR)/lib/libabpoa.a: + echo $(CC) + echo "^^CC" +- cd $(ABPOA_DIR) && make sse2=true PREFIX=. CC="$(CC)" $(ZLPATH) lib/libabpoa.a ++ cd $(ABPOA_DIR) && make sse2= PREFIX=. CC="$(CC)" $(ZLPATH) lib/libabpoa.a + + testmsa: TestMSA.cpp + $(CXX) $(CFLAGS) -o $@ $^ -L $(CONDA_PREFIX)/lib $(LIBS) -I $(ABPOA_DIR)/include -L $(ABPOA_DIR)/lib -labpoa -lrt -L$(mchaisso)/software/lib From 70b40709b1500c27c02eac0d6bebfe5f88c85067 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 12:12:13 -0400 Subject: [PATCH 0183/1589] Update haplomap to 0.1.1 (#49082) --- recipes/haplomap/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/haplomap/meta.yaml b/recipes/haplomap/meta.yaml index 0948847322532..6b7d656bf4de8 100644 --- a/recipes/haplomap/meta.yaml +++ b/recipes/haplomap/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.1.0" %} -{% set sha256 = "3c052f339af1163da3013d3c3a0f866583a4f608e6626dadc7e4398880e2f0a1" %} +{% set version = "0.1.1" %} +{% set sha256 = "8ebca46b3d3e60302f832ad0d8cc3dbef89e7fc568a3c67ec19d83130c128bbc" %} package: name: haplomap @@ -10,7 +10,7 @@ source: sha256: '{{sha256}}' build: - number: 3 + number: 0 run_exports: - {{ pin_subpackage('haplomap', max_pin='x.x') }} @@ -36,4 +36,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 From 10b69d64230c8b73927d1a84499b652775139135 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 12:12:24 -0400 Subject: [PATCH 0184/1589] Update matchms to 0.27.0 (#49084) --- recipes/matchms/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/matchms/meta.yaml b/recipes/matchms/meta.yaml index 55458db68a81d..263f3b2f86013 100644 --- a/recipes/matchms/meta.yaml +++ b/recipes/matchms/meta.yaml @@ -1,5 +1,5 @@ {% set name = "matchms" %} -{% set version = "0.26.4" %} +{% set version = "0.27.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: fb6cb22fea54a9bc8fc96d2cff2e2232b39a4458268ff1d985583609b289e019 + sha256: 96d15fbc006c90ac306e91b9fc609255108c48536094d2a55502f6a2e65fbce8 build: number: 0 From 5702c183f722fd6eda6a9f4c4c756f7252266516 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 13:10:29 -0400 Subject: [PATCH 0185/1589] Update ppanggolin to 2.1.0 (#49083) --- recipes/ppanggolin/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/ppanggolin/meta.yaml b/recipes/ppanggolin/meta.yaml index 0b43842899749..3a1b063442689 100644 --- a/recipes/ppanggolin/meta.yaml +++ b/recipes/ppanggolin/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.0.5" %} +{% set version = "2.1.0" %} package: name: ppanggolin @@ -6,10 +6,10 @@ package: source: url: https://github.com/labgem/PPanGGOLiN/archive/{{ version }}.tar.gz - sha256: a0eecbb3f66df8d2df5c2b37c25696c264cd3812386e942314748a8800ecc52f + sha256: f0f81d57e571619438a558895de750bb02f4728cfb2eb1928431dadb22fd49d1 build: - number: 1 + number: 0 skip: True # [py<37] run_exports: - {{ pin_subpackage("ppanggolin", max_pin="x") }} From 04c45acce866d047edae307d1ee912e60e2184aa Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 14:06:36 -0400 Subject: [PATCH 0186/1589] Update breseq to 0.39.0 (#49085) --- recipes/breseq/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/breseq/meta.yaml b/recipes/breseq/meta.yaml index 8696fa41b547e..50da315f59f83 100644 --- a/recipes/breseq/meta.yaml +++ b/recipes/breseq/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.38.3" %} +{% set version = "0.39.0" %} package: name: breseq @@ -6,7 +6,7 @@ package: source: url: https://github.com/barricklab/breseq/releases/download/v{{ version }}/breseq-{{ version }}-Source.tar.gz - sha256: "4d0c772fb87947e028094839f090ee130c87d0d5951adf5b845b79ac87449900" + sha256: "39b35e246ecd2b497c82a99765ca4d78a0400bc4a7518b7506b140229ccc0247" build: number: 0 From 21fbd603fd2e9fb8c5391fdbfc4dda466dc89d5f Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Wed, 10 Jul 2024 14:15:02 -0400 Subject: [PATCH 0187/1589] feat: support for osx-arm64 builds (#46775) * example recipe for osx-arm64 * test arm builds on macOS-14 * add arch flag * try setting a higher sdk version * check sdk versions * set sdk earlier * move logging * set deployment target * move var setting * how old can we go? * try 11.0 sdk * trigger on PR * Apply suggestions from code review Co-authored-by: Martin Grigorov * zip a level up to match other ci * must include noarch * remove sdk workaround * log deployment target * use master cache * case for job name * initial merge wf (set up for testing) * updates from testing * source common.sh instead of directly setting env vars * enable osx-arm64 on CircleCI * xcode version (match github actions) * debugging * no docker for osx * match bulk setup * comment out run_conda_forge_build_setup * Little more generic test * longer build test * clean up * remove setup * simplify and add osx-arm64 * revert * try to match other CI * standardize CI configurations for additional platforms * fix scripts path * fix check * test skip * reenable test packages * add osx-arm64 to bulk * test with user friendly name * move arm jobs to existing GHA config * test run_conda_forge_build_setup * test run_conda_forge_build_setup on GitHub Actions * debug sdk location * try permissions * run_conda_forge_build_setup is working on GHA * clean up * Try newer xcode version * try x flag to see how noisy it is * bump builds * Apply suggestions from code review This does add a little clutter from conda activate, but it could be useful for debugging some of the osx-specific stuff. Co-authored-by: Martin Grigorov --------- Co-authored-by: Martin Grigorov --- .circleci/config.yml | 88 ++++++++---- .github/workflows/Bulk.yml | 64 ++++++++- .github/workflows/PR.yml | 132 ++++++++++++------ .github/workflows/master.yml | 101 ++++++++++---- recipes/bamtools/meta.yaml | 3 +- recipes/bioawk/meta.yaml | 3 +- .../check-for-additional-platforms.sh | 9 +- 7 files changed, 294 insertions(+), 106 deletions(-) rename {.circleci => scripts}/check-for-additional-platforms.sh (87%) diff --git a/.circleci/config.yml b/.circleci/config.yml index c4a3117dd6022..725c78f5e7e8a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,10 +2,10 @@ version: 2.1 executors: - # osx-arm64: - # macos: - # xcode: 14.2.0 # indicate your selected version of Xcode - # resource_class: macos.m1.large.gen1 + osx-arm64: + macos: + xcode: 15.4.0 + resource_class: macos.m1.medium.gen1 linux-aarch64: machine: image: ubuntu-2204:current @@ -22,7 +22,13 @@ jobs: # a basic unit of work in a run - run: name: Check for Additional Platforms - command: ./.circleci/check-for-additional-platforms.sh "origin/master...HEAD" "build_and_test" + command: | + result=$(./scripts/check-for-additional-platforms.sh "origin/master...HEAD" "build_and_test" "${CIRCLE_JOB}") + if [[ ${result} != "build" ]] + then + echo "No recipes using this platform, skipping rest of job." + circleci-agent step halt + fi - run: name: Fetch bioconda install script @@ -47,14 +53,29 @@ jobs: # a basic unit of work in a run - run: name: Build and test command: | - . common.sh - source /opt/mambaforge/etc/profile.d/conda.sh - source /opt/mambaforge/etc/profile.d/mamba.sh - mamba activate bioconda - bioconda-utils build recipes config.yml \ - --lint --docker --mulled-test \ - --docker-base-image "quay.io/bioconda/bioconda-utils-build-env-cos7-$(arch):${BIOCONDA_UTILS_TAG#v}" \ - --git-range origin/master HEAD + set -xe + eval "$(conda shell.bash hook)" + conda activate bioconda + source common.sh + + # Sets up OSX SDK + if [[ $(uname) = "Darwin" ]]; then + if [[ "${OSX_SDK_DIR:-}" == "" ]]; then + OSX_SDK_DIR="$(xcode-select -p)/Platforms/MacOSX.platform/Developer/SDKs" + fi + sudo chmod o+rwx ${OSX_SDK_DIR} + run_conda_forge_build_setup + fi + + if command -V docker >/dev/null; then + bioconda-utils build recipes config.yml \ + --lint --docker --mulled-test \ + --docker-base-image "quay.io/bioconda/bioconda-utils-build-env-cos7-$(arch):${BIOCONDA_UTILS_TAG#v}" \ + --git-range origin/master HEAD + else + bioconda-utils build recipes config.yml \ + --lint --git-range origin/master HEAD + fi - run: name: Prepare artifacts @@ -63,7 +84,7 @@ jobs: # a basic unit of work in a run mkdir -p /tmp/artifacts/packages cd /opt/mambaforge/envs/bioconda/conda-bld || exit 0 find -name .cache | xargs rm -rf || true - for n in index.html channeldata.json linux-aarch64 linux-64 osx-64 noarch; do + for n in index.html channeldata.json linux-aarch64 linux-64 osx-64 osx-arm64 noarch; do cp -rv $n /tmp/artifacts/packages || true done if command -V docker >/dev/null; then @@ -93,7 +114,13 @@ jobs: # a basic unit of work in a run - run: name: Check for Additional Platforms - command: ./.circleci/check-for-additional-platforms.sh "${CIRCLE_SHA1}~1 ${CIRCLE_SHA1}" "build_and_upload" + command: | + result=$(./scripts/check-for-additional-platforms.sh "${CIRCLE_SHA1}~1 ${CIRCLE_SHA1}" "build_and_upload" "${CIRCLE_JOB}") + if [[ ${result} != "build" ]] + then + echo "No recipes using this platform, skipping rest of job." + circleci-agent step halt + fi - run: name: Fetch bioconda install script @@ -118,9 +145,20 @@ jobs: # a basic unit of work in a run - run: name: Build and push command: | - source /opt/mambaforge/etc/profile.d/conda.sh - source /opt/mambaforge/etc/profile.d/mamba.sh - mamba activate bioconda + set -xe + eval "$(conda shell.bash hook)" + conda activate bioconda + source common.sh + + # Sets up OSX SDK + if [[ $(uname) = "Darwin" ]]; then + if [[ "${OSX_SDK_DIR:-}" == "" ]]; then + OSX_SDK_DIR="$(xcode-select -p)/Platforms/MacOSX.platform/Developer/SDKs" + fi + sudo chmod o+rwx ${OSX_SDK_DIR} + run_conda_forge_build_setup + fi + bioconda-utils handle-merged-pr recipes config.yml \ --repo bioconda/bioconda-recipes \ --git-range ${CIRCLE_SHA1}~1 ${CIRCLE_SHA1} \ @@ -184,10 +222,10 @@ jobs: # a basic unit of work in a run name: Build and upload command: | set -e - . common.sh - source /opt/mambaforge/etc/profile.d/conda.sh - source /opt/mambaforge/etc/profile.d/mamba.sh - mamba activate bioconda + eval "$(conda shell.bash hook)" + conda activate bioconda + source common.sh + echo '============' conda info --all conda config --show-sources @@ -214,7 +252,7 @@ workflows: matrix: parameters: os: - #- osx-arm64 + - osx-arm64 - linux-aarch64 build and upload (ARM): @@ -226,7 +264,7 @@ workflows: matrix: parameters: os: - #- osx-arm64 + - osx-arm64 - linux-aarch64 @@ -239,6 +277,6 @@ workflows: matrix: parameters: os: - #- osx-arm64 + # - osx-arm64 Bulk is on GitHub Actions - linux-aarch64 runner: [0, 1, 2, 3, 4, 5] diff --git a/.github/workflows/Bulk.yml b/.github/workflows/Bulk.yml index ec689ce742449..38e3f8248cf8b 100644 --- a/.github/workflows/Bulk.yml +++ b/.github/workflows/Bulk.yml @@ -62,7 +62,7 @@ jobs: conda clean -y --all build-osx: - name: Bulk OSX Builds + name: Bulk OSX-64 Builds if: "contains(github.event.head_commit.message, '[ci run]')" runs-on: macos-13 strategy: @@ -121,3 +121,65 @@ jobs: --lint --anaconda-upload --record-build-failures --skiplist-leafs \ --exclude bioconda-repodata-patches conda clean -y --all + + build-osx-arm: + name: Bulk OSX-ARM64 Builds + if: "contains(github.event.head_commit.message, '[ci run]')" + runs-on: macOS-14 # M1 + strategy: + fail-fast: false + max-parallel: 4 + matrix: + runner: [0, 1, 2, 3] + steps: + - uses: actions/checkout@v4 + with: + # checkout as BiocondaBot in order to have the permission to push fail logs + token: ${{secrets.BIOCONDA_BOT_REPO_TOKEN}} + + - name: set git user + run: | + git config user.name BiocondaBot + git config user.email BiocondaBot@users.noreply.github.com + + - name: set path + run: echo "/opt/mambaforge/bin" >> $GITHUB_PATH + + - name: Fetch conda install script + run: | + wget https://raw.githubusercontent.com/bioconda/bioconda-common/bulk/{common,install-and-set-up-conda,configure-conda}.sh + + - name: Set up bioconda-utils + run: bash install-and-set-up-conda.sh + + - name: Configure conda + run: bash configure-conda.sh + + - name: Build and upload + env: + ANACONDA_TOKEN: ${{ secrets.ANACONDA_TOKEN }} + INVOLUCRO_AUTH: ${{ secrets.INVOLUCRO_AUTH }} + QUAY_OAUTH_TOKEN: ${{ secrets.QUAY_OAUTH_TOKEN }} + # Mimic circleci + OSTYPE: "darwin" + CI: "true" + run: | + set -xe + eval "$(conda shell.bash hook)" + conda activate bioconda + + source common.sh + # Sets up OSX SDK + run_conda_forge_build_setup + + echo '============' + conda info --all + conda config --show-sources + conda activate bioconda + python -c 'import bioconda_utils.utils as u ; import pathlib as p ; print(*(f"{f}:\n{p.Path(f).read_text()}" for f in u.load_conda_build_config().exclusive_config_files), sep="\n")' + echo '============' + bioconda-utils build recipes config.yml \ + --worker-offset ${{ matrix.runner }} --n-workers 4 \ + --lint --anaconda-upload --record-build-failures --skiplist-leafs \ + --exclude bioconda-repodata-patches + conda clean -y --all diff --git a/.github/workflows/PR.yml b/.github/workflows/PR.yml index 9418eba60943d..82f17b7c4a736 100644 --- a/.github/workflows/PR.yml +++ b/.github/workflows/PR.yml @@ -13,7 +13,7 @@ jobs: fail-fast: true max-parallel: 13 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -24,15 +24,7 @@ jobs: run: | wget https://raw.githubusercontent.com/bioconda/bioconda-common/master/{install-and-set-up-conda,configure-conda,common}.sh - - name: Restore cache - id: cache - uses: actions/cache@v3 - with: - path: /opt/mambaforge - key: ${{ runner.os }}--bulk--${{ hashFiles('**/install-and-set-up-conda.sh') }} - - name: Set up bioconda-utils - if: steps.cache.outputs.cache-hit != 'true' run: bash install-and-set-up-conda.sh - name: Configure conda @@ -67,7 +59,7 @@ jobs: max-parallel: 13 needs: lint steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -78,23 +70,10 @@ jobs: run: | wget https://raw.githubusercontent.com/bioconda/bioconda-common/master/{install-and-set-up-conda,configure-conda,common}.sh - - name: Restore cache - id: cache - uses: actions/cache@v3 - with: - path: /opt/mambaforge - key: ${{ runner.os }}--bulk--${{ hashFiles('**/install-and-set-up-conda.sh') }} - - name: Set up bioconda-utils - if: steps.cache.outputs.cache-hit != 'true' run: bash install-and-set-up-conda.sh # This script can be used to reconfigure conda to use the right channel setup. - # This has to be done after the cache is restored, because - # the channel setup is not cached as it resides in the home directory. - # We could use a system-wide (and therefore cached) channel setup, - # but mamba does not support that at the time of implementation - # (it ignores settings made with --system). - name: Configure conda run: bash configure-conda.sh @@ -151,28 +130,28 @@ jobs: ) || true - name: Archive packages - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: linux-packages path: | /tmp/artifacts/packages - name: Archive images - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: docker-images path: | /tmp/artifacts/images - build-osx: - name: OSX Tests + build-osx-64: + name: OSX-64 Tests runs-on: macos-13 strategy: fail-fast: true max-parallel: 4 needs: build-linux steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -183,23 +162,10 @@ jobs: run: | wget https://raw.githubusercontent.com/bioconda/bioconda-common/master/{install-and-set-up-conda,configure-conda,common}.sh - - name: Restore cache - id: cache - uses: actions/cache@v3 - with: - path: /opt/mambaforge - key: ${{ runner.os }}--bulk--${{ hashFiles('**/install-and-set-up-conda.sh') }} - - name: Set up bioconda-utils - if: steps.cache.outputs.cache-hit != 'true' run: bash install-and-set-up-conda.sh # This script can be used to reconfigure conda to use the right channel setup. - # This has to be done after the cache is restored, because - # the channel setup is not cached as it resides in the home directory. - # We could use a system-wide (and therefore cached) channel setup, - # but mamba does not support that at the time of implementation - # (it ignores settings made with --system). - name: Configure conda run: bash configure-conda.sh @@ -241,8 +207,90 @@ jobs: ) || true - name: Archive packages - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: osx-packages path: | /tmp/artifacts/packages + + build_and_test-osx-arm64: + name: OSX-ARM64 Tests + runs-on: macOS-14 # M1 + strategy: + fail-fast: true + max-parallel: 4 + needs: build-linux + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + # bail if there's no osx-arm64 recipes + - name: Check for Additional Platforms + id: additional_platforms + run: | + result=$(./scripts/check-for-additional-platforms.sh "origin/master...HEAD" "build_and_test" "${GITHUB_JOB}") + if [[ ${result} != "build" ]] + then + echo "No recipes using this platform, skipping rest of job." + echo "skip_build=true" >> $GITHUB_OUTPUT + fi + + - name: set path + run: echo "/opt/mambaforge/bin" >> $GITHUB_PATH + + - name: Fetch conda install script + if: steps.additional_platforms.outputs.skip_build != 'true' + run: | + wget https://raw.githubusercontent.com/bioconda/bioconda-common/master/{install-and-set-up-conda,configure-conda,common}.sh + + - name: Set up bioconda-utils + if: steps.additional_platforms.outputs.skip_build != 'true' + run: bash install-and-set-up-conda.sh + + - name: Configure conda + if: steps.additional_platforms.outputs.skip_build != 'true' + run: bash configure-conda.sh + + - name: Build and Test + if: steps.additional_platforms.outputs.skip_build != 'true' + env: + # Mimic circleci + OSTYPE: "darwin" + CI: "true" + run: | + set -xe + eval "$(conda shell.bash hook)" + conda activate bioconda + source common.sh + # Sets up OSX SDK + run_conda_forge_build_setup + + if [ -z "$GITHUB_BASE_REF" ] ; then + export GITHUB_BASE_REF="master" + fi + git fetch origin "$GITHUB_BASE_REF" + + bioconda-utils build recipes config.yml \ + --lint --git-range origin/"$GITHUB_BASE_REF" HEAD + + - name: Prepare artifacts + if: steps.additional_platforms.outputs.skip_build != 'true' + run: | + ( + rm -rf /tmp/artifacts + mkdir -p /tmp/artifacts/packages + cd /opt/mambaforge/envs/bioconda/conda-bld || exit 0 + find -name .cache | xargs rm -rf || true + for n in index.html channeldata.json osx-arm64 noarch; do + cp -rv $n /tmp/artifacts/packages || true + done + ) || true + + - name: Archive packages + if: steps.additional_platforms.outputs.skip_build != 'true' + uses: actions/upload-artifact@v4 + with: + name: osx-arm64-packages + path: | + /tmp/artifacts diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index e698443590e50..7e237b314da22 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -12,7 +12,7 @@ jobs: fail-fast: false max-parallel: 13 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -23,23 +23,10 @@ jobs: run: | wget https://raw.githubusercontent.com/bioconda/bioconda-common/master/{install-and-set-up-conda,configure-conda,common}.sh - - name: Restore cache - id: cache - uses: actions/cache@v3 - with: - path: /opt/mambaforge - key: ${{ runner.os }}--bulk--${{ hashFiles('**/install-and-set-up-conda.sh') }} - - name: Set up bioconda-utils - if: steps.cache.outputs.cache-hit != 'true' run: bash install-and-set-up-conda.sh # This script can be used to reconfigure conda to use the right channel setup. - # This has to be done after the cache is restored, because - # the channel setup is not cached as it resides in the home directory. - # We could use a system-wide (and therefore cached) channel setup, - # but mamba does not support that at the time of implementation - # (it ignores settings made with --system). - name: Configure conda run: bash configure-conda.sh @@ -68,15 +55,15 @@ jobs: --docker --mulled-test --anaconda-upload --mulled-upload-target biocontainers docker rmi quay.io/dpryan79/mulled_container:latest - build-osx: - name: OSX Upload + build-osx-64: + name: OSX-64 Upload if: github.repository == 'bioconda/bioconda-recipes' runs-on: macos-13 strategy: fail-fast: false max-parallel: 4 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -87,23 +74,10 @@ jobs: run: | wget https://raw.githubusercontent.com/bioconda/bioconda-common/master/{install-and-set-up-conda,configure-conda,common}.sh - - name: Restore cache - id: cache - uses: actions/cache@v3 - with: - path: /opt/mambaforge - key: ${{ runner.os }}--bulk--${{ hashFiles('**/install-and-set-up-conda.sh') }} - - name: Set up bioconda-utils - if: steps.cache.outputs.cache-hit != 'true' run: bash install-and-set-up-conda.sh # This script can be used to reconfigure conda to use the right channel setup. - # This has to be done after the cache is restored, because - # the channel setup is not cached as it resides in the home directory. - # We could use a system-wide (and therefore cached) channel setup, - # but mamba does not support that at the time of implementation - # (it ignores settings made with --system). - name: Configure conda run: bash configure-conda.sh @@ -122,7 +96,7 @@ jobs: eval "$(conda shell.bash hook)" conda activate bioconda - # The SDK isn't actually cached, so reinstall it + # Sets up OSX SDK run_conda_forge_build_setup # bioconda-utils handle-merged-pr recipes config.yml \ @@ -131,3 +105,68 @@ jobs: # --fallback build bioconda-utils build recipes config.yml \ --anaconda-upload --git-range ${GITHUB_SHA}~1 ${GITHUB_SHA} + + build_and_upload-osx-arm64: + name: OSX-ARM64 Upload + if: github.repository == 'bioconda/bioconda-recipes' + runs-on: macOS-14 # M1 + strategy: + fail-fast: false + max-parallel: 4 + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + # bail if there's no osx-arm64 recipes + - name: Check for Additional Platforms + id: additional_platforms + run: | + result=$(./scripts/check-for-additional-platforms.sh "${GITHUB_SHA}~1 ${GITHUB_SHA}" "build_and_upload" "${GITHUB_JOB}") + if [[ ${result} != "build" ]] + then + echo "No recipes using this platform, skipping rest of job." + echo "skip_build=true" >> $GITHUB_OUTPUT + fi + + - name: set path + run: | + echo "/opt/mambaforge/bin" >> $GITHUB_PATH + + - name: Fetch conda install script + if: steps.additional_platforms.outputs.skip_build != 'true' + run: | + wget https://raw.githubusercontent.com/bioconda/bioconda-common/master/{install-and-set-up-conda,configure-conda,common}.sh + + - name: Set up bioconda-utils + if: steps.additional_platforms.outputs.skip_build != 'true' + run: bash install-and-set-up-conda.sh + + - name: Configure conda + if: steps.additional_platforms.outputs.skip_build != 'true' + run: bash configure-conda.sh + + - name: Build and Upload + if: steps.additional_platforms.outputs.skip_build != 'true' + env: + QUAY_LOGIN: ${{ secrets.QUAY_LOGIN }} + QUAY_OAUTH_TOKEN: ${{ secrets.QUAY_OAUTH_TOKEN }} + ANACONDA_TOKEN: ${{ secrets.ANACONDA_TOKEN }} + INVOLUCRO_AUTH: ${{ secrets.INVOLUCRO_AUTH }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # Mimic circleci + OSTYPE: "darwin" + CI: "true" + run: | + set -xe + eval "$(conda shell.bash hook)" + conda activate bioconda + source common.sh + # Sets up OSX SDK + run_conda_forge_build_setup + + bioconda-utils handle-merged-pr recipes config.yml \ + --repo bioconda/bioconda-recipes \ + --git-range ${GITHUB_SHA}~1 ${GITHUB_SHA} \ + --fallback build \ + --artifact-source github-actions diff --git a/recipes/bamtools/meta.yaml b/recipes/bamtools/meta.yaml index 803497b6c9a4b..0f5b309f2a25e 100644 --- a/recipes/bamtools/meta.yaml +++ b/recipes/bamtools/meta.yaml @@ -12,7 +12,7 @@ source: # - 0001-Const-qualify-all-functors-operator-member-functions.patch build: - number: 3 + number: 5 run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} @@ -37,5 +37,6 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:bamtools diff --git a/recipes/bioawk/meta.yaml b/recipes/bioawk/meta.yaml index c5dd0a636caf2..70ec45f58e648 100644 --- a/recipes/bioawk/meta.yaml +++ b/recipes/bioawk/meta.yaml @@ -7,7 +7,7 @@ source: sha256: 5cbef3f39b085daba45510ff450afcf943cfdfdd483a546c8a509d3075ff51b5 build: - number: 10 + number: 12 run_exports: - {{ pin_subpackage("bioawk", max_pin="x.x.x") }} @@ -34,3 +34,4 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 diff --git a/.circleci/check-for-additional-platforms.sh b/scripts/check-for-additional-platforms.sh similarity index 87% rename from .circleci/check-for-additional-platforms.sh rename to scripts/check-for-additional-platforms.sh index 50641d2b63052..d088794f14422 100755 --- a/.circleci/check-for-additional-platforms.sh +++ b/scripts/check-for-additional-platforms.sh @@ -7,6 +7,7 @@ # arguments git_range=$1 job_name=$2 +current_job=$3 # Download ARM version of yq yq_platform=$(uname) @@ -21,7 +22,6 @@ files=`git diff --name-only --diff-filter AMR ${git_range} | grep -E 'meta.yaml$ build=0 for file in $files; do - echo $file # To create a properly-formatted yaml that yq can parse, comment out jinja2 # variable setting with {% %} and remove variable use with {{ }}. additional_platforms=$(cat $file \ @@ -37,7 +37,7 @@ for file in $files; do # Check if any additional platforms match this job for additional_platform in $additional_platforms; do - if [ "${CIRCLE_JOB}" = "${job_name}-${additional_platform}" ] + if [ "${current_job}" = "${job_name}-${additional_platform}" ] then build=1 break @@ -46,8 +46,7 @@ for file in $files; do done # If no changed recipes apply to this platform, skip remaining steps -if [[ build -lt 1 ]] +if [[ build -gt 0 ]] then - echo "No recipes using this platform, skipping rest of job." - circleci-agent step halt + echo "build" fi From c87a245870e1754c88c73c32984f5b60f8f0f58f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 15:29:27 -0400 Subject: [PATCH 0188/1589] Update solvebio to 2.28.0 (#49087) * Update solvebio to 2.28.0 * remove setuptools from host --------- Co-authored-by: mencian --- recipes/solvebio/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/solvebio/meta.yaml b/recipes/solvebio/meta.yaml index c478c817b61dc..03cd78b807a48 100644 --- a/recipes/solvebio/meta.yaml +++ b/recipes/solvebio/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "2.27.0" %} -{% set sha256 = "80c549fd4b98aafaac165c8a09de10c500110c2a85db9e461d40bc0d36fd0657" %} +{% set version = "2.28.0" %} +{% set sha256 = "e7135df9c67eebaa34b54ce2f400d78a7e38b60c65185e8822b6987083baca8d" %} package: name: solvebio @@ -23,7 +23,7 @@ requirements: host: - python - pip - - setuptools <58 # setup.py uses use_2to3 + #- setuptools <58 # setup.py uses use_2to3 run: - python - six From 3e4364c8d08de7d6882eb7f28729a654474a9cd7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 15:31:25 -0400 Subject: [PATCH 0189/1589] Update piscem to 0.10.2 (#49086) Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/piscem/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/piscem/meta.yaml b/recipes/piscem/meta.yaml index b781bafa4b557..2ab3bc65782ac 100644 --- a/recipes/piscem/meta.yaml +++ b/recipes/piscem/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "0.10.1" %} +{% set version = "0.10.2" %} {% set name = "piscem" %} -{% set sha256 = "1f53716a6b0c23bd174616893c29cd93a01f57cd5306cb276898bc549d2b7edf" %} +{% set sha256 = "657456b51174fc64a4c8bc9a641b873b0dca1b48fa05675dd455eb45a5be39e7" %} package: name: {{ name }} From 1b2db80ff20bcc1eea7c7501f5e5de22b47a8f91 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 15:37:35 -0400 Subject: [PATCH 0190/1589] Update clermontyping to 24.02 (#48829) * Update clermontyping to 24.02 * adjust max_pin for calendar versioning --------- Co-authored-by: Robert A. Petit III --- recipes/clermontyping/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/clermontyping/meta.yaml b/recipes/clermontyping/meta.yaml index 13691f5d2e92b..95446a04a3341 100644 --- a/recipes/clermontyping/meta.yaml +++ b/recipes/clermontyping/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.0.2" %} -{% set sha256 = "6b14a7a1450f13dfc5fc4ca39349baf94d9a09b726f982213119284d06bf2f8c" %} +{% set version = "24.02" %} +{% set sha256 = "89f36b76e17b1102adb9933e96f8e15e0f5e915b671ccd07f70a9bce3f073e5b" %} package: name: "clermontyping" @@ -14,7 +14,7 @@ build: number: 0 noarch: generic run_exports: - - {{ pin_subpackage('clermontyping', max_pin="x") }} + - {{ pin_subpackage('clermontyping', max_pin=None) }} requirements: host: @@ -46,4 +46,4 @@ about: extra: recipe-maintainers: - - happykhan \ No newline at end of file + - happykhan From 2c54e527b6a084e574fb78b20005c64fbc4bc415 Mon Sep 17 00:00:00 2001 From: John Marshall Date: Thu, 11 Jul 2024 08:13:03 +1200 Subject: [PATCH 0191/1589] Build htslib on macOS ARM (#49088) --- recipes/htslib/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/htslib/meta.yaml b/recipes/htslib/meta.yaml index 296dd937597de..a55e02f67f3a3 100644 --- a/recipes/htslib/meta.yaml +++ b/recipes/htslib/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('htslib', max_pin='x.x') }} @@ -50,6 +50,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:HTSlib skip-lints: From 619f9fd12057d7a06e150e26458edba351712dd4 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Wed, 10 Jul 2024 23:09:28 +0200 Subject: [PATCH 0192/1589] Build Iqtree for osx-arm64 (#49090) --- recipes/iqtree/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/iqtree/meta.yaml b/recipes/iqtree/meta.yaml index 87081d98ed2fa..d973ad4ff8ea5 100644 --- a/recipes/iqtree/meta.yaml +++ b/recipes/iqtree/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version | replace("-", "_") }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('iqtree', max_pin="x") }} @@ -48,6 +48,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:iq-tree - doi:10.1093/molbev/msu300 From 23bf5b4931570a91db1aa11ed134a566140cfb4f Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Wed, 10 Jul 2024 23:12:25 +0200 Subject: [PATCH 0193/1589] Build pyfastx for osx-arm64 (#49093) --- recipes/pyfastx/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/pyfastx/meta.yaml b/recipes/pyfastx/meta.yaml index 0abde661a1d5f..fda43be7f5a97 100644 --- a/recipes/pyfastx/meta.yaml +++ b/recipes/pyfastx/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 2 + number: 3 script: {{ PYTHON }} -m pip install . --no-deps -vvv skip: True # [py < 36] entry_points: @@ -48,3 +48,4 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 From 2061fc1d67954d2091b49ae86175a2d197af1751 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 10 Jul 2024 16:23:09 -0500 Subject: [PATCH 0194/1589] Build ncbi-vdb on osx-arm64 (#49101) --- recipes/ncbi-vdb/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/ncbi-vdb/meta.yaml b/recipes/ncbi-vdb/meta.yaml index dbbff72dea518..3afafe6901532 100644 --- a/recipes/ncbi-vdb/meta.yaml +++ b/recipes/ncbi-vdb/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('ncbi-vdb', max_pin='x') }} @@ -43,3 +43,4 @@ test: extra: additional-platforms: - linux-aarch64 + - osx-arm64 From b4186716f1de980b1b3e453f0453739274e9a615 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Wed, 10 Jul 2024 23:35:09 +0200 Subject: [PATCH 0195/1589] Build bx-python for osx-arm64 (#49092) --- recipes/bx-python/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/bx-python/meta.yaml b/recipes/bx-python/meta.yaml index 372a44a916101..c08fcc428ad32 100644 --- a/recipes/bx-python/meta.yaml +++ b/recipes/bx-python/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 2 + number: 3 script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv run_exports: - {{ pin_subpackage(name|lower, max_pin='x.x') }} @@ -65,3 +65,4 @@ extra: - biotools:bx-python additional-platforms: - linux-aarch64 + - osx-arm64 From 40802c8cd7357a12c6ade0f48db76eb12588eb50 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Wed, 10 Jul 2024 23:43:56 +0200 Subject: [PATCH 0196/1589] Build nextclade for osx-arm64 (#49095) --- recipes/nextclade/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/nextclade/meta.yaml b/recipes/nextclade/meta.yaml index cf73fca924452..463a69a0bd8b5 100644 --- a/recipes/nextclade/meta.yaml +++ b/recipes/nextclade/meta.yaml @@ -16,7 +16,7 @@ source: sha256: 579f499f7f0f5f2b9d520971ded4e265140859317f083ff8e2879ad74373ec33 # [osx and arm64] build: - number: 1 + number: 2 binary_relocation: False run_exports: - {{ pin_compatible(name, max_pin='x') }} @@ -41,6 +41,7 @@ extra: - doi:10.21105/joss.03773 additional-platforms: - linux-aarch64 + - osx-arm64 recipe-maintainers: - pvanheus - corneliusroemer From 359981c349cdc202b0bdd62c4c7024b4c1fc9a0a Mon Sep 17 00:00:00 2001 From: John Marshall Date: Thu, 11 Jul 2024 09:53:17 +1200 Subject: [PATCH 0197/1589] Build samtools and bcftools on macOS ARM (#49104) --- recipes/bcftools/meta.yaml | 3 ++- recipes/samtools/meta.yaml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/bcftools/meta.yaml b/recipes/bcftools/meta.yaml index 6641ea2aeb54d..61846b556ed34 100644 --- a/recipes/bcftools/meta.yaml +++ b/recipes/bcftools/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("bcftools", max_pin="x") }} @@ -50,6 +50,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:bcftools - usegalaxy-eu:bcftools_merge diff --git a/recipes/samtools/meta.yaml b/recipes/samtools/meta.yaml index f098279936380..4b3fddd767dd0 100644 --- a/recipes/samtools/meta.yaml +++ b/recipes/samtools/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("samtools", max_pin="x") }} @@ -37,6 +37,7 @@ test: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:samtools - usegalaxy-eu:samtools_flagstat From 0f1aa650d412ae67fea3c585f28896f8dd7e6d6a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 18:41:30 -0400 Subject: [PATCH 0198/1589] Update augur to 25.0.0 (#49114) --- recipes/augur/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/augur/meta.yaml b/recipes/augur/meta.yaml index ffb57fe59c453..a51ee5db52933 100644 --- a/recipes/augur/meta.yaml +++ b/recipes/augur/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "24.4.0" %} +{% set version = "25.0.0" %} package: name: augur @@ -6,10 +6,10 @@ package: source: url: https://github.com/nextstrain/augur/releases/download/{{ version }}/nextstrain_augur-{{ version }}.tar.gz - sha256: 88ecf208384fff1ba8dee20596c2905a4d27707a39e1e9590d2fef717d29dd5f + sha256: 0df074847933a89a948461ea439062b78ff3c80f2d71f65efc7094fbda6a98b6 build: - number: 1 + number: 0 noarch: python entry_points: - augur = augur.__main__:main From 4c8fe80333f24b5518606d066a64819e3c126275 Mon Sep 17 00:00:00 2001 From: John Marshall Date: Thu, 11 Jul 2024 11:07:02 +1200 Subject: [PATCH 0199/1589] Build pysam on macOS ARM (#49105) --- recipes/pysam/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/pysam/meta.yaml b/recipes/pysam/meta.yaml index 7af1cbd2d4180..3240440cf1aab 100644 --- a/recipes/pysam/meta.yaml +++ b/recipes/pysam/meta.yaml @@ -11,7 +11,7 @@ source: - arm_hwcap.patch build: - number: 1 + number: 2 skip: True # [py2k] binary_relocation: False # [linux] run_exports: @@ -42,6 +42,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:pysam - doi:10.1093/bioinformatics/btp352 From 424b35199bf1f1f967817921993f1d7bb5bb810c Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Thu, 11 Jul 2024 01:13:26 +0200 Subject: [PATCH 0200/1589] Build auspice for osx-arm64 (#49103) --- recipes/auspice/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/auspice/meta.yaml b/recipes/auspice/meta.yaml index f8698c51454a3..4507c2050df07 100644 --- a/recipes/auspice/meta.yaml +++ b/recipes/auspice/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 89c620bc790c5e3f28969a253f41e36bf35a13346cb8c6ab55868d9c6ee08714 build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage("auspice", max_pin="x.x") }} @@ -47,6 +47,7 @@ extra: - doi:10.1093/bioinformatics/bty407 additional-platforms: - linux-aarch64 + - osx-arm64 recipe-maintainers: - jameshadfield - victorlin From f55c5f99f1f767255862896be1458a45f802cf95 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Thu, 11 Jul 2024 01:14:23 +0200 Subject: [PATCH 0201/1589] Build fasttree for osx-arm64 (#49100) --- recipes/fasttree/meta.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/recipes/fasttree/meta.yaml b/recipes/fasttree/meta.yaml index a91720bc56fc7..63e42529105d4 100644 --- a/recipes/fasttree/meta.yaml +++ b/recipes/fasttree/meta.yaml @@ -10,7 +10,7 @@ source: sha256: "9026ae550307374be92913d3098f8d44187d30bea07902b9dcbfb123eaa2050f" build: - number: 3 + number: 4 run_exports: - {{ pin_subpackage(name|lower, max_pin="x") }} @@ -19,8 +19,6 @@ requirements: - {{ compiler('c') }} - llvm-openmp # [osx] - libgomp # [linux] - host: - run: test: commands: @@ -37,6 +35,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:fasttree - doi:10.1093/molbev/msp077 From 2a54f5e5022a1fdd65d9c5d731374075dafc07ec Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Thu, 11 Jul 2024 01:14:49 +0200 Subject: [PATCH 0202/1589] Build nextclade2 for osx-arm64 (#49097) --- recipes/nextclade2/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/nextclade2/meta.yaml b/recipes/nextclade2/meta.yaml index 6e2fb8e0e9bed..1b6e426277903 100644 --- a/recipes/nextclade2/meta.yaml +++ b/recipes/nextclade2/meta.yaml @@ -9,14 +9,14 @@ source: - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/nextclade-x86_64-unknown-linux-gnu # [linux64] sha256: 1a9a82655830243ffd01937ebb895744ff46ec49f725ef6feff9a3f0e37d90d1 # [linux64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/nextclade-x86_64-apple-darwin # [osx and x86_64] - sha256: a5ad4c2ca527929ab8c8b3b2521287488383f78fc1ee3030cbf5af23856b58b0 # [osx and x86_64] + sha256: 432f56d2152edda49b8c4a2c3f81d9a5da7419a6cc7c4a3d5205d17d5f834cf6 # [osx and x86_64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/nextclade-aarch64-apple-darwin # [arm64] sha256: aaac669618d953381428eac3674fe6cb22bef66e7c1ae55552f6a1567f3d3030 # [arm64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/nextclade-aarch64-unknown-linux-gnu # [aarch64] sha256: e8bf11ba18c40aaad6b91b1a65bd49b304375f77b9273b1a17e75ba32cffbca8 # [aarch64] build: - number: 1 + number: 2 binary_relocation: False run_exports: - {{ pin_compatible(name, max_pin='x') }} @@ -40,6 +40,7 @@ extra: - doi:10.21105/joss.03773 additional-platforms: - linux-aarch64 + - osx-arm64 recipe-maintainers: - corneliusroemer skip-lints: From 22fc2fe801dd34eeb1bb4a9c35bf284e8377fa67 Mon Sep 17 00:00:00 2001 From: John Marshall Date: Thu, 11 Jul 2024 11:17:25 +1200 Subject: [PATCH 0203/1589] Build bedtools on macOS ARM (#49108) --- recipes/bedtools/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/bedtools/meta.yaml b/recipes/bedtools/meta.yaml index d7c60edc863cc..bf08c71d3d5ed 100644 --- a/recipes/bedtools/meta.yaml +++ b/recipes/bedtools/meta.yaml @@ -10,7 +10,7 @@ source: sha256: fc7e660c2279b1e008b80aca0165a4a157daf4994d08a533ee925d73ce732b97 build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('bedtools', max_pin="x") }} @@ -37,6 +37,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:bedtools - usegalaxy-eu:bedtools_intersectbed From 710b488a064bb9d71662e42e888b3880e4a43c9c Mon Sep 17 00:00:00 2001 From: Milot Mirdita Date: Thu, 11 Jul 2024 16:01:57 +0900 Subject: [PATCH 0204/1589] Update foldcomp with ARM support (#49128) * Update foldcomp with ARM support * Forgot build number bump --- recipes/foldcomp/meta.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/recipes/foldcomp/meta.yaml b/recipes/foldcomp/meta.yaml index 96977ef6197a7..445c78bf0891f 100644 --- a/recipes/foldcomp/meta.yaml +++ b/recipes/foldcomp/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('foldcomp', max_pin="x.x") }} @@ -41,3 +41,8 @@ about: extra: identifiers: - doi:10.1093/bioinformatics/btad153 + recipe-maintainers: + - milot-mirdita + additional-platforms: + - linux-aarch64 + - osx-arm64 From 7e32e85ace33c3a82ca3d673e68529d1d8bd5082 Mon Sep 17 00:00:00 2001 From: Milot Mirdita Date: Thu, 11 Jul 2024 16:02:15 +0900 Subject: [PATCH 0205/1589] Update plass with MacOS ARM support (#49127) --- recipes/plass/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/plass/meta.yaml b/recipes/plass/meta.yaml index fe9f348a6774d..99a820fb0e6d5 100644 --- a/recipes/plass/meta.yaml +++ b/recipes/plass/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version|replace("-", ".") }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('plass', max_pin=None) }} @@ -52,3 +52,4 @@ extra: - martin-steinegger additional-platforms: - linux-aarch64 + - osx-arm64 \ No newline at end of file From a28c396b63d3c5fd4231e798a32b00b98b65cd55 Mon Sep 17 00:00:00 2001 From: Milot Mirdita Date: Thu, 11 Jul 2024 16:02:35 +0900 Subject: [PATCH 0206/1589] Update metaeuk with MacOS ARM support (#49126) --- recipes/metaeuk/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/metaeuk/meta.yaml b/recipes/metaeuk/meta.yaml index 5fec82bfbb1b7..d4880f6922390 100644 --- a/recipes/metaeuk/meta.yaml +++ b/recipes/metaeuk/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version|replace("-", ".") }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('metaeuk', max_pin="x") }} @@ -53,4 +53,5 @@ extra: - milot-mirdita - elileka additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 + - osx-arm64 \ No newline at end of file From 2ccbe6611a2f78b20dd8eb419fe83d453f7e48b4 Mon Sep 17 00:00:00 2001 From: Milot Mirdita Date: Thu, 11 Jul 2024 16:02:57 +0900 Subject: [PATCH 0207/1589] Update spacpharer with MacOS ARM support (#49124) --- recipes/spacepharer/meta.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/recipes/spacepharer/meta.yaml b/recipes/spacepharer/meta.yaml index ed8c6096e102d..bdf01d1d23171 100644 --- a/recipes/spacepharer/meta.yaml +++ b/recipes/spacepharer/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version|replace("-", ".") }} build: - number: 4 + number: 5 run_exports: - {{ pin_subpackage('spacepharer', max_pin="x") }} @@ -48,5 +48,8 @@ extra: identifiers: - doi:10.1093/bioinformatics/btab222 - biotools:spacepharer + recipe-maintainers: + - milot-mirdita additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 + - osx-arm64 \ No newline at end of file From dfc794931c8e75e5ccb7d7d05a26bd47420c2e0c Mon Sep 17 00:00:00 2001 From: Milot Mirdita Date: Thu, 11 Jul 2024 16:03:17 +0900 Subject: [PATCH 0208/1589] Update kalign2 with MacOS ARM support (#49123) --- recipes/kalign2/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/kalign2/meta.yaml b/recipes/kalign2/meta.yaml index 0c5f0efab39a6..009cfc0dabbcb 100644 --- a/recipes/kalign2/meta.yaml +++ b/recipes/kalign2/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 6 + number: 7 run_exports: - {{ pin_subpackage('kalign2', max_pin='x') }} @@ -33,4 +33,5 @@ extra: identifiers: - doi:10.1186/1471-2105-6-298 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 + - osx-arm64 \ No newline at end of file From fe79a2465036679fdfb3bb7b434721228f05894d Mon Sep 17 00:00:00 2001 From: Milot Mirdita Date: Thu, 11 Jul 2024 16:03:43 +0900 Subject: [PATCH 0209/1589] Update metabuli with MacOS ARM support (#49122) * Update metabuli with MacOS ARM support * Try some cleanup to fix linting --- recipes/metabuli/meta.yaml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/recipes/metabuli/meta.yaml b/recipes/metabuli/meta.yaml index dbbcce42175bf..0d6ed66393dbf 100644 --- a/recipes/metabuli/meta.yaml +++ b/recipes/metabuli/meta.yaml @@ -3,10 +3,10 @@ package: name: metabuli - version: {{ version|replace("-", ".") }} + version: {{ version }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('metabuli', max_pin="x") }} @@ -18,7 +18,6 @@ requirements: build: - {{ compiler('cxx') }} - {{ compiler('c') }} - - {{ stdlib("c") }} - cmake - make - llvm-openmp # [osx] @@ -46,8 +45,12 @@ about: summary: "Metabuli: specific and sensitive metagenomic classification via joint analysis of DNA and amino acid" extra: + identifiers: + - doi:10.1038/s41592-024-02273-y + - biotools:metabuli recipe-maintainers: - milot-mirdita - jaebeom-kim additional-platforms: - linux-aarch64 + - osx-arm64 From 7b4740f52b05beef8b0076fab6490b64d1d16884 Mon Sep 17 00:00:00 2001 From: Milot Mirdita Date: Thu, 11 Jul 2024 16:04:00 +0900 Subject: [PATCH 0210/1589] Update hhsuite with MacOS ARM support (#49121) --- recipes/hhsuite/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/hhsuite/meta.yaml b/recipes/hhsuite/meta.yaml index eb7af6827f3f6..2ab1c8ec9b788 100644 --- a/recipes/hhsuite/meta.yaml +++ b/recipes/hhsuite/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 11 + number: 12 run_exports: - {{ pin_subpackage('hhsuite', max_pin="x") }} @@ -51,3 +51,4 @@ extra: - milot-mirdita additional-platforms: - linux-aarch64 + - osx-arm From 3ffa7f02f0a5b837e35872562f89350d9f7b66d9 Mon Sep 17 00:00:00 2001 From: Milot Mirdita Date: Thu, 11 Jul 2024 16:04:18 +0900 Subject: [PATCH 0211/1589] Update MMseqs2 with MacOS ARM support (#49119) --- recipes/mmseqs2/meta.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/recipes/mmseqs2/meta.yaml b/recipes/mmseqs2/meta.yaml index 7343528cfb308..c1859689b6d46 100644 --- a/recipes/mmseqs2/meta.yaml +++ b/recipes/mmseqs2/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version|replace("-", ".") }} build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage('mmseqs2', max_pin=None) }} @@ -52,5 +52,8 @@ extra: - doi:10.1101/2020.11.27.401018 - biotools:mmseqs2 - biotools:linclust + recipe-maintainers: + - milot-mirdita additional-platforms: - linux-aarch64 + - osx-arm64 From 20b0e507c7481fdf25c7673db8c1a61c8997d16a Mon Sep 17 00:00:00 2001 From: Milot Mirdita Date: Thu, 11 Jul 2024 16:07:04 +0900 Subject: [PATCH 0212/1589] Update foldseek with MacOS ARM support (#49118) * Update foldseek with MacOS ARM support * Fix rust breaking foldseek (fixed in git already) --- recipes/foldseek/fix-rust-1.79.patch | 68 ++++++++++++++++++++++++++++ recipes/foldseek/meta.yaml | 6 ++- 2 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 recipes/foldseek/fix-rust-1.79.patch diff --git a/recipes/foldseek/fix-rust-1.79.patch b/recipes/foldseek/fix-rust-1.79.patch new file mode 100644 index 0000000000000..77524bbd94b5d --- /dev/null +++ b/recipes/foldseek/fix-rust-1.79.patch @@ -0,0 +1,68 @@ +commit ca58f9b36a02d281f4971484e38ffb557c28d093 +Author: Milot Mirdita +Date: Sun Jun 16 18:21:18 2024 +0900 + + Rename block-aligner-c to block_aligner_c to fix rust 1.79 breaking foldseek + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 0132f903d6..f109d21c24 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -77,7 +77,7 @@ corrosion_import_crate( + ) + include_directories(lib/block-aligner/c) + if(EMSCRIPTEN) +- corrosion_add_target_local_rustflags(block-aligner-c "-Clink-args=--no-entry -sRELOCATABLE=1") ++ corrosion_add_target_local_rustflags(block_aligner_c "-Clink-args=--no-entry -sRELOCATABLE=1") + endif() + + set(CANDLE_FEATURE "") +diff --git a/lib/block-aligner/c/Cargo.toml b/lib/block-aligner/c/Cargo.toml +index 53dd259db6..6b53bfcb39 100644 +--- a/lib/block-aligner/c/Cargo.toml ++++ b/lib/block-aligner/c/Cargo.toml +@@ -1,7 +1,7 @@ + # Minimal Cargo.toml to avoid downloading dependencies. + + [package] +-name = "block-aligner-c" ++name = "block_aligner_c" + version = "0.4.0" + authors = ["c0deb0t "] + edition = "2018" +diff --git a/lib/block-aligner/c/Makefile b/lib/block-aligner/c/Makefile +index f7a6d9d389..70440fcd8b 100644 +--- a/lib/block-aligner/c/Makefile ++++ b/lib/block-aligner/c/Makefile +@@ -7,7 +7,7 @@ all: example align_prefix align_local + + block_aligner: + cargo build --release --features simd_avx2 --offline +- cbindgen --config cbindgen.toml --crate block-aligner-c --output block_aligner.h --quiet . ++ cbindgen --config cbindgen.toml --crate block_aligner_c --output block_aligner.h --quiet . + + example: block_aligner example.c + $(CC) $(CFLAGS) -o example example.c +diff --git a/lib/block-aligner/c/cbindgen.toml b/lib/block-aligner/c/cbindgen.toml +index a5b4e8bb82..1fa8471be7 100644 +--- a/lib/block-aligner/c/cbindgen.toml ++++ b/lib/block-aligner/c/cbindgen.toml +@@ -9,4 +9,4 @@ after_includes = "#define ALIGNED(n) __attribute__ ((aligned(n)))" + aligned_n = "ALIGNED" + + [parse] +-expand = ["block-aligner-c"] ++expand = ["block_aligner_c"] +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 0f6fdd0482..7ebbe3f71d 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -13,7 +13,7 @@ add_library(foldseek-framework + FoldseekBase.cpp + ) + mmseqs_setup_derived_target(foldseek-framework) +-target_link_libraries(foldseek-framework gemmiwrapper 3di pulchra kerasify tmalign block-aligner-c) ++target_link_libraries(foldseek-framework gemmiwrapper 3di pulchra kerasify tmalign block_aligner_c) + if(ENABLE_PROSTT5) + target_link_libraries(foldseek-framework cprostt5) + target_compile_definitions(foldseek-framework PUBLIC -DHAVE_PROSTT5=1) diff --git a/recipes/foldseek/meta.yaml b/recipes/foldseek/meta.yaml index 6b7f4cfe4bef3..1c7ed4957e7f1 100644 --- a/recipes/foldseek/meta.yaml +++ b/recipes/foldseek/meta.yaml @@ -6,13 +6,16 @@ package: version: {{ version|replace("-", ".") }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('foldseek', max_pin="x") }} source: url: https://github.com/steineggerlab/foldseek/archive/{{ version }}.tar.gz sha256: {{ sha256 }} + patches: + # remove for next release + - fix-rust-1.79.patch requirements: build: @@ -57,3 +60,4 @@ extra: - martin-steinegger additional-platforms: - linux-aarch64 + - osx-arm64 From 8df7b7045eac936b763967bdd881f4559c7da1bc Mon Sep 17 00:00:00 2001 From: Michael Hall Date: Thu, 11 Jul 2024 17:07:44 +1000 Subject: [PATCH 0213/1589] Update psdm with arm support (#49115) * Update psdm with arm support * use rust compiler --- recipes/psdm/meta.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/recipes/psdm/meta.yaml b/recipes/psdm/meta.yaml index 3d8738a5598c6..96753b338e84b 100644 --- a/recipes/psdm/meta.yaml +++ b/recipes/psdm/meta.yaml @@ -10,13 +10,13 @@ source: sha256: 0414b2fde2e6c43a7d9bfd7a53da67f8e084cc4ec350ad7c498cc1937b9a15cc build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} requirements: build: - - rust >=1.55 + - {{ compiler('rust') }} - {{ compiler('c') }} # [not win] test: @@ -30,5 +30,8 @@ about: license_file: LICENSE extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - mbhall88 From 631d58bf5712e86e4d77bf80352054b546d87e9f Mon Sep 17 00:00:00 2001 From: Michael Hall Date: Thu, 11 Jul 2024 17:08:00 +1000 Subject: [PATCH 0214/1589] update rasusa with osx arm64 support (#49113) * update rasusa with osx arm64 support * fix formatting --- recipes/rasusa/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/rasusa/meta.yaml b/recipes/rasusa/meta.yaml index 04639bcc50d6d..c8d0778f8e87c 100644 --- a/recipes/rasusa/meta.yaml +++ b/recipes/rasusa/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 7921a94cb5c30c194c3d966e7dd80d034a9cf840d853b3fe1725d90d5800e2bd build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('rasusa', max_pin="x.x") }} @@ -35,5 +35,6 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 recipe-maintainers: - mbhall88 From 8f926b041abcdbce7eb3138d57489c502a8b6aa2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 11 Jul 2024 03:08:22 -0400 Subject: [PATCH 0215/1589] Update ntroot to 1.1.2 (#49112) --- recipes/ntroot/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ntroot/meta.yaml b/recipes/ntroot/meta.yaml index 1f80980f59125..b9eb9e928f42a 100644 --- a/recipes/ntroot/meta.yaml +++ b/recipes/ntroot/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ntRoot" %} -{% set version = "1.1.1" %} +{% set version = "1.1.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/bcgsc/ntRoot/releases/download/v{{ version }}/{{ name }}-{{ version }}.tar.gz - sha256: 0bf8a037b78a619a1c95d658a6dae7bd814d5a04b3c9e97a353317fafa662526 + sha256: c91ba834bc221e7883dff864aed7a2230700a515f5475b1f2d331007d9db73a8 build: number: 0 From b81aa96d271c115131d31ec867569d975c28b616 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Thu, 11 Jul 2024 09:09:46 +0200 Subject: [PATCH 0216/1589] Build seqkit for osx-arm64 (#49099) --- recipes/seqkit/meta.yaml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/recipes/seqkit/meta.yaml b/recipes/seqkit/meta.yaml index 82e52aff48227..538a6f2093241 100644 --- a/recipes/seqkit/meta.yaml +++ b/recipes/seqkit/meta.yaml @@ -8,6 +8,9 @@ source: url: https://github.com/shenwei356/seqkit/releases/download/v{{ version }}/seqkit_darwin_amd64.tar.gz # [osx] md5: 03b13956b7e3ef1678db591a79eb68ed # [osx] + url: https://github.com/shenwei356/seqkit/releases/download/v{{ version }}/seqkit_darwin_arm64.tar.gz # [arm64] + md5: 0b2716f39c3974a5c3e310bcbd4076eb # [arm64] + url: https://github.com/shenwei356/seqkit/releases/download/v{{ version }}/seqkit_linux_amd64.tar.gz # [linux] md5: 67220b508f3f81c2c8697e6534eed440 # [linux] @@ -15,7 +18,7 @@ source: md5: b83b021850c9447cfc8e0d5751b7be99 # [aarch64] build: - number: 0 + number: 1 skip: False run_exports: - {{ pin_subpackage("seqkit", max_pin="x.x") }} @@ -31,6 +34,10 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 skip-lints: - should_be_noarch_generic - should_not_be_noarch_source + identifiers: + - biotools:seqkit + - doi:10.1371/journal.pone.0163962 From e71f4803d056e9e3eaba7c2c5f2b8c974f7c8109 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Thu, 11 Jul 2024 09:16:26 +0200 Subject: [PATCH 0217/1589] Build nextalign for osx-arm64 (#49096) --- recipes/nextalign/meta.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/recipes/nextalign/meta.yaml b/recipes/nextalign/meta.yaml index 249e23a402905..c7c8fa892989f 100644 --- a/recipes/nextalign/meta.yaml +++ b/recipes/nextalign/meta.yaml @@ -16,7 +16,7 @@ source: sha256: 2d8ec8f379b150c2ac271f3c08ca79ee372b1fb14da3dc8e1b3033a1b65cfc58 # [osx and arm64] build: - number: 1 + number: 2 binary_relocation: False run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} @@ -40,6 +40,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 recipe-maintainers: - cjw85 - thanhleviet @@ -49,3 +50,5 @@ extra: skip-lints: # repackaged binary - should_be_noarch_generic + identifiers: + - doi:10.21105/joss.03773 From 69b9e20b4ebb3e99319fefd45005a524cb825a84 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Thu, 11 Jul 2024 09:17:01 +0200 Subject: [PATCH 0218/1589] Builds csvtk for osx-arm64 (#49094) --- recipes/csvtk/meta.yaml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/recipes/csvtk/meta.yaml b/recipes/csvtk/meta.yaml index 75a19c78e343c..86f0aee7a9418 100644 --- a/recipes/csvtk/meta.yaml +++ b/recipes/csvtk/meta.yaml @@ -1,21 +1,24 @@ {% set version = "0.30.0" %} - +# This package should be migrated to conda-forge due to general utility +# In that case it needs to be built from source package: name: csvtk version: {{ version }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('csvtk', max_pin='x.x') }} source: - - url: https://github.com/shenwei356/csvtk/releases/download/v{{ version }}/csvtk_darwin_amd64.tar.gz # [osx] - md5: c415255e265ba0cd547806fdbda05652 # [osx] + - url: https://github.com/shenwei356/csvtk/releases/download/v{{ version }}/csvtk_darwin_amd64.tar.gz # [osx and x86_64] + md5: c415255e265ba0cd547806fdbda05652 # [osx and x86_64] + - url: https://github.com/shenwei356/csvtk/releases/download/v{{ version }}/csvtk_darwin_arm64.tar.gz # [arm64] + md5: dd8a84c301d378ab7ff28c85d37fbefa # [arm64] - url: https://github.com/shenwei356/csvtk/releases/download/v{{ version }}/csvtk_linux_amd64.tar.gz # [linux and x86_64] md5: 8f5877d4fbea89609d64bd2679956476 # [linux and x86_64] - - url: https://github.com/shenwei356/csvtk/releases/download/v{{ version }}/csvtk_linux_arm64.tar.gz # [linux and aarch64] - md5: 2a6dd840291d23971ff538eaf3de00ec # [linux and aarch64] + - url: https://github.com/shenwei356/csvtk/releases/download/v{{ version }}/csvtk_linux_arm64.tar.gz # [aarch64] + md5: 2a6dd840291d23971ff538eaf3de00ec # [aarch64] test: commands: @@ -29,6 +32,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 skip-lints: - should_be_noarch_generic - should_not_be_noarch_source From ca42af772119bbc81f3f8d2506a264162b5fe410 Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Thu, 11 Jul 2024 03:17:36 -0400 Subject: [PATCH 0219/1589] rebuild clermontyping (#49089) * bump to rebuild * unbump build number --- recipes/clermontyping/meta.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/recipes/clermontyping/meta.yaml b/recipes/clermontyping/meta.yaml index 95446a04a3341..a1c39da64b940 100644 --- a/recipes/clermontyping/meta.yaml +++ b/recipes/clermontyping/meta.yaml @@ -5,7 +5,6 @@ package: name: "clermontyping" version: '{{version}}' - source: url: https://github.com/happykhan/ClermonTyping/archive/refs/tags/{{version}}.tar.gz sha256: '{{sha256}}' From 8a71c6aed1a39a8ae7ef6a5aeecbc36f7a6ef34e Mon Sep 17 00:00:00 2001 From: Lee Katz Date: Thu, 11 Jul 2024 03:19:41 -0400 Subject: [PATCH 0220/1589] Colorid_bv (#49106) * symlink to colorid * colorid test too * remove echo statements --- recipes/colorid_bv/build.sh | 4 ++++ recipes/colorid_bv/meta.yaml | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/recipes/colorid_bv/build.sh b/recipes/colorid_bv/build.sh index 1fb100e3dd489..f205ac87a5a63 100644 --- a/recipes/colorid_bv/build.sh +++ b/recipes/colorid_bv/build.sh @@ -9,3 +9,7 @@ RUST_BACKTRACE=1 \ C_INCLUDE_PATH=$PREFIX/include \ LIBRARY_PATH=$PREFIX/lib \ cargo install --verbose --root $PREFIX --path . + +# colorid_bv is exactly the same as colorid except it lets you multithread +# and so just symlink to colorid +ln -sv $PREFIX/bin/colorid_bv $PREFIX/bin/colorid diff --git a/recipes/colorid_bv/meta.yaml b/recipes/colorid_bv/meta.yaml index 183d9dfc9bae1..eb4fbe81ae11a 100644 --- a/recipes/colorid_bv/meta.yaml +++ b/recipes/colorid_bv/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('colorid_bv', max_pin="x.x") }} @@ -25,6 +25,7 @@ requirements: test: commands: - colorid_bv --help + - colorid --help about: home: https://github.com/hcdenbakker/{{ name }} From ad8d410dfe8d9d5b14aeaf55f6571cef9eec0ccc Mon Sep 17 00:00:00 2001 From: Lee Katz Date: Thu, 11 Jul 2024 03:20:39 -0400 Subject: [PATCH 0221/1589] Sneakernet-qc (#49111) * perl-bio-seqfeature * address errors for bld.bat and having tests * new download instructions; added src tsv and dmp files to build * new download instructions; added src tsv and dmp files to build * remove perl-bio-seqfeature * merged changes * merge * sneakernet v0.27 * ignore kalamari changes * corrected shasum * ignore kalamari changes * negate kalamari artifacts * colorid_bv --- recipes/sneakernet-qc/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/sneakernet-qc/meta.yaml b/recipes/sneakernet-qc/meta.yaml index 541ebf9d9e863..eb8c0c0a72f1e 100644 --- a/recipes/sneakernet-qc/meta.yaml +++ b/recipes/sneakernet-qc/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 noarch: generic run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} @@ -42,6 +42,7 @@ requirements: - blast - bowtie2 - chewbbaca + - colorid_bv - fastqc - flash - kalamari From bdc1cede8dc103684e4697815a2fc4ef859eb732 Mon Sep 17 00:00:00 2001 From: Rob Patro Date: Thu, 11 Jul 2024 03:20:57 -0400 Subject: [PATCH 0222/1589] Try building piscem on osx-arm64 (#49109) * Try building on osx-arm64 * Update meta.yaml --- recipes/piscem/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/piscem/meta.yaml b/recipes/piscem/meta.yaml index 2ab3bc65782ac..2cd86dcc2944b 100644 --- a/recipes/piscem/meta.yaml +++ b/recipes/piscem/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("piscem", max_pin="x.x") }} @@ -46,3 +46,4 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 From 6709b606044551cbd6f5eee095aac850857f37fd Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 11 Jul 2024 11:42:15 +0300 Subject: [PATCH 0223/1589] xtandem: add linux-aarch64 build (#49131) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/xtandem/build.sh | 4 +++- recipes/xtandem/meta.yaml | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/recipes/xtandem/build.sh b/recipes/xtandem/build.sh index 26a44dc276f46..c690110316680 100644 --- a/recipes/xtandem/build.sh +++ b/recipes/xtandem/build.sh @@ -1,9 +1,11 @@ #!/bin/bash +set -xe + cd src/ # without -fpermissive, this fails with GCC7 due to bad style -make CXX="${CXX}" CXXFLAGS+='-fpermissive' LDFLAGS+='-lpthread -lm -lexpat' +make -j ${CPU_COUNT} CXX="${CXX}" CXXFLAGS+='-fpermissive' LDFLAGS+='-lpthread -lm -lexpat' mkdir -p "${PREFIX}/bin" cp ../bin/tandem.exe "${PREFIX}/bin/xtandem" diff --git a/recipes/xtandem/meta.yaml b/recipes/xtandem/meta.yaml index 72fa613902b5c..a7cf61d10183c 100644 --- a/recipes/xtandem/meta.yaml +++ b/recipes/xtandem/meta.yaml @@ -11,7 +11,9 @@ source: build: skip: true # [osx] - number: 8 + number: 9 + run_exports: + - {{ pin_subpackage('xtandem', max_pin="x") }} requirements: build: @@ -34,6 +36,8 @@ about: summary: X! Tandem open source is software that can match tandem mass spectra with peptide sequences, in a process that has come to be known as protein identification extra: + additional-platforms: + - linux-aarch64 identifiers: - biotools:xtandem - doi:10.1093/bioinformatics/bth092 From c4777d5ff7c92e1624a832117f13c12f92367c27 Mon Sep 17 00:00:00 2001 From: Nextstrain bot <78992647+nextstrain-bot@users.noreply.github.com> Date: Thu, 11 Jul 2024 01:45:35 -0700 Subject: [PATCH 0224/1589] Update nextclade to 3.8.1 (#49133) Co-authored-by: nextstrain-bot --- recipes/nextclade/meta.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/recipes/nextclade/meta.yaml b/recipes/nextclade/meta.yaml index 463a69a0bd8b5..23f6a0e05c17e 100644 --- a/recipes/nextclade/meta.yaml +++ b/recipes/nextclade/meta.yaml @@ -1,5 +1,5 @@ {% set name = "nextclade" %} -{% set version = "3.8.0" %} +{% set version = "3.8.1" %} package: name: "{{ name|lower }}" @@ -7,16 +7,16 @@ package: source: - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-x86_64-unknown-linux-gnu # [linux64] - sha256: 6251f3c46236fba7a51924c6dd49581a150645efddf4248f426123524b23af7f # [linux64] + sha256: d099c8f12c2453da5d4ab7dfc90d962f486797d50f87bdf761b2e1b255054a76 # [linux64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-aarch64-unknown-linux-gnu # [aarch64] - sha256: 3575e0c1a20f1ff4f69e77ea1bcd08cb01bc80a74a750eba02cc5fa1227a3400 # [aarch64] + sha256: 4ff82022f6d703fd76a3d6e778e3dc7fa5e870f75e11d537b8458d2f67be8386 # [aarch64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-x86_64-apple-darwin # [osx and x86_64] - sha256: a5ad4c2ca527929ab8c8b3b2521287488383f78fc1ee3030cbf5af23856b58b0 # [osx and x86_64] + sha256: bf85c3b9580b2297abbae63abcd594524a106ca84e3944c5061ac3788de10db2 # [osx and x86_64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-aarch64-apple-darwin # [osx and arm64] - sha256: 579f499f7f0f5f2b9d520971ded4e265140859317f083ff8e2879ad74373ec33 # [osx and arm64] + sha256: e001446f040533fc689f92421ebf7ea8ca822eb954f2e43b71979ec3a0f6faa0 # [osx and arm64] build: - number: 2 + number: 0 binary_relocation: False run_exports: - {{ pin_compatible(name, max_pin='x') }} From db8d7523e481eb004c07aafb4933ea61a02e01c2 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Thu, 11 Jul 2024 13:13:10 +0200 Subject: [PATCH 0225/1589] Build raxml for osx-arm64 (#49098) * Build raxml for osx-arm64 * Disable failing arm64 builds * Apply patch to not overwrite CC env variable --- recipes/raxml/build.sh | 23 ++++++++++++++++------- recipes/raxml/meta.yaml | 13 +++++++------ 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/recipes/raxml/build.sh b/recipes/raxml/build.sh index 6dd8706245751..92f87d162d35e 100644 --- a/recipes/raxml/build.sh +++ b/recipes/raxml/build.sh @@ -1,19 +1,28 @@ #!/bin/bash -case `uname` in -Darwin) SUF=.mac;; -Linux) SUF=.gcc;; -*) echo "Unknown architecture"; exit 1;; +set -exo pipefail + +case $(uname) in +Darwin) SUF=.mac ;; +Linux) SUF=.gcc ;; +*) + echo "Unknown architecture" + exit 1 + ;; esac ARCH=$(uname -m) -mkdir -p $PREFIX/bin +mkdir -p "$PREFIX"/bin for PTHREADS in "" .PTHREADS; do for OPT in "" .SSE3 .AVX2; do - if [ "${ARCH}" == "aarch64" -a "${OPT}" == ".AVX2" ]; then + if [[ "${ARCH}" == "aarch64" && "${OPT}" == ".AVX2" ]]; then + continue + fi + + if [[ ${ARCH} == "arm64" && ("${OPT}" == ".AVX2" || "${OPT}" == ".SSE3" || "${PTHREADS}" == ".PTHREADS") ]]; then continue fi @@ -25,7 +34,7 @@ for PTHREADS in "" .PTHREADS; do MAKEFILE=${MAKEFILE}.gcc fi make -f ${MAKEFILE} CC=$CC - mv raxmlHPC* $PREFIX/bin + mv raxmlHPC* "$PREFIX"/bin make -f ${MAKEFILE} clean done done diff --git a/recipes/raxml/meta.yaml b/recipes/raxml/meta.yaml index b98b2551cc414..b7e8de64fbd89 100644 --- a/recipes/raxml/meta.yaml +++ b/recipes/raxml/meta.yaml @@ -3,7 +3,7 @@ package: version: "8.2.13" build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('raxml', max_pin="x") }} @@ -19,11 +19,11 @@ requirements: test: commands: - raxmlHPC -h > /dev/null - - raxmlHPC-PTHREADS -h > /dev/null - - raxmlHPC-SSE3 -h > /dev/null - - raxmlHPC-PTHREADS-SSE3 -h > /dev/null - - 'raxmlHPC-AVX2 -h > /dev/null' # [not aarch64] - - 'raxmlHPC-PTHREADS-AVX2 -h > /dev/null' # [not aarch64] + - raxmlHPC-PTHREADS -h > /dev/null # [not arm64] + - raxmlHPC-SSE3 -h > /dev/null # [not arm64] + - raxmlHPC-PTHREADS-SSE3 -h > /dev/null # [not arm64] + - 'raxmlHPC-AVX2 -h > /dev/null' # [not (aarch64 or arm64)] + - 'raxmlHPC-PTHREADS-AVX2 -h > /dev/null' # [not (aarch64 or arm64)] about: home: http://sco.h-its.org/exelixis/web/software/raxml/index.html @@ -33,6 +33,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:raxml - doi:10.1093/bioinformatics/btu033 From 17b994e39b54ea673d8b5c77b50ba54634d9e2a1 Mon Sep 17 00:00:00 2001 From: Milot Mirdita Date: Thu, 11 Jul 2024 20:14:06 +0900 Subject: [PATCH 0226/1589] Update MMseqs2 server with MacOS ARM support (#49125) --- recipes/mmseqs2-server/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/mmseqs2-server/meta.yaml b/recipes/mmseqs2-server/meta.yaml index 0889f5d633d38..561f0635f9b18 100644 --- a/recipes/mmseqs2-server/meta.yaml +++ b/recipes/mmseqs2-server/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version|replace("-", ".") }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('mmseqs2-server', max_pin=None) }} @@ -39,3 +39,4 @@ extra: - milot-mirdita additional-platforms: - linux-aarch64 + - osx-arm64 From d0c68cb2aa0bb21c8fcc9b473ec192db950061d9 Mon Sep 17 00:00:00 2001 From: "Colin J. Brislawn" Date: Thu, 11 Jul 2024 07:27:13 -0400 Subject: [PATCH 0227/1589] Build vsearch for osx-arm64 (#49117) * add osx-arm64 no idea if this _should_ even work, but let's try! * Update build.sh * Update meta.yaml * Enable debug for vsearch's build.sh Signed-off-by: Martin Tzvetanov Grigorov * Add m4 as a build dependency Signed-off-by: Martin Tzvetanov Grigorov * Set M4 env var to point to the m4 binary we prefer to use https://lists.gnu.org/archive/html/autoconf/2003-12/msg00243.html Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov --- recipes/vsearch/build.sh | 5 ++++- recipes/vsearch/meta.yaml | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/recipes/vsearch/build.sh b/recipes/vsearch/build.sh index 05aa2d19c547b..014be82e9d4bd 100755 --- a/recipes/vsearch/build.sh +++ b/recipes/vsearch/build.sh @@ -1,12 +1,15 @@ #!/bin/bash +set -xe + # Remove configure.ac C(XX)?FLAGS override sed -i.bak 's/ *CX\?X\?FLAGS/#\0/p' configure.ac # Remove MACOS_DEPLOYMENT_TARGET override sed -i.bak 's/MACOSX_DEPLOYMENT_TARGET=/#\0/' configure.ac sed -i.bak 's/export MACOSX_DEPLOYMENT_TARGET=/#\0/' src/Makefile.am +export M4="$BUILD_PREFIX/bin/m4" ./autogen.sh ./configure --prefix=$PREFIX -make +make -j ${CPU_COUNT} make install diff --git a/recipes/vsearch/meta.yaml b/recipes/vsearch/meta.yaml index c1aa24bd39cde..7cee8874d5bbb 100644 --- a/recipes/vsearch/meta.yaml +++ b/recipes/vsearch/meta.yaml @@ -10,7 +10,7 @@ source: sha256: '{{ sha256 }}' build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('vsearch', max_pin="x") }} @@ -21,6 +21,7 @@ requirements: - '{{ compiler("cxx") }}' - automake - autoconf + - m4 host: - zlib - bzip2 @@ -45,6 +46,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:vsearch - doi:10.7717/peerj.2584 From 374a1998a6d966ce07ff8809d561950b58d4abd0 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 11 Jul 2024 10:38:59 -0400 Subject: [PATCH 0228/1589] Update pia to 1.5.3 (#49137) --- recipes/pia/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pia/meta.yaml b/recipes/pia/meta.yaml index 4c87fb3b28903..56d1fa38fc1d1 100644 --- a/recipes/pia/meta.yaml +++ b/recipes/pia/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pia" %} -{% set version = "1.5.2" %} -{% set sha256 = "7a72e0ab93982a707b829e68453a567c3fd1d1d24de1e5bdc6bd0b2fe8f2e05a" %} +{% set version = "1.5.3" %} +{% set sha256 = "424554ee668e120dada07d01bbf107d9edbb75bb6511278a5c6b724b5344586c" %} package: name: {{ name|lower }} From 6360b57f1733c2236b571568ba157b14bb3a4894 Mon Sep 17 00:00:00 2001 From: Wei Shen Date: Thu, 11 Jul 2024 15:42:18 +0100 Subject: [PATCH 0229/1589] add osx-arm64 support for TaxonKit (#49134) --- recipes/taxonkit/meta.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/recipes/taxonkit/meta.yaml b/recipes/taxonkit/meta.yaml index 61fb6071c45fb..f1f47d02d7e8c 100644 --- a/recipes/taxonkit/meta.yaml +++ b/recipes/taxonkit/meta.yaml @@ -5,13 +5,15 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('taxonkit', max_pin='x.x') }} source: - url: https://github.com/shenwei356/taxonkit/releases/download/v{{ version }}/taxonkit_darwin_amd64.tar.gz # [osx] md5: 5c12cfac4939f966824eda8eb774cf9b # [osx] + - url: https://github.com/shenwei356/taxonkit/releases/download/v{{ version }}/taxonkit_darwin_arm64.tar.gz # [arm64] + md5: 4077cb27d588cd0c3ed174e80d9a54af # [arm64] - url: https://github.com/shenwei356/taxonkit/releases/download/v{{ version }}/taxonkit_linux_amd64.tar.gz # [linux and x86_64] md5: bfedc8dbfc2db63460ed31843fc5f3c3 # [linux and x86_64] - url: https://github.com/shenwei356/taxonkit/releases/download/v{{ version }}/taxonkit_linux_arm64.tar.gz # [linux and aarch64] @@ -30,6 +32,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 skip-lints: - should_be_noarch_generic - should_not_be_noarch_source From 757337b9ed06ba75568902565b8378d759764fce Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 11 Jul 2024 10:45:36 -0400 Subject: [PATCH 0230/1589] Update viguno to 0.3.1 (#49140) * Update viguno to 0.3.0 * Update viguno to 0.3.1 --- recipes/viguno/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/viguno/meta.yaml b/recipes/viguno/meta.yaml index cfeec69d90f06..bf70182f7aac7 100644 --- a/recipes/viguno/meta.yaml +++ b/recipes/viguno/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.2.1" %} -{% set sha256 = "00da4730a4dd63b05eeb8e7ae0b58ba829e7145cc41f0f9194470376f367b937" %} +{% set version = "0.3.1" %} +{% set sha256 = "92250d0336e148af08366ee7e4cf88bd95f70e6c0b8aa1c24732b165250953b4" %} package: name: viguno From f8388fbaf9590756d6631bd2d448bb09488688ba Mon Sep 17 00:00:00 2001 From: Carl Mathias Kobel Date: Thu, 11 Jul 2024 16:50:25 +0200 Subject: [PATCH 0231/1589] change name "Assemblycomparator2" -> "CompareM2" (#49142) * done * tar.gz not zip * thought that dependency error was fixed upstream? * external problem * assemblycomparator2 changed name to comparem2 --- recipes/assemblycomparator2/build.sh | 14 --------- recipes/assemblycomparator2/meta.yaml | 41 --------------------------- 2 files changed, 55 deletions(-) delete mode 100644 recipes/assemblycomparator2/build.sh delete mode 100644 recipes/assemblycomparator2/meta.yaml diff --git a/recipes/assemblycomparator2/build.sh b/recipes/assemblycomparator2/build.sh deleted file mode 100644 index 340a03825dff5..0000000000000 --- a/recipes/assemblycomparator2/build.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -euo - -mkdir -p ${PREFIX}/bin - -export PACKAGE_HOME="${PREFIX}/share/${PKG_NAME}-${PKG_VERSION}-${PKG_BUILDNUM}" - -# First we put the necessary files in into the conda prefix/share directory: -mkdir -p "${PACKAGE_HOME}" -chmod 755 asscom2 -cp -f asscom2 LICENSE "${PACKAGE_HOME}" -cp -rf config docs dynamic_report profile resources tests workflow "${PACKAGE_HOME}" - -# This is the binary that we wish to be able to run. -ln -sf ${PACKAGE_HOME}/asscom2 ${PREFIX}/bin/asscom2 diff --git a/recipes/assemblycomparator2/meta.yaml b/recipes/assemblycomparator2/meta.yaml deleted file mode 100644 index 5503b4069f495..0000000000000 --- a/recipes/assemblycomparator2/meta.yaml +++ /dev/null @@ -1,41 +0,0 @@ -{% set name = "assemblycomparator2" %} -{% set version = "2.7.1" %} -{% set sha256 = "20d02a94fef9565c21b93c108a5ff95797563a6ec40bd016a581de68ffccca60" %} - -package: - name: {{ name }} - version: {{ version }} - -source: - url: https://github.com/cmkobel/assemblycomparator2/archive/refs/tags/v{{ version }}.tar.gz - sha256: {{ sha256 }} - -build: - number: 2 - noarch: generic - run_exports: - - {{ pin_subpackage('assemblycomparator2', max_pin="x") }} - -requirements: - run: - - snakemake-minimal <8 - - pulp <2.8 - - mamba # Necessary for snakemake to install child environments during development. - - pandas - -test: - commands: - - "touch dummy.fa; asscom2 --help" - -about: - home: "https://github.com/cmkobel/assemblycomparator2" - summary: 'Assemblycomparator2: Genomes to report pipeline' - license_family: GPL3 - license: "GPL-3.0-or-later" - license_file: LICENSE - dev_url: "https://github.com/cmkobel/assemblycomparator2" - doc_url: "https://assemblycomparator2.readthedocs.io/" - -extra: - recipe-maintainers: - - cmkobel From d88d819aa8c64c0aad0e4117c258b72fa590c080 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 11 Jul 2024 11:07:41 -0400 Subject: [PATCH 0232/1589] Update zdb to 1.3.0 (#49139) --- recipes/zdb/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/zdb/meta.yaml b/recipes/zdb/meta.yaml index 508c74054ba0c..0ac72934d1172 100644 --- a/recipes/zdb/meta.yaml +++ b/recipes/zdb/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.2.3" %} +{% set version = "1.3.0" %} package: name: zdb @@ -11,8 +11,8 @@ build: - {{ pin_subpackage('zdb', max_pin="x.x") }} source: - url: https://github.com/metagenlab/zDB/archive/refs/tags/v1.2.3.tar.gz - sha256: b73a72cce424c1db28ccb0f1be20cbf61855260bb957e2829a6d9f991a20c029 + url: https://github.com/metagenlab/zDB/archive/refs/tags/v1.3.0.tar.gz + sha256: 3f9496d423875e0d281bc62c3fcc88f9878c167ea14ff9b8afebfea4087466c0 requirements: run: From 6d5d1958b9dfed9582b745716b4d70e9544c1b47 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 11 Jul 2024 11:40:09 -0400 Subject: [PATCH 0233/1589] Update beacon2-import to 2.0.0 (#49146) * Update beacon2-import to 2.0.0 * pin python to <3.12 --------- Co-authored-by: mencian --- recipes/beacon2-import/meta.yaml | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/recipes/beacon2-import/meta.yaml b/recipes/beacon2-import/meta.yaml index 70ad85235693b..b4d5ca62e8fdc 100644 --- a/recipes/beacon2-import/meta.yaml +++ b/recipes/beacon2-import/meta.yaml @@ -1,5 +1,5 @@ {% set name = "beacon2-import" %} -{% set version = "1.0.8" %} +{% set version = "2.0.0" %} package: name: {{ name|lower }} @@ -7,27 +7,27 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/beacon2-import-{{ version }}.tar.gz - sha256: 5f55afebd5c5a57c188e3a691bb2fac72f572298e699242803e995e005435e3e + sha256: a1240b1f24aa7239c7e4b057031f32f3a621b49b72bbdadc62d4c7de1958fa17 build: entry_points: - beacon2-import = beacon2_import.beacon2_import:beacon2_import - beacon2-search = beacon2_search.beacon2_search:beacon_query noarch: python - script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir number: 0 run_exports: - {{ pin_subpackage('beacon2-import', max_pin="x") }} requirements: host: - - python + - python <3.12 - pip run: - - python + - python <3.12 - jsonschema - dataclasses - - bioblend =0.10.0 + - bioblend =0.10.0 - cyvcf2 - pymongo @@ -35,14 +35,9 @@ test: imports: - beacon2_import - beacon2_search - - utils commands: - - pip check - beacon2-import --help - beacon2-search --help - requires: - - python - - pip about: home: https://pypi.org/project/beacon2-import/ From 4f50c881f0bf23d78208b1a77885dff2cbbf39b0 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Thu, 11 Jul 2024 18:13:20 +0200 Subject: [PATCH 0234/1589] Build vcftools for osx-arm64 (#49102) * Build vcftools for osx-arm64 * Try C++11 * Reorder compiler to be first * Try explicit path to m4 Big thanks to Milot Mirdita for figuring this out! --------- Co-authored-by: Milot Mirdita --- recipes/vcftools/build.sh | 6 ++++++ recipes/vcftools/meta.yaml | 6 ++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/recipes/vcftools/build.sh b/recipes/vcftools/build.sh index 6f61929f3045b..b092226687777 100644 --- a/recipes/vcftools/build.sh +++ b/recipes/vcftools/build.sh @@ -1,5 +1,11 @@ #!/bin/bash set -euo pipefail + +# uses random_shuffle which was removed in C++17 +export CXXFLAGS="-std=c++11 ${CXXFLAGS}" + +export M4=$BUILD_PREFIX/bin/m4 + ./autogen.sh ./configure --prefix=$PREFIX #sed -i.bak -e 's/SUBDIRS = cpp perl/SUBDIRS = cpp/' ./src/Makefile diff --git a/recipes/vcftools/meta.yaml b/recipes/vcftools/meta.yaml index fc5557f5b5c3b..9b96a1085272c 100644 --- a/recipes/vcftools/meta.yaml +++ b/recipes/vcftools/meta.yaml @@ -13,14 +13,14 @@ source: - patch build: - number: 10 + number: 11 run_exports: - {{ pin_subpackage('vcftools', max_pin='x.x') }} requirements: build: - - make - {{ compiler('cxx') }} + - make - autoconf - automake - libtool @@ -45,5 +45,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:vcftools + - doi:10.1093/bioinformatics/btr330 From b54581dc2f044cd4cffb48cfb5f6ef1af6f02112 Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Thu, 11 Jul 2024 12:22:23 -0400 Subject: [PATCH 0235/1589] remove rnaformer (#49135) * change yml to yaml * add run_exports * remove rnaformer which is in conda-forge --- recipes/rnaformer/meta.yml | 57 -------------------------------------- 1 file changed, 57 deletions(-) delete mode 100644 recipes/rnaformer/meta.yml diff --git a/recipes/rnaformer/meta.yml b/recipes/rnaformer/meta.yml deleted file mode 100644 index 5259da88ef507..0000000000000 --- a/recipes/rnaformer/meta.yml +++ /dev/null @@ -1,57 +0,0 @@ -{% set name = "RNAformer" %} -{% set version = "0.0.1" %} - -package: - name: {{ name|lower }} - version: {{ version }} - -source: - url: https://pypi.io/packages/source/r/{{ name|lower }}/{{ name|lower }}-{{ version }}.tar.gz - sha256: 36374aa476ffd0be681e8ad29fec64cb074b6e341db1dc8179fcbd43cdf5da55 - -build: - noarch: python - script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation - number: 0 - -requirements: - host: - - python >=3.10 - - pip - run: - - python >=3.10 - - pytorch - - torchvision - - tqdm - - pyyaml - - pyaml - - numpy - - packaging - - wheel - - tabulate - - scipy - - pandas - - scikit-learn - - matplotlib-base - - polars - - loralib - - tensorboard - - transformers - - datasets - - pytorch-lightning - - deepspeed - - rotary-embedding-torch - -test: - imports: - - RNAformer - -about: - home: https://github.com/automl/RNAformer - summary: 'RNAformer: a simple single-sequence-based deep learning model for RNA secondary structure prediction.' - license: Apache-2.0 - license_file: LICENSE - -extra: - recipe-maintainers: - - ivelet From b7cfc45a5d7b1577f7ac83fababe9da499e9d51c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 11 Jul 2024 15:38:50 -0400 Subject: [PATCH 0236/1589] Update cpstools to 1.0.12 (#49149) Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/cpstools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/cpstools/meta.yaml b/recipes/cpstools/meta.yaml index 1d49cc214a881..708dea0eb24f7 100644 --- a/recipes/cpstools/meta.yaml +++ b/recipes/cpstools/meta.yaml @@ -1,6 +1,6 @@ {% set name = "cpstools" %} -{% set version = "1.0.11" %} -{% set sha256 = "035420514fad0af1e0e06bd6f8932e9fe74e642aa97250b7279e7ce9009b5a31" %} +{% set version = "1.0.12" %} +{% set sha256 = "299e324e30a3b45dcb2cffb354bf41f2698b6193699da0e2631db5e6b3616c07" %} package: name: {{ name|lower }} From 72d5f6f3f35cb67516d754043ba0ca865f0129b9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 11 Jul 2024 15:44:44 -0400 Subject: [PATCH 0237/1589] Update beacon2-import to 2.1.0 (#49153) --- recipes/beacon2-import/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/beacon2-import/meta.yaml b/recipes/beacon2-import/meta.yaml index b4d5ca62e8fdc..21173f1c679c8 100644 --- a/recipes/beacon2-import/meta.yaml +++ b/recipes/beacon2-import/meta.yaml @@ -1,5 +1,5 @@ {% set name = "beacon2-import" %} -{% set version = "2.0.0" %} +{% set version = "2.1.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/beacon2-import-{{ version }}.tar.gz - sha256: a1240b1f24aa7239c7e4b057031f32f3a621b49b72bbdadc62d4c7de1958fa17 + sha256: 788fd69d03f5133cd30a97509904686469f4abfb14072c895b37569708348c39 build: entry_points: From fcf8ad2cbb2340b6c0c57e493d399e0a2fbf0bfb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 11 Jul 2024 15:44:53 -0400 Subject: [PATCH 0238/1589] Update synapseclient to 4.3.1 (#49154) --- recipes/synapseclient/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/synapseclient/meta.yaml b/recipes/synapseclient/meta.yaml index e9463445c0fae..07be3a88467bc 100644 --- a/recipes/synapseclient/meta.yaml +++ b/recipes/synapseclient/meta.yaml @@ -1,5 +1,5 @@ {% set name = "synapseclient" %} -{% set version = "4.3.0" %} +{% set version = "4.3.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/synapseclient-{{ version }}.tar.gz - sha256: a1149a64b3281669d42c69e210677a902478b8f6b302966d518473c7384f6387 + sha256: 9d1c2cd1d6fe4fabb386290c0eed20944ab7e44e6713db40f19cf28babe3be3c build: noarch: python From d798ff5ffc299e0949988c9b430c303ad4da7697 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 11 Jul 2024 16:44:43 -0400 Subject: [PATCH 0239/1589] Update harpy to 1.2.2 (#49160) --- recipes/harpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index 09bfca5bdf8f1..07613277f35ca 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.2.1" %} -{% set sha256 = "d028c751815cdba8cbbef81e14241314f5937831c079eb0164ee338e56a982a0" %} +{% set version = "1.2.2" %} +{% set sha256 = "1d02296332986cc779397f9e6685e25b3f592873962c9d0c8ea707a7b51303b3" %} package: name: harpy From e67ef18d8a6b55ea061843d43dbd945642f66afb Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Thu, 11 Jul 2024 19:57:15 -0400 Subject: [PATCH 0240/1589] bowtie2: add osx-arm64 (#49150) --- recipes/bowtie2/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/bowtie2/meta.yaml b/recipes/bowtie2/meta.yaml index d0240d08b9706..e4fde80b6a4f3 100644 --- a/recipes/bowtie2/meta.yaml +++ b/recipes/bowtie2/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 841a6a60111b690c11d1e123cb5c11560b4cd1502b5cee7e394fd50f83e74e13 build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('bowtie2', max_pin="x") }} @@ -60,6 +60,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:bowtie2 - doi:10.1038/nmeth.1923 From 7bb0b37babca48bd24616ab98f4a62192f76a901 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 12 Jul 2024 02:57:45 +0300 Subject: [PATCH 0241/1589] epik: add linux-aarch64 build (#49080) * epik: add linux-aarch64 build Pin boost to 1.85 as discussed at https://github.com/bioconda/bioconda-recipes/pull/49000 Signed-off-by: Martin Tzvetanov Grigorov * Use `long double` as a replacement for float128 on aarch64/arm64 Signed-off-by: Martin Tzvetanov Grigorov * Add osx-arm64 --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/epik/build.sh | 2 +- recipes/epik/epik-aarch64.patch | 23 +++++++++++++++++++++++ recipes/epik/meta.yaml | 12 +++++++++--- 3 files changed, 33 insertions(+), 4 deletions(-) create mode 100644 recipes/epik/epik-aarch64.patch diff --git a/recipes/epik/build.sh b/recipes/epik/build.sh index 7bdd89211df09..f82392be5b449 100644 --- a/recipes/epik/build.sh +++ b/recipes/epik/build.sh @@ -13,7 +13,7 @@ mkdir -p $PREFIX/bin mkdir -p $PREFIX/lib cmake -B build -DBUILD_SHARED_LIBS=ON --install-prefix=$PREFIX -cmake --build build --target all +cmake --build build --target all -j ${CPU_COUNT} cmake --install build ls $PREFIX/bin diff --git a/recipes/epik/epik-aarch64.patch b/recipes/epik/epik-aarch64.patch new file mode 100644 index 0000000000000..843a9e88658ee --- /dev/null +++ b/recipes/epik/epik-aarch64.patch @@ -0,0 +1,23 @@ +diff --git i/epik/include/epik/place.h w/epik/include/epik/place.h +index d348755..e78beea 100644 +--- i/epik/include/epik/place.h ++++ w/epik/include/epik/place.h +@@ -7,7 +7,17 @@ + #include + #include + +-#ifdef __clang__ ++#ifdef __ARM_NEON ++ ++#include ++ ++namespace epik::impl ++{ ++ using lwr_type = long double; ++ extern long double (*powl)(long double, long double); ++} ++ ++#elif defined(__clang__) + /// Clang still does not fully support boost::multiprecion. + /// We use floats instead despite of known precion-related + /// issues in rare cases diff --git a/recipes/epik/meta.yaml b/recipes/epik/meta.yaml index 438e50ab8cc17..2be6f602946ce 100644 --- a/recipes/epik/meta.yaml +++ b/recipes/epik/meta.yaml @@ -9,9 +9,11 @@ package: source: url: https://github.com/phylo42/{{ name|lower }}/releases/download/v{{ version }}/EPIK-v{{ version }}_src_for_bioconda.tar.gz sha256: {{ sha256 }} + patches: + - epik-aarch64.patch build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('epik', max_pin="x.x") }} @@ -22,11 +24,11 @@ requirements: - cmake - llvm-openmp # [osx] host: - - boost-cpp >=1.67 + - boost-cpp =1.85 - zlib - rapidjson run: - - boost-cpp >=1.67 + - boost-cpp =1.85 - llvm-openmp # [osx] - python - click @@ -40,3 +42,7 @@ about: summary: "EPIK is a tool for fast alignement-free phylogenetic placements." description: "EPIK uses pre-computed phylo-k-mers indexes (see package IPK) to rapidly place large amounts of sequences on a fixed phylogenetic tree. Please cite: doi.org/10.1093/bioinformatics/btad692" +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 \ No newline at end of file From 833113d982b6300e2617aa469e7a066ca5cd8ab8 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 12 Jul 2024 02:58:25 +0300 Subject: [PATCH 0242/1589] gap2seq: add linux-aarch64 build (#49141) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/gap2seq/build.sh | 2 +- recipes/gap2seq/meta.yaml | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/recipes/gap2seq/build.sh b/recipes/gap2seq/build.sh index 1e7344d52a564..166133ca8216d 100644 --- a/recipes/gap2seq/build.sh +++ b/recipes/gap2seq/build.sh @@ -1,6 +1,6 @@ #!/bin/bash -set -e -o pipefail +set -xe -o pipefail export CPPFLAGS="$CPPFLAGS -I${PREFIX}/include" export LDFLAGS="$LDFLAGS -L${PREFIX}/lib" diff --git a/recipes/gap2seq/meta.yaml b/recipes/gap2seq/meta.yaml index fb36b3c3f399d..9140cdb128b41 100644 --- a/recipes/gap2seq/meta.yaml +++ b/recipes/gap2seq/meta.yaml @@ -10,8 +10,10 @@ package: version: {{ version }} build: - number: 3 + number: 4 skip: True # [osx or py2k] + run_exports: + - {{ pin_subpackage(name|lower, max_pin="x") }} source: #- url: https://github.com/rikuu/{{ name }}/archive/v{{ version }}.tar.gz @@ -55,6 +57,7 @@ about: summary: Gap2Seq is a tool for filling gaps between contigs in genome assemblies. extra: - notes: "Gap2Seq is only tested on Linux x86_64 by its author." + additional-platforms: + - linux-aarch64 recipe-maintainers: - notestaff From 90c73b9d5c9c812dfe8bdba9cafa7cd7701ced31 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 12 Jul 2024 02:59:01 +0300 Subject: [PATCH 0243/1589] phylodm: add aarch64/arm64 builds (#49143) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/phylodm/meta.yaml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/recipes/phylodm/meta.yaml b/recipes/phylodm/meta.yaml index e7defd7b2b28e..b35433c6c1c49 100644 --- a/recipes/phylodm/meta.yaml +++ b/recipes/phylodm/meta.yaml @@ -11,12 +11,13 @@ source: sha256: {{ sha256 }} build: - skip: true # [py2k or py36] - number: 1 + number: 2 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} requirements: build: - - rust >=1.65 + - {{ compiler('rust') }} host: - python - pip @@ -40,6 +41,9 @@ about: summary: Efficient calculation of phylogenetic distance matrices. extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - aaronmussig identifiers: From 0a6c7808c40f367b4c935146e2612b864f503d25 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 12 Jul 2024 02:59:27 +0300 Subject: [PATCH 0244/1589] build(icfree-ml): update python versions allowed (#49147) See #49138 Signed-off-by: Martin Tzvetanov Grigorov --- recipes/icfree-ml/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/icfree-ml/meta.yaml b/recipes/icfree-ml/meta.yaml index 8afdf12e50e75..4581510534a2c 100644 --- a/recipes/icfree-ml/meta.yaml +++ b/recipes/icfree-ml/meta.yaml @@ -10,7 +10,7 @@ source: sha256: e57f358a372f5f8b5040dca9c500c25be1e1594a73557cc5ae97bf7784aba384 build: - number: 0 + number: 1 noarch: python script: {{ PYTHON }} -m pip install -vv . run_exports: @@ -18,10 +18,10 @@ build: requirements: host: - - python >3.6 + - python >3.8,<3.12 - pip run: - - python >3.6 + - python >3.8,<3.12 - biopython - pysbol2 - blast From 251de91a24141619b85c41ba2cd54f03e64c6a27 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 12 Jul 2024 02:59:58 +0300 Subject: [PATCH 0245/1589] mbg: add aarch64/arm64 builds (#49145) * mbg: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * Add a patch for linux aarch64 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/mbg/.gitattributes | 2 ++ recipes/mbg/build.sh | 4 +++- recipes/mbg/mbg-aarch64.patch | 25 +++++++++++++++++++++++++ recipes/mbg/meta.yaml | 8 +++++++- 4 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 recipes/mbg/.gitattributes create mode 100644 recipes/mbg/mbg-aarch64.patch diff --git a/recipes/mbg/.gitattributes b/recipes/mbg/.gitattributes new file mode 100644 index 0000000000000..1d0ccc127c3c3 --- /dev/null +++ b/recipes/mbg/.gitattributes @@ -0,0 +1,2 @@ +# the file contains both CRLF and LF line endings. Tell Git to not touch it +mbg-aarch64.patch binary diff --git a/recipes/mbg/build.sh b/recipes/mbg/build.sh index 4db0b74900822..7b6cab79806d5 100644 --- a/recipes/mbg/build.sh +++ b/recipes/mbg/build.sh @@ -1,6 +1,8 @@ #!/usr/bin/env bash +set -xe + cd $SRC_DIR -make bin/MBG +make -j ${CPU_COUNT} bin/MBG mkdir -p $PREFIX/bin cp bin/MBG $PREFIX/bin diff --git a/recipes/mbg/mbg-aarch64.patch b/recipes/mbg/mbg-aarch64.patch new file mode 100644 index 0000000000000..3cb0d038c4a78 --- /dev/null +++ b/recipes/mbg/mbg-aarch64.patch @@ -0,0 +1,25 @@ +diff --git i/src/RankBitvector.cpp w/src/RankBitvector.cpp +index 2d7c98a..e0adaec 100644 +--- i/src/RankBitvector.cpp ++++ w/src/RankBitvector.cpp +@@ -3,11 +3,20 @@ + + int popcount(uint64_t x) + { ++#ifdef __x86_64__ + //https://gcc.gnu.org/onlinedocs/gcc-4.8.4/gcc/X86-Built-in-Functions.html + // return __builtin_popcountll(x); + //for some reason __builtin_popcount takes 21 instructions so call assembly directly + __asm__("popcnt %0, %0" : "+r" (x)); + return x; ++#else ++ uint64_t count = 0; ++ while (x) { ++ count += x & 1; ++ x >>= 1; ++ } ++ return count; ++#endif + } + + RankBitvector::RankBitvector() : diff --git a/recipes/mbg/meta.yaml b/recipes/mbg/meta.yaml index 0ba6a59d45aed..8b8037f18df43 100644 --- a/recipes/mbg/meta.yaml +++ b/recipes/mbg/meta.yaml @@ -12,9 +12,10 @@ source: patches: - version.patch - osx_availability.patch # [osx] + - mbg-aarch64.patch # [aarch64 or arm64] build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('mbg', max_pin="x.x") }} @@ -34,3 +35,8 @@ about: license: MIT license_file: LICENSE.md summary: Minimizer based sparse de Bruijn graph constructor + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 \ No newline at end of file From 96572e8d120b81a0ea394934ef09efe8d958ade0 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 12 Jul 2024 03:00:26 +0300 Subject: [PATCH 0246/1589] skesa: add linux-aarch64 build (#48962) * skesa: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Allow boost 1.70 for linux-aarch64 because there is no -aarch64 build for 1.71 Signed-off-by: Martin Tzvetanov Grigorov * Add a patch for linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Do not use parallelism for the build. It OOMs at CircleCI * Pass '-std=c++11' to the compiler flags Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/skesa/build.sh | 4 +- recipes/skesa/meta.yaml | 12 +- recipes/skesa/skesa-aarch64.patch | 9349 +++++++++++++++++++++++++++++ 3 files changed, 9361 insertions(+), 4 deletions(-) create mode 100644 recipes/skesa/skesa-aarch64.patch diff --git a/recipes/skesa/build.sh b/recipes/skesa/build.sh index 788ad7a98c066..0c18f3c4ee7a8 100644 --- a/recipes/skesa/build.sh +++ b/recipes/skesa/build.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -xe + export LIBRARY_PATH=${PREFIX}/lib export LD_LIBRARY_PATH=${PREFIX}/lib export CPP_INCLUDE_PATH=${PREFIX}/include @@ -15,7 +17,7 @@ LDFLAGS=-L${PREFIX}/lib make -f Makefile.nongs \ BOOST_PATH=${PREFIX} \ - CC="$CXX $CXXFLAGS" \ + CC="$CXX -std=c++11 $CXXFLAGS" \ LDFLAGS=$LDFLAGS mkdir -p ${PREFIX}/bin diff --git a/recipes/skesa/meta.yaml b/recipes/skesa/meta.yaml index b525d025cfcec..b0650797d27fe 100644 --- a/recipes/skesa/meta.yaml +++ b/recipes/skesa/meta.yaml @@ -11,9 +11,11 @@ package: source: url: https://github.com/ncbi/SKESA/archive/refs/tags/{{ release_tag }}.tar.gz sha256: dc5ad60f963afb09d3f2a3bab8917e657bd93364f0deca6e6844ede44968e979 + patches: + - skesa-aarch64.patch # [linux and aarch64] build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin='x') }} @@ -23,11 +25,11 @@ requirements: - {{ compiler('cxx') }} host: # Last version of conda-forge::boost that included static files (.a) - - boost 1.71 + - boost >=1.70,<=1.71 - zlib run: - libstdcxx-ng # [linux] - - boost 1.71 # [osx] + - boost >=1.70,<=1.71 # [osx] - zlib # [osx] test: @@ -43,3 +45,7 @@ about: license: Public Domain license_file: LICENSE summary: 'Strategic Kmer Extension for Scrupulous Assemblies & Sequence Assembly Using Target Enrichment' + +extra: + additional-platforms: + - linux-aarch64 diff --git a/recipes/skesa/skesa-aarch64.patch b/recipes/skesa/skesa-aarch64.patch new file mode 100644 index 0000000000000..03088386d207d --- /dev/null +++ b/recipes/skesa/skesa-aarch64.patch @@ -0,0 +1,9349 @@ +diff --git c/Makefile i/Makefile +index b99fe8f..3ce0214 100644 +--- c/Makefile ++++ i/Makefile +@@ -41,7 +41,7 @@ NGS_LIB := -L $(NGS_PATH)/lib64 + + CC = c++ -std=c++11 -fdiagnostics-color=never + CFLAGS = -Wall -Wno-format-y2k -pthread -fPIC -O3 -finline-functions -fstrict-aliasing \ +- -fomit-frame-pointer -msse4.2 $(BOOST_INCL) $(NGS_INCL) $(VDB_INCL) ++ -fomit-frame-pointer $(BOOST_INCL) $(NGS_INCL) $(VDB_INCL) + + PLATFORM=$(shell uname -s) + +diff --git c/Makefile.nongs i/Makefile.nongs +index 34c8c86..c22f314 100644 +--- c/Makefile.nongs ++++ i/Makefile.nongs +@@ -32,7 +32,7 @@ endif + + CC = c++ -std=c++11 + CFLAGS = -D NO_NGS -Wall -Wno-format-y2k -pthread -fPIC -O3 -finline-functions -fstrict-aliasing \ +- -fomit-frame-pointer -msse4.2 $(BOOST_INCL) ++ -fomit-frame-pointer $(BOOST_INCL) + + PLATFORM=$(shell uname -s) + +diff --git c/guidedassembler.hpp i/guidedassembler.hpp +index 5d3065b..c5098e9 100644 +--- c/guidedassembler.hpp ++++ i/guidedassembler.hpp +@@ -27,7 +27,11 @@ + #ifndef _GuidedAssembler_ + #define _GuidedAssembler_ + ++#ifdef __ARM_NEON ++#include "sse2neon.h" ++#else + #include ++#endif + + using namespace std; + namespace DeBruijn { +diff --git c/sse2neon.h i/sse2neon.h +new file mode 100644 +index 0000000..2b12721 +--- /dev/null ++++ i/sse2neon.h +@@ -0,0 +1,9301 @@ ++#ifndef SSE2NEON_H ++#define SSE2NEON_H ++ ++/* ++ * sse2neon is freely redistributable under the MIT License. ++ * ++ * Copyright (c) 2015-2024 SSE2NEON Contributors. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a copy ++ * of this software and associated documentation files (the "Software"), to deal ++ * in the Software without restriction, including without limitation the rights ++ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ++ * copies of the Software, and to permit persons to whom the Software is ++ * furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice shall be included in ++ * all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++ * SOFTWARE. ++ */ ++ ++// This header file provides a simple API translation layer ++// between SSE intrinsics to their corresponding Arm/Aarch64 NEON versions ++// ++// Contributors to this work are: ++// John W. Ratcliff ++// Brandon Rowlett ++// Ken Fast ++// Eric van Beurden ++// Alexander Potylitsin ++// Hasindu Gamaarachchi ++// Jim Huang ++// Mark Cheng ++// Malcolm James MacLeod ++// Devin Hussey (easyaspi314) ++// Sebastian Pop ++// Developer Ecosystem Engineering ++// Danila Kutenin ++// François Turban (JishinMaster) ++// Pei-Hsuan Hung ++// Yang-Hao Yuan ++// Syoyo Fujita ++// Brecht Van Lommel ++// Jonathan Hue ++// Cuda Chen ++// Aymen Qader ++// Anthony Roberts ++ ++/* Tunable configurations */ ++ ++/* Enable precise implementation of math operations ++ * This would slow down the computation a bit, but gives consistent result with ++ * x86 SSE. (e.g. would solve a hole or NaN pixel in the rendering result) ++ */ ++/* _mm_min|max_ps|ss|pd|sd */ ++#ifndef SSE2NEON_PRECISE_MINMAX ++#define SSE2NEON_PRECISE_MINMAX (0) ++#endif ++/* _mm_rcp_ps */ ++#ifndef SSE2NEON_PRECISE_DIV ++#define SSE2NEON_PRECISE_DIV (0) ++#endif ++/* _mm_sqrt_ps and _mm_rsqrt_ps */ ++#ifndef SSE2NEON_PRECISE_SQRT ++#define SSE2NEON_PRECISE_SQRT (0) ++#endif ++/* _mm_dp_pd */ ++#ifndef SSE2NEON_PRECISE_DP ++#define SSE2NEON_PRECISE_DP (0) ++#endif ++ ++/* Enable inclusion of windows.h on MSVC platforms ++ * This makes _mm_clflush functional on windows, as there is no builtin. ++ */ ++#ifndef SSE2NEON_INCLUDE_WINDOWS_H ++#define SSE2NEON_INCLUDE_WINDOWS_H (0) ++#endif ++ ++/* compiler specific definitions */ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma push_macro("FORCE_INLINE") ++#pragma push_macro("ALIGN_STRUCT") ++#define FORCE_INLINE static inline __attribute__((always_inline)) ++#define ALIGN_STRUCT(x) __attribute__((aligned(x))) ++#define _sse2neon_likely(x) __builtin_expect(!!(x), 1) ++#define _sse2neon_unlikely(x) __builtin_expect(!!(x), 0) ++#elif defined(_MSC_VER) ++#if _MSVC_TRADITIONAL ++#error Using the traditional MSVC preprocessor is not supported! Use /Zc:preprocessor instead. ++#endif ++#ifndef FORCE_INLINE ++#define FORCE_INLINE static inline ++#endif ++#ifndef ALIGN_STRUCT ++#define ALIGN_STRUCT(x) __declspec(align(x)) ++#endif ++#define _sse2neon_likely(x) (x) ++#define _sse2neon_unlikely(x) (x) ++#else ++#pragma message("Macro name collisions may happen with unsupported compilers.") ++#endif ++ ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma push_macro("FORCE_INLINE_OPTNONE") ++#define FORCE_INLINE_OPTNONE static inline __attribute__((optimize("O0"))) ++#elif defined(__clang__) ++#pragma push_macro("FORCE_INLINE_OPTNONE") ++#define FORCE_INLINE_OPTNONE static inline __attribute__((optnone)) ++#else ++#define FORCE_INLINE_OPTNONE FORCE_INLINE ++#endif ++ ++#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ < 10 ++#warning "GCC versions earlier than 10 are not supported." ++#endif ++ ++/* C language does not allow initializing a variable with a function call. */ ++#ifdef __cplusplus ++#define _sse2neon_const static const ++#else ++#define _sse2neon_const const ++#endif ++ ++#include ++#include ++ ++#if defined(_WIN32) ++/* Definitions for _mm_{malloc,free} are provided by ++ * from both MinGW-w64 and MSVC. ++ */ ++#define SSE2NEON_ALLOC_DEFINED ++#endif ++ ++/* If using MSVC */ ++#ifdef _MSC_VER ++#include ++#if SSE2NEON_INCLUDE_WINDOWS_H ++#include ++#include ++#endif ++ ++#if !defined(__cplusplus) ++#error SSE2NEON only supports C++ compilation with this compiler ++#endif ++ ++#ifdef SSE2NEON_ALLOC_DEFINED ++#include ++#endif ++ ++#if (defined(_M_AMD64) || defined(__x86_64__)) || \ ++ (defined(_M_ARM64) || defined(__arm64__)) ++#define SSE2NEON_HAS_BITSCAN64 ++#endif ++#endif ++ ++#if defined(__GNUC__) || defined(__clang__) ++#define _sse2neon_define0(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define1(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define2(type, a, b, body) \ ++ __extension__({ \ ++ type _a = (a), _b = (b); \ ++ body \ ++ }) ++#define _sse2neon_return(ret) (ret) ++#else ++#define _sse2neon_define0(type, a, body) [=](type _a) { body }(a) ++#define _sse2neon_define1(type, a, body) [](type _a) { body }(a) ++#define _sse2neon_define2(type, a, b, body) \ ++ [](type _a, type _b) { body }((a), (b)) ++#define _sse2neon_return(ret) return ret ++#endif ++ ++#define _sse2neon_init(...) \ ++ { \ ++ __VA_ARGS__ \ ++ } ++ ++/* Compiler barrier */ ++#if defined(_MSC_VER) ++#define SSE2NEON_BARRIER() _ReadWriteBarrier() ++#else ++#define SSE2NEON_BARRIER() \ ++ do { \ ++ __asm__ __volatile__("" ::: "memory"); \ ++ (void) 0; \ ++ } while (0) ++#endif ++ ++/* Memory barriers ++ * __atomic_thread_fence does not include a compiler barrier; instead, ++ * the barrier is part of __atomic_load/__atomic_store's "volatile-like" ++ * semantics. ++ */ ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) ++#include ++#endif ++ ++FORCE_INLINE void _sse2neon_smp_mb(void) ++{ ++ SSE2NEON_BARRIER(); ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && \ ++ !defined(__STDC_NO_ATOMICS__) ++ atomic_thread_fence(memory_order_seq_cst); ++#elif defined(__GNUC__) || defined(__clang__) ++ __atomic_thread_fence(__ATOMIC_SEQ_CST); ++#else /* MSVC */ ++ __dmb(_ARM64_BARRIER_ISH); ++#endif ++} ++ ++/* Architecture-specific build options */ ++/* FIXME: #pragma GCC push_options is only available on GCC */ ++#if defined(__GNUC__) ++#if defined(__arm__) && __ARM_ARCH == 7 ++/* According to ARM C Language Extensions Architecture specification, ++ * __ARM_NEON is defined to a value indicating the Advanced SIMD (NEON) ++ * architecture supported. ++ */ ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error "You must enable NEON instructions (e.g. -mfpu=neon) to use SSE2NEON." ++#endif ++#if !defined(__clang__) ++#pragma GCC push_options ++#pragma GCC target("fpu=neon") ++#endif ++#elif defined(__aarch64__) || defined(_M_ARM64) ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#pragma GCC target("+simd") ++#endif ++#elif __ARM_ARCH == 8 ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error \ ++ "You must enable NEON instructions (e.g. -mfpu=neon-fp-armv8) to use SSE2NEON." ++#endif ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#endif ++#else ++#error \ ++ "Unsupported target. Must be either ARMv7-A+NEON or ARMv8-A \ ++(you could try setting target explicitly with -march or -mcpu)" ++#endif ++#endif ++ ++#include ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) && (__ARM_ARCH == 8) ++#if defined __has_include && __has_include() ++#include ++#endif ++#endif ++ ++/* Apple Silicon cache lines are double of what is commonly used by Intel, AMD ++ * and other Arm microarchitectures use. ++ * From sysctl -a on Apple M1: ++ * hw.cachelinesize: 128 ++ */ ++#if defined(__APPLE__) && (defined(__aarch64__) || defined(__arm64__)) ++#define SSE2NEON_CACHELINE_SIZE 128 ++#else ++#define SSE2NEON_CACHELINE_SIZE 64 ++#endif ++ ++/* Rounding functions require either Aarch64 instructions or libm fallback */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#include ++#endif ++ ++/* On ARMv7, some registers, such as PMUSERENR and PMCCNTR, are read-only ++ * or even not accessible in user mode. ++ * To write or access to these registers in user mode, ++ * we have to perform syscall instead. ++ */ ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) ++#include ++#endif ++ ++/* "__has_builtin" can be used to query support for built-in functions ++ * provided by gcc/clang and other compilers that support it. ++ */ ++#ifndef __has_builtin /* GCC prior to 10 or non-clang compilers */ ++/* Compatibility with gcc <= 9 */ ++#if defined(__GNUC__) && (__GNUC__ <= 9) ++#define __has_builtin(x) HAS##x ++#define HAS__builtin_popcount 1 ++#define HAS__builtin_popcountll 1 ++ ++// __builtin_shuffle introduced in GCC 4.7.0 ++#if (__GNUC__ >= 5) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) ++#define HAS__builtin_shuffle 1 ++#else ++#define HAS__builtin_shuffle 0 ++#endif ++ ++#define HAS__builtin_shufflevector 0 ++#define HAS__builtin_nontemporal_store 0 ++#else ++#define __has_builtin(x) 0 ++#endif ++#endif ++ ++/** ++ * MACRO for shuffle parameter for _mm_shuffle_ps(). ++ * Argument fp3 is a digit[0123] that represents the fp from argument "b" ++ * of mm_shuffle_ps that will be placed in fp3 of result. fp2 is the same ++ * for fp2 in result. fp1 is a digit[0123] that represents the fp from ++ * argument "a" of mm_shuffle_ps that will be places in fp1 of result. ++ * fp0 is the same for fp0 of result. ++ */ ++#define _MM_SHUFFLE(fp3, fp2, fp1, fp0) \ ++ (((fp3) << 6) | ((fp2) << 4) | ((fp1) << 2) | ((fp0))) ++ ++#if __has_builtin(__builtin_shufflevector) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __builtin_shufflevector(a, b, __VA_ARGS__) ++#elif __has_builtin(__builtin_shuffle) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __extension__({ \ ++ type tmp = {__VA_ARGS__}; \ ++ __builtin_shuffle(a, b, tmp); \ ++ }) ++#endif ++ ++#ifdef _sse2neon_shuffle ++#define vshuffle_s16(a, b, ...) _sse2neon_shuffle(int16x4_t, a, b, __VA_ARGS__) ++#define vshuffleq_s16(a, b, ...) _sse2neon_shuffle(int16x8_t, a, b, __VA_ARGS__) ++#define vshuffle_s32(a, b, ...) _sse2neon_shuffle(int32x2_t, a, b, __VA_ARGS__) ++#define vshuffleq_s32(a, b, ...) _sse2neon_shuffle(int32x4_t, a, b, __VA_ARGS__) ++#define vshuffle_s64(a, b, ...) _sse2neon_shuffle(int64x1_t, a, b, __VA_ARGS__) ++#define vshuffleq_s64(a, b, ...) _sse2neon_shuffle(int64x2_t, a, b, __VA_ARGS__) ++#endif ++ ++/* Rounding mode macros. */ ++#define _MM_FROUND_TO_NEAREST_INT 0x00 ++#define _MM_FROUND_TO_NEG_INF 0x01 ++#define _MM_FROUND_TO_POS_INF 0x02 ++#define _MM_FROUND_TO_ZERO 0x03 ++#define _MM_FROUND_CUR_DIRECTION 0x04 ++#define _MM_FROUND_NO_EXC 0x08 ++#define _MM_FROUND_RAISE_EXC 0x00 ++#define _MM_FROUND_NINT (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_FLOOR (_MM_FROUND_TO_NEG_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_CEIL (_MM_FROUND_TO_POS_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_TRUNC (_MM_FROUND_TO_ZERO | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_RINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_NEARBYINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_NO_EXC) ++#define _MM_ROUND_NEAREST 0x0000 ++#define _MM_ROUND_DOWN 0x2000 ++#define _MM_ROUND_UP 0x4000 ++#define _MM_ROUND_TOWARD_ZERO 0x6000 ++/* Flush zero mode macros. */ ++#define _MM_FLUSH_ZERO_MASK 0x8000 ++#define _MM_FLUSH_ZERO_ON 0x8000 ++#define _MM_FLUSH_ZERO_OFF 0x0000 ++/* Denormals are zeros mode macros. */ ++#define _MM_DENORMALS_ZERO_MASK 0x0040 ++#define _MM_DENORMALS_ZERO_ON 0x0040 ++#define _MM_DENORMALS_ZERO_OFF 0x0000 ++ ++/* indicate immediate constant argument in a given range */ ++#define __constrange(a, b) const ++ ++/* A few intrinsics accept traditional data types like ints or floats, but ++ * most operate on data types that are specific to SSE. ++ * If a vector type ends in d, it contains doubles, and if it does not have ++ * a suffix, it contains floats. An integer vector type can contain any type ++ * of integer, from chars to shorts to unsigned long longs. ++ */ ++typedef int64x1_t __m64; ++typedef float32x4_t __m128; /* 128-bit vector containing 4 floats */ ++// On ARM 32-bit architecture, the float64x2_t is not supported. ++// The data type __m128d should be represented in a different way for related ++// intrinsic conversion. ++#if defined(__aarch64__) || defined(_M_ARM64) ++typedef float64x2_t __m128d; /* 128-bit vector containing 2 doubles */ ++#else ++typedef float32x4_t __m128d; ++#endif ++typedef int64x2_t __m128i; /* 128-bit vector containing integers */ ++ ++// Some intrinsics operate on unaligned data types. ++typedef int16_t ALIGN_STRUCT(1) unaligned_int16_t; ++typedef int32_t ALIGN_STRUCT(1) unaligned_int32_t; ++typedef int64_t ALIGN_STRUCT(1) unaligned_int64_t; ++ ++// __int64 is defined in the Intrinsics Guide which maps to different datatype ++// in different data model ++#if !(defined(_WIN32) || defined(_WIN64) || defined(__int64)) ++#if (defined(__x86_64__) || defined(__i386__)) ++#define __int64 long long ++#else ++#define __int64 int64_t ++#endif ++#endif ++ ++/* type-safe casting between types */ ++ ++#define vreinterpretq_m128_f16(x) vreinterpretq_f32_f16(x) ++#define vreinterpretq_m128_f32(x) (x) ++#define vreinterpretq_m128_f64(x) vreinterpretq_f32_f64(x) ++ ++#define vreinterpretq_m128_u8(x) vreinterpretq_f32_u8(x) ++#define vreinterpretq_m128_u16(x) vreinterpretq_f32_u16(x) ++#define vreinterpretq_m128_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128_s8(x) vreinterpretq_f32_s8(x) ++#define vreinterpretq_m128_s16(x) vreinterpretq_f32_s16(x) ++#define vreinterpretq_m128_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_f16_m128(x) vreinterpretq_f16_f32(x) ++#define vreinterpretq_f32_m128(x) (x) ++#define vreinterpretq_f64_m128(x) vreinterpretq_f64_f32(x) ++ ++#define vreinterpretq_u8_m128(x) vreinterpretq_u8_f32(x) ++#define vreinterpretq_u16_m128(x) vreinterpretq_u16_f32(x) ++#define vreinterpretq_u32_m128(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_s8_m128(x) vreinterpretq_s8_f32(x) ++#define vreinterpretq_s16_m128(x) vreinterpretq_s16_f32(x) ++#define vreinterpretq_s32_m128(x) vreinterpretq_s32_f32(x) ++#define vreinterpretq_s64_m128(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_m128i_s8(x) vreinterpretq_s64_s8(x) ++#define vreinterpretq_m128i_s16(x) vreinterpretq_s64_s16(x) ++#define vreinterpretq_m128i_s32(x) vreinterpretq_s64_s32(x) ++#define vreinterpretq_m128i_s64(x) (x) ++ ++#define vreinterpretq_m128i_u8(x) vreinterpretq_s64_u8(x) ++#define vreinterpretq_m128i_u16(x) vreinterpretq_s64_u16(x) ++#define vreinterpretq_m128i_u32(x) vreinterpretq_s64_u32(x) ++#define vreinterpretq_m128i_u64(x) vreinterpretq_s64_u64(x) ++ ++#define vreinterpretq_f32_m128i(x) vreinterpretq_f32_s64(x) ++#define vreinterpretq_f64_m128i(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_s8_m128i(x) vreinterpretq_s8_s64(x) ++#define vreinterpretq_s16_m128i(x) vreinterpretq_s16_s64(x) ++#define vreinterpretq_s32_m128i(x) vreinterpretq_s32_s64(x) ++#define vreinterpretq_s64_m128i(x) (x) ++ ++#define vreinterpretq_u8_m128i(x) vreinterpretq_u8_s64(x) ++#define vreinterpretq_u16_m128i(x) vreinterpretq_u16_s64(x) ++#define vreinterpretq_u32_m128i(x) vreinterpretq_u32_s64(x) ++#define vreinterpretq_u64_m128i(x) vreinterpretq_u64_s64(x) ++ ++#define vreinterpret_m64_s8(x) vreinterpret_s64_s8(x) ++#define vreinterpret_m64_s16(x) vreinterpret_s64_s16(x) ++#define vreinterpret_m64_s32(x) vreinterpret_s64_s32(x) ++#define vreinterpret_m64_s64(x) (x) ++ ++#define vreinterpret_m64_u8(x) vreinterpret_s64_u8(x) ++#define vreinterpret_m64_u16(x) vreinterpret_s64_u16(x) ++#define vreinterpret_m64_u32(x) vreinterpret_s64_u32(x) ++#define vreinterpret_m64_u64(x) vreinterpret_s64_u64(x) ++ ++#define vreinterpret_m64_f16(x) vreinterpret_s64_f16(x) ++#define vreinterpret_m64_f32(x) vreinterpret_s64_f32(x) ++#define vreinterpret_m64_f64(x) vreinterpret_s64_f64(x) ++ ++#define vreinterpret_u8_m64(x) vreinterpret_u8_s64(x) ++#define vreinterpret_u16_m64(x) vreinterpret_u16_s64(x) ++#define vreinterpret_u32_m64(x) vreinterpret_u32_s64(x) ++#define vreinterpret_u64_m64(x) vreinterpret_u64_s64(x) ++ ++#define vreinterpret_s8_m64(x) vreinterpret_s8_s64(x) ++#define vreinterpret_s16_m64(x) vreinterpret_s16_s64(x) ++#define vreinterpret_s32_m64(x) vreinterpret_s32_s64(x) ++#define vreinterpret_s64_m64(x) (x) ++ ++#define vreinterpret_f32_m64(x) vreinterpret_f32_s64(x) ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f64_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f64_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) vreinterpretq_f64_f32(x) ++#define vreinterpretq_m128d_f64(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f64(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f64(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f64(x) ++ ++#define vreinterpretq_f64_m128d(x) (x) ++#define vreinterpretq_f32_m128d(x) vreinterpretq_f32_f64(x) ++#else ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_m128d_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_f32_m128d(x) (x) ++#endif ++ ++// A struct is defined in this header file called 'SIMDVec' which can be used ++// by applications which attempt to access the contents of an __m128 struct ++// directly. It is important to note that accessing the __m128 struct directly ++// is bad coding practice by Microsoft: @see: ++// https://learn.microsoft.com/en-us/cpp/cpp/m128 ++// ++// However, some legacy source code may try to access the contents of an __m128 ++// struct directly so the developer can use the SIMDVec as an alias for it. Any ++// casting must be done manually by the developer, as you cannot cast or ++// otherwise alias the base NEON data type for intrinsic operations. ++// ++// union intended to allow direct access to an __m128 variable using the names ++// that the MSVC compiler provides. This union should really only be used when ++// trying to access the members of the vector as integer values. GCC/clang ++// allow native access to the float members through a simple array access ++// operator (in C since 4.6, in C++ since 4.8). ++// ++// Ideally direct accesses to SIMD vectors should not be used since it can cause ++// a performance hit. If it really is needed however, the original __m128 ++// variable can be aliased with a pointer to this union and used to access ++// individual components. The use of this union should be hidden behind a macro ++// that is used throughout the codebase to access the members instead of always ++// declaring this type of variable. ++typedef union ALIGN_STRUCT(16) SIMDVec { ++ float m128_f32[4]; // as floats - DON'T USE. Added for convenience. ++ int8_t m128_i8[16]; // as signed 8-bit integers. ++ int16_t m128_i16[8]; // as signed 16-bit integers. ++ int32_t m128_i32[4]; // as signed 32-bit integers. ++ int64_t m128_i64[2]; // as signed 64-bit integers. ++ uint8_t m128_u8[16]; // as unsigned 8-bit integers. ++ uint16_t m128_u16[8]; // as unsigned 16-bit integers. ++ uint32_t m128_u32[4]; // as unsigned 32-bit integers. ++ uint64_t m128_u64[2]; // as unsigned 64-bit integers. ++} SIMDVec; ++ ++// casting using SIMDVec ++#define vreinterpretq_nth_u64_m128i(x, n) (((SIMDVec *) &x)->m128_u64[n]) ++#define vreinterpretq_nth_u32_m128i(x, n) (((SIMDVec *) &x)->m128_u32[n]) ++#define vreinterpretq_nth_u8_m128i(x, n) (((SIMDVec *) &x)->m128_u8[n]) ++ ++/* SSE macros */ ++#define _MM_GET_FLUSH_ZERO_MODE _sse2neon_mm_get_flush_zero_mode ++#define _MM_SET_FLUSH_ZERO_MODE _sse2neon_mm_set_flush_zero_mode ++#define _MM_GET_DENORMALS_ZERO_MODE _sse2neon_mm_get_denormals_zero_mode ++#define _MM_SET_DENORMALS_ZERO_MODE _sse2neon_mm_set_denormals_zero_mode ++ ++// Function declaration ++// SSE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void); ++FORCE_INLINE __m128 _mm_move_ss(__m128, __m128); ++FORCE_INLINE __m128 _mm_or_ps(__m128, __m128); ++FORCE_INLINE __m128 _mm_set_ps1(float); ++FORCE_INLINE __m128 _mm_setzero_ps(void); ++// SSE2 ++FORCE_INLINE __m128i _mm_and_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_castps_si128(__m128); ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128); ++FORCE_INLINE __m128d _mm_move_sd(__m128d, __m128d); ++FORCE_INLINE __m128i _mm_or_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_set_epi32(int, int, int, int); ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t, int64_t); ++FORCE_INLINE __m128d _mm_set_pd(double, double); ++FORCE_INLINE __m128i _mm_set1_epi32(int); ++FORCE_INLINE __m128i _mm_setzero_si128(void); ++// SSE4.1 ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d); ++FORCE_INLINE __m128 _mm_ceil_ps(__m128); ++FORCE_INLINE __m128d _mm_floor_pd(__m128d); ++FORCE_INLINE __m128 _mm_floor_ps(__m128); ++FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d, int); ++FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128, int); ++// SSE4.2 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t, uint8_t); ++ ++/* Backwards compatibility for compilers with lack of specific type support */ ++ ++// Older gcc does not define vld1q_u8_x4 type ++#if defined(__GNUC__) && !defined(__clang__) && \ ++ ((__GNUC__ <= 13 && defined(__arm__)) || \ ++ (__GNUC__ == 10 && __GNUC_MINOR__ < 3 && defined(__aarch64__)) || \ ++ (__GNUC__ <= 9 && defined(__aarch64__))) ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ uint8x16x4_t ret; ++ ret.val[0] = vld1q_u8(p + 0); ++ ret.val[1] = vld1q_u8(p + 16); ++ ret.val[2] = vld1q_u8(p + 32); ++ ret.val[3] = vld1q_u8(p + 48); ++ return ret; ++} ++#else ++// Wraps vld1q_u8_x4 ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ return vld1q_u8_x4(p); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddv u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ const uint64x1_t v1 = vpaddl_u32(vpaddl_u16(vpaddl_u8(v8))); ++ return vget_lane_u8(vreinterpret_u8_u64(v1), 0); ++} ++#else ++// Wraps vaddv_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ return vaddv_u8(v8); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ uint8x8_t tmp = vpadd_u8(vget_low_u8(a), vget_high_u8(a)); ++ uint8_t res = 0; ++ for (int i = 0; i < 8; ++i) ++ res += tmp[i]; ++ return res; ++} ++#else ++// Wraps vaddvq_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ return vaddvq_u8(a); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u16 variant */ ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ uint32x4_t m = vpaddlq_u16(a); ++ uint64x2_t n = vpaddlq_u32(m); ++ uint64x1_t o = vget_low_u64(n) + vget_high_u64(n); ++ ++ return vget_lane_u32((uint32x2_t) o, 0); ++} ++#else ++// Wraps vaddvq_u16 ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ return vaddvq_u16(a); ++} ++#endif ++ ++/* Function Naming Conventions ++ * The naming convention of SSE intrinsics is straightforward. A generic SSE ++ * intrinsic function is given as follows: ++ * _mm__ ++ * ++ * The parts of this format are given as follows: ++ * 1. describes the operation performed by the intrinsic ++ * 2. identifies the data type of the function's primary arguments ++ * ++ * This last part, , is a little complicated. It identifies the ++ * content of the input values, and can be set to any of the following values: ++ * + ps - vectors contain floats (ps stands for packed single-precision) ++ * + pd - vectors contain doubles (pd stands for packed double-precision) ++ * + epi8/epi16/epi32/epi64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * signed integers ++ * + epu8/epu16/epu32/epu64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * unsigned integers ++ * + si128 - unspecified 128-bit vector or 256-bit vector ++ * + m128/m128i/m128d - identifies input vector types when they are different ++ * than the type of the returned vector ++ * ++ * For example, _mm_setzero_ps. The _mm implies that the function returns ++ * a 128-bit vector. The _ps at the end implies that the argument vectors ++ * contain floats. ++ * ++ * A complete example: Byte Shuffle - pshufb (_mm_shuffle_epi8) ++ * // Set packed 16-bit integers. 128 bits, 8 short, per 16 bits ++ * __m128i v_in = _mm_setr_epi16(1, 2, 3, 4, 5, 6, 7, 8); ++ * // Set packed 8-bit integers ++ * // 128 bits, 16 chars, per 8 bits ++ * __m128i v_perm = _mm_setr_epi8(1, 0, 2, 3, 8, 9, 10, 11, ++ * 4, 5, 12, 13, 6, 7, 14, 15); ++ * // Shuffle packed 8-bit integers ++ * __m128i v_out = _mm_shuffle_epi8(v_in, v_perm); // pshufb ++ */ ++ ++/* Constants for use with _mm_prefetch. */ ++enum _mm_hint { ++ _MM_HINT_NTA = 0, /* load data to L1 and L2 cache, mark it as NTA */ ++ _MM_HINT_T0 = 1, /* load data to L1 and L2 cache */ ++ _MM_HINT_T1 = 2, /* load data to L2 cache only */ ++ _MM_HINT_T2 = 3, /* load data to L2 cache only, mark it as NTA */ ++}; ++ ++// The bit field mapping to the FPCR(floating-point control register) ++typedef struct { ++ uint16_t res0; ++ uint8_t res1 : 6; ++ uint8_t bit22 : 1; ++ uint8_t bit23 : 1; ++ uint8_t bit24 : 1; ++ uint8_t res2 : 7; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32_t res3; ++#endif ++} fpcr_bitfield; ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of b and places it into the high end of the result. ++FORCE_INLINE __m128 _mm_shuffle_ps_1032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in high ++// end of result takes the higher two 32 bit values from b and swaps them and ++// places in low end of result. ++FORCE_INLINE __m128 _mm_shuffle_ps_2301(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b23 = vrev64_f32(vget_high_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b23)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0321(__m128 a, __m128 b) ++{ ++ float32x2_t a21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a21, b03)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2103(__m128 a, __m128 b) ++{ ++ float32x2_t a03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a03, b21)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0101(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b01)); ++} ++ ++// keeps the low 64 bits of b in the low and puts the high 64 bits of a in the ++// high ++FORCE_INLINE __m128 _mm_shuffle_ps_3210(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0011(__m128 a, __m128 b) ++{ ++ float32x2_t a11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a11, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0022(__m128 a, __m128 b) ++{ ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a22, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2200(__m128 a, __m128 b) ++{ ++ float32x2_t a00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a00, b22)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_3202(__m128 a, __m128 b) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t a02 = vset_lane_f32(a0, a22, 1); /* TODO: use vzip ?*/ ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a02, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1133(__m128 a, __m128 b) ++{ ++ float32x2_t a33 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a33, b11)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b20)); ++} ++ ++// For MSVC, we check only if it is ARM64, as every single ARM64 processor ++// supported by WoA has crypto extensions. If this changes in the future, ++// this can be verified via the runtime-only method of: ++// IsProcessorFeaturePresent(PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE) ++#if (defined(_M_ARM64) && !defined(__clang__)) || \ ++ (defined(__ARM_FEATURE_CRYPTO) && \ ++ (defined(__aarch64__) || __has_builtin(__builtin_arm_crypto_vmullp64))) ++// Wraps vmull_p64 ++FORCE_INLINE uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly64_t a = vget_lane_p64(vreinterpret_p64_u64(_a), 0); ++ poly64_t b = vget_lane_p64(vreinterpret_p64_u64(_b), 0); ++#if defined(_MSC_VER) ++ __n64 a1 = {a}, b1 = {b}; ++ return vreinterpretq_u64_p128(vmull_p64(a1, b1)); ++#else ++ return vreinterpretq_u64_p128(vmull_p64(a, b)); ++#endif ++} ++#else // ARMv7 polyfill ++// ARMv7/some A64 lacks vmull_p64, but it has vmull_p8. ++// ++// vmull_p8 calculates 8 8-bit->16-bit polynomial multiplies, but we need a ++// 64-bit->128-bit polynomial multiply. ++// ++// It needs some work and is somewhat slow, but it is still faster than all ++// known scalar methods. ++// ++// Algorithm adapted to C from ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/, which is adapted ++// from "Fast Software Polynomial Multiplication on ARM Processors Using the ++// NEON Engine" by Danilo Camara, Conrado Gouvea, Julio Lopez and Ricardo Dahab ++// (https://hal.inria.fr/hal-01506572) ++static uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly8x8_t a = vreinterpret_p8_u64(_a); ++ poly8x8_t b = vreinterpret_p8_u64(_b); ++ ++ // Masks ++ uint8x16_t k48_32 = vcombine_u8(vcreate_u8(0x0000ffffffffffff), ++ vcreate_u8(0x00000000ffffffff)); ++ uint8x16_t k16_00 = vcombine_u8(vcreate_u8(0x000000000000ffff), ++ vcreate_u8(0x0000000000000000)); ++ ++ // Do the multiplies, rotating with vext to get all combinations ++ uint8x16_t d = vreinterpretq_u8_p16(vmull_p8(a, b)); // D = A0 * B0 ++ uint8x16_t e = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 1))); // E = A0 * B1 ++ uint8x16_t f = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 1), b)); // F = A1 * B0 ++ uint8x16_t g = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 2))); // G = A0 * B2 ++ uint8x16_t h = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 2), b)); // H = A2 * B0 ++ uint8x16_t i = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 3))); // I = A0 * B3 ++ uint8x16_t j = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 3), b)); // J = A3 * B0 ++ uint8x16_t k = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 4))); // L = A0 * B4 ++ ++ // Add cross products ++ uint8x16_t l = veorq_u8(e, f); // L = E + F ++ uint8x16_t m = veorq_u8(g, h); // M = G + H ++ uint8x16_t n = veorq_u8(i, j); // N = I + J ++ ++ // Interleave. Using vzip1 and vzip2 prevents Clang from emitting TBL ++ // instructions. ++#if defined(__aarch64__) ++ uint8x16_t lm_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t lm_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t nk_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++ uint8x16_t nk_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++#else ++ uint8x16_t lm_p0 = vcombine_u8(vget_low_u8(l), vget_low_u8(m)); ++ uint8x16_t lm_p1 = vcombine_u8(vget_high_u8(l), vget_high_u8(m)); ++ uint8x16_t nk_p0 = vcombine_u8(vget_low_u8(n), vget_low_u8(k)); ++ uint8x16_t nk_p1 = vcombine_u8(vget_high_u8(n), vget_high_u8(k)); ++#endif ++ // t0 = (L) (P0 + P1) << 8 ++ // t1 = (M) (P2 + P3) << 16 ++ uint8x16_t t0t1_tmp = veorq_u8(lm_p0, lm_p1); ++ uint8x16_t t0t1_h = vandq_u8(lm_p1, k48_32); ++ uint8x16_t t0t1_l = veorq_u8(t0t1_tmp, t0t1_h); ++ ++ // t2 = (N) (P4 + P5) << 24 ++ // t3 = (K) (P6 + P7) << 32 ++ uint8x16_t t2t3_tmp = veorq_u8(nk_p0, nk_p1); ++ uint8x16_t t2t3_h = vandq_u8(nk_p1, k16_00); ++ uint8x16_t t2t3_l = veorq_u8(t2t3_tmp, t2t3_h); ++ ++ // De-interleave ++#if defined(__aarch64__) ++ uint8x16_t t0 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t1 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t2 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++ uint8x16_t t3 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++#else ++ uint8x16_t t1 = vcombine_u8(vget_high_u8(t0t1_l), vget_high_u8(t0t1_h)); ++ uint8x16_t t0 = vcombine_u8(vget_low_u8(t0t1_l), vget_low_u8(t0t1_h)); ++ uint8x16_t t3 = vcombine_u8(vget_high_u8(t2t3_l), vget_high_u8(t2t3_h)); ++ uint8x16_t t2 = vcombine_u8(vget_low_u8(t2t3_l), vget_low_u8(t2t3_h)); ++#endif ++ // Shift the cross products ++ uint8x16_t t0_shift = vextq_u8(t0, t0, 15); // t0 << 8 ++ uint8x16_t t1_shift = vextq_u8(t1, t1, 14); // t1 << 16 ++ uint8x16_t t2_shift = vextq_u8(t2, t2, 13); // t2 << 24 ++ uint8x16_t t3_shift = vextq_u8(t3, t3, 12); // t3 << 32 ++ ++ // Accumulate the products ++ uint8x16_t cross1 = veorq_u8(t0_shift, t1_shift); ++ uint8x16_t cross2 = veorq_u8(t2_shift, t3_shift); ++ uint8x16_t mix = veorq_u8(d, cross1); ++ uint8x16_t r = veorq_u8(mix, cross2); ++ return vreinterpretq_u64_u8(r); ++} ++#endif // ARMv7 polyfill ++ ++// C equivalent: ++// __m128i _mm_shuffle_epi32_default(__m128i a, ++// __constrange(0, 255) int imm) { ++// __m128i ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = a[(imm >> 4) & 0x03]; ret[3] = a[(imm >> 6) & 0x03]; ++// return ret; ++// } ++#define _mm_shuffle_epi32_default(a, imm) \ ++ vreinterpretq_m128i_s32(vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), \ ++ ((imm) >> 2) & 0x3), \ ++ vmovq_n_s32(vgetq_lane_s32( \ ++ vreinterpretq_s32_m128i(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of a and places it into the high end of the result. ++FORCE_INLINE __m128i _mm_shuffle_epi_1032(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in low end ++// of result takes the higher two 32 bit values from a and swaps them and places ++// in high end of result. ++FORCE_INLINE __m128i _mm_shuffle_epi_2301(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a23 = vrev64_s32(vget_high_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a23)); ++} ++ ++// rotates the least significant 32 bits into the most significant 32 bits, and ++// shifts the rest down ++FORCE_INLINE __m128i _mm_shuffle_epi_0321(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 1)); ++} ++ ++// rotates the most significant 32 bits into the least significant 32 bits, and ++// shifts the rest up ++FORCE_INLINE __m128i _mm_shuffle_epi_2103(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 3)); ++} ++ ++// gets the lower 64 bits of a, and places it in the upper 64 bits ++// gets the lower 64 bits of a and places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1010(__m128i a) ++{ ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a10, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements, and places it in the ++// lower 64 bits gets the lower 64 bits of a, and places it in the upper 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1001(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements and places it in the ++// upper 64 bits gets the lower 64 bits of a, swaps the 0 and 1 elements, and ++// places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_0101(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_2211(__m128i a) ++{ ++ int32x2_t a11 = vdup_lane_s32(vget_low_s32(vreinterpretq_s32_m128i(a)), 1); ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ return vreinterpretq_m128i_s32(vcombine_s32(a11, a22)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_0122(__m128i a) ++{ ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a22, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_3332(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a33 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 1); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a33)); ++} ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32(vdupq_laneq_s32(vreinterpretq_s32_m128i(a), (imm))) ++#else ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vdupq_n_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)))) ++#endif ++ ++// NEON does not support a general purpose permute intrinsic. ++// Shuffle single-precision (32-bit) floating-point elements in a using the ++// control in imm8, and store the results in dst. ++// ++// C equivalent: ++// __m128 _mm_shuffle_ps_default(__m128 a, __m128 b, ++// __constrange(0, 255) int imm) { ++// __m128 ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = b[(imm >> 4) & 0x03]; ret[3] = b[(imm >> 6) & 0x03]; ++// return ret; ++// } ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_ps ++#define _mm_shuffle_ps_default(a, b, imm) \ ++ vreinterpretq_m128_f32(vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), ((imm) >> 2) & 0x3), \ ++ vmovq_n_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Shuffle 16-bit integers in the low 64 bits of a using the control in imm8. ++// Store the results in the low 64 bits of dst, with the high 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflelo_epi16 ++#define _mm_shufflelo_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t lowBits = vget_low_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, (imm) & (0x3)), ret, 0); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++// Shuffle 16-bit integers in the high 64 bits of a using the control in imm8. ++// Store the results in the high 64 bits of dst, with the low 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflehi_epi16 ++#define _mm_shufflehi_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t highBits = vget_high_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, (imm) & (0x3)), ret, 4); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 2) & 0x3), ret, \ ++ 5); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 4) & 0x3), ret, \ ++ 6); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 6) & 0x3), ret, \ ++ 7); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++/* MMX */ ++ ++//_mm_empty is a no-op on arm ++FORCE_INLINE void _mm_empty(void) {} ++ ++/* SSE */ ++ ++// Add packed single-precision (32-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ps ++FORCE_INLINE __m128 _mm_add_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Add the lower single-precision (32-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ss ++FORCE_INLINE __m128 _mm_add_ss(__m128 a, __m128 b) ++{ ++ float32_t b0 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++ float32x4_t value = vsetq_lane_f32(b0, vdupq_n_f32(0), 0); ++ // the upper values in the result must be the remnants of . ++ return vreinterpretq_m128_f32(vaddq_f32(a, value)); ++} ++ ++// Compute the bitwise AND of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_ps ++FORCE_INLINE __m128 _mm_and_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vandq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Compute the bitwise NOT of packed single-precision (32-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_ps ++FORCE_INLINE __m128 _mm_andnot_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vbicq_s32(vreinterpretq_s32_m128(b), ++ vreinterpretq_s32_m128(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu16 ++FORCE_INLINE __m64 _mm_avg_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16( ++ vrhadd_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu8 ++FORCE_INLINE __m64 _mm_avg_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vrhadd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ps ++FORCE_INLINE __m128 _mm_cmpeq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ss ++FORCE_INLINE __m128 _mm_cmpeq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpeq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ps ++FORCE_INLINE __m128 _mm_cmpge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ss ++FORCE_INLINE __m128 _mm_cmpge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ps ++FORCE_INLINE __m128 _mm_cmpgt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ss ++FORCE_INLINE __m128 _mm_cmpgt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpgt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ps ++FORCE_INLINE __m128 _mm_cmple_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ss ++FORCE_INLINE __m128 _mm_cmple_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmple_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ps ++FORCE_INLINE __m128 _mm_cmplt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ss ++FORCE_INLINE __m128 _mm_cmplt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmplt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ps ++FORCE_INLINE __m128 _mm_cmpneq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ss ++FORCE_INLINE __m128 _mm_cmpneq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpneq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ps ++FORCE_INLINE __m128 _mm_cmpnge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ss ++FORCE_INLINE __m128 _mm_cmpnge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ps ++FORCE_INLINE __m128 _mm_cmpngt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ss ++FORCE_INLINE __m128 _mm_cmpngt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpngt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ps ++FORCE_INLINE __m128 _mm_cmpnle_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ss ++FORCE_INLINE __m128 _mm_cmpnle_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnle_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ps ++FORCE_INLINE __m128 _mm_cmpnlt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ss ++FORCE_INLINE __m128 _mm_cmpnlt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnlt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ps ++// ++// See also: ++// http://stackoverflow.com/questions/8627331/what-does-ordered-unordered-comparison-mean ++// http://stackoverflow.com/questions/29349621/neon-isnanval-intrinsics ++FORCE_INLINE __m128 _mm_cmpord_ps(__m128 a, __m128 b) ++{ ++ // Note: NEON does not have ordered compare builtin ++ // Need to compare a eq a and b eq b to check for NaN ++ // Do AND of results to get final ++ uint32x4_t ceqaa = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t ceqbb = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vandq_u32(ceqaa, ceqbb)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ss ++FORCE_INLINE __m128 _mm_cmpord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpord_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ps ++FORCE_INLINE __m128 _mm_cmpunord_ps(__m128 a, __m128 b) ++{ ++ uint32x4_t f32a = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t f32b = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vmvnq_u32(vandq_u32(f32a, f32b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ss ++FORCE_INLINE __m128 _mm_cmpunord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpunord_ps(a, b)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_ss ++FORCE_INLINE int _mm_comieq_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_eq_b = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_eq_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_ss ++FORCE_INLINE int _mm_comige_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_ge_b = ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_ge_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_ss ++FORCE_INLINE int _mm_comigt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_gt_b = ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_gt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_ss ++FORCE_INLINE int _mm_comile_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_le_b = ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_le_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_ss ++FORCE_INLINE int _mm_comilt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_lt_b = ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_lt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_ss ++FORCE_INLINE int _mm_comineq_ss(__m128 a, __m128 b) ++{ ++ return !_mm_comieq_ss(a, b); ++} ++ ++// Convert packed signed 32-bit integers in b to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, and copy the upper 2 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_pi2ps ++FORCE_INLINE __m128 _mm_cvt_pi2ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ps2pi ++FORCE_INLINE __m64 _mm_cvt_ps2pi(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))))); ++#else ++ return vreinterpret_m64_s32(vcvt_s32_f32(vget_low_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION))))); ++#endif ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_si2ss ++FORCE_INLINE __m128 _mm_cvt_si2ss(__m128 a, int b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ss2si ++FORCE_INLINE int _mm_cvt_ss2si(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vgetq_lane_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))), ++ 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int32_t) data; ++#endif ++} ++ ++// Convert packed 16-bit integers in a to packed single-precision (32-bit) ++// floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi16_ps ++FORCE_INLINE __m128 _mm_cvtpi16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vmovl_s16(vreinterpret_s16_m64(a)))); ++} ++ ++// Convert packed 32-bit integers in b to packed single-precision (32-bit) ++// floating-point elements, store the results in the lower 2 elements of dst, ++// and copy the upper 2 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_ps ++FORCE_INLINE __m128 _mm_cvtpi32_ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, then convert the packed signed 32-bit integers in b to ++// single-precision (32-bit) floating-point element, and store the results in ++// the upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32x2_ps ++FORCE_INLINE __m128 _mm_cvtpi32x2_ps(__m64 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vcombine_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b)))); ++} ++ ++// Convert the lower packed 8-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi8_ps ++FORCE_INLINE __m128 _mm_cvtpi8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vmovl_s16(vget_low_s16(vmovl_s8(vreinterpret_s8_m64(a)))))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 16-bit integers, and store the results in dst. Note: this intrinsic ++// will generate 0x7FFF, rather than 0x8000, for input values between 0x7FFF and ++// 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi16 ++FORCE_INLINE __m64 _mm_cvtps_pi16(__m128 a) ++{ ++ return vreinterpret_m64_s16( ++ vqmovn_s32(vreinterpretq_s32_m128i(_mm_cvtps_epi32(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi32 ++#define _mm_cvtps_pi32(a) _mm_cvt_ps2pi(a) ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 8-bit integers, and store the results in lower 4 elements of dst. ++// Note: this intrinsic will generate 0x7F, rather than 0x80, for input values ++// between 0x7F and 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi8 ++FORCE_INLINE __m64 _mm_cvtps_pi8(__m128 a) ++{ ++ return vreinterpret_m64_s8(vqmovn_s16( ++ vcombine_s16(vreinterpret_s16_m64(_mm_cvtps_pi16(a)), vdup_n_s16(0)))); ++} ++ ++// Convert packed unsigned 16-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu16_ps ++FORCE_INLINE __m128 _mm_cvtpu16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_u32(vmovl_u16(vreinterpret_u16_m64(a)))); ++} ++ ++// Convert the lower packed unsigned 8-bit integers in a to packed ++// single-precision (32-bit) floating-point elements, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu8_ps ++FORCE_INLINE __m128 _mm_cvtpu8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_u32( ++ vmovl_u16(vget_low_u16(vmovl_u8(vreinterpret_u8_m64(a)))))); ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_ss ++#define _mm_cvtsi32_ss(a, b) _mm_cvt_si2ss(a, b) ++ ++// Convert the signed 64-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_ss ++FORCE_INLINE __m128 _mm_cvtsi64_ss(__m128 a, int64_t b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Copy the lower single-precision (32-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_f32 ++FORCE_INLINE float _mm_cvtss_f32(__m128 a) ++{ ++ return vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si32 ++#define _mm_cvtss_si32(a) _mm_cvt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si64 ++FORCE_INLINE int64_t _mm_cvtss_si64(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return (int64_t) vgetq_lane_f32(vrndiq_f32(vreinterpretq_f32_m128(a)), 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int64_t) data; ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ps2pi ++FORCE_INLINE __m64 _mm_cvtt_ps2pi(__m128 a) ++{ ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ss2si ++FORCE_INLINE int _mm_cvtt_ss2si(__m128 a) ++{ ++ return vgetq_lane_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)), 0); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_pi32 ++#define _mm_cvttps_pi32(a) _mm_cvtt_ps2pi(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si32 ++#define _mm_cvttss_si32(a) _mm_cvtt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si64 ++FORCE_INLINE int64_t _mm_cvttss_si64(__m128 a) ++{ ++ return (int64_t) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Divide packed single-precision (32-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise division intrinsic, we implement ++// division by multiplying a by b's reciprocal before using the Newton-Raphson ++// method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ps ++FORCE_INLINE __m128 _mm_div_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vdivq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(b)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(a), recip)); ++#endif ++} ++ ++// Divide the lower single-precision (32-bit) floating-point element in a by the ++// lower single-precision (32-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper 3 packed elements from a to ++// the upper elements of dst. ++// Warning: ARMv7-A does not produce the same result compared to Intel and not ++// IEEE-compliant. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ss ++FORCE_INLINE __m128 _mm_div_ss(__m128 a, __m128 b) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_div_ps(a, b)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_pi16 ++#define _mm_extract_pi16(a, imm) \ ++ (int32_t) vget_lane_u16(vreinterpret_u16_m64(a), (imm)) ++ ++// Free aligned memory that was allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_free ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void _mm_free(void *addr) ++{ ++ free(addr); ++} ++#endif ++ ++FORCE_INLINE uint64_t _sse2neon_get_fpcr(void) ++{ ++ uint64_t value; ++#if defined(_MSC_VER) ++ value = _ReadStatusReg(ARM64_FPCR); ++#else ++ __asm__ __volatile__("mrs %0, FPCR" : "=r"(value)); /* read */ ++#endif ++ return value; ++} ++ ++FORCE_INLINE void _sse2neon_set_fpcr(uint64_t value) ++{ ++#if defined(_MSC_VER) ++ _WriteStatusReg(ARM64_FPCR, value); ++#else ++ __asm__ __volatile__("msr FPCR, %0" ::"r"(value)); /* write */ ++#endif ++} ++ ++// Macro: Get the flush zero bits from the MXCSR control and status register. ++// The flush zero may contain any of the following flags: _MM_FLUSH_ZERO_ON or ++// _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_FLUSH_ZERO_MODE ++FORCE_INLINE unsigned int _sse2neon_mm_get_flush_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_FLUSH_ZERO_ON : _MM_FLUSH_ZERO_OFF; ++} ++ ++// Macro: Get the rounding mode bits from the MXCSR control and status register. ++// The rounding mode may contain any of the following flags: _MM_ROUND_NEAREST, ++// _MM_ROUND_DOWN, _MM_ROUND_UP, _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_ROUNDING_MODE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ if (r.field.bit22) { ++ return r.field.bit23 ? _MM_ROUND_TOWARD_ZERO : _MM_ROUND_UP; ++ } else { ++ return r.field.bit23 ? _MM_ROUND_DOWN : _MM_ROUND_NEAREST; ++ } ++} ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_pi16 ++#define _mm_insert_pi16(a, b, imm) \ ++ vreinterpret_m64_s16(vset_lane_s16((b), vreinterpret_s16_m64(a), (imm))) ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps ++FORCE_INLINE __m128 _mm_load_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// ++// dst[31:0] := MEM[mem_addr+31:mem_addr] ++// dst[63:32] := MEM[mem_addr+31:mem_addr] ++// dst[95:64] := MEM[mem_addr+31:mem_addr] ++// dst[127:96] := MEM[mem_addr+31:mem_addr] ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps1 ++#define _mm_load_ps1 _mm_load1_ps ++ ++// Load a single-precision (32-bit) floating-point element from memory into the ++// lower of dst, and zero the upper 3 elements. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ss ++FORCE_INLINE __m128 _mm_load_ss(const float *p) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(*p, vdupq_n_f32(0), 0)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_ps ++FORCE_INLINE __m128 _mm_load1_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_dup_f32(p)); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// upper 2 elements of dst, and copy the lower 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pi ++FORCE_INLINE __m128 _mm_loadh_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vget_low_f32(a), vld1_f32((const float32_t *) p))); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// lower 2 elements of dst, and copy the upper 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pi ++FORCE_INLINE __m128 _mm_loadl_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vld1_f32((const float32_t *) p), vget_high_f32(a))); ++} ++ ++// Load 4 single-precision (32-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_ps ++FORCE_INLINE __m128 _mm_loadr_ps(const float *p) ++{ ++ float32x4_t v = vrev64q_f32(vld1q_f32(p)); ++ return vreinterpretq_m128_f32(vextq_f32(v, v, 2)); ++} ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_ps ++FORCE_INLINE __m128 _mm_loadu_ps(const float *p) ++{ ++ // for neon, alignment doesn't matter, so _mm_load_ps and _mm_loadu_ps are ++ // equivalent for neon ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load unaligned 16-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si16 ++FORCE_INLINE __m128i _mm_loadu_si16(const void *p) ++{ ++ return vreinterpretq_m128i_s16( ++ vsetq_lane_s16(*(const unaligned_int16_t *) p, vdupq_n_s16(0), 0)); ++} ++ ++// Load unaligned 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si64 ++FORCE_INLINE __m128i _mm_loadu_si64(const void *p) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(*(const unaligned_int64_t *) p, vdupq_n_s64(0), 0)); ++} ++ ++// Allocate size bytes of memory, aligned to the alignment specified in align, ++// and return a pointer to the allocated memory. _mm_free should be used to free ++// memory that is allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_malloc ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void *_mm_malloc(size_t size, size_t align) ++{ ++ void *ptr; ++ if (align == 1) ++ return malloc(size); ++ if (align == 2 || (sizeof(void *) == 8 && align == 4)) ++ align = sizeof(void *); ++ if (!posix_memalign(&ptr, align, size)) ++ return ptr; ++ return NULL; ++} ++#endif ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmove_si64 ++FORCE_INLINE void _mm_maskmove_si64(__m64 a, __m64 mask, char *mem_addr) ++{ ++ int8x8_t shr_mask = vshr_n_s8(vreinterpret_s8_m64(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x8_t masked = ++ vbsl_s8(vreinterpret_u8_s8(shr_mask), vreinterpret_s8_m64(a), ++ vreinterpret_s8_u64(vget_low_u64(vreinterpretq_u64_m128(b)))); ++ vst1_s8((int8_t *) mem_addr, masked); ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_maskmovq ++#define _m_maskmovq(a, mask, mem_addr) _mm_maskmove_si64(a, mask, mem_addr) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pi16 ++FORCE_INLINE __m64 _mm_max_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmax_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) maximum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ps ++FORCE_INLINE __m128 _mm_max_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcgtq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vmaxq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pu8 ++FORCE_INLINE __m64 _mm_max_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmax_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) maximum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ss ++FORCE_INLINE __m128 _mm_max_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_max_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pi16 ++FORCE_INLINE __m64 _mm_min_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmin_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) minimum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ps ++FORCE_INLINE __m128 _mm_min_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcltq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vminq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pu8 ++FORCE_INLINE __m64 _mm_min_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmin_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) minimum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ss ++FORCE_INLINE __m128 _mm_min_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_min_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the lower single-precision (32-bit) floating-point element from b to the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_ss ++FORCE_INLINE __m128 _mm_move_ss(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(vgetq_lane_f32(vreinterpretq_f32_m128(b), 0), ++ vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the upper 2 single-precision (32-bit) floating-point elements from b to ++// the lower 2 elements of dst, and copy the upper 2 elements from a to the ++// upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehl_ps ++FORCE_INLINE __m128 _mm_movehl_ps(__m128 a, __m128 b) ++{ ++#if defined(aarch64__) ++ return vreinterpretq_m128_u64( ++ vzip2q_u64(vreinterpretq_u64_m128(b), vreinterpretq_u64_m128(a))); ++#else ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(b32, a32)); ++#endif ++} ++ ++// Move the lower 2 single-precision (32-bit) floating-point elements from b to ++// the upper 2 elements of dst, and copy the lower 2 elements from a to the ++// lower 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movelh_ps ++FORCE_INLINE __m128 _mm_movelh_ps(__m128 __A, __m128 __B) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(__A)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(__B)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pi8 ++FORCE_INLINE int _mm_movemask_pi8(__m64 a) ++{ ++ uint8x8_t input = vreinterpret_u8_m64(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int8_t shift[8] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint8x8_t tmp = vshr_n_u8(input, 7); ++ return vaddv_u8(vshl_u8(tmp, vld1_s8(shift))); ++#else ++ // Refer the implementation of `_mm_movemask_epi8` ++ uint16x4_t high_bits = vreinterpret_u16_u8(vshr_n_u8(input, 7)); ++ uint32x2_t paired16 = ++ vreinterpret_u32_u16(vsra_n_u16(high_bits, high_bits, 7)); ++ uint8x8_t paired32 = ++ vreinterpret_u8_u32(vsra_n_u32(paired16, paired16, 14)); ++ return vget_lane_u8(paired32, 0) | ((int) vget_lane_u8(paired32, 4) << 4); ++#endif ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed single-precision (32-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_ps ++FORCE_INLINE int _mm_movemask_ps(__m128 a) ++{ ++ uint32x4_t input = vreinterpretq_u32_m128(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int32_t shift[4] = {0, 1, 2, 3}; ++ uint32x4_t tmp = vshrq_n_u32(input, 31); ++ return vaddvq_u32(vshlq_u32(tmp, vld1q_s32(shift))); ++#else ++ // Uses the exact same method as _mm_movemask_epi8, see that for details. ++ // Shift out everything but the sign bits with a 32-bit unsigned shift ++ // right. ++ uint64x2_t high_bits = vreinterpretq_u64_u32(vshrq_n_u32(input, 31)); ++ // Merge the two pairs together with a 64-bit unsigned shift right + add. ++ uint8x16_t paired = ++ vreinterpretq_u8_u64(vsraq_n_u64(high_bits, high_bits, 31)); ++ // Extract the result. ++ return vgetq_lane_u8(paired, 0) | (vgetq_lane_u8(paired, 8) << 2); ++#endif ++} ++ ++// Multiply packed single-precision (32-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ps ++FORCE_INLINE_OPTNONE __m128 _mm_mul_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vmulq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Multiply the lower single-precision (32-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ss ++FORCE_INLINE __m128 _mm_mul_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_mul_ps(a, b)); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_pu16 ++FORCE_INLINE __m64 _mm_mulhi_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16(vshrn_n_u32( ++ vmull_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b)), 16)); ++} ++ ++// Compute the bitwise OR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_ps ++FORCE_INLINE __m128 _mm_or_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vorrq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgb ++#define _m_pavgb(a, b) _mm_avg_pu8(a, b) ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgw ++#define _m_pavgw(a, b) _mm_avg_pu16(a, b) ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pextrw ++#define _m_pextrw(a, imm) _mm_extract_pi16(a, imm) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_pinsrw ++#define _m_pinsrw(a, i, imm) _mm_insert_pi16(a, i, imm) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxsw ++#define _m_pmaxsw(a, b) _mm_max_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxub ++#define _m_pmaxub(a, b) _mm_max_pu8(a, b) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminsw ++#define _m_pminsw(a, b) _mm_min_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminub ++#define _m_pminub(a, b) _mm_min_pu8(a, b) ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmovmskb ++#define _m_pmovmskb(a) _mm_movemask_pi8(a) ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmulhuw ++#define _m_pmulhuw(a, b) _mm_mulhi_pu16(a, b) ++ ++// Fetch the line of data from memory that contains address p to a location in ++// the cache hierarchy specified by the locality hint i. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_prefetch ++FORCE_INLINE void _mm_prefetch(char const *p, int i) ++{ ++ (void) i; ++#if defined(_MSC_VER) ++ switch (i) { ++ case _MM_HINT_NTA: ++ __prefetch2(p, 1); ++ break; ++ case _MM_HINT_T0: ++ __prefetch2(p, 0); ++ break; ++ case _MM_HINT_T1: ++ __prefetch2(p, 2); ++ break; ++ case _MM_HINT_T2: ++ __prefetch2(p, 4); ++ break; ++ } ++#else ++ switch (i) { ++ case _MM_HINT_NTA: ++ __builtin_prefetch(p, 0, 0); ++ break; ++ case _MM_HINT_T0: ++ __builtin_prefetch(p, 0, 3); ++ break; ++ case _MM_HINT_T1: ++ __builtin_prefetch(p, 0, 2); ++ break; ++ case _MM_HINT_T2: ++ __builtin_prefetch(p, 0, 1); ++ break; ++ } ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_psadbw ++#define _m_psadbw(a, b) _mm_sad_pu8(a, b) ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pshufw ++#define _m_pshufw(a, imm) _mm_shuffle_pi16(a, imm) ++ ++// Compute the approximate reciprocal of packed single-precision (32-bit) ++// floating-point elements in a, and store the results in dst. The maximum ++// relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ps ++FORCE_INLINE __m128 _mm_rcp_ps(__m128 in) ++{ ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(in)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#if SSE2NEON_PRECISE_DIV ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#endif ++ return vreinterpretq_m128_f32(recip); ++} ++ ++// Compute the approximate reciprocal of the lower single-precision (32-bit) ++// floating-point element in a, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ss ++FORCE_INLINE __m128 _mm_rcp_ss(__m128 a) ++{ ++ return _mm_move_ss(a, _mm_rcp_ps(a)); ++} ++ ++// Compute the approximate reciprocal square root of packed single-precision ++// (32-bit) floating-point elements in a, and store the results in dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ps ++FORCE_INLINE __m128 _mm_rsqrt_ps(__m128 in) ++{ ++ float32x4_t out = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Generate masks for detecting whether input has any 0.0f/-0.0f ++ // (which becomes positive/negative infinity by IEEE-754 arithmetic rules). ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t neg_inf = vdupq_n_u32(0xFF800000); ++ const uint32x4_t has_pos_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(out)); ++ const uint32x4_t has_neg_zero = ++ vceqq_u32(neg_inf, vreinterpretq_u32_f32(out)); ++ ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#if SSE2NEON_PRECISE_SQRT ++ // Additional Netwon-Raphson iteration for accuracy ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#endif ++ ++ // Set output vector element to infinity/negative-infinity if ++ // the corresponding input vector element is 0.0f/-0.0f. ++ out = vbslq_f32(has_pos_zero, (float32x4_t) pos_inf, out); ++ out = vbslq_f32(has_neg_zero, (float32x4_t) neg_inf, out); ++ ++ return vreinterpretq_m128_f32(out); ++} ++ ++// Compute the approximate reciprocal square root of the lower single-precision ++// (32-bit) floating-point element in a, store the result in the lower element ++// of dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ss ++FORCE_INLINE __m128 _mm_rsqrt_ss(__m128 in) ++{ ++ return vsetq_lane_f32(vgetq_lane_f32(_mm_rsqrt_ps(in), 0), in, 0); ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_pu8 ++FORCE_INLINE __m64 _mm_sad_pu8(__m64 a, __m64 b) ++{ ++ uint64x1_t t = vpaddl_u32(vpaddl_u16( ++ vpaddl_u8(vabd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))))); ++ return vreinterpret_m64_u16( ++ vset_lane_u16((int) vget_lane_u64(t, 0), vdup_n_u16(0), 0)); ++} ++ ++// Macro: Set the flush zero bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The flush zero may contain any of the ++// following flags: _MM_FLUSH_ZERO_ON or _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_FLUSH_ZERO_MODE ++FORCE_INLINE void _sse2neon_mm_set_flush_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_FLUSH_ZERO_MASK) == _MM_FLUSH_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps ++FORCE_INLINE __m128 _mm_set_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {x, y, z, w}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps1 ++FORCE_INLINE __m128 _mm_set_ps1(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Macro: Set the rounding mode bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The rounding mode may contain any of ++// the following flags: _MM_ROUND_NEAREST, _MM_ROUND_DOWN, _MM_ROUND_UP, ++// _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_ROUNDING_MODE ++FORCE_INLINE void _MM_SET_ROUNDING_MODE(int rounding) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ switch (rounding) { ++ case _MM_ROUND_TOWARD_ZERO: ++ r.field.bit22 = 1; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_DOWN: ++ r.field.bit22 = 0; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_UP: ++ r.field.bit22 = 1; ++ r.field.bit23 = 0; ++ break; ++ default: //_MM_ROUND_NEAREST ++ r.field.bit22 = 0; ++ r.field.bit23 = 0; ++ } ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Copy single-precision (32-bit) floating-point element a to the lower element ++// of dst, and zero the upper 3 elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ss ++FORCE_INLINE __m128 _mm_set_ss(float a) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(a, vdupq_n_f32(0), 0)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_ps ++FORCE_INLINE __m128 _mm_set1_ps(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Set the MXCSR control and status register with the value in unsigned 32-bit ++// integer a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setcsr ++// FIXME: _mm_setcsr() implementation supports changing the rounding mode only. ++FORCE_INLINE void _mm_setcsr(unsigned int a) ++{ ++ _MM_SET_ROUNDING_MODE(a); ++} ++ ++// Get the unsigned 32-bit value of the MXCSR control and status register. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_getcsr ++// FIXME: _mm_getcsr() implementation supports reading the rounding mode only. ++FORCE_INLINE unsigned int _mm_getcsr(void) ++{ ++ return _MM_GET_ROUNDING_MODE(); ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_ps ++FORCE_INLINE __m128 _mm_setr_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {w, z, y, x}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Return vector of type __m128 with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_ps ++FORCE_INLINE __m128 _mm_setzero_ps(void) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(0)); ++} ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi16 ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pi16(a, imm) \ ++ vreinterpret_m64_s16(vshuffle_s16( \ ++ vreinterpret_s16_m64(a), vreinterpret_s16_m64(a), (imm & 0x3), \ ++ ((imm >> 2) & 0x3), ((imm >> 4) & 0x3), ((imm >> 6) & 0x3))) ++#else ++#define _mm_shuffle_pi16(a, imm) \ ++ _sse2neon_define1( \ ++ __m64, a, int16x4_t ret; \ ++ ret = vmov_n_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), (imm) & (0x3))); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpret_m64_s16(ret));) ++#endif ++ ++// Perform a serializing operation on all store-to-memory instructions that were ++// issued prior to this instruction. Guarantees that every store instruction ++// that precedes, in program order, is globally visible before any store ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sfence ++FORCE_INLINE void _mm_sfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory and store-to-memory ++// instructions that were issued prior to this instruction. Guarantees that ++// every memory access that precedes, in program order, the memory fence ++// instruction is globally visible before any memory instruction which follows ++// the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mfence ++FORCE_INLINE void _mm_mfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory instructions that ++// were issued prior to this instruction. Guarantees that every load instruction ++// that precedes, in program order, is globally visible before any load ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lfence ++FORCE_INLINE void _mm_lfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// FORCE_INLINE __m128 _mm_shuffle_ps(__m128 a, __m128 b, __constrange(0,255) ++// int imm) ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_ps(a, b, imm) \ ++ __extension__({ \ ++ float32x4_t _input1 = vreinterpretq_f32_m128(a); \ ++ float32x4_t _input2 = vreinterpretq_f32_m128(b); \ ++ float32x4_t _shuf = \ ++ vshuffleq_s32(_input1, _input2, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ (((imm) >> 4) & 0x3) + 4, (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128_f32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_ps(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128, a, b, __m128 ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_1032(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_ps_2301(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_ps_0321(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_ps_2103(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_movelh_ps(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_1001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_ps_0101(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 1, 0): \ ++ ret = _mm_shuffle_ps_3210(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 1, 1): \ ++ ret = _mm_shuffle_ps_0011(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 2, 2): \ ++ ret = _mm_shuffle_ps_0022(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 0, 0): \ ++ ret = _mm_shuffle_ps_2200(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 0, 2): \ ++ ret = _mm_shuffle_ps_3202(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 3, 2): \ ++ ret = _mm_movehl_ps(_b, _a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 3, 3): \ ++ ret = _mm_shuffle_ps_1133(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 1, 0): \ ++ ret = _mm_shuffle_ps_2010(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_2001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_2032(_a, _b); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_ps_default(_a, _b, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Compute the square root of packed single-precision (32-bit) floating-point ++// elements in a, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise square root intrinsic, we implement ++// square root by multiplying input in with its reciprocal square root before ++// using the Newton-Raphson method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ps ++FORCE_INLINE __m128 _mm_sqrt_ps(__m128 in) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) && !SSE2NEON_PRECISE_SQRT ++ return vreinterpretq_m128_f32(vsqrtq_f32(vreinterpretq_f32_m128(in))); ++#else ++ float32x4_t recip = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Test for vrsqrteq_f32(0) -> positive infinity case. ++ // Change to zero, so that s * 1/sqrt(s) result is zero too. ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t div_by_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(recip)); ++ recip = vreinterpretq_f32_u32( ++ vandq_u32(vmvnq_u32(div_by_zero), vreinterpretq_u32_f32(recip))); ++ ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ ++ // sqrt(s) = s * 1/sqrt(s) ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(in), recip)); ++#endif ++} ++ ++// Compute the square root of the lower single-precision (32-bit) floating-point ++// element in a, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ss ++FORCE_INLINE __m128 _mm_sqrt_ss(__m128 in) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_sqrt_ps(in)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(in), 0)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps ++FORCE_INLINE void _mm_store_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps1 ++FORCE_INLINE void _mm_store_ps1(float *p, __m128 a) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ vst1q_f32(p, vdupq_n_f32(a0)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ss ++FORCE_INLINE void _mm_store_ss(float *p, __m128 a) ++{ ++ vst1q_lane_f32(p, vreinterpretq_f32_m128(a), 0); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store1_ps ++#define _mm_store1_ps _mm_store_ps1 ++ ++// Store the upper 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pi ++FORCE_INLINE void _mm_storeh_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_high_f32(a)); ++} ++ ++// Store the lower 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pi ++FORCE_INLINE void _mm_storel_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_low_f32(a)); ++} ++ ++// Store 4 single-precision (32-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_ps ++FORCE_INLINE void _mm_storer_ps(float *p, __m128 a) ++{ ++ float32x4_t tmp = vrev64q_f32(vreinterpretq_f32_m128(a)); ++ float32x4_t rev = vextq_f32(tmp, tmp, 2); ++ vst1q_f32(p, rev); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_ps ++FORCE_INLINE void _mm_storeu_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Stores 16-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si16 ++FORCE_INLINE void _mm_storeu_si16(void *p, __m128i a) ++{ ++ vst1q_lane_s16((int16_t *) p, vreinterpretq_s16_m128i(a), 0); ++} ++ ++// Stores 64-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si64 ++FORCE_INLINE void _mm_storeu_si64(void *p, __m128i a) ++{ ++ vst1q_lane_s64((int64_t *) p, vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Store 64-bits of integer data from a into memory using a non-temporal memory ++// hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pi ++FORCE_INLINE void _mm_stream_pi(__m64 *p, __m64 a) ++{ ++ vst1_s64((int64_t *) p, vreinterpret_s64_m64(a)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating- ++// point elements) from a into memory using a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_ps ++FORCE_INLINE void _mm_stream_ps(float *p, __m128 a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (float32x4_t *) p); ++#else ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++#endif ++} ++ ++// Subtract packed single-precision (32-bit) floating-point elements in b from ++// packed single-precision (32-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ps ++FORCE_INLINE __m128 _mm_sub_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Subtract the lower single-precision (32-bit) floating-point element in b from ++// the lower single-precision (32-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper 3 packed elements from ++// a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ss ++FORCE_INLINE __m128 _mm_sub_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_sub_ps(a, b)); ++} ++ ++// Macro: Transpose the 4x4 matrix formed by the 4 rows of single-precision ++// (32-bit) floating-point elements in row0, row1, row2, and row3, and store the ++// transposed matrix in these vectors (row0 now contains column 0, etc.). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=MM_TRANSPOSE4_PS ++#define _MM_TRANSPOSE4_PS(row0, row1, row2, row3) \ ++ do { \ ++ float32x4x2_t ROW01 = vtrnq_f32(row0, row1); \ ++ float32x4x2_t ROW23 = vtrnq_f32(row2, row3); \ ++ row0 = vcombine_f32(vget_low_f32(ROW01.val[0]), \ ++ vget_low_f32(ROW23.val[0])); \ ++ row1 = vcombine_f32(vget_low_f32(ROW01.val[1]), \ ++ vget_low_f32(ROW23.val[1])); \ ++ row2 = vcombine_f32(vget_high_f32(ROW01.val[0]), \ ++ vget_high_f32(ROW23.val[0])); \ ++ row3 = vcombine_f32(vget_high_f32(ROW01.val[1]), \ ++ vget_high_f32(ROW23.val[1])); \ ++ } while (0) ++ ++// according to the documentation, these intrinsics behave the same as the ++// non-'u' versions. We'll just alias them here. ++#define _mm_ucomieq_ss _mm_comieq_ss ++#define _mm_ucomige_ss _mm_comige_ss ++#define _mm_ucomigt_ss _mm_comigt_ss ++#define _mm_ucomile_ss _mm_comile_ss ++#define _mm_ucomilt_ss _mm_comilt_ss ++#define _mm_ucomineq_ss _mm_comineq_ss ++ ++// Return vector of type __m128i with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_undefined_si128 ++FORCE_INLINE __m128i _mm_undefined_si128(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128i a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_si128(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Return vector of type __m128 with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_ps ++FORCE_INLINE __m128 _mm_undefined_ps(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128 a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_ps(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the high half a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_ps ++FORCE_INLINE __m128 _mm_unpackhi_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_ps ++FORCE_INLINE __m128 _mm_unpacklo_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Compute the bitwise XOR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_ps ++FORCE_INLINE __m128 _mm_xor_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ veorq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++/* SSE2 */ ++ ++// Add packed 16-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi16 ++FORCE_INLINE __m128i _mm_add_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed 32-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi32 ++FORCE_INLINE __m128i _mm_add_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vaddq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Add packed 64-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi64 ++FORCE_INLINE __m128i _mm_add_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vaddq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Add packed 8-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi8 ++FORCE_INLINE __m128i _mm_add_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed double-precision (64-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_pd ++FORCE_INLINE __m128d _mm_add_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1] + db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add the lower double-precision (64-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper element from ++// a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_sd ++FORCE_INLINE __m128d _mm_add_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_add_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add 64-bit integers a and b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_si64 ++FORCE_INLINE __m64 _mm_add_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vadd_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Add packed signed 16-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi16 ++FORCE_INLINE __m128i _mm_adds_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed signed 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi8 ++FORCE_INLINE __m128i _mm_adds_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed unsigned 16-bit integers in a and b using saturation, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu16 ++FORCE_INLINE __m128i _mm_adds_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqaddq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Add packed unsigned 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu8 ++FORCE_INLINE __m128i _mm_adds_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compute the bitwise AND of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_pd ++FORCE_INLINE __m128d _mm_and_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vandq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_si128 ++FORCE_INLINE __m128i _mm_and_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vandq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compute the bitwise NOT of packed double-precision (64-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_pd ++FORCE_INLINE __m128d _mm_andnot_pd(__m128d a, __m128d b) ++{ ++ // *NOTE* argument swap ++ return vreinterpretq_m128d_s64( ++ vbicq_s64(vreinterpretq_s64_m128d(b), vreinterpretq_s64_m128d(a))); ++} ++ ++// Compute the bitwise NOT of 128 bits (representing integer data) in a and then ++// AND with b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_si128 ++FORCE_INLINE __m128i _mm_andnot_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vbicq_s32(vreinterpretq_s32_m128i(b), ++ vreinterpretq_s32_m128i(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu16 ++FORCE_INLINE __m128i _mm_avg_epu16(__m128i a, __m128i b) ++{ ++ return (__m128i) vrhaddq_u16(vreinterpretq_u16_m128i(a), ++ vreinterpretq_u16_m128i(b)); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu8 ++FORCE_INLINE __m128i _mm_avg_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vrhaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bslli_si128 ++#define _mm_bslli_si128(a, imm) _mm_slli_si128(a, imm) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bsrli_si128 ++#define _mm_bsrli_si128(a, imm) _mm_srli_si128(a, imm) ++ ++// Cast vector of type __m128d to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_ps ++FORCE_INLINE __m128 _mm_castpd_ps(__m128d a) ++{ ++ return vreinterpretq_m128_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128d to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_si128 ++FORCE_INLINE __m128i _mm_castpd_si128(__m128d a) ++{ ++ return vreinterpretq_m128i_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128 to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_pd ++FORCE_INLINE __m128d _mm_castps_pd(__m128 a) ++{ ++ return vreinterpretq_m128d_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128 to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_si128 ++FORCE_INLINE __m128i _mm_castps_si128(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128i to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_pd ++FORCE_INLINE __m128d _mm_castsi128_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vreinterpretq_f64_m128i(a)); ++#else ++ return vreinterpretq_m128d_f32(vreinterpretq_f32_m128i(a)); ++#endif ++} ++ ++// Cast vector of type __m128i to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_ps ++FORCE_INLINE __m128 _mm_castsi128_ps(__m128i a) ++{ ++ return vreinterpretq_m128_s32(vreinterpretq_s32_m128i(a)); ++} ++ ++// Invalidate and flush the cache line that contains p from all levels of the ++// cache hierarchy. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clflush ++#if defined(__APPLE__) ++#include ++#endif ++FORCE_INLINE void _mm_clflush(void const *p) ++{ ++ (void) p; ++ ++ /* sys_icache_invalidate is supported since macOS 10.5. ++ * However, it does not work on non-jailbroken iOS devices, although the ++ * compilation is successful. ++ */ ++#if defined(__APPLE__) ++ sys_icache_invalidate((void *) (uintptr_t) p, SSE2NEON_CACHELINE_SIZE); ++#elif defined(__GNUC__) || defined(__clang__) ++ uintptr_t ptr = (uintptr_t) p; ++ __builtin___clear_cache((char *) ptr, ++ (char *) ptr + SSE2NEON_CACHELINE_SIZE); ++#elif (_MSC_VER) && SSE2NEON_INCLUDE_WINDOWS_H ++ FlushInstructionCache(GetCurrentProcess(), p, SSE2NEON_CACHELINE_SIZE); ++#endif ++} ++ ++// Compare packed 16-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi16 ++FORCE_INLINE __m128i _mm_cmpeq_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vceqq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed 32-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi32 ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vceqq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed 8-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi8 ++FORCE_INLINE __m128i _mm_cmpeq_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vceqq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_pd ++FORCE_INLINE __m128d _mm_cmpeq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_sd ++FORCE_INLINE __m128d _mm_cmpeq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpeq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_pd ++FORCE_INLINE __m128d _mm_cmpge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) >= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_sd ++FORCE_INLINE __m128d _mm_cmpge_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpge_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi16 ++FORCE_INLINE __m128i _mm_cmpgt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcgtq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi32 ++FORCE_INLINE __m128i _mm_cmpgt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcgtq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi8 ++FORCE_INLINE __m128i _mm_cmpgt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcgtq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_pd ++FORCE_INLINE __m128d _mm_cmpgt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_sd ++FORCE_INLINE __m128d _mm_cmpgt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpgt_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_pd ++FORCE_INLINE __m128d _mm_cmple_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) <= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_sd ++FORCE_INLINE __m128d _mm_cmple_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmple_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtw instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi16 ++FORCE_INLINE __m128i _mm_cmplt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcltq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtd instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi32 ++FORCE_INLINE __m128i _mm_cmplt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcltq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtb instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi8 ++FORCE_INLINE __m128i _mm_cmplt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcltq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_pd ++FORCE_INLINE __m128d _mm_cmplt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_sd ++FORCE_INLINE __m128d _mm_cmplt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmplt_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_pd ++FORCE_INLINE __m128d _mm_cmpneq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_s32(vmvnq_s32(vreinterpretq_s32_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vmvnq_u32(vandq_u32(cmp, swapped))); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_sd ++FORCE_INLINE __m128d _mm_cmpneq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpneq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_pd ++FORCE_INLINE __m128d _mm_cmpnge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) >= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) >= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_sd ++FORCE_INLINE __m128d _mm_cmpnge_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnge_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_cmpngt_pd ++FORCE_INLINE __m128d _mm_cmpngt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) > (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) > (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_sd ++FORCE_INLINE __m128d _mm_cmpngt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpngt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_pd ++FORCE_INLINE __m128d _mm_cmpnle_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) <= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) <= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_sd ++FORCE_INLINE __m128d _mm_cmpnle_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnle_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_pd ++FORCE_INLINE __m128d _mm_cmpnlt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) < (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) < (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_sd ++FORCE_INLINE __m128d _mm_cmpnlt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnlt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_pd ++FORCE_INLINE __m128d _mm_cmpord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Excluding NaNs, any two floating point numbers can be compared. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_u64(vandq_u64(not_nan_a, not_nan_b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_sd ++FORCE_INLINE __m128d _mm_cmpord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_pd ++FORCE_INLINE __m128d _mm_cmpunord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Two NaNs are not equal in comparison operation. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_s32( ++ vmvnq_s32(vreinterpretq_s32_u64(vandq_u64(not_nan_a, not_nan_b)))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_sd ++FORCE_INLINE __m128d _mm_cmpunord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpunord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_sd ++FORCE_INLINE int _mm_comige_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgeq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 >= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_sd ++FORCE_INLINE int _mm_comigt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgtq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 > *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_sd ++FORCE_INLINE int _mm_comile_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcleq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 <= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_sd ++FORCE_INLINE int _mm_comilt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcltq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 < *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_sd ++FORCE_INLINE int _mm_comieq_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vceqq_f64(a, b), 0) & 0x1; ++#else ++ uint32x4_t a_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(a)); ++ uint32x4_t b_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(b), vreinterpretq_u32_m128d(b)); ++ uint32x4_t a_and_b_not_nan = vandq_u32(a_not_nan, b_not_nan); ++ uint32x4_t a_eq_b = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint64x2_t and_results = vandq_u64(vreinterpretq_u64_u32(a_and_b_not_nan), ++ vreinterpretq_u64_u32(a_eq_b)); ++ return vgetq_lane_u64(and_results, 0) & 0x1; ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_sd ++FORCE_INLINE int _mm_comineq_sd(__m128d a, __m128d b) ++{ ++ return !_mm_comieq_sd(a, b); ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_pd ++FORCE_INLINE __m128d _mm_cvtepi32_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a))))); ++#else ++ double a0 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++ double a1 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_ps ++FORCE_INLINE __m128 _mm_cvtepi32_ps(__m128i a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_epi32 ++FORCE_INLINE_OPTNONE __m128i _mm_cvtpd_epi32(__m128d a) ++{ ++// vrnd32xq_f64 not supported on clang ++#if defined(__ARM_FEATURE_FRINT) && !defined(__clang__) ++ float64x2_t rounded = vrnd32xq_f64(vreinterpretq_f64_m128d(a)); ++ int64x2_t integers = vcvtq_s64_f64(rounded); ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vmovn_s64(integers), vdup_n_s32(0))); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) d1, (int32_t) d0); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_pi32 ++FORCE_INLINE_OPTNONE __m64 _mm_cvtpd_pi32(__m128d a) ++{ ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) d0, (int32_t) d1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed single-precision (32-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_ps ++FORCE_INLINE __m128 _mm_cvtpd_ps(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float32x2_t tmp = vcvt_f32_f64(vreinterpretq_f64_m128d(a)); ++ return vreinterpretq_m128_f32(vcombine_f32(tmp, vdup_n_f32(0))); ++#else ++ float a0 = (float) ((double *) &a)[0]; ++ float a1 = (float) ((double *) &a)[1]; ++ return _mm_set_ps(0, 0, a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_pd ++FORCE_INLINE __m128d _mm_cvtpi32_pd(__m64 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vreinterpret_s32_m64(a)))); ++#else ++ double a0 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 0); ++ double a1 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_epi32 ++// *NOTE*. The default rounding mode on SSE is 'round to even', which ARMv7-A ++// does not support! It is supported on ARMv8-A however. ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128 a) ++{ ++#if defined(__ARM_FEATURE_FRINT) ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vrnd32xq_f32(a))); ++#elif (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: ++ return vreinterpretq_m128i_s32(vcvtnq_s32_f32(a)); ++ case _MM_ROUND_DOWN: ++ return vreinterpretq_m128i_s32(vcvtmq_s32_f32(a)); ++ case _MM_ROUND_UP: ++ return vreinterpretq_m128i_s32(vcvtpq_s32_f32(a)); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(a)); ++ } ++#else ++ float *f = (float *) &a; ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128i_s32( ++ vbslq_s32(is_delta_half, r_even, r_normal)); ++ } ++ case _MM_ROUND_DOWN: ++ return _mm_set_epi32(floorf(f[3]), floorf(f[2]), floorf(f[1]), ++ floorf(f[0])); ++ case _MM_ROUND_UP: ++ return _mm_set_epi32(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ++ ceilf(f[0])); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return _mm_set_epi32((int32_t) f[3], (int32_t) f[2], (int32_t) f[1], ++ (int32_t) f[0]); ++ } ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed double-precision (64-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pd ++FORCE_INLINE __m128d _mm_cvtps_pd(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvt_f64_f32(vget_low_f32(vreinterpretq_f32_m128(a)))); ++#else ++ double a0 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ double a1 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Copy the lower double-precision (64-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_f64 ++FORCE_INLINE double _mm_cvtsd_f64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (double) vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0); ++#else ++ return ((double *) &a)[0]; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si32 ++FORCE_INLINE int32_t _mm_cvtsd_si32(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int32_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int32_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64 ++FORCE_INLINE int64_t _mm_cvtsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int64_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64x ++#define _mm_cvtsd_si64x _mm_cvtsd_si64 ++ ++// Convert the lower double-precision (64-bit) floating-point element in b to a ++// single-precision (32-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_ss ++FORCE_INLINE __m128 _mm_cvtsd_ss(__m128 a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32(vsetq_lane_f32( ++ vget_lane_f32(vcvt_f32_f64(vreinterpretq_f64_m128d(b)), 0), ++ vreinterpretq_f32_m128(a), 0)); ++#else ++ return vreinterpretq_m128_f32(vsetq_lane_f32((float) ((double *) &b)[0], ++ vreinterpretq_f32_m128(a), 0)); ++#endif ++} ++ ++// Copy the lower 32-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si32 ++FORCE_INLINE int _mm_cvtsi128_si32(__m128i a) ++{ ++ return vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64 ++FORCE_INLINE int64_t _mm_cvtsi128_si64(__m128i a) ++{ ++ return vgetq_lane_s64(vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Convert the signed 32-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_sd ++FORCE_INLINE __m128d _mm_cvtsi32_sd(__m128d a, int32_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Copy 32-bit integer a to the lower elements of dst, and zero the upper ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_si128 ++FORCE_INLINE __m128i _mm_cvtsi32_si128(int a) ++{ ++ return vreinterpretq_m128i_s32(vsetq_lane_s32(a, vdupq_n_s32(0), 0)); ++} ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_sd ++FORCE_INLINE __m128d _mm_cvtsi64_sd(__m128d a, int64_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_si128 ++FORCE_INLINE __m128i _mm_cvtsi64_si128(int64_t a) ++{ ++ return vreinterpretq_m128i_s64(vsetq_lane_s64(a, vdupq_n_s64(0), 0)); ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_si128 ++#define _mm_cvtsi64x_si128(a) _mm_cvtsi64_si128(a) ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_sd ++#define _mm_cvtsi64x_sd(a, b) _mm_cvtsi64_sd(a, b) ++ ++// Convert the lower single-precision (32-bit) floating-point element in b to a ++// double-precision (64-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_sd ++FORCE_INLINE __m128d _mm_cvtss_sd(__m128d a, __m128 b) ++{ ++ double d = (double) vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(d, vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &d, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_epi32 ++FORCE_INLINE __m128i _mm_cvttpd_epi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) a1, (int32_t) a0); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_pi32 ++FORCE_INLINE __m64 _mm_cvttpd_pi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) a0, (int32_t) a1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_epi32 ++FORCE_INLINE __m128i _mm_cvttps_epi32(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a))); ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si32 ++FORCE_INLINE int32_t _mm_cvttsd_si32(__m128d a) ++{ ++ double ret = *((double *) &a); ++ return (int32_t) ret; ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64 ++FORCE_INLINE int64_t _mm_cvttsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_s64(vcvtq_s64_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ double ret = *((double *) &a); ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64x ++#define _mm_cvttsd_si64x(a) _mm_cvttsd_si64(a) ++ ++// Divide packed double-precision (64-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_pd ++FORCE_INLINE __m128d _mm_div_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] / db[0]; ++ c[1] = da[1] / db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Divide the lower double-precision (64-bit) floating-point element in a by the ++// lower double-precision (64-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper element from a to the upper ++// element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_sd ++FORCE_INLINE __m128d _mm_div_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t tmp = ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1), tmp, 1)); ++#else ++ return _mm_move_sd(a, _mm_div_pd(a, b)); ++#endif ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi16 ++// FORCE_INLINE int _mm_extract_epi16(__m128i a, __constrange(0,8) int imm) ++#define _mm_extract_epi16(a, imm) \ ++ vgetq_lane_u16(vreinterpretq_u16_m128i(a), (imm)) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi16 ++// FORCE_INLINE __m128i _mm_insert_epi16(__m128i a, int b, ++// __constrange(0,8) int imm) ++#define _mm_insert_epi16(a, b, imm) \ ++ vreinterpretq_m128i_s16( \ ++ vsetq_lane_s16((b), vreinterpretq_s16_m128i(a), (imm))) ++ ++// Load 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd ++FORCE_INLINE __m128d _mm_load_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64(p)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], fp[2], fp[3]}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd1 ++#define _mm_load_pd1 _mm_load1_pd ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower of dst, and zero the upper element. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_sd ++FORCE_INLINE __m128d _mm_load_sd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(*p, vdupq_n_f64(0), 0)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], 0, 0}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_si128 ++FORCE_INLINE __m128i _mm_load_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const int32_t *) p)); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_pd ++FORCE_INLINE __m128d _mm_load1_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_dup_f64(p)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(const int64_t *) p)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// upper element of dst, and copy the lower element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pd ++FORCE_INLINE __m128d _mm_loadh_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vget_low_f64(vreinterpretq_f64_m128d(a)), vld1_f64(p))); ++#else ++ return vreinterpretq_m128d_f32(vcombine_f32( ++ vget_low_f32(vreinterpretq_f32_m128d(a)), vld1_f32((const float *) p))); ++#endif ++} ++ ++// Load 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_epi64 ++FORCE_INLINE __m128i _mm_loadl_epi64(__m128i const *p) ++{ ++ /* Load the lower 64 bits of the value pointed to by p into the ++ * lower 64 bits of the result, zeroing the upper 64 bits of the result. ++ */ ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vld1_s32((int32_t const *) p), vcreate_s32(0))); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower element of dst, and copy the upper element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pd ++FORCE_INLINE __m128d _mm_loadl_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vld1_f64(p), vget_high_f64(vreinterpretq_f64_m128d(a)))); ++#else ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vld1_f32((const float *) p), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++#endif ++} ++ ++// Load 2 double-precision (64-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_pd ++FORCE_INLINE __m128d _mm_loadr_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t v = vld1q_f64(p); ++ return vreinterpretq_m128d_f64(vextq_f64(v, v, 1)); ++#else ++ int64x2_t v = vld1q_s64((const int64_t *) p); ++ return vreinterpretq_m128d_s64(vextq_s64(v, v, 1)); ++#endif ++} ++ ++// Loads two double-precision from unaligned memory, floating-point values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_pd ++FORCE_INLINE __m128d _mm_loadu_pd(const double *p) ++{ ++ return _mm_load_pd(p); ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si128 ++FORCE_INLINE __m128i _mm_loadu_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const unaligned_int32_t *) p)); ++} ++ ++// Load unaligned 32-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si32 ++FORCE_INLINE __m128i _mm_loadu_si32(const void *p) ++{ ++ return vreinterpretq_m128i_s32( ++ vsetq_lane_s32(*(const unaligned_int32_t *) p, vdupq_n_s32(0), 0)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Horizontally add adjacent pairs of intermediate ++// 32-bit integers, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_madd_epi16 ++FORCE_INLINE __m128i _mm_madd_epi16(__m128i a, __m128i b) ++{ ++ int32x4_t low = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t high = ++ vmull_high_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b)); ++ ++ return vreinterpretq_m128i_s32(vpaddq_s32(low, high)); ++#else ++ int32x4_t high = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ int32x2_t low_sum = vpadd_s32(vget_low_s32(low), vget_high_s32(low)); ++ int32x2_t high_sum = vpadd_s32(vget_low_s32(high), vget_high_s32(high)); ++ ++ return vreinterpretq_m128i_s32(vcombine_s32(low_sum, high_sum)); ++#endif ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. mem_addr does not need to be aligned ++// on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmoveu_si128 ++FORCE_INLINE void _mm_maskmoveu_si128(__m128i a, __m128i mask, char *mem_addr) ++{ ++ int8x16_t shr_mask = vshrq_n_s8(vreinterpretq_s8_m128i(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x16_t masked = ++ vbslq_s8(vreinterpretq_u8_s8(shr_mask), vreinterpretq_s8_m128i(a), ++ vreinterpretq_s8_m128(b)); ++ vst1q_s8((int8_t *) mem_addr, masked); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi16 ++FORCE_INLINE __m128i _mm_max_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmaxq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu8 ++FORCE_INLINE __m128i _mm_max_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vmaxq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pd ++FORCE_INLINE __m128d _mm_max_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcgtq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vmaxq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? a1 : b1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_sd ++FORCE_INLINE __m128d _mm_max_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_max_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] > db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi16 ++FORCE_INLINE __m128i _mm_min_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vminq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu8 ++FORCE_INLINE __m128i _mm_min_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vminq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pd ++FORCE_INLINE __m128d _mm_min_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcltq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vminq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? a1 : b1; ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_sd ++FORCE_INLINE __m128d _mm_min_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_min_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] < db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to the lower element of dst, and zero the ++// upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_epi64 ++FORCE_INLINE __m128i _mm_move_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(0, vreinterpretq_s64_m128i(a), 1)); ++} ++ ++// Move the lower double-precision (64-bit) floating-point element from b to the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_sd ++FORCE_INLINE __m128d _mm_move_sd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vget_low_f32(vreinterpretq_f32_m128d(b)), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_epi8 ++FORCE_INLINE int _mm_movemask_epi8(__m128i a) ++{ ++ // Use increasingly wide shifts+adds to collect the sign bits ++ // together. ++ // Since the widening shifts would be rather confusing to follow in little ++ // endian, everything will be illustrated in big endian order instead. This ++ // has a different result - the bits would actually be reversed on a big ++ // endian machine. ++ ++ // Starting input (only half the elements are shown): ++ // 89 ff 1d c0 00 10 99 33 ++ uint8x16_t input = vreinterpretq_u8_m128i(a); ++ ++ // Shift out everything but the sign bits with an unsigned shift right. ++ // ++ // Bytes of the vector:: ++ // 89 ff 1d c0 00 10 99 33 ++ // \ \ \ \ \ \ \ \ high_bits = (uint16x4_t)(input >> 7) ++ // | | | | | | | | ++ // 01 01 00 01 00 00 01 00 ++ // ++ // Bits of first important lane(s): ++ // 10001001 (89) ++ // \______ ++ // | ++ // 00000001 (01) ++ uint16x8_t high_bits = vreinterpretq_u16_u8(vshrq_n_u8(input, 7)); ++ ++ // Merge the even lanes together with a 16-bit unsigned shift right + add. ++ // 'xx' represents garbage data which will be ignored in the final result. ++ // In the important bytes, the add functions like a binary OR. ++ // ++ // 01 01 00 01 00 00 01 00 ++ // \_ | \_ | \_ | \_ | paired16 = (uint32x4_t)(input + (input >> 7)) ++ // \| \| \| \| ++ // xx 03 xx 01 xx 00 xx 02 ++ // ++ // 00000001 00000001 (01 01) ++ // \_______ | ++ // \| ++ // xxxxxxxx xxxxxx11 (xx 03) ++ uint32x4_t paired16 = ++ vreinterpretq_u32_u16(vsraq_n_u16(high_bits, high_bits, 7)); ++ ++ // Repeat with a wider 32-bit shift + add. ++ // xx 03 xx 01 xx 00 xx 02 ++ // \____ | \____ | paired32 = (uint64x1_t)(paired16 + (paired16 >> ++ // 14)) ++ // \| \| ++ // xx xx xx 0d xx xx xx 02 ++ // ++ // 00000011 00000001 (03 01) ++ // \\_____ || ++ // '----.\|| ++ // xxxxxxxx xxxx1101 (xx 0d) ++ uint64x2_t paired32 = ++ vreinterpretq_u64_u32(vsraq_n_u32(paired16, paired16, 14)); ++ ++ // Last, an even wider 64-bit shift + add to get our result in the low 8 bit ++ // lanes. xx xx xx 0d xx xx xx 02 ++ // \_________ | paired64 = (uint8x8_t)(paired32 + (paired32 >> ++ // 28)) ++ // \| ++ // xx xx xx xx xx xx xx d2 ++ // ++ // 00001101 00000010 (0d 02) ++ // \ \___ | | ++ // '---. \| | ++ // xxxxxxxx 11010010 (xx d2) ++ uint8x16_t paired64 = ++ vreinterpretq_u8_u64(vsraq_n_u64(paired32, paired32, 28)); ++ ++ // Extract the low 8 bits from each 64-bit lane with 2 8-bit extracts. ++ // xx xx xx xx xx xx xx d2 ++ // || return paired64[0] ++ // d2 ++ // Note: Little endian would return the correct value 4b (01001011) instead. ++ return vgetq_lane_u8(paired64, 0) | ((int) vgetq_lane_u8(paired64, 8) << 8); ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed double-precision (64-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pd ++FORCE_INLINE int _mm_movemask_pd(__m128d a) ++{ ++ uint64x2_t input = vreinterpretq_u64_m128d(a); ++ uint64x2_t high_bits = vshrq_n_u64(input, 63); ++ return (int) (vgetq_lane_u64(high_bits, 0) | ++ (vgetq_lane_u64(high_bits, 1) << 1)); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movepi64_pi64 ++FORCE_INLINE __m64 _mm_movepi64_pi64(__m128i a) ++{ ++ return vreinterpret_m64_s64(vget_low_s64(vreinterpretq_s64_m128i(a))); ++} ++ ++// Copy the 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movpi64_epi64 ++FORCE_INLINE __m128i _mm_movpi64_epi64(__m64 a) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vreinterpret_s64_m64(a), vdup_n_s64(0))); ++} ++ ++// Multiply the low unsigned 32-bit integers from each packed 64-bit element in ++// a and b, and store the unsigned 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epu32 ++FORCE_INLINE __m128i _mm_mul_epu32(__m128i a, __m128i b) ++{ ++ // vmull_u32 upcasts instead of masking, so we downcast. ++ uint32x2_t a_lo = vmovn_u64(vreinterpretq_u64_m128i(a)); ++ uint32x2_t b_lo = vmovn_u64(vreinterpretq_u64_m128i(b)); ++ return vreinterpretq_m128i_u64(vmull_u32(a_lo, b_lo)); ++} ++ ++// Multiply packed double-precision (64-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_pd ++FORCE_INLINE __m128d _mm_mul_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vmulq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] * db[0]; ++ c[1] = da[1] * db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Multiply the lower double-precision (64-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper element ++// from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_mul_sd ++FORCE_INLINE __m128d _mm_mul_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_mul_pd(a, b)); ++} ++ ++// Multiply the low unsigned 32-bit integers from a and b, and store the ++// unsigned 64-bit result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_su32 ++FORCE_INLINE __m64 _mm_mul_su32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u64(vget_low_u64( ++ vmull_u32(vreinterpret_u32_m64(a), vreinterpret_u32_m64(b)))); ++} ++ ++// Multiply the packed signed 16-bit integers in a and b, producing intermediate ++// 32-bit integers, and store the high 16 bits of the intermediate integers in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epi16 ++FORCE_INLINE __m128i _mm_mulhi_epi16(__m128i a, __m128i b) ++{ ++ /* FIXME: issue with large values because of result saturation */ ++ // int16x8_t ret = vqdmulhq_s16(vreinterpretq_s16_m128i(a), ++ // vreinterpretq_s16_m128i(b)); /* =2*a*b */ return ++ // vreinterpretq_m128i_s16(vshrq_n_s16(ret, 1)); ++ int16x4_t a3210 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b3210 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab3210 = vmull_s16(a3210, b3210); /* 3333222211110000 */ ++ int16x4_t a7654 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b7654 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab7654 = vmull_s16(a7654, b7654); /* 7777666655554444 */ ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_s32(ab3210), vreinterpretq_u16_s32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epu16 ++FORCE_INLINE __m128i _mm_mulhi_epu16(__m128i a, __m128i b) ++{ ++ uint16x4_t a3210 = vget_low_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b3210 = vget_low_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab3210 = vmull_u16(a3210, b3210); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32x4_t ab7654 = ++ vmull_high_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ uint16x8_t r = vuzp2q_u16(vreinterpretq_u16_u32(ab3210), ++ vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r); ++#else ++ uint16x4_t a7654 = vget_high_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b7654 = vget_high_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab7654 = vmull_u16(a7654, b7654); ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_u32(ab3210), vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++#endif ++} ++ ++// Multiply the packed 16-bit integers in a and b, producing intermediate 32-bit ++// integers, and store the low 16 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi16 ++FORCE_INLINE __m128i _mm_mullo_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmulq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compute the bitwise OR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_or_pd ++FORCE_INLINE __m128d _mm_or_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vorrq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise OR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_si128 ++FORCE_INLINE __m128i _mm_or_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vorrq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi16 ++FORCE_INLINE __m128i _mm_packs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vqmovn_s16(vreinterpretq_s16_m128i(a)), ++ vqmovn_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi32 ++FORCE_INLINE __m128i _mm_packs_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vqmovn_s32(vreinterpretq_s32_m128i(a)), ++ vqmovn_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi16 ++FORCE_INLINE __m128i _mm_packus_epi16(const __m128i a, const __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcombine_u8(vqmovun_s16(vreinterpretq_s16_m128i(a)), ++ vqmovun_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Pause the processor. This is typically used in spin-wait loops and depending ++// on the x86 processor typical values are in the 40-100 cycle range. The ++// 'yield' instruction isn't a good fit because it's effectively a nop on most ++// Arm cores. Experience with several databases has shown has shown an 'isb' is ++// a reasonable approximation. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_pause ++FORCE_INLINE void _mm_pause(void) ++{ ++#if defined(_MSC_VER) ++ __isb(_ARM64_BARRIER_SY); ++#else ++ __asm__ __volatile__("isb\n"); ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce two ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of 64-bit elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_epu8 ++FORCE_INLINE __m128i _mm_sad_epu8(__m128i a, __m128i b) ++{ ++ uint16x8_t t = vpaddlq_u8(vabdq_u8((uint8x16_t) a, (uint8x16_t) b)); ++ return vreinterpretq_m128i_u64(vpaddlq_u32(vpaddlq_u16(t))); ++} ++ ++// Set packed 16-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi16 ++FORCE_INLINE __m128i _mm_set_epi16(short i7, ++ short i6, ++ short i5, ++ short i4, ++ short i3, ++ short i2, ++ short i1, ++ short i0) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {i0, i1, i2, i3, i4, i5, i6, i7}; ++ return vreinterpretq_m128i_s16(vld1q_s16(data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi32 ++FORCE_INLINE __m128i _mm_set_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i0, i1, i2, i3}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64 ++FORCE_INLINE __m128i _mm_set_epi64(__m64 i1, __m64 i2) ++{ ++ return _mm_set_epi64x(vget_lane_s64(i1, 0), vget_lane_s64(i2, 0)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64x ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t i1, int64_t i2) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vcreate_s64(i2), vcreate_s64(i1))); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi8 ++FORCE_INLINE __m128i _mm_set_epi8(signed char b15, ++ signed char b14, ++ signed char b13, ++ signed char b12, ++ signed char b11, ++ signed char b10, ++ signed char b9, ++ signed char b8, ++ signed char b7, ++ signed char b6, ++ signed char b5, ++ signed char b4, ++ signed char b3, ++ signed char b2, ++ signed char b1, ++ signed char b0) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd ++FORCE_INLINE __m128d _mm_set_pd(double e1, double e0) ++{ ++ double ALIGN_STRUCT(16) data[2] = {e0, e1}; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64((float64_t *) data)); ++#else ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) data)); ++#endif ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd1 ++#define _mm_set_pd1 _mm_set1_pd ++ ++// Copy double-precision (64-bit) floating-point element a to the lower element ++// of dst, and zero the upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_sd ++FORCE_INLINE __m128d _mm_set_sd(double a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(a, vdupq_n_f64(0), 0)); ++#else ++ return _mm_set_pd(0, a); ++#endif ++} ++ ++// Broadcast 16-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi16 ++FORCE_INLINE __m128i _mm_set1_epi16(short w) ++{ ++ return vreinterpretq_m128i_s16(vdupq_n_s16(w)); ++} ++ ++// Broadcast 32-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi32 ++FORCE_INLINE __m128i _mm_set1_epi32(int _i) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(_i)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64 ++FORCE_INLINE __m128i _mm_set1_epi64(__m64 _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_lane_s64(_i, 0)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64x ++FORCE_INLINE __m128i _mm_set1_epi64x(int64_t _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_n_s64(_i)); ++} ++ ++// Broadcast 8-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi8 ++FORCE_INLINE __m128i _mm_set1_epi8(signed char w) ++{ ++ return vreinterpretq_m128i_s8(vdupq_n_s8(w)); ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_pd ++FORCE_INLINE __m128d _mm_set1_pd(double d) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(d)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(int64_t *) &d)); ++#endif ++} ++ ++// Set packed 16-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi16 ++FORCE_INLINE __m128i _mm_setr_epi16(short w0, ++ short w1, ++ short w2, ++ short w3, ++ short w4, ++ short w5, ++ short w6, ++ short w7) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {w0, w1, w2, w3, w4, w5, w6, w7}; ++ return vreinterpretq_m128i_s16(vld1q_s16((int16_t *) data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi32 ++FORCE_INLINE __m128i _mm_setr_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i3, i2, i1, i0}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi64 ++FORCE_INLINE __m128i _mm_setr_epi64(__m64 e1, __m64 e0) ++{ ++ return vreinterpretq_m128i_s64(vcombine_s64(e1, e0)); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi8 ++FORCE_INLINE __m128i _mm_setr_epi8(signed char b0, ++ signed char b1, ++ signed char b2, ++ signed char b3, ++ signed char b4, ++ signed char b5, ++ signed char b6, ++ signed char b7, ++ signed char b8, ++ signed char b9, ++ signed char b10, ++ signed char b11, ++ signed char b12, ++ signed char b13, ++ signed char b14, ++ signed char b15) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_pd ++FORCE_INLINE __m128d _mm_setr_pd(double e1, double e0) ++{ ++ return _mm_set_pd(e0, e1); ++} ++ ++// Return vector of type __m128d with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_pd ++FORCE_INLINE __m128d _mm_setzero_pd(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(0)); ++#else ++ return vreinterpretq_m128d_f32(vdupq_n_f32(0)); ++#endif ++} ++ ++// Return vector of type __m128i with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_si128 ++FORCE_INLINE __m128i _mm_setzero_si128(void) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(0)); ++} ++ ++// Shuffle 32-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi32 ++// FORCE_INLINE __m128i _mm_shuffle_epi32(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shuffle_epi32(a, imm) \ ++ __extension__({ \ ++ int32x4_t _input = vreinterpretq_s32_m128i(a); \ ++ int32x4_t _shuf = \ ++ vshuffleq_s32(_input, _input, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ ((imm) >> 4) & 0x3, ((imm) >> 6) & 0x3); \ ++ vreinterpretq_m128i_s32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_epi32(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, __m128i ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_epi_1032(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_epi_2301(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_epi_0321(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_epi_2103(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_shuffle_epi_1010(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_epi_1001(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_epi_0101(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 1, 1): \ ++ ret = _mm_shuffle_epi_2211(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 2, 2): \ ++ ret = _mm_shuffle_epi_0122(_a); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 2): \ ++ ret = _mm_shuffle_epi_3332(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 0, 0): \ ++ ret = _mm_shuffle_epi32_splat(_a, 0); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 1, 1): \ ++ ret = _mm_shuffle_epi32_splat(_a, 1); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 2, 2): \ ++ ret = _mm_shuffle_epi32_splat(_a, 2); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 3): \ ++ ret = _mm_shuffle_epi32_splat(_a, 3); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_epi32_default(_a, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Shuffle double-precision (64-bit) floating-point elements using the control ++// in imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pd ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pd(a, b, imm8) \ ++ vreinterpretq_m128d_s64( \ ++ vshuffleq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b), \ ++ imm8 & 0x1, ((imm8 & 0x2) >> 1) + 2)) ++#else ++#define _mm_shuffle_pd(a, b, imm8) \ ++ _mm_castsi128_pd(_mm_set_epi64x( \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(b), (imm8 & 0x2) >> 1), \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(a), imm8 & 0x1))) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflehi_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflehi_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = \ ++ vshuffleq_s16(_input, _input, 0, 1, 2, 3, ((imm) & (0x3)) + 4, \ ++ (((imm) >> 2) & 0x3) + 4, (((imm) >> 4) & 0x3) + 4, \ ++ (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflehi_epi16(a, imm) _mm_shufflehi_epi16_function((a), (imm)) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflelo_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflelo_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = vshuffleq_s16( \ ++ _input, _input, ((imm) & (0x3)), (((imm) >> 2) & 0x3), \ ++ (((imm) >> 4) & 0x3), (((imm) >> 6) & 0x3), 4, 5, 6, 7); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflelo_epi16(a, imm) _mm_shufflelo_epi16_function((a), (imm)) ++#endif ++ ++// Shift packed 16-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi16 ++FORCE_INLINE __m128i _mm_sll_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16((int16_t) c); ++ return vreinterpretq_m128i_s16(vshlq_s16(vreinterpretq_s16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi32 ++FORCE_INLINE __m128i _mm_sll_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32((int32_t) c); ++ return vreinterpretq_m128i_s32(vshlq_s32(vreinterpretq_s32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi64 ++FORCE_INLINE __m128i _mm_sll_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64((int64_t) c); ++ return vreinterpretq_m128i_s64(vshlq_s64(vreinterpretq_s64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi16 ++FORCE_INLINE __m128i _mm_slli_epi16(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~15)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16(vreinterpretq_s16_m128i(a), vdupq_n_s16(imm))); ++} ++ ++// Shift packed 32-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi32 ++FORCE_INLINE __m128i _mm_slli_epi32(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~31)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32(vreinterpretq_s32_m128i(a), vdupq_n_s32(imm))); ++} ++ ++// Shift packed 64-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi64 ++FORCE_INLINE __m128i _mm_slli_epi64(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~63)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s64( ++ vshlq_s64(vreinterpretq_s64_m128i(a), vdupq_n_s64(imm))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_si128 ++#define _mm_slli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely(imm == 0)) ret = vreinterpretq_s8_m128i(_a); \ ++ else if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vdupq_n_s8(0), vreinterpretq_s8_m128i(_a), \ ++ ((imm <= 0 || imm > 15) ? 0 : (16 - imm))); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Compute the square root of packed double-precision (64-bit) floating-point ++// elements in a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_pd ++FORCE_INLINE __m128d _mm_sqrt_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsqrtq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double a0 = sqrt(((double *) &a)[0]); ++ double a1 = sqrt(((double *) &a)[1]); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Compute the square root of the lower double-precision (64-bit) floating-point ++// element in b, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_sd ++FORCE_INLINE __m128d _mm_sqrt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_sqrt_pd(b)); ++#else ++ return _mm_set_pd(((double *) &a)[1], sqrt(((double *) &b)[0])); ++#endif ++} ++ ++// Shift packed 16-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi16 ++FORCE_INLINE __m128i _mm_sra_epi16(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_cmplt_epi16(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16((int16x8_t) a, vdupq_n_s16((int) -c))); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi32 ++FORCE_INLINE __m128i _mm_sra_epi32(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_cmplt_epi32(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32((int32x4_t) a, vdupq_n_s32((int) -c))); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in sign ++// bits, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi16 ++FORCE_INLINE __m128i _mm_srai_epi16(__m128i a, int imm) ++{ ++ const int count = (imm & ~15) ? 15 : imm; ++ return (__m128i) vshlq_s16((int16x8_t) a, vdupq_n_s16(-count)); ++} ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi32 ++// FORCE_INLINE __m128i _mm_srai_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srai_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) == 0)) { \ ++ ret = _a; \ ++ } else if (_sse2neon_likely(0 < (imm) && (imm) < 32)) { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshlq_s32(vreinterpretq_s32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } else { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshrq_n_s32(vreinterpretq_s32_m128i(_a), 31)); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 16-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi16 ++FORCE_INLINE __m128i _mm_srl_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16(-(int16_t) c); ++ return vreinterpretq_m128i_u16(vshlq_u16(vreinterpretq_u16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi32 ++FORCE_INLINE __m128i _mm_srl_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32(-(int32_t) c); ++ return vreinterpretq_m128i_u32(vshlq_u32(vreinterpretq_u32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi64 ++FORCE_INLINE __m128i _mm_srl_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64(-(int64_t) c); ++ return vreinterpretq_m128i_u64(vshlq_u64(vreinterpretq_u64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi16 ++#define _mm_srli_epi16(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~15)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u16( \ ++ vshlq_u16(vreinterpretq_u16_m128i(_a), vdupq_n_s16(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi32 ++// FORCE_INLINE __m128i _mm_srli_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srli_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~31)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u32( \ ++ vshlq_u32(vreinterpretq_u32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 64-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi64 ++#define _mm_srli_epi64(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~63)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u64( \ ++ vshlq_u64(vreinterpretq_u64_m128i(_a), vdupq_n_s64(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_si128 ++#define _mm_srli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vreinterpretq_s8_m128i(_a), vdupq_n_s8(0), \ ++ (imm > 15 ? 0 : imm)); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd ++FORCE_INLINE void _mm_store_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64((float64_t *) mem_addr, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_f32((float32_t *) mem_addr, vreinterpretq_f32_m128d(a)); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd1 ++FORCE_INLINE void _mm_store_pd1(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x1_t a_low = vget_low_f64(vreinterpretq_f64_m128d(a)); ++ vst1q_f64((float64_t *) mem_addr, ++ vreinterpretq_f64_m128d(vcombine_f64(a_low, a_low))); ++#else ++ float32x2_t a_low = vget_low_f32(vreinterpretq_f32_m128d(a)); ++ vst1q_f32((float32_t *) mem_addr, ++ vreinterpretq_f32_m128d(vcombine_f32(a_low, a_low))); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_store_sd ++FORCE_INLINE void _mm_store_sd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_u64((uint64_t *) mem_addr, vget_low_u64(vreinterpretq_u64_m128d(a))); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_si128 ++FORCE_INLINE void _mm_store_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#expand=9,526,5601&text=_mm_store1_pd ++#define _mm_store1_pd _mm_store_pd1 ++ ++// Store the upper double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pd ++FORCE_INLINE void _mm_storeh_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_high_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_high_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 64-bit integer from the first element of a into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_epi64 ++FORCE_INLINE void _mm_storel_epi64(__m128i *a, __m128i b) ++{ ++ vst1_u64((uint64_t *) a, vget_low_u64(vreinterpretq_u64_m128i(b))); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pd ++FORCE_INLINE void _mm_storel_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_low_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 2 double-precision (64-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_pd ++FORCE_INLINE void _mm_storer_pd(double *mem_addr, __m128d a) ++{ ++ float32x4_t f = vreinterpretq_f32_m128d(a); ++ _mm_store_pd(mem_addr, vreinterpretq_m128d_f32(vextq_f32(f, f, 2))); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_pd ++FORCE_INLINE void _mm_storeu_pd(double *mem_addr, __m128d a) ++{ ++ _mm_store_pd(mem_addr, a); ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si128 ++FORCE_INLINE void _mm_storeu_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store 32-bit integer from the first element of a into memory. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si32 ++FORCE_INLINE void _mm_storeu_si32(void *p, __m128i a) ++{ ++ vst1q_lane_s32((int32_t *) p, vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory using a non-temporal memory hint. mem_addr must ++// be aligned on a 16-byte boundary or a general-protection exception may be ++// generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pd ++FORCE_INLINE void _mm_stream_pd(double *p, __m128d a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (__m128d *) p); ++#elif defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64(p, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128d(a)); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory using a non-temporal memory ++// hint. mem_addr must be aligned on a 16-byte boundary or a general-protection ++// exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si128 ++FORCE_INLINE void _mm_stream_si128(__m128i *p, __m128i a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, p); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128i(a)); ++#endif ++} ++ ++// Store 32-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si32 ++FORCE_INLINE void _mm_stream_si32(int *p, int a) ++{ ++ vst1q_lane_s32((int32_t *) p, vdupq_n_s32(a), 0); ++} ++ ++// Store 64-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si64 ++FORCE_INLINE void _mm_stream_si64(__int64 *p, __int64 a) ++{ ++ vst1_s64((int64_t *) p, vdup_n_s64((int64_t) a)); ++} ++ ++// Subtract packed 16-bit integers in b from packed 16-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi16 ++FORCE_INLINE __m128i _mm_sub_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed 32-bit integers in b from packed 32-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi32 ++FORCE_INLINE __m128i _mm_sub_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Subtract packed 64-bit integers in b from packed 64-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi64 ++FORCE_INLINE __m128i _mm_sub_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vsubq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Subtract packed 8-bit integers in b from packed 8-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi8 ++FORCE_INLINE __m128i _mm_sub_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed double-precision (64-bit) floating-point elements in b from ++// packed double-precision (64-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_sub_pd ++FORCE_INLINE __m128d _mm_sub_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] - db[0]; ++ c[1] = da[1] - db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Subtract the lower double-precision (64-bit) floating-point element in b from ++// the lower double-precision (64-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_sd ++FORCE_INLINE __m128d _mm_sub_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_sub_pd(a, b)); ++} ++ ++// Subtract 64-bit integer b from 64-bit integer a, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_si64 ++FORCE_INLINE __m64 _mm_sub_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vsub_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Subtract packed signed 16-bit integers in b from packed 16-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi16 ++FORCE_INLINE __m128i _mm_subs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed signed 8-bit integers in b from packed 8-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi8 ++FORCE_INLINE __m128i _mm_subs_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed unsigned 16-bit integers in b from packed unsigned 16-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu16 ++FORCE_INLINE __m128i _mm_subs_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqsubq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Subtract packed unsigned 8-bit integers in b from packed unsigned 8-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu8 ++FORCE_INLINE __m128i _mm_subs_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqsubq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++#define _mm_ucomieq_sd _mm_comieq_sd ++#define _mm_ucomige_sd _mm_comige_sd ++#define _mm_ucomigt_sd _mm_comigt_sd ++#define _mm_ucomile_sd _mm_comile_sd ++#define _mm_ucomilt_sd _mm_comilt_sd ++#define _mm_ucomineq_sd _mm_comineq_sd ++ ++// Return vector of type __m128d with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_pd ++FORCE_INLINE __m128d _mm_undefined_pd(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128d a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_pd(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi16 ++FORCE_INLINE __m128i _mm_unpackhi_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip2q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi32 ++FORCE_INLINE __m128i _mm_unpackhi_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip2q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_high_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi64 ++FORCE_INLINE __m128i _mm_unpackhi_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip2q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_h = vget_high_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_h = vget_high_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_h, b_h)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the high half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi8 ++FORCE_INLINE __m128i _mm_unpackhi_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip2q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the high half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_pd ++FORCE_INLINE __m128d _mm_unpackhi_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip2q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_high_s64(vreinterpretq_s64_m128d(a)), ++ vget_high_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi16 ++FORCE_INLINE __m128i _mm_unpacklo_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip1q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi32 ++FORCE_INLINE __m128i _mm_unpacklo_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip1q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_low_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi64 ++FORCE_INLINE __m128i _mm_unpacklo_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip1q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_l = vget_low_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_l = vget_low_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_l, b_l)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi8 ++FORCE_INLINE __m128i _mm_unpacklo_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip1q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_pd ++FORCE_INLINE __m128d _mm_unpacklo_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip1q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_low_s64(vreinterpretq_s64_m128d(a)), ++ vget_low_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Compute the bitwise XOR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_pd ++FORCE_INLINE __m128d _mm_xor_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ veorq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise XOR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_si128 ++FORCE_INLINE __m128i _mm_xor_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ veorq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++/* SSE3 */ ++ ++// Alternatively add and subtract packed double-precision (64-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_addsub_pd ++FORCE_INLINE __m128d _mm_addsub_pd(__m128d a, __m128d b) ++{ ++ _sse2neon_const __m128d mask = _mm_set_pd(1.0f, -1.0f); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vfmaq_f64(vreinterpretq_f64_m128d(a), ++ vreinterpretq_f64_m128d(b), ++ vreinterpretq_f64_m128d(mask))); ++#else ++ return _mm_add_pd(_mm_mul_pd(b, mask), a); ++#endif ++} ++ ++// Alternatively add and subtract packed single-precision (32-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=addsub_ps ++FORCE_INLINE __m128 _mm_addsub_ps(__m128 a, __m128 b) ++{ ++ _sse2neon_const __m128 mask = _mm_setr_ps(-1.0f, 1.0f, -1.0f, 1.0f); ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_FMA) /* VFPv4+ */ ++ return vreinterpretq_m128_f32(vfmaq_f32(vreinterpretq_f32_m128(a), ++ vreinterpretq_f32_m128(mask), ++ vreinterpretq_f32_m128(b))); ++#else ++ return _mm_add_ps(_mm_mul_ps(b, mask), a); ++#endif ++} ++ ++// Horizontally add adjacent pairs of double-precision (64-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pd ++FORCE_INLINE __m128d _mm_hadd_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vpaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[] = {da[0] + da[1], db[0] + db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of single-precision (32-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_ps ++FORCE_INLINE __m128 _mm_hadd_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vpaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vpadd_f32(a10, a32), vpadd_f32(b10, b32))); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of double-precision (64-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pd ++FORCE_INLINE __m128d _mm_hsub_pd(__m128d _a, __m128d _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vuzp1q_f64(a, b), vuzp2q_f64(a, b))); ++#else ++ double *da = (double *) &_a; ++ double *db = (double *) &_b; ++ double c[] = {da[0] - da[1], db[0] - db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of single-precision (32-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_ps ++FORCE_INLINE __m128 _mm_hsub_ps(__m128 _a, __m128 _b) ++{ ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vuzp1q_f32(a, b), vuzp2q_f32(a, b))); ++#else ++ float32x4x2_t c = vuzpq_f32(a, b); ++ return vreinterpretq_m128_f32(vsubq_f32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Load 128-bits of integer data from unaligned memory into dst. This intrinsic ++// may perform better than _mm_loadu_si128 when the data crosses a cache line ++// boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lddqu_si128 ++#define _mm_lddqu_si128 _mm_loadu_si128 ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loaddup_pd ++#define _mm_loaddup_pd _mm_load1_pd ++ ++// Duplicate the low double-precision (64-bit) floating-point element from a, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movedup_pd ++FORCE_INLINE __m128d _mm_movedup_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdupq_laneq_f64(vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_u64( ++ vdupq_n_u64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0))); ++#endif ++} ++ ++// Duplicate odd-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehdup_ps ++FORCE_INLINE __m128 _mm_movehdup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 1, 1, 3, 3)); ++#else ++ float32_t a1 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ float32_t a3 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 3); ++ float ALIGN_STRUCT(16) data[4] = {a1, a1, a3, a3}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Duplicate even-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_moveldup_ps ++FORCE_INLINE __m128 _mm_moveldup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 0, 0, 2, 2)); ++#else ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32_t a2 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 2); ++ float ALIGN_STRUCT(16) data[4] = {a0, a0, a2, a2}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++/* SSSE3 */ ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi16 ++FORCE_INLINE __m128i _mm_abs_epi16(__m128i a) ++{ ++ return vreinterpretq_m128i_s16(vabsq_s16(vreinterpretq_s16_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi32 ++FORCE_INLINE __m128i _mm_abs_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32(vabsq_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi8 ++FORCE_INLINE __m128i _mm_abs_epi8(__m128i a) ++{ ++ return vreinterpretq_m128i_s8(vabsq_s8(vreinterpretq_s8_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi16 ++FORCE_INLINE __m64 _mm_abs_pi16(__m64 a) ++{ ++ return vreinterpret_m64_s16(vabs_s16(vreinterpret_s16_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi32 ++FORCE_INLINE __m64 _mm_abs_pi32(__m64 a) ++{ ++ return vreinterpret_m64_s32(vabs_s32(vreinterpret_s32_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi8 ++FORCE_INLINE __m64 _mm_abs_pi8(__m64 a) ++{ ++ return vreinterpret_m64_s8(vabs_s8(vreinterpret_s8_m64(a))); ++} ++ ++// Concatenate 16-byte blocks in a and b into a 32-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 16 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_epi8 ++#if defined(__GNUC__) && !defined(__clang__) ++#define _mm_alignr_epi8(a, b, imm) \ ++ __extension__({ \ ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); \ ++ uint8x16_t _b = vreinterpretq_u8_m128i(b); \ ++ __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) \ ++ ret = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) \ ++ ret = _mm_srli_si128(a, imm >= 16 ? imm - 16 : 0); \ ++ else \ ++ ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(_b, _a, imm < 16 ? imm : 0)); \ ++ ret; \ ++ }) ++ ++#else ++#define _mm_alignr_epi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, uint8x16_t __a = vreinterpretq_u8_m128i(_a); \ ++ uint8x16_t __b = vreinterpretq_u8_m128i(_b); __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) ret = \ ++ vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) ret = \ ++ _mm_srli_si128(_a, imm >= 16 ? imm - 16 : 0); \ ++ else ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(__b, __a, imm < 16 ? imm : 0)); \ ++ _sse2neon_return(ret);) ++ ++#endif ++ ++// Concatenate 8-byte blocks in a and b into a 16-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 8 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_pi8 ++#define _mm_alignr_pi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m64, a, b, __m64 ret; if (_sse2neon_unlikely((imm) >= 16)) { \ ++ ret = vreinterpret_m64_s8(vdup_n_s8(0)); \ ++ } else { \ ++ uint8x8_t tmp_low; \ ++ uint8x8_t tmp_high; \ ++ if ((imm) >= 8) { \ ++ const int idx = (imm) -8; \ ++ tmp_low = vreinterpret_u8_m64(_a); \ ++ tmp_high = vdup_n_u8(0); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } else { \ ++ const int idx = (imm); \ ++ tmp_low = vreinterpret_u8_m64(_b); \ ++ tmp_high = vreinterpret_u8_m64(_a); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } \ ++ } _sse2neon_return(ret);) ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi16 ++FORCE_INLINE __m128i _mm_hadd_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16(vpaddq_s16(a, b)); ++#else ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(vget_low_s16(a), vget_high_s16(a)), ++ vpadd_s16(vget_low_s16(b), vget_high_s16(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi32 ++FORCE_INLINE __m128i _mm_hadd_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32(vpaddq_s32(a, b)); ++#else ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vpadd_s32(vget_low_s32(a), vget_high_s32(a)), ++ vpadd_s32(vget_low_s32(b), vget_high_s32(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi16 ++FORCE_INLINE __m64 _mm_hadd_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vpadd_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi32 ++FORCE_INLINE __m64 _mm_hadd_pi32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s32( ++ vpadd_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_epi16 ++FORCE_INLINE __m128i _mm_hadds_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ return vreinterpretq_s64_s16( ++ vqaddq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ // Interleave using vshrn/vmovn ++ // [a0|a2|a4|a6|b0|b2|b4|b6] ++ // [a1|a3|a5|a7|b1|b3|b5|b7] ++ int16x8_t ab0246 = vcombine_s16(vmovn_s32(a), vmovn_s32(b)); ++ int16x8_t ab1357 = vcombine_s16(vshrn_n_s32(a, 16), vshrn_n_s32(b, 16)); ++ // Saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(ab0246, ab1357)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_pi16 ++FORCE_INLINE __m64 _mm_hadds_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_s64_s16(vqadd_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t res = vuzp_s16(a, b); ++ return vreinterpret_s64_s16(vqadd_s16(res.val[0], res.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi16 ++FORCE_INLINE __m128i _mm_hsub_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi32 ++FORCE_INLINE __m128i _mm_hsub_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vuzp1q_s32(a, b), vuzp2q_s32(a, b))); ++#else ++ int32x4x2_t c = vuzpq_s32(a, b); ++ return vreinterpretq_m128i_s32(vsubq_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pi16 ++FORCE_INLINE __m64 _mm_hsub_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_hsub_pi32 ++FORCE_INLINE __m64 _mm_hsub_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s32(vsub_s32(vuzp1_s32(a, b), vuzp2_s32(a, b))); ++#else ++ int32x2x2_t c = vuzp_s32(a, b); ++ return vreinterpret_m64_s32(vsub_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_epi16 ++FORCE_INLINE __m128i _mm_hsubs_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vqsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_pi16 ++FORCE_INLINE __m64 _mm_hsubs_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vqsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vqsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, ++// and pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_epi16 ++FORCE_INLINE __m128i _mm_maddubs_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ int16x8_t tl = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_low_u8(a))), ++ vmovl_s8(vget_low_s8(b))); ++ int16x8_t th = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_high_u8(a))), ++ vmovl_s8(vget_high_s8(b))); ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vuzp1q_s16(tl, th), vuzp2q_s16(tl, th))); ++#else ++ // This would be much simpler if x86 would choose to zero extend OR sign ++ // extend, not both. This could probably be optimized better. ++ uint16x8_t a = vreinterpretq_u16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // Zero extend a ++ int16x8_t a_odd = vreinterpretq_s16_u16(vshrq_n_u16(a, 8)); ++ int16x8_t a_even = vreinterpretq_s16_u16(vbicq_u16(a, vdupq_n_u16(0xff00))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x8_t b_even = vshrq_n_s16(vshlq_n_s16(b, 8), 8); ++ int16x8_t b_odd = vshrq_n_s16(b, 8); ++ ++ // multiply ++ int16x8_t prod1 = vmulq_s16(a_even, b_even); ++ int16x8_t prod2 = vmulq_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(prod1, prod2)); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, and ++// pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_pi16 ++FORCE_INLINE __m64 _mm_maddubs_pi16(__m64 _a, __m64 _b) ++{ ++ uint16x4_t a = vreinterpret_u16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // Zero extend a ++ int16x4_t a_odd = vreinterpret_s16_u16(vshr_n_u16(a, 8)); ++ int16x4_t a_even = vreinterpret_s16_u16(vand_u16(a, vdup_n_u16(0xff))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x4_t b_even = vshr_n_s16(vshl_n_s16(b, 8), 8); ++ int16x4_t b_odd = vshr_n_s16(b, 8); ++ ++ // multiply ++ int16x4_t prod1 = vmul_s16(a_even, b_even); ++ int16x4_t prod2 = vmul_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpret_m64_s16(vqadd_s16(prod1, prod2)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Shift right by 15 bits while rounding up, and store ++// the packed 16-bit integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_epi16 ++FORCE_INLINE __m128i _mm_mulhrs_epi16(__m128i a, __m128i b) ++{ ++ // Has issues due to saturation ++ // return vreinterpretq_m128i_s16(vqrdmulhq_s16(a, b)); ++ ++ // Multiply ++ int32x4_t mul_lo = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int32x4_t mul_hi = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ // Rounding narrowing shift right ++ // narrow = (int16_t)((mul + 16384) >> 15); ++ int16x4_t narrow_lo = vrshrn_n_s32(mul_lo, 15); ++ int16x4_t narrow_hi = vrshrn_n_s32(mul_hi, 15); ++ ++ // Join together ++ return vreinterpretq_m128i_s16(vcombine_s16(narrow_lo, narrow_hi)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Truncate each intermediate integer to the 18 most ++// significant bits, round by adding 1, and store bits [16:1] to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_pi16 ++FORCE_INLINE __m64 _mm_mulhrs_pi16(__m64 a, __m64 b) ++{ ++ int32x4_t mul_extend = ++ vmull_s16((vreinterpret_s16_m64(a)), (vreinterpret_s16_m64(b))); ++ ++ // Rounding narrowing shift right ++ return vreinterpret_m64_s16(vrshrn_n_s32(mul_extend, 15)); ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi8 ++FORCE_INLINE __m128i _mm_shuffle_epi8(__m128i a, __m128i b) ++{ ++ int8x16_t tbl = vreinterpretq_s8_m128i(a); // input a ++ uint8x16_t idx = vreinterpretq_u8_m128i(b); // input b ++ uint8x16_t idx_masked = ++ vandq_u8(idx, vdupq_n_u8(0x8F)); // avoid using meaningless bits ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8(vqtbl1q_s8(tbl, idx_masked)); ++#elif defined(__GNUC__) ++ int8x16_t ret; ++ // %e and %f represent the even and odd D registers ++ // respectively. ++ __asm__ __volatile__( ++ "vtbl.8 %e[ret], {%e[tbl], %f[tbl]}, %e[idx]\n" ++ "vtbl.8 %f[ret], {%e[tbl], %f[tbl]}, %f[idx]\n" ++ : [ret] "=&w"(ret) ++ : [tbl] "w"(tbl), [idx] "w"(idx_masked)); ++ return vreinterpretq_m128i_s8(ret); ++#else ++ // use this line if testing on aarch64 ++ int8x8x2_t a_split = {vget_low_s8(tbl), vget_high_s8(tbl)}; ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vtbl2_s8(a_split, vget_low_u8(idx_masked)), ++ vtbl2_s8(a_split, vget_high_u8(idx_masked)))); ++#endif ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi8 ++FORCE_INLINE __m64 _mm_shuffle_pi8(__m64 a, __m64 b) ++{ ++ const int8x8_t controlMask = ++ vand_s8(vreinterpret_s8_m64(b), vdup_n_s8((int8_t) (0x1 << 7 | 0x07))); ++ int8x8_t res = vtbl1_s8(vreinterpret_s8_m64(a), controlMask); ++ return vreinterpret_m64_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed ++// 16-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi16 ++FORCE_INLINE __m128i _mm_sign_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x8_t ltMask = vreinterpretq_u16_s16(vshrq_n_s16(b, 15)); ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqzq_s16(b)); ++#else ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqq_s16(b, vdupq_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s16(a) equals to negative ++ // 'a') based on ltMask ++ int16x8_t masked = vbslq_s16(ltMask, vnegq_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x8_t res = vbicq_s16(masked, zeroMask); ++ return vreinterpretq_m128i_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed ++// 32-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi32 ++FORCE_INLINE __m128i _mm_sign_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x4_t ltMask = vreinterpretq_u32_s32(vshrq_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqzq_s32(b)); ++#else ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqq_s32(b, vdupq_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s32(a) equals to negative ++ // 'a') based on ltMask ++ int32x4_t masked = vbslq_s32(ltMask, vnegq_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x4_t res = vbicq_s32(masked, zeroMask); ++ return vreinterpretq_m128i_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed ++// 8-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi8 ++FORCE_INLINE __m128i _mm_sign_epi8(__m128i _a, __m128i _b) ++{ ++ int8x16_t a = vreinterpretq_s8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x16_t ltMask = vreinterpretq_u8_s8(vshrq_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqzq_s8(b)); ++#else ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqq_s8(b, vdupq_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s8(a) return negative 'a') ++ // based on ltMask ++ int8x16_t masked = vbslq_s8(ltMask, vnegq_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x16_t res = vbicq_s8(masked, zeroMask); ++ ++ return vreinterpretq_m128i_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed 16-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi16 ++FORCE_INLINE __m64 _mm_sign_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x4_t ltMask = vreinterpret_u16_s16(vshr_n_s16(b, 15)); ++ ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceqz_s16(b)); ++#else ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceq_s16(b, vdup_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s16(a) return negative 'a') ++ // based on ltMask ++ int16x4_t masked = vbsl_s16(ltMask, vneg_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x4_t res = vbic_s16(masked, zeroMask); ++ ++ return vreinterpret_m64_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed 32-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi32 ++FORCE_INLINE __m64 _mm_sign_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x2_t ltMask = vreinterpret_u32_s32(vshr_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceqz_s32(b)); ++#else ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceq_s32(b, vdup_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s32(a) return negative 'a') ++ // based on ltMask ++ int32x2_t masked = vbsl_s32(ltMask, vneg_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x2_t res = vbic_s32(masked, zeroMask); ++ ++ return vreinterpret_m64_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed 8-bit integer ++// in b is negative, and store the results in dst. Element in dst are zeroed out ++// when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi8 ++FORCE_INLINE __m64 _mm_sign_pi8(__m64 _a, __m64 _b) ++{ ++ int8x8_t a = vreinterpret_s8_m64(_a); ++ int8x8_t b = vreinterpret_s8_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x8_t ltMask = vreinterpret_u8_s8(vshr_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceqz_s8(b)); ++#else ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceq_s8(b, vdup_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s8(a) return negative 'a') ++ // based on ltMask ++ int8x8_t masked = vbsl_s8(ltMask, vneg_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x8_t res = vbic_s8(masked, zeroMask); ++ ++ return vreinterpret_m64_s8(res); ++} ++ ++/* SSE4.1 */ ++ ++// Blend packed 16-bit integers from a and b using control mask imm8, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_epi16 ++// FORCE_INLINE __m128i _mm_blend_epi16(__m128i a, __m128i b, ++// __constrange(0,255) int imm) ++#define _mm_blend_epi16(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, \ ++ const uint16_t _mask[8] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 1)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 2)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 3)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 4)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 5)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 6)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 7)) ? (uint16_t) -1 : 0x0); \ ++ uint16x8_t _mask_vec = vld1q_u16(_mask); \ ++ uint16x8_t __a = vreinterpretq_u16_m128i(_a); \ ++ uint16x8_t __b = vreinterpretq_u16_m128i(_b); _sse2neon_return( \ ++ vreinterpretq_m128i_u16(vbslq_u16(_mask_vec, __b, __a)));) ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using control mask imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_pd ++#define _mm_blend_pd(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128d, a, b, \ ++ const uint64_t _mask[2] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? ~UINT64_C(0) : UINT64_C(0), \ ++ ((imm) & (1 << 1)) ? ~UINT64_C(0) : UINT64_C(0)); \ ++ uint64x2_t _mask_vec = vld1q_u64(_mask); \ ++ uint64x2_t __a = vreinterpretq_u64_m128d(_a); \ ++ uint64x2_t __b = vreinterpretq_u64_m128d(_b); _sse2neon_return( \ ++ vreinterpretq_m128d_u64(vbslq_u64(_mask_vec, __b, __a)));) ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_ps ++FORCE_INLINE __m128 _mm_blend_ps(__m128 _a, __m128 _b, const char imm8) ++{ ++ const uint32_t ALIGN_STRUCT(16) ++ data[4] = {((imm8) & (1 << 0)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0}; ++ uint32x4_t mask = vld1q_u32(data); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Blend packed 8-bit integers from a and b using mask, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_epi8 ++FORCE_INLINE __m128i _mm_blendv_epi8(__m128i _a, __m128i _b, __m128i _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint8x16_t mask = ++ vreinterpretq_u8_s8(vshrq_n_s8(vreinterpretq_s8_m128i(_mask), 7)); ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ uint8x16_t b = vreinterpretq_u8_m128i(_b); ++ return vreinterpretq_m128i_u8(vbslq_u8(mask, b, a)); ++} ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_pd ++FORCE_INLINE __m128d _mm_blendv_pd(__m128d _a, __m128d _b, __m128d _mask) ++{ ++ uint64x2_t mask = ++ vreinterpretq_u64_s64(vshrq_n_s64(vreinterpretq_s64_m128d(_mask), 63)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64(vbslq_f64(mask, b, a)); ++#else ++ uint64x2_t a = vreinterpretq_u64_m128d(_a); ++ uint64x2_t b = vreinterpretq_u64_m128d(_b); ++ return vreinterpretq_m128d_u64(vbslq_u64(mask, b, a)); ++#endif ++} ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_ps ++FORCE_INLINE __m128 _mm_blendv_ps(__m128 _a, __m128 _b, __m128 _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint32x4_t mask = ++ vreinterpretq_u32_s32(vshrq_n_s32(vreinterpretq_s32_m128(_mask), 31)); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a up ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_pd ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndpq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(ceil(f[1]), ceil(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a up to ++// an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ps ++FORCE_INLINE __m128 _mm_ceil_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndpq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ceilf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b up to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_sd ++FORCE_INLINE __m128d _mm_ceil_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_ceil_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b up to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ss ++FORCE_INLINE __m128 _mm_ceil_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_ceil_ps(b)); ++} ++ ++// Compare packed 64-bit integers in a and b for equality, and store the results ++// in dst ++FORCE_INLINE __m128i _mm_cmpeq_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vceqq_u64(vreinterpretq_u64_m128i(a), vreinterpretq_u64_m128i(b))); ++#else ++ // ARMv7 lacks vceqq_u64 ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128i_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Sign extend packed 16-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi32 ++FORCE_INLINE __m128i _mm_cvtepi16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vmovl_s16(vget_low_s16(vreinterpretq_s16_m128i(a)))); ++} ++ ++// Sign extend packed 16-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi64 ++FORCE_INLINE __m128i _mm_cvtepi16_epi64(__m128i a) ++{ ++ int16x8_t s16x8 = vreinterpretq_s16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Sign extend packed 32-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_epi64 ++FORCE_INLINE __m128i _mm_cvtepi32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a)))); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 16-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi16 ++FORCE_INLINE __m128i _mm_cvtepi8_epi16(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ return vreinterpretq_m128i_s16(s16x8); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi32 ++FORCE_INLINE __m128i _mm_cvtepi8_epi32(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_s32(s32x4); ++} ++ ++// Sign extend packed 8-bit integers in the low 8 bytes of a to packed 64-bit ++// integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi64 ++FORCE_INLINE __m128i _mm_cvtepi8_epi64(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi32 ++FORCE_INLINE __m128i _mm_cvtepu16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_u32( ++ vmovl_u16(vget_low_u16(vreinterpretq_u16_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi64 ++FORCE_INLINE __m128i _mm_cvtepu16_epi64(__m128i a) ++{ ++ uint16x8_t u16x8 = vreinterpretq_u16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Zero extend packed unsigned 32-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu32_epi64 ++FORCE_INLINE __m128i _mm_cvtepu32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_u64( ++ vmovl_u32(vget_low_u32(vreinterpretq_u32_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 16-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi16 ++FORCE_INLINE __m128i _mm_cvtepu8_epi16(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx HGFE DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0H0G 0F0E 0D0C 0B0A */ ++ return vreinterpretq_m128i_u16(u16x8); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi32 ++FORCE_INLINE __m128i _mm_cvtepu8_epi32(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_u32(u32x4); ++} ++ ++// Zero extend packed unsigned 8-bit integers in the low 8 bytes of a to packed ++// 64-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi64 ++FORCE_INLINE __m128i _mm_cvtepu8_epi64(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Conditionally multiply the packed double-precision (64-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, and ++// conditionally store the sum in dst using the low 4 bits of imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_pd ++FORCE_INLINE __m128d _mm_dp_pd(__m128d a, __m128d b, const int imm) ++{ ++ // Generate mask value from constant immediate bit value ++ const int64_t bit0Mask = imm & 0x01 ? UINT64_MAX : 0; ++ const int64_t bit1Mask = imm & 0x02 ? UINT64_MAX : 0; ++#if !SSE2NEON_PRECISE_DP ++ const int64_t bit4Mask = imm & 0x10 ? UINT64_MAX : 0; ++ const int64_t bit5Mask = imm & 0x20 ? UINT64_MAX : 0; ++#endif ++ // Conditional multiplication ++#if !SSE2NEON_PRECISE_DP ++ __m128d mul = _mm_mul_pd(a, b); ++ const __m128d mulMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit5Mask, bit4Mask)); ++ __m128d tmp = _mm_and_pd(mul, mulMask); ++#else ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double d0 = (imm & 0x10) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 0) ++ : 0; ++ double d1 = (imm & 0x20) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 1) ++ : 0; ++#else ++ double d0 = (imm & 0x10) ? ((double *) &a)[0] * ((double *) &b)[0] : 0; ++ double d1 = (imm & 0x20) ? ((double *) &a)[1] * ((double *) &b)[1] : 0; ++#endif ++ __m128d tmp = _mm_set_pd(d1, d0); ++#endif ++ // Sum the products ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double sum = vpaddd_f64(vreinterpretq_f64_m128d(tmp)); ++#else ++ double sum = *((double *) &tmp) + *(((double *) &tmp) + 1); ++#endif ++ // Conditionally store the sum ++ const __m128d sumMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit1Mask, bit0Mask)); ++ __m128d res = _mm_and_pd(_mm_set_pd1(sum), sumMask); ++ return res; ++} ++ ++// Conditionally multiply the packed single-precision (32-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, ++// and conditionally store the sum in dst using the low 4 bits of imm. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_ps ++FORCE_INLINE __m128 _mm_dp_ps(__m128 a, __m128 b, const int imm) ++{ ++ float32x4_t elementwise_prod = _mm_mul_ps(a, b); ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ /* shortcuts */ ++ if (imm == 0xFF) { ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++ ++ if ((imm & 0x0F) == 0x0F) { ++ if (!(imm & (1 << 4))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 0); ++ if (!(imm & (1 << 5))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 1); ++ if (!(imm & (1 << 6))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 2); ++ if (!(imm & (1 << 7))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 3); ++ ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++#endif ++ ++ float s = 0.0f; ++ ++ if (imm & (1 << 4)) ++ s += vgetq_lane_f32(elementwise_prod, 0); ++ if (imm & (1 << 5)) ++ s += vgetq_lane_f32(elementwise_prod, 1); ++ if (imm & (1 << 6)) ++ s += vgetq_lane_f32(elementwise_prod, 2); ++ if (imm & (1 << 7)) ++ s += vgetq_lane_f32(elementwise_prod, 3); ++ ++ const float32_t res[4] = { ++ (imm & 0x1) ? s : 0.0f, ++ (imm & 0x2) ? s : 0.0f, ++ (imm & 0x4) ? s : 0.0f, ++ (imm & 0x8) ? s : 0.0f, ++ }; ++ return vreinterpretq_m128_f32(vld1q_f32(res)); ++} ++ ++// Extract a 32-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi32 ++// FORCE_INLINE int _mm_extract_epi32(__m128i a, __constrange(0,4) int imm) ++#define _mm_extract_epi32(a, imm) \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)) ++ ++// Extract a 64-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi64 ++// FORCE_INLINE __int64 _mm_extract_epi64(__m128i a, __constrange(0,2) int imm) ++#define _mm_extract_epi64(a, imm) \ ++ vgetq_lane_s64(vreinterpretq_s64_m128i(a), (imm)) ++ ++// Extract an 8-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. FORCE_INLINE int _mm_extract_epi8(__m128i a, ++// __constrange(0,16) int imm) ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi8 ++#define _mm_extract_epi8(a, imm) vgetq_lane_u8(vreinterpretq_u8_m128i(a), (imm)) ++ ++// Extracts the selected single-precision (32-bit) floating-point from a. ++// FORCE_INLINE int _mm_extract_ps(__m128 a, __constrange(0,4) int imm) ++#define _mm_extract_ps(a, imm) vgetq_lane_s32(vreinterpretq_s32_m128(a), (imm)) ++ ++// Round the packed double-precision (64-bit) floating-point elements in a down ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_pd ++FORCE_INLINE __m128d _mm_floor_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndmq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(floor(f[1]), floor(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a down ++// to an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ps ++FORCE_INLINE __m128 _mm_floor_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndmq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(floorf(f[3]), floorf(f[2]), floorf(f[1]), floorf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b down to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_sd ++FORCE_INLINE __m128d _mm_floor_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_floor_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b down to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ss ++FORCE_INLINE __m128 _mm_floor_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_floor_ps(b)); ++} ++ ++// Copy a to dst, and insert the 32-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi32 ++// FORCE_INLINE __m128i _mm_insert_epi32(__m128i a, int b, ++// __constrange(0,4) int imm) ++#define _mm_insert_epi32(a, b, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vsetq_lane_s32((b), vreinterpretq_s32_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the 64-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi64 ++// FORCE_INLINE __m128i _mm_insert_epi64(__m128i a, __int64 b, ++// __constrange(0,2) int imm) ++#define _mm_insert_epi64(a, b, imm) \ ++ vreinterpretq_m128i_s64( \ ++ vsetq_lane_s64((b), vreinterpretq_s64_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the lower 8-bit integer from i into dst at the ++// location specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi8 ++// FORCE_INLINE __m128i _mm_insert_epi8(__m128i a, int b, ++// __constrange(0,16) int imm) ++#define _mm_insert_epi8(a, b, imm) \ ++ vreinterpretq_m128i_s8(vsetq_lane_s8((b), vreinterpretq_s8_m128i(a), (imm))) ++ ++// Copy a to tmp, then insert a single-precision (32-bit) floating-point ++// element from b into tmp using the control in imm8. Store tmp to dst using ++// the mask in imm8 (elements are zeroed out when the corresponding bit is set). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=insert_ps ++#define _mm_insert_ps(a, b, imm8) \ ++ _sse2neon_define2( \ ++ __m128, a, b, \ ++ float32x4_t tmp1 = \ ++ vsetq_lane_f32(vgetq_lane_f32(_b, (imm8 >> 6) & 0x3), \ ++ vreinterpretq_f32_m128(_a), 0); \ ++ float32x4_t tmp2 = \ ++ vsetq_lane_f32(vgetq_lane_f32(tmp1, 0), \ ++ vreinterpretq_f32_m128(_a), ((imm8 >> 4) & 0x3)); \ ++ const uint32_t data[4] = \ ++ _sse2neon_init(((imm8) & (1 << 0)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0); \ ++ uint32x4_t mask = vld1q_u32(data); \ ++ float32x4_t all_zeros = vdupq_n_f32(0); \ ++ \ ++ _sse2neon_return(vreinterpretq_m128_f32( \ ++ vbslq_f32(mask, all_zeros, vreinterpretq_f32_m128(tmp2))));) ++ ++// Compare packed signed 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi32 ++FORCE_INLINE __m128i _mm_max_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmaxq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi8 ++FORCE_INLINE __m128i _mm_max_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vmaxq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu16 ++FORCE_INLINE __m128i _mm_max_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vmaxq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_max_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vmaxq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi32 ++FORCE_INLINE __m128i _mm_min_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vminq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi8 ++FORCE_INLINE __m128i _mm_min_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vminq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu16 ++FORCE_INLINE __m128i _mm_min_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vminq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_min_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vminq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Horizontally compute the minimum amongst the packed unsigned 16-bit integers ++// in a, store the minimum and index in dst, and zero the remaining bits in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_minpos_epu16 ++FORCE_INLINE __m128i _mm_minpos_epu16(__m128i a) ++{ ++ __m128i dst; ++ uint16_t min, idx = 0; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Find the minimum value ++ min = vminvq_u16(vreinterpretq_u16_m128i(a)); ++ ++ // Get the index of the minimum value ++ static const uint16_t idxv[] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint16x8_t minv = vdupq_n_u16(min); ++ uint16x8_t cmeq = vceqq_u16(minv, vreinterpretq_u16_m128i(a)); ++ idx = vminvq_u16(vornq_u16(vld1q_u16(idxv), cmeq)); ++#else ++ // Find the minimum value ++ __m64 tmp; ++ tmp = vreinterpret_m64_u16( ++ vmin_u16(vget_low_u16(vreinterpretq_u16_m128i(a)), ++ vget_high_u16(vreinterpretq_u16_m128i(a)))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ min = vget_lane_u16(vreinterpret_u16_m64(tmp), 0); ++ // Get the index of the minimum value ++ int i; ++ for (i = 0; i < 8; i++) { ++ if (min == vgetq_lane_u16(vreinterpretq_u16_m128i(a), 0)) { ++ idx = (uint16_t) i; ++ break; ++ } ++ a = _mm_srli_si128(a, 2); ++ } ++#endif ++ // Generate result ++ dst = _mm_setzero_si128(); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(min, vreinterpretq_u16_m128i(dst), 0)); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(idx, vreinterpretq_u16_m128i(dst), 1)); ++ return dst; ++} ++ ++// Compute the sum of absolute differences (SADs) of quadruplets of unsigned ++// 8-bit integers in a compared to those in b, and store the 16-bit results in ++// dst. Eight SADs are performed using one quadruplet from b and eight ++// quadruplets from a. One quadruplet is selected from b starting at on the ++// offset specified in imm8. Eight quadruplets are formed from sequential 8-bit ++// integers selected from a starting at the offset specified in imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mpsadbw_epu8 ++FORCE_INLINE __m128i _mm_mpsadbw_epu8(__m128i a, __m128i b, const int imm) ++{ ++ uint8x16_t _a, _b; ++ ++ switch (imm & 0x4) { ++ case 0: ++ // do nothing ++ _a = vreinterpretq_u8_m128i(a); ++ break; ++ case 4: ++ _a = vreinterpretq_u8_u32(vextq_u32(vreinterpretq_u32_m128i(a), ++ vreinterpretq_u32_m128i(a), 1)); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ switch (imm & 0x3) { ++ case 0: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 0))); ++ break; ++ case 1: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 1))); ++ break; ++ case 2: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 2))); ++ break; ++ case 3: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 3))); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ int16x8_t c04, c15, c26, c37; ++ uint8x8_t low_b = vget_low_u8(_b); ++ c04 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a), low_b)); ++ uint8x16_t _a_1 = vextq_u8(_a, _a, 1); ++ c15 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_1), low_b)); ++ uint8x16_t _a_2 = vextq_u8(_a, _a, 2); ++ c26 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_2), low_b)); ++ uint8x16_t _a_3 = vextq_u8(_a, _a, 3); ++ c37 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_3), low_b)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // |0|4|2|6| ++ c04 = vpaddq_s16(c04, c26); ++ // |1|5|3|7| ++ c15 = vpaddq_s16(c15, c37); ++ ++ int32x4_t trn1_c = ++ vtrn1q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ int32x4_t trn2_c = ++ vtrn2q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ return vreinterpretq_m128i_s16(vpaddq_s16(vreinterpretq_s16_s32(trn1_c), ++ vreinterpretq_s16_s32(trn2_c))); ++#else ++ int16x4_t c01, c23, c45, c67; ++ c01 = vpadd_s16(vget_low_s16(c04), vget_low_s16(c15)); ++ c23 = vpadd_s16(vget_low_s16(c26), vget_low_s16(c37)); ++ c45 = vpadd_s16(vget_high_s16(c04), vget_high_s16(c15)); ++ c67 = vpadd_s16(vget_high_s16(c26), vget_high_s16(c37)); ++ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(c01, c23), vpadd_s16(c45, c67))); ++#endif ++} ++ ++// Multiply the low signed 32-bit integers from each packed 64-bit element in ++// a and b, and store the signed 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epi32 ++FORCE_INLINE __m128i _mm_mul_epi32(__m128i a, __m128i b) ++{ ++ // vmull_s32 upcasts instead of masking, so we downcast. ++ int32x2_t a_lo = vmovn_s64(vreinterpretq_s64_m128i(a)); ++ int32x2_t b_lo = vmovn_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vmull_s32(a_lo, b_lo)); ++} ++ ++// Multiply the packed 32-bit integers in a and b, producing intermediate 64-bit ++// integers, and store the low 32 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi32 ++FORCE_INLINE __m128i _mm_mullo_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmulq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi32 ++FORCE_INLINE __m128i _mm_packus_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcombine_u16(vqmovun_s32(vreinterpretq_s32_m128i(a)), ++ vqmovun_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_pd ++FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d a, int rounding) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndnq_f64(vreinterpretq_f64_m128d(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_pd(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_pd(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndq_f64(vreinterpretq_f64_m128d(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128d_f64(vrndiq_f64(vreinterpretq_f64_m128d(a))); ++ } ++#else ++ double *v_double = (double *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ double res[2], tmp; ++ for (int i = 0; i < 2; i++) { ++ tmp = (v_double[i] < 0) ? -v_double[i] : v_double[i]; ++ double roundDown = floor(tmp); // Round down value ++ double roundUp = ceil(tmp); // Round up value ++ double diffDown = tmp - roundDown; ++ double diffUp = roundUp - tmp; ++ if (diffDown < diffUp) { ++ /* If it's closer to the round down value, then use it */ ++ res[i] = roundDown; ++ } else if (diffDown > diffUp) { ++ /* If it's closer to the round up value, then use it */ ++ res[i] = roundUp; ++ } else { ++ /* If it's equidistant between round up and round down value, ++ * pick the one which is an even number */ ++ double half = roundDown / 2; ++ if (half != floor(half)) { ++ /* If the round down value is odd, return the round up value ++ */ ++ res[i] = roundUp; ++ } else { ++ /* If the round up value is odd, return the round down value ++ */ ++ res[i] = roundDown; ++ } ++ } ++ res[i] = (v_double[i] < 0) ? -res[i] : res[i]; ++ } ++ return _mm_set_pd(res[1], res[0]); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_pd(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_pd(a); ++ } ++ return _mm_set_pd(v_double[1] > 0 ? floor(v_double[1]) : ceil(v_double[1]), ++ v_double[0] > 0 ? floor(v_double[0]) : ceil(v_double[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed single-precision ++// floating-point elements in dst. ++// software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_round_ps ++FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128 a, int rounding) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndnq_f32(vreinterpretq_f32_m128(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_ps(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_ps(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndq_f32(vreinterpretq_f32_m128(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128_f32(vrndiq_f32(vreinterpretq_f32_m128(a))); ++ } ++#else ++ float *v_float = (float *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vbslq_s32(is_delta_half, r_even, r_normal))); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_ps(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_ps(a); ++ } ++ return _mm_set_ps(v_float[3] > 0 ? floorf(v_float[3]) : ceilf(v_float[3]), ++ v_float[2] > 0 ? floorf(v_float[2]) : ceilf(v_float[2]), ++ v_float[1] > 0 ? floorf(v_float[1]) : ceilf(v_float[1]), ++ v_float[0] > 0 ? floorf(v_float[0]) : ceilf(v_float[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b using ++// the rounding parameter, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_sd ++FORCE_INLINE __m128d _mm_round_sd(__m128d a, __m128d b, int rounding) ++{ ++ return _mm_move_sd(a, _mm_round_pd(b, rounding)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b using ++// the rounding parameter, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. Rounding is done according to the ++// rounding[3:0] parameter, which can be one of: ++// (_MM_FROUND_TO_NEAREST_INT |_MM_FROUND_NO_EXC) // round to nearest, and ++// suppress exceptions ++// (_MM_FROUND_TO_NEG_INF |_MM_FROUND_NO_EXC) // round down, and ++// suppress exceptions ++// (_MM_FROUND_TO_POS_INF |_MM_FROUND_NO_EXC) // round up, and suppress ++// exceptions ++// (_MM_FROUND_TO_ZERO |_MM_FROUND_NO_EXC) // truncate, and suppress ++// exceptions _MM_FROUND_CUR_DIRECTION // use MXCSR.RC; see ++// _MM_SET_ROUNDING_MODE ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_ss ++FORCE_INLINE __m128 _mm_round_ss(__m128 a, __m128 b, int rounding) ++{ ++ return _mm_move_ss(a, _mm_round_ps(b, rounding)); ++} ++ ++// Load 128-bits of integer data from memory into dst using a non-temporal ++// memory hint. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_load_si128 ++FORCE_INLINE __m128i _mm_stream_load_si128(__m128i *p) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ return __builtin_nontemporal_load(p); ++#else ++ return vreinterpretq_m128i_s64(vld1q_s64((int64_t *) p)); ++#endif ++} ++ ++// Compute the bitwise NOT of a and then AND with a 128-bit vector containing ++// all 1's, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_ones ++FORCE_INLINE int _mm_test_all_ones(__m128i a) ++{ ++ return (uint64_t) (vgetq_lane_s64(a, 0) & vgetq_lane_s64(a, 1)) == ++ ~(uint64_t) 0; ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_zeros ++FORCE_INLINE int _mm_test_all_zeros(__m128i a, __m128i mask) ++{ ++ int64x2_t a_and_mask = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(mask)); ++ return !(vgetq_lane_s64(a_and_mask, 0) | vgetq_lane_s64(a_and_mask, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute ++// the bitwise NOT of a and then AND with mask, and set CF to 1 if the result is ++// zero, otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_test_mix_ones_zero ++// Note: Argument names may be wrong in the Intel intrinsics guide. ++FORCE_INLINE int _mm_test_mix_ones_zeros(__m128i a, __m128i mask) ++{ ++ uint64x2_t v = vreinterpretq_u64_m128i(a); ++ uint64x2_t m = vreinterpretq_u64_m128i(mask); ++ ++ // find ones (set-bits) and zeros (clear-bits) under clip mask ++ uint64x2_t ones = vandq_u64(m, v); ++ uint64x2_t zeros = vbicq_u64(m, v); ++ ++ // If both 128-bit variables are populated (non-zero) then return 1. ++ // For comparison purposes, first compact each var down to 32-bits. ++ uint32x2_t reduced = vpmax_u32(vqmovn_u64(ones), vqmovn_u64(zeros)); ++ ++ // if folding minimum is non-zero then both vars must be non-zero ++ return (vget_lane_u32(vpmin_u32(reduced, reduced), 0) != 0); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the CF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testc_si128 ++FORCE_INLINE int _mm_testc_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vbicq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testnzc_si128 ++#define _mm_testnzc_si128(a, b) _mm_test_mix_ones_zeros(a, b) ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the ZF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testz_si128 ++FORCE_INLINE int _mm_testz_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++/* SSE4.2 */ ++ ++static const uint16_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask16b[8] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++static const uint8_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask8b[16] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++ ++/* specify the source data format */ ++#define _SIDD_UBYTE_OPS 0x00 /* unsigned 8-bit characters */ ++#define _SIDD_UWORD_OPS 0x01 /* unsigned 16-bit characters */ ++#define _SIDD_SBYTE_OPS 0x02 /* signed 8-bit characters */ ++#define _SIDD_SWORD_OPS 0x03 /* signed 16-bit characters */ ++ ++/* specify the comparison operation */ ++#define _SIDD_CMP_EQUAL_ANY 0x00 /* compare equal any: strchr */ ++#define _SIDD_CMP_RANGES 0x04 /* compare ranges */ ++#define _SIDD_CMP_EQUAL_EACH 0x08 /* compare equal each: strcmp */ ++#define _SIDD_CMP_EQUAL_ORDERED 0x0C /* compare equal ordered */ ++ ++/* specify the polarity */ ++#define _SIDD_POSITIVE_POLARITY 0x00 ++#define _SIDD_MASKED_POSITIVE_POLARITY 0x20 ++#define _SIDD_NEGATIVE_POLARITY 0x10 /* negate results */ ++#define _SIDD_MASKED_NEGATIVE_POLARITY \ ++ 0x30 /* negate results only before end of string */ ++ ++/* specify the output selection in _mm_cmpXstri */ ++#define _SIDD_LEAST_SIGNIFICANT 0x00 ++#define _SIDD_MOST_SIGNIFICANT 0x40 ++ ++/* specify the output selection in _mm_cmpXstrm */ ++#define _SIDD_BIT_MASK 0x00 ++#define _SIDD_UNIT_MASK 0x40 ++ ++/* Pattern Matching for C macros. ++ * https://github.com/pfultz2/Cloak/wiki/C-Preprocessor-tricks,-tips,-and-idioms ++ */ ++ ++/* catenate */ ++#define SSE2NEON_PRIMITIVE_CAT(a, ...) a##__VA_ARGS__ ++#define SSE2NEON_CAT(a, b) SSE2NEON_PRIMITIVE_CAT(a, b) ++ ++#define SSE2NEON_IIF(c) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_IIF_, c) ++/* run the 2nd parameter */ ++#define SSE2NEON_IIF_0(t, ...) __VA_ARGS__ ++/* run the 1st parameter */ ++#define SSE2NEON_IIF_1(t, ...) t ++ ++#define SSE2NEON_COMPL(b) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_COMPL_, b) ++#define SSE2NEON_COMPL_0 1 ++#define SSE2NEON_COMPL_1 0 ++ ++#define SSE2NEON_DEC(x) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_DEC_, x) ++#define SSE2NEON_DEC_1 0 ++#define SSE2NEON_DEC_2 1 ++#define SSE2NEON_DEC_3 2 ++#define SSE2NEON_DEC_4 3 ++#define SSE2NEON_DEC_5 4 ++#define SSE2NEON_DEC_6 5 ++#define SSE2NEON_DEC_7 6 ++#define SSE2NEON_DEC_8 7 ++#define SSE2NEON_DEC_9 8 ++#define SSE2NEON_DEC_10 9 ++#define SSE2NEON_DEC_11 10 ++#define SSE2NEON_DEC_12 11 ++#define SSE2NEON_DEC_13 12 ++#define SSE2NEON_DEC_14 13 ++#define SSE2NEON_DEC_15 14 ++#define SSE2NEON_DEC_16 15 ++ ++/* detection */ ++#define SSE2NEON_CHECK_N(x, n, ...) n ++#define SSE2NEON_CHECK(...) SSE2NEON_CHECK_N(__VA_ARGS__, 0, ) ++#define SSE2NEON_PROBE(x) x, 1, ++ ++#define SSE2NEON_NOT(x) SSE2NEON_CHECK(SSE2NEON_PRIMITIVE_CAT(SSE2NEON_NOT_, x)) ++#define SSE2NEON_NOT_0 SSE2NEON_PROBE(~) ++ ++#define SSE2NEON_BOOL(x) SSE2NEON_COMPL(SSE2NEON_NOT(x)) ++#define SSE2NEON_IF(c) SSE2NEON_IIF(SSE2NEON_BOOL(c)) ++ ++#define SSE2NEON_EAT(...) ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++#define SSE2NEON_WHEN(c) SSE2NEON_IF(c)(SSE2NEON_EXPAND, SSE2NEON_EAT) ++ ++/* recursion */ ++/* deferred expression */ ++#define SSE2NEON_EMPTY() ++#define SSE2NEON_DEFER(id) id SSE2NEON_EMPTY() ++#define SSE2NEON_OBSTRUCT(...) __VA_ARGS__ SSE2NEON_DEFER(SSE2NEON_EMPTY)() ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++ ++#define SSE2NEON_EVAL(...) \ ++ SSE2NEON_EVAL1(SSE2NEON_EVAL1(SSE2NEON_EVAL1(__VA_ARGS__))) ++#define SSE2NEON_EVAL1(...) \ ++ SSE2NEON_EVAL2(SSE2NEON_EVAL2(SSE2NEON_EVAL2(__VA_ARGS__))) ++#define SSE2NEON_EVAL2(...) \ ++ SSE2NEON_EVAL3(SSE2NEON_EVAL3(SSE2NEON_EVAL3(__VA_ARGS__))) ++#define SSE2NEON_EVAL3(...) __VA_ARGS__ ++ ++#define SSE2NEON_REPEAT(count, macro, ...) \ ++ SSE2NEON_WHEN(count) \ ++ (SSE2NEON_OBSTRUCT(SSE2NEON_REPEAT_INDIRECT)()( \ ++ SSE2NEON_DEC(count), macro, \ ++ __VA_ARGS__) SSE2NEON_OBSTRUCT(macro)(SSE2NEON_DEC(count), \ ++ __VA_ARGS__)) ++#define SSE2NEON_REPEAT_INDIRECT() SSE2NEON_REPEAT ++ ++#define SSE2NEON_SIZE_OF_byte 8 ++#define SSE2NEON_NUMBER_OF_LANES_byte 16 ++#define SSE2NEON_SIZE_OF_word 16 ++#define SSE2NEON_NUMBER_OF_LANES_word 8 ++ ++#define SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE(i, type) \ ++ mtx[i] = vreinterpretq_m128i_##type(vceqq_##type( \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)), \ ++ vreinterpretq_##type##_m128i(a))); ++ ++#define SSE2NEON_FILL_LANE(i, type) \ ++ vec_b[i] = \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)); ++ ++#define PCMPSTR_RANGES(a, b, mtx, data_type_prefix, type_prefix, size, \ ++ number_of_lanes, byte_or_word) \ ++ do { \ ++ SSE2NEON_CAT( \ ++ data_type_prefix, \ ++ SSE2NEON_CAT(size, \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(number_of_lanes, _t)))) \ ++ vec_b[number_of_lanes]; \ ++ __m128i mask = SSE2NEON_IIF(byte_or_word)( \ ++ vreinterpretq_m128i_u16(vdupq_n_u16(0xff)), \ ++ vreinterpretq_m128i_u32(vdupq_n_u32(0xffff))); \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, SSE2NEON_FILL_LANE, \ ++ SSE2NEON_CAT(type_prefix, size))) \ ++ for (int i = 0; i < number_of_lanes; i++) { \ ++ mtx[i] = SSE2NEON_CAT(vreinterpretq_m128i_u, \ ++ size)(SSE2NEON_CAT(vbslq_u, size)( \ ++ SSE2NEON_CAT(vreinterpretq_u, \ ++ SSE2NEON_CAT(size, _m128i))(mask), \ ++ SSE2NEON_CAT(vcgeq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))), \ ++ SSE2NEON_CAT(vcleq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))))); \ ++ } \ ++ } while (0) ++ ++#define PCMPSTR_EQ(a, b, mtx, size, number_of_lanes) \ ++ do { \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, \ ++ SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE, \ ++ SSE2NEON_CAT(u, size))) \ ++ } while (0) ++ ++#define SSE2NEON_CMP_EQUAL_ANY_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_any(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_any_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_RANGES_IMPL(type, data_type, us, byte_or_word) \ ++ static int _sse2neon_cmp_##us##type##_ranges(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_RANGES( \ ++ a, b, mtx, data_type, us, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), byte_or_word); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_ranges_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_EQUAL_ORDERED_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_ordered(__m128i a, int la, \ ++ __m128i b, int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_ordered_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type))))( \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), la, lb, mtx); \ ++ } ++ ++static int _sse2neon_aggregate_equal_any_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ int tmp = _sse2neon_vaddvq_u8(vreinterpretq_u8_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_equal_any_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ int tmp = _sse2neon_vaddvq_u16(vreinterpretq_u16_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ANY(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ANY(SSE2NEON_CMP_EQUAL_ANY_) ++ ++static int _sse2neon_aggregate_ranges_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ __m128i tmp = vreinterpretq_m128i_u32( ++ vshrq_n_u32(vreinterpretq_u32_m128i(mtx[j]), 16)); ++ uint32x4_t vec_res = vandq_u32(vreinterpretq_u32_m128i(mtx[j]), ++ vreinterpretq_u32_m128i(tmp)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int t = vaddvq_u32(vec_res) ? 1 : 0; ++#else ++ uint64x2_t sumh = vpaddlq_u32(vec_res); ++ int t = vgetq_lane_u64(sumh, 0) + vgetq_lane_u64(sumh, 1); ++#endif ++ res |= (t << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_ranges_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ __m128i tmp = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 8)); ++ uint16x8_t vec_res = vandq_u16(vreinterpretq_u16_m128i(mtx[j]), ++ vreinterpretq_u16_m128i(tmp)); ++ int t = _sse2neon_vaddvq_u16(vec_res) ? 1 : 0; ++ res |= (t << j); ++ } ++ return res; ++} ++ ++#define SSE2NEON_CMP_RANGES_IS_BYTE 1 ++#define SSE2NEON_CMP_RANGES_IS_WORD 0 ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_RANGES(prefix) \ ++ prefix##IMPL(byte, uint, u, prefix##IS_BYTE) \ ++ prefix##IMPL(byte, int, s, prefix##IS_BYTE) \ ++ prefix##IMPL(word, uint, u, prefix##IS_WORD) \ ++ prefix##IMPL(word, int, s, prefix##IS_WORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_RANGES(SSE2NEON_CMP_RANGES_) ++ ++#undef SSE2NEON_CMP_RANGES_IS_BYTE ++#undef SSE2NEON_CMP_RANGES_IS_WORD ++ ++static int _sse2neon_cmp_byte_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint8x16_t mtx = ++ vceqq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x10000 - (1 << la); ++ int tb = 0x10000 - (1 << lb); ++ uint8x8_t vec_mask, vec0_lo, vec0_hi, vec1_lo, vec1_hi; ++ uint8x8_t tmp_lo, tmp_hi, res_lo, res_hi; ++ vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ vec0_lo = vtst_u8(vdup_n_u8(m0), vec_mask); ++ vec0_hi = vtst_u8(vdup_n_u8(m0 >> 8), vec_mask); ++ vec1_lo = vtst_u8(vdup_n_u8(m1), vec_mask); ++ vec1_hi = vtst_u8(vdup_n_u8(m1 >> 8), vec_mask); ++ tmp_lo = vtst_u8(vdup_n_u8(tb), vec_mask); ++ tmp_hi = vtst_u8(vdup_n_u8(tb >> 8), vec_mask); ++ ++ res_lo = vbsl_u8(vec0_lo, vdup_n_u8(0), vget_low_u8(mtx)); ++ res_hi = vbsl_u8(vec0_hi, vdup_n_u8(0), vget_high_u8(mtx)); ++ res_lo = vbsl_u8(vec1_lo, tmp_lo, res_lo); ++ res_hi = vbsl_u8(vec1_hi, tmp_hi, res_hi); ++ res_lo = vand_u8(res_lo, vec_mask); ++ res_hi = vand_u8(res_hi, vec_mask); ++ ++ int res = _sse2neon_vaddv_u8(res_lo) + (_sse2neon_vaddv_u8(res_hi) << 8); ++ return res; ++} ++ ++static int _sse2neon_cmp_word_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint16x8_t mtx = ++ vceqq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x100 - (1 << la); ++ int tb = 0x100 - (1 << lb); ++ uint16x8_t vec_mask = vld1q_u16(_sse2neon_cmpestr_mask16b); ++ uint16x8_t vec0 = vtstq_u16(vdupq_n_u16(m0), vec_mask); ++ uint16x8_t vec1 = vtstq_u16(vdupq_n_u16(m1), vec_mask); ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(tb), vec_mask); ++ mtx = vbslq_u16(vec0, vdupq_n_u16(0), mtx); ++ mtx = vbslq_u16(vec1, tmp, mtx); ++ mtx = vandq_u16(mtx, vec_mask); ++ return _sse2neon_vaddvq_u16(mtx); ++} ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE 1 ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD 0 ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IMPL(size, number_of_lanes, data_type) \ ++ static int _sse2neon_aggregate_equal_ordered_##size##x##number_of_lanes( \ ++ int bound, int la, int lb, __m128i mtx[16]) \ ++ { \ ++ int res = 0; \ ++ int m1 = SSE2NEON_IIF(data_type)(0x10000, 0x100) - (1 << la); \ ++ uint##size##x8_t vec_mask = SSE2NEON_IIF(data_type)( \ ++ vld1_u##size(_sse2neon_cmpestr_mask##size##b), \ ++ vld1q_u##size(_sse2neon_cmpestr_mask##size##b)); \ ++ uint##size##x##number_of_lanes##_t vec1 = SSE2NEON_IIF(data_type)( \ ++ vcombine_u##size(vtst_u##size(vdup_n_u##size(m1), vec_mask), \ ++ vtst_u##size(vdup_n_u##size(m1 >> 8), vec_mask)), \ ++ vtstq_u##size(vdupq_n_u##size(m1), vec_mask)); \ ++ uint##size##x##number_of_lanes##_t vec_minusone = vdupq_n_u##size(-1); \ ++ uint##size##x##number_of_lanes##_t vec_zero = vdupq_n_u##size(0); \ ++ for (int j = 0; j < lb; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size(vbslq_u##size( \ ++ vec1, vec_minusone, vreinterpretq_u##size##_m128i(mtx[j]))); \ ++ } \ ++ for (int j = lb; j < bound; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size( \ ++ vbslq_u##size(vec1, vec_minusone, vec_zero)); \ ++ } \ ++ unsigned SSE2NEON_IIF(data_type)(char, short) *ptr = \ ++ (unsigned SSE2NEON_IIF(data_type)(char, short) *) mtx; \ ++ for (int i = 0; i < bound; i++) { \ ++ int val = 1; \ ++ for (int j = 0, k = i; j < bound - i && k < bound; j++, k++) \ ++ val &= ptr[k * bound + j]; \ ++ res += val << i; \ ++ } \ ++ return res; \ ++ } ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(prefix) \ ++ prefix##IMPL(8, 16, prefix##IS_UBYTE) \ ++ prefix##IMPL(16, 8, prefix##IS_UWORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(SSE2NEON_AGGREGATE_EQUAL_ORDER_) ++ ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(SSE2NEON_CMP_EQUAL_ORDERED_) ++ ++#define SSE2NEON_CMPESTR_LIST \ ++ _(CMP_UBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_UWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_SBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_SWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_UBYTE_RANGES, cmp_ubyte_ranges) \ ++ _(CMP_UWORD_RANGES, cmp_uword_ranges) \ ++ _(CMP_SBYTE_RANGES, cmp_sbyte_ranges) \ ++ _(CMP_SWORD_RANGES, cmp_sword_ranges) \ ++ _(CMP_UBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_UWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_SBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_SWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_UBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_UWORD_EQUAL_ORDERED, cmp_word_equal_ordered) \ ++ _(CMP_SBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_SWORD_EQUAL_ORDERED, cmp_word_equal_ordered) ++ ++enum { ++#define _(name, func_suffix) name, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++typedef int (*cmpestr_func_t)(__m128i a, int la, __m128i b, int lb); ++static cmpestr_func_t _sse2neon_cmpfunc_table[] = { ++#define _(name, func_suffix) _sse2neon_##func_suffix, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++ ++FORCE_INLINE int _sse2neon_sido_negative(int res, int lb, int imm8, int bound) ++{ ++ switch (imm8 & 0x30) { ++ case _SIDD_NEGATIVE_POLARITY: ++ res ^= 0xffffffff; ++ break; ++ case _SIDD_MASKED_NEGATIVE_POLARITY: ++ res ^= (1 << lb) - 1; ++ break; ++ default: ++ break; ++ } ++ ++ return res & ((bound == 8) ? 0xFF : 0xFFFF); ++} ++ ++FORCE_INLINE int _sse2neon_clz(unsigned int x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt = 0; ++ if (_BitScanReverse(&cnt, x)) ++ return 31 - cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_clz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctz(unsigned int x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt = 0; ++ if (_BitScanForward(&cnt, x)) ++ return cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_ctz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctzll(unsigned long long x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt; ++#if defined(SSE2NEON_HAS_BITSCAN64) ++ if (_BitScanForward64(&cnt, x)) ++ return (int) (cnt); ++#else ++ if (_BitScanForward(&cnt, (unsigned long) (x))) ++ return (int) cnt; ++ if (_BitScanForward(&cnt, (unsigned long) (x >> 32))) ++ return (int) (cnt + 32); ++#endif /* SSE2NEON_HAS_BITSCAN64 */ ++ return 64; ++#else /* assume GNU compatible compilers */ ++ return x != 0 ? __builtin_ctzll(x) : 64; ++#endif ++} ++ ++#define SSE2NEON_MIN(x, y) (x) < (y) ? (x) : (y) ++ ++#define SSE2NEON_CMPSTR_SET_UPPER(var, imm) \ ++ const int var = (imm & 0x01) ? 8 : 16 ++ ++#define SSE2NEON_CMPESTRX_LEN_PAIR(a, b, la, lb) \ ++ int tmp1 = la ^ (la >> 31); \ ++ la = tmp1 - (la >> 31); \ ++ int tmp2 = lb ^ (lb >> 31); \ ++ lb = tmp2 - (lb >> 31); \ ++ la = SSE2NEON_MIN(la, bound); \ ++ lb = SSE2NEON_MIN(lb, bound) ++ ++// Compare all pairs of character in string a and b, ++// then aggregate the result. ++// As the only difference of PCMPESTR* and PCMPISTR* is the way to calculate the ++// length of string, we use SSE2NEON_CMP{I,E}STRX_GET_LEN to get the length of ++// string a and b. ++#define SSE2NEON_COMP_AGG(a, b, la, lb, imm8, IE) \ ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); \ ++ SSE2NEON_##IE##_LEN_PAIR(a, b, la, lb); \ ++ int r2 = (_sse2neon_cmpfunc_table[imm8 & 0x0f])(a, la, b, lb); \ ++ r2 = _sse2neon_sido_negative(r2, lb, imm8, bound) ++ ++#define SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8) \ ++ return (r2 == 0) ? bound \ ++ : ((imm8 & 0x40) ? (31 - _sse2neon_clz(r2)) \ ++ : _sse2neon_ctz(r2)) ++ ++#define SSE2NEON_CMPSTR_GENERATE_MASK(dst) \ ++ __m128i dst = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ if (imm8 & 0x40) { \ ++ if (bound == 8) { \ ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(r2), \ ++ vld1q_u16(_sse2neon_cmpestr_mask16b)); \ ++ dst = vreinterpretq_m128i_u16(vbslq_u16( \ ++ tmp, vdupq_n_u16(-1), vreinterpretq_u16_m128i(dst))); \ ++ } else { \ ++ uint8x16_t vec_r2 = \ ++ vcombine_u8(vdup_n_u8(r2), vdup_n_u8(r2 >> 8)); \ ++ uint8x16_t tmp = \ ++ vtstq_u8(vec_r2, vld1q_u8(_sse2neon_cmpestr_mask8b)); \ ++ dst = vreinterpretq_m128i_u8( \ ++ vbslq_u8(tmp, vdupq_n_u8(-1), vreinterpretq_u8_m128i(dst))); \ ++ } \ ++ } else { \ ++ if (bound == 16) { \ ++ dst = vreinterpretq_m128i_u16( \ ++ vsetq_lane_u16(r2 & 0xffff, vreinterpretq_u16_m128i(dst), 0)); \ ++ } else { \ ++ dst = vreinterpretq_m128i_u8( \ ++ vsetq_lane_u8(r2 & 0xff, vreinterpretq_u8_m128i(dst), 0)); \ ++ } \ ++ } \ ++ return dst ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and returns 1 if b did not contain a null character and the ++// resulting mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestra ++FORCE_INLINE int _mm_cmpestra(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ int lb_cpy = lb; ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return !r2 & (lb_cpy > bound); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrc ++FORCE_INLINE int _mm_cmpestrc(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestri ++FORCE_INLINE int _mm_cmpestri(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrm ++FORCE_INLINE __m128i ++_mm_cmpestrm(__m128i a, int la, __m128i b, int lb, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestro ++FORCE_INLINE int _mm_cmpestro(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrs ++FORCE_INLINE int _mm_cmpestrs(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) lb; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrz ++FORCE_INLINE int _mm_cmpestrz(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) la; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return lb <= (bound - 1); ++} ++ ++#define SSE2NEON_CMPISTRX_LENGTH(str, len, imm8) \ ++ do { \ ++ if (imm8 & 0x01) { \ ++ uint16x8_t equal_mask_##str = \ ++ vceqq_u16(vreinterpretq_u16_m128i(str), vdupq_n_u16(0)); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 3; \ ++ } else { \ ++ uint16x8_t equal_mask_##str = vreinterpretq_u16_u8( \ ++ vceqq_u8(vreinterpretq_u8_m128i(str), vdupq_n_u8(0))); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 2; \ ++ } \ ++ } while (0) ++ ++#define SSE2NEON_CMPISTRX_LEN_PAIR(a, b, la, lb) \ ++ int la, lb; \ ++ do { \ ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); \ ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); \ ++ } while (0) ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if b did not contain a null character and the resulting ++// mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistra ++FORCE_INLINE int _mm_cmpistra(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return !r2 & (lb >= bound); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrc ++FORCE_INLINE int _mm_cmpistrc(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistri ++FORCE_INLINE int _mm_cmpistri(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrm ++FORCE_INLINE __m128i _mm_cmpistrm(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistro ++FORCE_INLINE int _mm_cmpistro(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrs ++FORCE_INLINE int _mm_cmpistrs(__m128i a, __m128i b, const int imm8) ++{ ++ (void) b; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int la; ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrz ++FORCE_INLINE int _mm_cmpistrz(__m128i a, __m128i b, const int imm8) ++{ ++ (void) a; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int lb; ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); ++ return lb <= (bound - 1); ++} ++ ++// Compares the 2 signed 64-bit integers in a and the 2 signed 64-bit integers ++// in b for greater than. ++FORCE_INLINE __m128i _mm_cmpgt_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vcgtq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ return vreinterpretq_m128i_s64(vshrq_n_s64( ++ vqsubq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)), ++ 63)); ++#endif ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 16-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u16 ++FORCE_INLINE uint32_t _mm_crc32_u16(uint32_t crc, uint16_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32ch %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32ch(crc, v); ++#else ++ crc = _mm_crc32_u8(crc, v & 0xff); ++ crc = _mm_crc32_u8(crc, (v >> 8) & 0xff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 32-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u32 ++FORCE_INLINE uint32_t _mm_crc32_u32(uint32_t crc, uint32_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cw %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cw(crc, v); ++#else ++ crc = _mm_crc32_u16(crc, v & 0xffff); ++ crc = _mm_crc32_u16(crc, (v >> 16) & 0xffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 64-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u64 ++FORCE_INLINE uint64_t _mm_crc32_u64(uint64_t crc, uint64_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cx %w[c], %w[c], %x[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cd((uint32_t) crc, v); ++#else ++ crc = _mm_crc32_u32((uint32_t) (crc), v & 0xffffffff); ++ crc = _mm_crc32_u32((uint32_t) (crc), (v >> 32) & 0xffffffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 8-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u8 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t crc, uint8_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cb %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cb(crc, v); ++#else ++ crc ^= v; ++#if defined(__ARM_FEATURE_CRYPTO) ++ // Adapted from: https://mary.rs/lab/crc32/ ++ // Barrent reduction ++ uint64x2_t orig = ++ vcombine_u64(vcreate_u64((uint64_t) (crc) << 24), vcreate_u64(0x0)); ++ uint64x2_t tmp = orig; ++ ++ // Polynomial P(x) of CRC32C ++ uint64_t p = 0x105EC76F1; ++ // Barrett Reduction (in bit-reflected form) constant mu_{64} = \lfloor ++ // 2^{64} / P(x) \rfloor = 0x11f91caf6 ++ uint64_t mu = 0x1dea713f1; ++ ++ // Multiply by mu_{64} ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(mu)); ++ // Divide by 2^{64} (mask away the unnecessary bits) ++ tmp = ++ vandq_u64(tmp, vcombine_u64(vcreate_u64(0xFFFFFFFF), vcreate_u64(0x0))); ++ // Multiply by P(x) (shifted left by 1 for alignment reasons) ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(p)); ++ // Subtract original from result ++ tmp = veorq_u64(tmp, orig); ++ ++ // Extract the 'lower' (in bit-reflected sense) 32 bits ++ crc = vgetq_lane_u32(vreinterpretq_u32_u64(tmp), 1); ++#else // Fall back to the generic table lookup approach ++ // Adapted from: https://create.stephan-brumme.com/crc32/ ++ // Apply half-byte comparison algorithm for the best ratio between ++ // performance and lookup table. ++ ++ // The lookup table just needs to store every 16th entry ++ // of the standard look-up table. ++ static const uint32_t crc32_half_byte_tbl[] = { ++ 0x00000000, 0x105ec76f, 0x20bd8ede, 0x30e349b1, 0x417b1dbc, 0x5125dad3, ++ 0x61c69362, 0x7198540d, 0x82f63b78, 0x92a8fc17, 0xa24bb5a6, 0xb21572c9, ++ 0xc38d26c4, 0xd3d3e1ab, 0xe330a81a, 0xf36e6f75, ++ }; ++ ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++#endif ++#endif ++ return crc; ++} ++ ++/* AES */ ++ ++#if !defined(__ARM_FEATURE_CRYPTO) && (!defined(_M_ARM64) || defined(__clang__)) ++/* clang-format off */ ++#define SSE2NEON_AES_SBOX(w) \ ++ { \ ++ w(0x63), w(0x7c), w(0x77), w(0x7b), w(0xf2), w(0x6b), w(0x6f), \ ++ w(0xc5), w(0x30), w(0x01), w(0x67), w(0x2b), w(0xfe), w(0xd7), \ ++ w(0xab), w(0x76), w(0xca), w(0x82), w(0xc9), w(0x7d), w(0xfa), \ ++ w(0x59), w(0x47), w(0xf0), w(0xad), w(0xd4), w(0xa2), w(0xaf), \ ++ w(0x9c), w(0xa4), w(0x72), w(0xc0), w(0xb7), w(0xfd), w(0x93), \ ++ w(0x26), w(0x36), w(0x3f), w(0xf7), w(0xcc), w(0x34), w(0xa5), \ ++ w(0xe5), w(0xf1), w(0x71), w(0xd8), w(0x31), w(0x15), w(0x04), \ ++ w(0xc7), w(0x23), w(0xc3), w(0x18), w(0x96), w(0x05), w(0x9a), \ ++ w(0x07), w(0x12), w(0x80), w(0xe2), w(0xeb), w(0x27), w(0xb2), \ ++ w(0x75), w(0x09), w(0x83), w(0x2c), w(0x1a), w(0x1b), w(0x6e), \ ++ w(0x5a), w(0xa0), w(0x52), w(0x3b), w(0xd6), w(0xb3), w(0x29), \ ++ w(0xe3), w(0x2f), w(0x84), w(0x53), w(0xd1), w(0x00), w(0xed), \ ++ w(0x20), w(0xfc), w(0xb1), w(0x5b), w(0x6a), w(0xcb), w(0xbe), \ ++ w(0x39), w(0x4a), w(0x4c), w(0x58), w(0xcf), w(0xd0), w(0xef), \ ++ w(0xaa), w(0xfb), w(0x43), w(0x4d), w(0x33), w(0x85), w(0x45), \ ++ w(0xf9), w(0x02), w(0x7f), w(0x50), w(0x3c), w(0x9f), w(0xa8), \ ++ w(0x51), w(0xa3), w(0x40), w(0x8f), w(0x92), w(0x9d), w(0x38), \ ++ w(0xf5), w(0xbc), w(0xb6), w(0xda), w(0x21), w(0x10), w(0xff), \ ++ w(0xf3), w(0xd2), w(0xcd), w(0x0c), w(0x13), w(0xec), w(0x5f), \ ++ w(0x97), w(0x44), w(0x17), w(0xc4), w(0xa7), w(0x7e), w(0x3d), \ ++ w(0x64), w(0x5d), w(0x19), w(0x73), w(0x60), w(0x81), w(0x4f), \ ++ w(0xdc), w(0x22), w(0x2a), w(0x90), w(0x88), w(0x46), w(0xee), \ ++ w(0xb8), w(0x14), w(0xde), w(0x5e), w(0x0b), w(0xdb), w(0xe0), \ ++ w(0x32), w(0x3a), w(0x0a), w(0x49), w(0x06), w(0x24), w(0x5c), \ ++ w(0xc2), w(0xd3), w(0xac), w(0x62), w(0x91), w(0x95), w(0xe4), \ ++ w(0x79), w(0xe7), w(0xc8), w(0x37), w(0x6d), w(0x8d), w(0xd5), \ ++ w(0x4e), w(0xa9), w(0x6c), w(0x56), w(0xf4), w(0xea), w(0x65), \ ++ w(0x7a), w(0xae), w(0x08), w(0xba), w(0x78), w(0x25), w(0x2e), \ ++ w(0x1c), w(0xa6), w(0xb4), w(0xc6), w(0xe8), w(0xdd), w(0x74), \ ++ w(0x1f), w(0x4b), w(0xbd), w(0x8b), w(0x8a), w(0x70), w(0x3e), \ ++ w(0xb5), w(0x66), w(0x48), w(0x03), w(0xf6), w(0x0e), w(0x61), \ ++ w(0x35), w(0x57), w(0xb9), w(0x86), w(0xc1), w(0x1d), w(0x9e), \ ++ w(0xe1), w(0xf8), w(0x98), w(0x11), w(0x69), w(0xd9), w(0x8e), \ ++ w(0x94), w(0x9b), w(0x1e), w(0x87), w(0xe9), w(0xce), w(0x55), \ ++ w(0x28), w(0xdf), w(0x8c), w(0xa1), w(0x89), w(0x0d), w(0xbf), \ ++ w(0xe6), w(0x42), w(0x68), w(0x41), w(0x99), w(0x2d), w(0x0f), \ ++ w(0xb0), w(0x54), w(0xbb), w(0x16) \ ++ } ++#define SSE2NEON_AES_RSBOX(w) \ ++ { \ ++ w(0x52), w(0x09), w(0x6a), w(0xd5), w(0x30), w(0x36), w(0xa5), \ ++ w(0x38), w(0xbf), w(0x40), w(0xa3), w(0x9e), w(0x81), w(0xf3), \ ++ w(0xd7), w(0xfb), w(0x7c), w(0xe3), w(0x39), w(0x82), w(0x9b), \ ++ w(0x2f), w(0xff), w(0x87), w(0x34), w(0x8e), w(0x43), w(0x44), \ ++ w(0xc4), w(0xde), w(0xe9), w(0xcb), w(0x54), w(0x7b), w(0x94), \ ++ w(0x32), w(0xa6), w(0xc2), w(0x23), w(0x3d), w(0xee), w(0x4c), \ ++ w(0x95), w(0x0b), w(0x42), w(0xfa), w(0xc3), w(0x4e), w(0x08), \ ++ w(0x2e), w(0xa1), w(0x66), w(0x28), w(0xd9), w(0x24), w(0xb2), \ ++ w(0x76), w(0x5b), w(0xa2), w(0x49), w(0x6d), w(0x8b), w(0xd1), \ ++ w(0x25), w(0x72), w(0xf8), w(0xf6), w(0x64), w(0x86), w(0x68), \ ++ w(0x98), w(0x16), w(0xd4), w(0xa4), w(0x5c), w(0xcc), w(0x5d), \ ++ w(0x65), w(0xb6), w(0x92), w(0x6c), w(0x70), w(0x48), w(0x50), \ ++ w(0xfd), w(0xed), w(0xb9), w(0xda), w(0x5e), w(0x15), w(0x46), \ ++ w(0x57), w(0xa7), w(0x8d), w(0x9d), w(0x84), w(0x90), w(0xd8), \ ++ w(0xab), w(0x00), w(0x8c), w(0xbc), w(0xd3), w(0x0a), w(0xf7), \ ++ w(0xe4), w(0x58), w(0x05), w(0xb8), w(0xb3), w(0x45), w(0x06), \ ++ w(0xd0), w(0x2c), w(0x1e), w(0x8f), w(0xca), w(0x3f), w(0x0f), \ ++ w(0x02), w(0xc1), w(0xaf), w(0xbd), w(0x03), w(0x01), w(0x13), \ ++ w(0x8a), w(0x6b), w(0x3a), w(0x91), w(0x11), w(0x41), w(0x4f), \ ++ w(0x67), w(0xdc), w(0xea), w(0x97), w(0xf2), w(0xcf), w(0xce), \ ++ w(0xf0), w(0xb4), w(0xe6), w(0x73), w(0x96), w(0xac), w(0x74), \ ++ w(0x22), w(0xe7), w(0xad), w(0x35), w(0x85), w(0xe2), w(0xf9), \ ++ w(0x37), w(0xe8), w(0x1c), w(0x75), w(0xdf), w(0x6e), w(0x47), \ ++ w(0xf1), w(0x1a), w(0x71), w(0x1d), w(0x29), w(0xc5), w(0x89), \ ++ w(0x6f), w(0xb7), w(0x62), w(0x0e), w(0xaa), w(0x18), w(0xbe), \ ++ w(0x1b), w(0xfc), w(0x56), w(0x3e), w(0x4b), w(0xc6), w(0xd2), \ ++ w(0x79), w(0x20), w(0x9a), w(0xdb), w(0xc0), w(0xfe), w(0x78), \ ++ w(0xcd), w(0x5a), w(0xf4), w(0x1f), w(0xdd), w(0xa8), w(0x33), \ ++ w(0x88), w(0x07), w(0xc7), w(0x31), w(0xb1), w(0x12), w(0x10), \ ++ w(0x59), w(0x27), w(0x80), w(0xec), w(0x5f), w(0x60), w(0x51), \ ++ w(0x7f), w(0xa9), w(0x19), w(0xb5), w(0x4a), w(0x0d), w(0x2d), \ ++ w(0xe5), w(0x7a), w(0x9f), w(0x93), w(0xc9), w(0x9c), w(0xef), \ ++ w(0xa0), w(0xe0), w(0x3b), w(0x4d), w(0xae), w(0x2a), w(0xf5), \ ++ w(0xb0), w(0xc8), w(0xeb), w(0xbb), w(0x3c), w(0x83), w(0x53), \ ++ w(0x99), w(0x61), w(0x17), w(0x2b), w(0x04), w(0x7e), w(0xba), \ ++ w(0x77), w(0xd6), w(0x26), w(0xe1), w(0x69), w(0x14), w(0x63), \ ++ w(0x55), w(0x21), w(0x0c), w(0x7d) \ ++ } ++/* clang-format on */ ++ ++/* X Macro trick. See https://en.wikipedia.org/wiki/X_Macro */ ++#define SSE2NEON_AES_H0(x) (x) ++static const uint8_t _sse2neon_sbox[256] = SSE2NEON_AES_SBOX(SSE2NEON_AES_H0); ++static const uint8_t _sse2neon_rsbox[256] = SSE2NEON_AES_RSBOX(SSE2NEON_AES_H0); ++#undef SSE2NEON_AES_H0 ++ ++/* x_time function and matrix multiply function */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#define SSE2NEON_XT(x) (((x) << 1) ^ ((((x) >> 7) & 1) * 0x1b)) ++#define SSE2NEON_MULTIPLY(x, y) \ ++ (((y & 1) * x) ^ ((y >> 1 & 1) * SSE2NEON_XT(x)) ^ \ ++ ((y >> 2 & 1) * SSE2NEON_XT(SSE2NEON_XT(x))) ^ \ ++ ((y >> 3 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))) ^ \ ++ ((y >> 4 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))))) ++#endif ++ ++// In the absence of crypto extensions, implement aesenc using regular NEON ++// intrinsics instead. See: ++// https://www.workofard.com/2017/01/accelerated-aes-for-the-arm64-linux-kernel/ ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/ and ++// for more information. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ /* shift rows */ ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ /* sub bytes */ ++ // Here, we separate the whole 256-bytes table into 4 64-bytes tables, and ++ // look up each of the table. After each lookup, we load the next table ++ // which locates at the next 64-bytes. In the meantime, the index in the ++ // table would be smaller than it was, so the index parameters of ++ // `vqtbx4q_u8()` need to be added the same constant as the loaded tables. ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ // 'w-0x40' equals to 'vsubq_u8(w, vdupq_n_u8(0x40))' ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ /* mix columns */ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ /* add round key */ ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A implementation for a table-based AES */ ++#define SSE2NEON_AES_B2W(b0, b1, b2, b3) \ ++ (((uint32_t) (b3) << 24) | ((uint32_t) (b2) << 16) | \ ++ ((uint32_t) (b1) << 8) | (uint32_t) (b0)) ++// multiplying 'x' by 2 in GF(2^8) ++#define SSE2NEON_AES_F2(x) ((x << 1) ^ (((x >> 7) & 1) * 0x011b /* WPOLY */)) ++// multiplying 'x' by 3 in GF(2^8) ++#define SSE2NEON_AES_F3(x) (SSE2NEON_AES_F2(x) ^ x) ++#define SSE2NEON_AES_U0(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F2(p), p, p, SSE2NEON_AES_F3(p)) ++#define SSE2NEON_AES_U1(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p, p) ++#define SSE2NEON_AES_U2(p) \ ++ SSE2NEON_AES_B2W(p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p) ++#define SSE2NEON_AES_U3(p) \ ++ SSE2NEON_AES_B2W(p, p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p)) ++ ++ // this generates a table containing every possible permutation of ++ // shift_rows() and sub_bytes() with mix_columns(). ++ static const uint32_t ALIGN_STRUCT(16) aes_table[4][256] = { ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U0), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U1), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U2), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U3), ++ }; ++#undef SSE2NEON_AES_B2W ++#undef SSE2NEON_AES_F2 ++#undef SSE2NEON_AES_F3 ++#undef SSE2NEON_AES_U0 ++#undef SSE2NEON_AES_U1 ++#undef SSE2NEON_AES_U2 ++#undef SSE2NEON_AES_U3 ++ ++ uint32_t x0 = _mm_cvtsi128_si32(a); // get a[31:0] ++ uint32_t x1 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); // get a[63:32] ++ uint32_t x2 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xAA)); // get a[95:64] ++ uint32_t x3 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); // get a[127:96] ++ ++ // finish the modulo addition step in mix_columns() ++ __m128i out = _mm_set_epi32( ++ (aes_table[0][x3 & 0xff] ^ aes_table[1][(x0 >> 8) & 0xff] ^ ++ aes_table[2][(x1 >> 16) & 0xff] ^ aes_table[3][x2 >> 24]), ++ (aes_table[0][x2 & 0xff] ^ aes_table[1][(x3 >> 8) & 0xff] ^ ++ aes_table[2][(x0 >> 16) & 0xff] ^ aes_table[3][x1 >> 24]), ++ (aes_table[0][x1 & 0xff] ^ aes_table[1][(x2 >> 8) & 0xff] ^ ++ aes_table[2][(x3 >> 16) & 0xff] ^ aes_table[3][x0 >> 24]), ++ (aes_table[0][x0 & 0xff] ^ aes_table[1][(x1 >> 8) & 0xff] ^ ++ aes_table[2][(x2 >> 16) & 0xff] ^ aes_table[3][x3 >> 24])); ++ ++ return _mm_xor_si128(out, RoundKey); ++#endif ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // inverse mix columns ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & ++ 0x1b); // multiplying 'v' by 2 in GF(2^8) ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ // inverse mix columns ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ // sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A implementation */ ++ uint8_t v[16] = { ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 0)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 5)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 10)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 15)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 4)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 9)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 14)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 3)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 8)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 13)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 2)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 7)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 12)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 1)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 6)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 11)], ++ }; ++ ++ return vreinterpretq_m128i_u8(vld1q_u8(v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (int i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++#if defined(__aarch64__) ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ uint8x16_t v = vreinterpretq_u8_m128i(a); ++ uint8x16_t w; ++ ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ // multiplying 'v' by 2 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ return vreinterpretq_m128i_u8(w); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ vst1q_u8((uint8_t *) v, vreinterpretq_u8_m128i(a)); ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)); ++#endif ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++// ++// Emits the Advanced Encryption Standard (AES) instruction aeskeygenassist. ++// This instruction generates a round key for AES encryption. See ++// https://kazakov.life/2017/11/01/cryptocurrency-mining-on-ios-devices/ ++// for details. ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++#if defined(__aarch64__) ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); ++ uint8x16_t v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), _a); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), _a - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), _a - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), _a - 0xc0); ++ ++ uint32x4_t v_u32 = vreinterpretq_u32_u8(v); ++ uint32x4_t ror_v = vorrq_u32(vshrq_n_u32(v_u32, 8), vshlq_n_u32(v_u32, 24)); ++ uint32x4_t ror_xor_v = veorq_u32(ror_v, vdupq_n_u32(rcon)); ++ ++ return vreinterpretq_m128i_u32(vtrn2q_u32(v_u32, ror_xor_v)); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint32_t X1 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); ++ uint32_t X3 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); ++ for (int i = 0; i < 4; ++i) { ++ ((uint8_t *) &X1)[i] = _sse2neon_sbox[((uint8_t *) &X1)[i]]; ++ ((uint8_t *) &X3)[i] = _sse2neon_sbox[((uint8_t *) &X3)[i]]; ++ } ++ return _mm_set_epi32(((X3 >> 8) | (X3 << 24)) ^ rcon, X3, ++ ((X1 >> 8) | (X1 << 24)) ^ rcon, X1); ++#endif ++} ++#undef SSE2NEON_AES_SBOX ++#undef SSE2NEON_AES_RSBOX ++ ++#if defined(__aarch64__) ++#undef SSE2NEON_XT ++#undef SSE2NEON_MULTIPLY ++#endif ++ ++#else /* __ARM_FEATURE_CRYPTO */ ++// Implements equivalent of 'aesenc' by combining AESE (with an empty key) and ++// AESMC and then manually applying the real key as an xor operation. This ++// unfortunately means an additional xor op; the compiler should be able to ++// optimize this away for repeated calls however. See ++// https://blog.michaelbrase.com/2018/05/08/emulating-x86-aes-intrinsics-on-armv8-a ++// for more details. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesmcq_u8(vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(b))); ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesimcq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return _mm_xor_si128(vreinterpretq_m128i_u8(vaeseq_u8( ++ vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ RoundKey); ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8( ++ veorq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++ return vreinterpretq_m128i_u8(vaesimcq_u8(vreinterpretq_u8_m128i(a))); ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst." ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++ // AESE does ShiftRows and SubBytes on A ++ uint8x16_t u8 = vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)); ++ ++#ifndef _MSC_VER ++ uint8x16_t dest = { ++ // Undo ShiftRows step from AESE and extract X1 and X3 ++ u8[0x4], u8[0x1], u8[0xE], u8[0xB], // SubBytes(X1) ++ u8[0x1], u8[0xE], u8[0xB], u8[0x4], // ROT(SubBytes(X1)) ++ u8[0xC], u8[0x9], u8[0x6], u8[0x3], // SubBytes(X3) ++ u8[0x9], u8[0x6], u8[0x3], u8[0xC], // ROT(SubBytes(X3)) ++ }; ++ uint32x4_t r = {0, (unsigned) rcon, 0, (unsigned) rcon}; ++ return vreinterpretq_m128i_u8(dest) ^ vreinterpretq_m128i_u32(r); ++#else ++ // We have to do this hack because MSVC is strictly adhering to the CPP ++ // standard, in particular C++03 8.5.1 sub-section 15, which states that ++ // unions must be initialized by their first member type. ++ ++ // As per the Windows ARM64 ABI, it is always little endian, so this works ++ __n128 dest{ ++ ((uint64_t) u8.n128_u8[0x4] << 0) | ((uint64_t) u8.n128_u8[0x1] << 8) | ++ ((uint64_t) u8.n128_u8[0xE] << 16) | ++ ((uint64_t) u8.n128_u8[0xB] << 24) | ++ ((uint64_t) u8.n128_u8[0x1] << 32) | ++ ((uint64_t) u8.n128_u8[0xE] << 40) | ++ ((uint64_t) u8.n128_u8[0xB] << 48) | ++ ((uint64_t) u8.n128_u8[0x4] << 56), ++ ((uint64_t) u8.n128_u8[0xC] << 0) | ((uint64_t) u8.n128_u8[0x9] << 8) | ++ ((uint64_t) u8.n128_u8[0x6] << 16) | ++ ((uint64_t) u8.n128_u8[0x3] << 24) | ++ ((uint64_t) u8.n128_u8[0x9] << 32) | ++ ((uint64_t) u8.n128_u8[0x6] << 40) | ++ ((uint64_t) u8.n128_u8[0x3] << 48) | ++ ((uint64_t) u8.n128_u8[0xC] << 56)}; ++ ++ dest.n128_u32[1] = dest.n128_u32[1] ^ rcon; ++ dest.n128_u32[3] = dest.n128_u32[3] ^ rcon; ++ ++ return dest; ++#endif ++} ++#endif ++ ++/* Others */ ++ ++// Perform a carry-less multiplication of two 64-bit integers, selected from a ++// and b according to imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clmulepi64_si128 ++FORCE_INLINE __m128i _mm_clmulepi64_si128(__m128i _a, __m128i _b, const int imm) ++{ ++ uint64x2_t a = vreinterpretq_u64_m128i(_a); ++ uint64x2_t b = vreinterpretq_u64_m128i(_b); ++ switch (imm & 0x11) { ++ case 0x00: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_low_u64(b))); ++ case 0x01: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_low_u64(b))); ++ case 0x10: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_high_u64(b))); ++ case 0x11: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_high_u64(b))); ++ default: ++ abort(); ++ } ++} ++ ++FORCE_INLINE unsigned int _sse2neon_mm_get_denormals_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_DENORMALS_ZERO_ON : _MM_DENORMALS_ZERO_OFF; ++} ++ ++// Count the number of bits set to 1 in unsigned 32-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u32 ++FORCE_INLINE int _mm_popcnt_u32(unsigned int a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcount) ++ return __builtin_popcount(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits(a); ++#else ++ return (int) vaddlv_u8(vcnt_u8(vcreate_u8((uint64_t) a))); ++#endif ++#else ++ uint32_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ ++ vst1_u32(&count, count32x2_val); ++ return count; ++#endif ++} ++ ++// Count the number of bits set to 1 in unsigned 64-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u64 ++FORCE_INLINE int64_t _mm_popcnt_u64(uint64_t a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcountll) ++ return __builtin_popcountll(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits64(a); ++#else ++ return (int64_t) vaddlv_u8(vcnt_u8(vcreate_u8(a))); ++#endif ++#else ++ uint64_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ uint64x1_t count64x1_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ count64x1_val = vpaddl_u32(count32x2_val); ++ vst1_u64(&count, count64x1_val); ++ return count; ++#endif ++} ++ ++FORCE_INLINE void _sse2neon_mm_set_denormals_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_DENORMALS_ZERO_MASK) == _MM_DENORMALS_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Return the current 64-bit value of the processor's time-stamp counter. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=rdtsc ++FORCE_INLINE uint64_t _rdtsc(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t val; ++ ++ /* According to ARM DDI 0487F.c, from Armv8.0 to Armv8.5 inclusive, the ++ * system counter is at least 56 bits wide; from Armv8.6, the counter ++ * must be 64 bits wide. So the system counter could be less than 64 ++ * bits wide and it is attributed with the flag 'cap_user_time_short' ++ * is true. ++ */ ++#if defined(_MSC_VER) ++ val = _ReadStatusReg(ARM64_SYSREG(3, 3, 14, 0, 2)); ++#else ++ __asm__ __volatile__("mrs %0, cntvct_el0" : "=r"(val)); ++#endif ++ ++ return val; ++#else ++ uint32_t pmccntr, pmuseren, pmcntenset; ++ // Read the user mode Performance Monitoring Unit (PMU) ++ // User Enable Register (PMUSERENR) access permissions. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c14, 0" : "=r"(pmuseren)); ++ if (pmuseren & 1) { // Allows reading PMUSERENR for user mode code. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c12, 1" : "=r"(pmcntenset)); ++ if (pmcntenset & 0x80000000UL) { // Is it counting? ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c13, 0" : "=r"(pmccntr)); ++ // The counter is set up to count every 64th cycle ++ return (uint64_t) (pmccntr) << 6; ++ } ++ } ++ ++ // Fallback to syscall as we can't enable PMUSERENR in user mode. ++ struct timeval tv; ++ gettimeofday(&tv, NULL); ++ return (uint64_t) (tv.tv_sec) * 1000000 + tv.tv_usec; ++#endif ++} ++ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma pop_macro("ALIGN_STRUCT") ++#pragma pop_macro("FORCE_INLINE") ++#pragma pop_macro("FORCE_INLINE_OPTNONE") ++#endif ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma GCC pop_options ++#endif ++ ++#endif From 260ab1cb1eb7438bc4e3c0bbb86c88cb4839e790 Mon Sep 17 00:00:00 2001 From: Heru Handika <44328036+hhandika@users.noreply.github.com> Date: Thu, 11 Jul 2024 19:04:14 -0500 Subject: [PATCH 0247/1589] Add recipe for SEGUL (#49161) * Add segul recipe. * Add more platforms. * Clean unused variables. * Add run export and build number. * Reset build number. --- recipes/segul/build.sh | 4 ++++ recipes/segul/meta.yaml | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 recipes/segul/build.sh create mode 100644 recipes/segul/meta.yaml diff --git a/recipes/segul/build.sh b/recipes/segul/build.sh new file mode 100644 index 0000000000000..cfda5a2313ece --- /dev/null +++ b/recipes/segul/build.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +RUST_BACKTRACE=1 +cargo install --no-track --verbose --root "${PREFIX}" --path . \ No newline at end of file diff --git a/recipes/segul/meta.yaml b/recipes/segul/meta.yaml new file mode 100644 index 0000000000000..533dbc3be7fad --- /dev/null +++ b/recipes/segul/meta.yaml @@ -0,0 +1,36 @@ +{% set version = "0.21.3" %} + +package: + name: segul + version: '{{ version }}' + +source: + url: https://github.com/hhandika/segul/archive/refs/tags/v{{ version }}.tar.gz + sha256: 099ce274900bddadac4cf6a917ad34712551f11f6412ca89b315dec881462b47 + +build: + number: 0 + run_exports: + - {{ pin_subpackage('segul', max_pin="x.x") }} + +requirements: + build: + - {{ compiler('c') }} + - {{ compiler('rust') }} + +test: + commands: + - segul --help + +about: + home: https://github.com/hhandika/segul + license: MIT + license_family: MIT + summary: An ultrafast and memory efficient tool for phylogenomics + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 + recipe-maintainers: + - hhandika From baf365deccf22117b5bd217c273ab637582d7c70 Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Fri, 12 Jul 2024 02:07:45 +0200 Subject: [PATCH 0248/1589] Fix pathphynder (#49162) * pathphynder: add linux-aarch64 build * Get the reamining function files and patch to point to this * Update further hardcoded files and required data files * Update recipes/pathphynder/meta.yaml --- recipes/pathphynder/build.sh | 3 ++- recipes/pathphynder/meta.yaml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/pathphynder/build.sh b/recipes/pathphynder/build.sh index 492598857ae17..4225b4c2ea035 100644 --- a/recipes/pathphynder/build.sh +++ b/recipes/pathphynder/build.sh @@ -1,6 +1,7 @@ #!/bin/bash mkdir -p $PREFIX/lib/R/library/pathphynder -cp -r R/ data/ $PREFIX/lib/R/library/pathphynder +cp -r R/ data/ inst/ $PREFIX/lib/R/library/pathphynder sed -i "s#^packpwd<-.*\+\$#packpwd<-'$PREFIX/lib/R/library/pathphynder/R'#g" pathPhynder.R +sed -i "s#^packpwd<-.*\+\$#packpwd<-'$PREFIX/lib/R/library/pathphynder/R'#g" $PREFIX/lib/R/library/pathphynder/R/{pileup_and_filter,addAncToTree,chooseBestPath,assign_noNA,functions_pathPhynder,pathPhynder_likelihood_runner}.R cp pathPhynder.R $PREFIX/bin/pathPhynder diff --git a/recipes/pathphynder/meta.yaml b/recipes/pathphynder/meta.yaml index b855b661f24ef..7a6159c41ce7e 100644 --- a/recipes/pathphynder/meta.yaml +++ b/recipes/pathphynder/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 2 + number: 3 noarch: generic run_exports: - {{ pin_subpackage( 'pathphynder', max_pin='x.x') }} From 3065b3b1f4594c8cd69224717ed2ea9e87495346 Mon Sep 17 00:00:00 2001 From: Victor Lin <13424970+victorlin@users.noreply.github.com> Date: Thu, 11 Jul 2024 17:23:20 -0700 Subject: [PATCH 0249/1589] Update augur to 25.1.0 (#49165) * Add nextstrain-bot to list of maintainers This notifies the entire team for updates. Ideally we'd tag @nextstrain/core but I don't think that's supported. * Update augur to 25.1.0 Includes dependency updates. --- recipes/augur/meta.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/recipes/augur/meta.yaml b/recipes/augur/meta.yaml index a51ee5db52933..b18f7ca81a874 100644 --- a/recipes/augur/meta.yaml +++ b/recipes/augur/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "25.0.0" %} +{% set version = "25.1.0" %} package: name: augur @@ -6,7 +6,7 @@ package: source: url: https://github.com/nextstrain/augur/releases/download/{{ version }}/nextstrain_augur-{{ version }}.tar.gz - sha256: 0df074847933a89a948461ea439062b78ff3c80f2d71f65efc7094fbda6a98b6 + sha256: cc75d9c7b4cda380f4f6bf9d2ae00b9e197e883ebc351358971094767db540c0 build: number: 0 @@ -29,14 +29,14 @@ requirements: - importlib_resources >=5.3.0 # [py<311] - isodate >=0.6.0,<0.7 - jsonschema >=3.0.0,<4 - - networkx >=2.5,<3 + - networkx >=2.5,<4 - numpy >=1.0.0,<2 - packaging >=19.2 - pandas >=1.0.0,<2 - pyfastx >=1.0.0,<3 - scipy >=1.0.0,<2 - treetime >=0.11.2,<0.12 - - xopen[zstd] >=1.7.0,<2 + - xopen[zstd] >=1.7.0,<3 - fasttree - iqtree @@ -61,6 +61,7 @@ extra: identifiers: - doi:10.21105/joss.02906 recipe-maintainers: + - nextstrain-bot - huddlej - tsibley - victorlin From a9697c6c8d686130e5a55130571b0e2ab3b1a67f Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Fri, 12 Jul 2024 02:55:15 +0200 Subject: [PATCH 0250/1589] [skip ci] Add supported architectures to readme (#49164) --------- Co-authored-by: John Marshall --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 046ac7a353fcc..3d33a595046a4 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,8 @@ [Conda](http://anaconda.org) is a platform- and language-independent package manager that supports easy distribution, installation and version management of software. The [bioconda channel](https://anaconda.org/bioconda) is a Conda -channel providing bioinformatics related packages for **Linux** and **Mac OS**. +channel providing bioinformatics related packages for **Linux** and **macOS**, +supporting both x86_64 and aarch64/arm64 architectures. This repository hosts the corresponding recipes. ## User guide From 01b5f710b78c078a89354a4b710868385c34c5b1 Mon Sep 17 00:00:00 2001 From: Amine Ghozlane Date: Fri, 12 Jul 2024 07:08:34 +0200 Subject: [PATCH 0251/1589] Fix version for bcftools (#48916) * Fix version for bcftools * bump build number --------- Co-authored-by: mencian --- recipes/meteor/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/meteor/meta.yaml b/recipes/meteor/meta.yaml index 79252b893256f..fbc183ab78ca8 100644 --- a/recipes/meteor/meta.yaml +++ b/recipes/meteor/meta.yaml @@ -12,7 +12,7 @@ source: build: noarch: python - number: 0 + number: 1 script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv entry_points: - meteor = meteor.meteor:main @@ -34,7 +34,7 @@ requirements: - packaging - cogent3 - biom-format - - bcftools + - bcftools >=1.19 - raxml-ng >=1.0.1 - bedtools >=2.18.0 From d1be79650eea526b10ed8717c58dd3bbd4ecd2c1 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 12 Jul 2024 09:15:34 +0300 Subject: [PATCH 0252/1589] breseq: add aarch64/arm64 support (#49129) Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/breseq/build.sh | 2 +- recipes/breseq/meta.yaml | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/recipes/breseq/build.sh b/recipes/breseq/build.sh index a25b244ba0759..f1db83897d20e 100644 --- a/recipes/breseq/build.sh +++ b/recipes/breseq/build.sh @@ -1,5 +1,5 @@ #!/bin/bash set -eux ./configure --prefix=$PREFIX -make +make -j ${CPU_COUNT} make install diff --git a/recipes/breseq/meta.yaml b/recipes/breseq/meta.yaml index 50da315f59f83..16e27485c1fd7 100644 --- a/recipes/breseq/meta.yaml +++ b/recipes/breseq/meta.yaml @@ -9,7 +9,7 @@ source: sha256: "39b35e246ecd2b497c82a99765ca4d78a0400bc4a7518b7506b140229ccc0247" build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('breseq', max_pin="x.x") }} @@ -39,3 +39,8 @@ about: summary: A computational pipeline for finding mutations relative to a reference sequence in short-read DNA re-sequencing data. doc_url: "https://barricklab.org/twiki/pub/Lab/ToolsBacterialGenomeResequencing/documentation/" + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From a28e1530be6527cb3d79af98ee30ec68e0295998 Mon Sep 17 00:00:00 2001 From: SantaMcCloud <100047964+SantaMcCloud@users.noreply.github.com> Date: Fri, 12 Jul 2024 08:22:05 +0200 Subject: [PATCH 0253/1589] Add new recipe gtdb_to_taxdump (#49163) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add new recipe gtdb_to_taxdump * Update recipes/gtdb_to_taxdump/meta.yml --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Co-authored-by: Björn Grüning --- recipes/gtdb_to_taxdump/meta.yml | 37 ++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 recipes/gtdb_to_taxdump/meta.yml diff --git a/recipes/gtdb_to_taxdump/meta.yml b/recipes/gtdb_to_taxdump/meta.yml new file mode 100644 index 0000000000000..7316bee1b4239 --- /dev/null +++ b/recipes/gtdb_to_taxdump/meta.yml @@ -0,0 +1,37 @@ +{% set name = "gtdb_to_taxdump" %} +{% set version = "0.1.9" %} +{% set sha256 = "28c6d1b05892514ac79ce7017ac7c132e9d51fe6ce54b5a05fdfec2fb2a5e6d1" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz + sha256: {{ sha256 }} + +build: + noarch: python + number: 0 + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + +requirements: + host: + - pip + - python + run: + - networkx + - python + - tqdm + +test: + imports: + - bin + - gtdb2td + +about: + home: https://github.com/nick-youngblut/gtdb_to_taxdump + license: MIT + license_family: MIT + license_file: LICENSE + summary: "GTDB database utility scripts" \ No newline at end of file From c696e1470077bc0724ca2e6b7802a9ae4ddc124c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 02:49:30 -0400 Subject: [PATCH 0254/1589] Update singlem to 0.18.1 (#49170) --- recipes/singlem/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/singlem/meta.yaml b/recipes/singlem/meta.yaml index 3bea0b9ccd9e9..1c153812c5c68 100644 --- a/recipes/singlem/meta.yaml +++ b/recipes/singlem/meta.yaml @@ -1,5 +1,5 @@ {% set name = "singlem" %} -{% set version = "0.18.0" %} +{% set version = "0.18.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 8ed4039e27274522a3313a079e064c2988d2a28ad008acffcca565775f8b4a93 + sha256: ab66c8d6f6ec712140f9f1b839c58fec33e5741437866ed7af6459af3188834e build: number: 0 From cb54d681acd846860ea631268be0272fdd4ece87 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 05:12:05 -0400 Subject: [PATCH 0255/1589] Update superdsm to 0.3.0 (#49172) --- recipes/superdsm/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/superdsm/meta.yaml b/recipes/superdsm/meta.yaml index 2cd31150b245f..d1a32ebbd7551 100644 --- a/recipes/superdsm/meta.yaml +++ b/recipes/superdsm/meta.yaml @@ -1,5 +1,5 @@ {% set name = "SuperDSM" %} -{% set version = "0.2.0" %} +{% set version = "0.3.0" %} {% set repo_url = "https://github.com/BMCV/SuperDSM" %} {% set docs_url = "https://superdsm.readthedocs.io" %} @@ -9,7 +9,7 @@ package: source: url: "{{ repo_url }}/archive/refs/tags/v{{ version }}.zip" - sha256: 9e9365f8df6e925851dd2bf2adeb71cdb52a6d20c775b1da4c7d8e641a02f8d7 + sha256: 45907ac09bd6fc150bce816194a1d09cccab42b02a418b9387e00bcb89e0ba3f build: number: 0 From e087d938e20c1d77f6e2d576b79c4f9fbf07a73f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 06:15:05 -0400 Subject: [PATCH 0256/1589] Update sdeper to 1.5.0 (#49174) --- recipes/sdeper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sdeper/meta.yaml b/recipes/sdeper/meta.yaml index 2eef50d20313f..11e612ac4b87f 100755 --- a/recipes/sdeper/meta.yaml +++ b/recipes/sdeper/meta.yaml @@ -1,6 +1,6 @@ # This is the recipe file to publish SDePER to Bioconda {% set name = "sdeper" %} -{% set version = "1.4.0" %} +{% set version = "1.5.0" %} package: name: "{{ name|lower }}" @@ -8,7 +8,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 535a938729c473a51093e75c2d5c2d6df4d0e0452274a49210f6b0c783820d6a + sha256: 43ad2e10fc85aadb821aaf106deee6769de9d45f4b530e204e5f1e18398eb0f1 build: number: 0 From 13aa5a78a0082a6bbed3dd25a60b9ce1b2f7b0e9 Mon Sep 17 00:00:00 2001 From: Roberto Rossini <71787608+robomics@users.noreply.github.com> Date: Fri, 12 Jul 2024 13:15:02 +0200 Subject: [PATCH 0257/1589] Enable osx-arm64 build (#49175) --- recipes/perl-digest-sha1/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/perl-digest-sha1/meta.yaml b/recipes/perl-digest-sha1/meta.yaml index 26ad2a3951131..bdf801fadae07 100644 --- a/recipes/perl-digest-sha1/meta.yaml +++ b/recipes/perl-digest-sha1/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 6 + number: 7 run_exports: - {{ pin_subpackage(name, max_pin="x") }} @@ -39,3 +39,4 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 From c1655363a630929f793fe2b7a846a4ea3b6b5608 Mon Sep 17 00:00:00 2001 From: Roberto Rossini <71787608+robomics@users.noreply.github.com> Date: Fri, 12 Jul 2024 14:07:19 +0200 Subject: [PATCH 0258/1589] Enable osx-arm64 build (#49177) --- recipes/pairix/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/pairix/meta.yaml b/recipes/pairix/meta.yaml index 93116f3be3a0b..873aa8e04a725 100644 --- a/recipes/pairix/meta.yaml +++ b/recipes/pairix/meta.yaml @@ -11,7 +11,7 @@ source: - src_Makefile.patch build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage('pairix', max_pin="x.x") }} @@ -46,3 +46,4 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 From 127cf1a35701ee0a808af57380d515d4865a5ef5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 08:09:19 -0400 Subject: [PATCH 0259/1589] Update ensembl-utils to 0.4.0 (#49178) --- recipes/ensembl-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ensembl-utils/meta.yaml b/recipes/ensembl-utils/meta.yaml index fb49fb8a4e522..1603d69fc8d76 100644 --- a/recipes/ensembl-utils/meta.yaml +++ b/recipes/ensembl-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ensembl-utils" %} -{% set version = "0.3.0" %} +{% set version = "0.4.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/ensembl_utils-{{ version }}.tar.gz - sha256: e62889b35e1d000eb6beea6234eb082cce399423e10246b8a0f913fd27547275 + sha256: e21ee25f201d2b653fbd1c0d007ddc0e3a51f44e6b519738d19fdbebf155a29b build: entry_points: From 659dcb2ecd6f5b5d762119e0146245e9e1502d7d Mon Sep 17 00:00:00 2001 From: Johan Dahlberg Date: Fri, 12 Jul 2024 17:12:08 +0200 Subject: [PATCH 0260/1589] Update pixelator to 0.18.1 (#49193) Co-authored-by: BiocondaBot <47040946+BiocondaBot@users.noreply.github.com> --- recipes/pixelator/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pixelator/meta.yaml b/recipes/pixelator/meta.yaml index e9c3bc24d2e7e..d7d7c79822644 100644 --- a/recipes/pixelator/meta.yaml +++ b/recipes/pixelator/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pixelator" %} {% set pypi_name = "pixelgen-pixelator" %} -{% set version = "0.17.1" %} +{% set version = "0.18.1" %} package: name: {{ name|lower }} @@ -8,7 +8,7 @@ package: source: url: https://pypi.io/packages/source/{{ pypi_name[0] }}/{{ pypi_name }}/pixelgen_pixelator-{{ version }}.tar.gz - sha256: 01acdd9bc3f9c016b3cfa6f707ce50e2f6dd452db1fa14348be762ff9b293ba2 + sha256: 1a36b3de15ec8729f01d3950e9c8ca42657d2f3d62f8a13cb71958e617231275 build: entry_points: @@ -30,7 +30,7 @@ requirements: - click - yapf - cutadapt >=4.2 - - umi_tools <=1.1.4 + - umi_tools >=1.1.4,<2.0.0 - pyfastx - yappi - pandas >=2.0.0,<3.0.0 From e46e2b046c0a6c3f5567d69df38d26f3cb27a7e5 Mon Sep 17 00:00:00 2001 From: Clemens Schmid Date: Fri, 12 Jul 2024 17:16:09 +0200 Subject: [PATCH 0261/1589] Update poseidon-trident to 1.5.4.0 (#49183) * trident version update and osx-arm64 support (experimental) * Fix faulty platform tags * found the pre-processing selector documentation --------- Co-authored-by: James A. Fellows Yates --- recipes/poseidon-trident/meta.yaml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/recipes/poseidon-trident/meta.yaml b/recipes/poseidon-trident/meta.yaml index fd463710cff8c..12b4892d889dc 100644 --- a/recipes/poseidon-trident/meta.yaml +++ b/recipes/poseidon-trident/meta.yaml @@ -1,13 +1,17 @@ -{% set version = "1.5.0.1" %} +{% set version = "1.5.4.0" %} package: name: poseidon-trident version: {{ version }} +# documentation of preprocessing selectors: +# https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html#preprocessing-selectors source: - url: https://github.com/poseidon-framework/poseidon-hs/releases/download/v{{ version }}/trident-conda-linux # [linux] - md5: 71815ecd30b082610ca738130f04c933 # [linux] - - url: https://github.com/poseidon-framework/poseidon-hs/releases/download/v{{ version }}/trident-macOS-X64 # [osx] - md5: c7ce4930a046ee832b37558ed5799c8b # [osx] + md5: 626dc6fde74f532e505bdded4742886f # [linux] + - url: https://github.com/poseidon-framework/poseidon-hs/releases/download/v{{ version }}/trident-macOS-X64 # [osx and x86_64] + md5: 88fc51b50a17cf3c05e66f0a4e701d03 # [osx and x86_64] + - url: https://github.com/poseidon-framework/poseidon-hs/releases/download/v{{ version }}/trident-macOS-ARM64 # [osx and arm64] + md5: 0cc0186736b8a3d380e23bfa242f9a98 # [osx and arm64] build: number: 0 @@ -37,3 +41,7 @@ about: home: https://www.poseidon-adna.org/#/ license: MIT summary: "A tool (trident) to work with modular genotype databases formatted using Poseidon." + +extra: + additional-platforms: + - osx-arm64 From 10ee22b9cc93a2d425fe4d452571447670374ff6 Mon Sep 17 00:00:00 2001 From: Roberto Rossini <71787608+robomics@users.noreply.github.com> Date: Fri, 12 Jul 2024 17:29:09 +0200 Subject: [PATCH 0262/1589] Enable osx-arm64 build (#49157) --- recipes/hictk/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/hictk/meta.yaml b/recipes/hictk/meta.yaml index 81caca7eeab03..e0bfbfc37556e 100644 --- a/recipes/hictk/meta.yaml +++ b/recipes/hictk/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('hictk', max_pin='x') }} @@ -100,3 +100,4 @@ extra: - doi:10.5281/zenodo.8214221 additional-platforms: - linux-aarch64 + - osx-arm64 From 0f1da9f5acb2854f3b778f6c87bdfc92437236e7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 11:31:33 -0400 Subject: [PATCH 0263/1589] Update pbstarphase to 0.11.2 (#49196) --- recipes/pbstarphase/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pbstarphase/meta.yaml b/recipes/pbstarphase/meta.yaml index b83581511286e..91913c767158b 100644 --- a/recipes/pbstarphase/meta.yaml +++ b/recipes/pbstarphase/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pbstarphase" %} -{% set version = "0.11.1" %} -{% set sha256 = "49d5290663d21f2b7a5539a28288b7f84b31e621b8316ef31ee5b1ced5d19dc4" %} +{% set version = "0.11.2" %} +{% set sha256 = "ab6ecd08d78891de95f3d2e0dd2cd258e146bc253fd737cfcf6fef78b8704b92" %} package: name: {{ name }} From 5635e1a43ba77303f5ba7d6e9c508f764ea27b29 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 11:38:52 -0400 Subject: [PATCH 0264/1589] Update cyvcf2 to 0.31.1 (#48571) * Update cyvcf2 to 0.31.1 * edit numpy pinning * add script_env Co-authored-by: Arya Massarat <23412689+aryarm@users.noreply.github.com> * edit numpy dependency Co-authored-by: Arya Massarat <23412689+aryarm@users.noreply.github.com> --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Co-authored-by: mencian Co-authored-by: Arya Massarat <23412689+aryarm@users.noreply.github.com> --- recipes/cyvcf2/meta.yaml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/recipes/cyvcf2/meta.yaml b/recipes/cyvcf2/meta.yaml index d0e9ab1d3863f..139cbd9408afd 100644 --- a/recipes/cyvcf2/meta.yaml +++ b/recipes/cyvcf2/meta.yaml @@ -1,6 +1,6 @@ {% set name = "cyvcf2" %} -{% set version = "0.31.0" %} -{% set sha256 = "1480091ad055e8715e8fbbd9a93f3c10655d87a1716ffd122657f42355a23ea4" %} +{% set version = "0.31.1" %} +{% set sha256 = "00bd0e09a3719d29fbc02bc8a40a690ac2c475e91744648750907d1816558fc5" %} package: name: {{ name }} @@ -14,8 +14,11 @@ source: - patches/setup.py.patch build: - number: 1 + number: 0 + skip: True # [py < 37] script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv + script_env: + - CFLAGS=-Wno-implicit-function-declaration -Wno-int-conversion # [osx and py == 38] entry_points: - cyvcf2 = cyvcf2.__main__:cli run_exports: @@ -35,7 +38,8 @@ requirements: - zlib - htslib >=1.10 - openssl - - numpy + - numpy >=2.0.0 # [py >= 39] + - numpy # [py < 39] run: - python - coloredlogs From 0c75d1e5b820ce6e1875f9a7ba2b3bfa9a16d6fc Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 11:39:08 -0400 Subject: [PATCH 0265/1589] Update pastml to 1.9.45 (#49187) --- recipes/pastml/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pastml/meta.yaml b/recipes/pastml/meta.yaml index b2a90ab3529f6..4c9984e30e767 100644 --- a/recipes/pastml/meta.yaml +++ b/recipes/pastml/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pastml" %} -{% set version = "1.9.43" %} +{% set version = "1.9.45" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 04307d153b92b7b25b8ddda49ff388884b9e5fd394856b256a459b497af02f82 + sha256: 5ec0896b5e434f586c3a1fdd676d588a33b3d6e85a7df55c2fde8eebef895fcf build: number: 0 From 4eb9029a233ae2a81a810453ba0741d95ddc6159 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 11:40:04 -0400 Subject: [PATCH 0266/1589] Update pybiolib to 1.1.2232 (#49192) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index 29d676aa3744e..519a97ec219ac 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.1.2229" %} +{% set version = "1.1.2232" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: 8a3aa7329e7fd8fcef92d63a41af96785e160557228648a2b5cdf0d28114a204 + sha256: 531a56ea78eecdc357c0cf02b68a77c4acef69ad2edc553dad3a6e36c3e24184 build: noarch: python From 6f6e40022f63fcda7b0fa5af8984f229845f572a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 11:40:28 -0400 Subject: [PATCH 0267/1589] Update ebi-eva-common-pyutils to 0.6.8 (#49195) --- recipes/ebi-eva-common-pyutils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ebi-eva-common-pyutils/meta.yaml b/recipes/ebi-eva-common-pyutils/meta.yaml index c40859c6cea78..b81c865455d4c 100644 --- a/recipes/ebi-eva-common-pyutils/meta.yaml +++ b/recipes/ebi-eva-common-pyutils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ebi-eva-common-pyutils" %} -{% set version = "0.6.7" %} +{% set version = "0.6.8" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/ebi_eva_common_pyutils-{{ version }}.tar.gz - sha256: 004cc04bcf6c484bcaceaffcd8842beeb01860e0e0325f15ba531921658f6679 + sha256: 91ec82a783ac8f5b3b9a2f3d998b99b0af02083bb3c7b8f7c56b37827d6631a5 build: script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation From 6c66569eef3e311920e9d87aeb43f9a6b793c0e1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 11:40:56 -0400 Subject: [PATCH 0268/1589] Update mgnify-pipelines-toolkit to 0.1.4 (#49197) --- recipes/mgnify-pipelines-toolkit/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mgnify-pipelines-toolkit/meta.yaml b/recipes/mgnify-pipelines-toolkit/meta.yaml index 3492e9374d6cf..35cb14a8d7e3a 100644 --- a/recipes/mgnify-pipelines-toolkit/meta.yaml +++ b/recipes/mgnify-pipelines-toolkit/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mgnify-pipelines-toolkit" %} -{% set version = "0.1.3" %} +{% set version = "0.1.4" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mgnify_pipelines_toolkit-{{ version }}.tar.gz - sha256: d04f57d1ac719bc716d672de08c08eca35ce62d25d248dccf0269bda924388e2 + sha256: ad7862883b901b5aad2e542f0ff3ba86733a99e46d95abe8483b63c525a584bf build: entry_points: From a10b1dd28be139b8f64ca1c91c055e3c70249d3b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 11:44:16 -0400 Subject: [PATCH 0269/1589] Update alevin-fry to 0.10.0 (#49191) * Update alevin-fry to 0.10.0 * Update meta.yaml --------- Co-authored-by: Rob Patro --- recipes/alevin-fry/meta.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/recipes/alevin-fry/meta.yaml b/recipes/alevin-fry/meta.yaml index 4897b13e4470b..84b77ef7c5a42 100644 --- a/recipes/alevin-fry/meta.yaml +++ b/recipes/alevin-fry/meta.yaml @@ -1,17 +1,17 @@ -{% set version = "0.9.0" %} +{% set version = "0.10.0" %} package: name: alevin-fry version: {{ version }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage("alevin-fry", max_pin="x.x") }} source: - url: https://github.com/COMBINE-lab/alevin-fry/archive/v{{ version }}.tar.gz - sha256: 80fa964ba998c21dfd1190629015924e53d633be64cb8c8ee105bd7e3a33ac21 + url: https://github.com/COMBINE-lab/alevin-fry/releases/download/v{{ version }}/source.tar.gz + sha256: de525914fb7dac2cdb6f3b3f941ff65d32eeec719956f0108100c8a174f15bf8 #patches: # - use-libradicl-0.8.2.patch @@ -39,3 +39,4 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm From d3a80260a96b454d2af1fa69acf8954818015671 Mon Sep 17 00:00:00 2001 From: Kez Cleal <42997789+kcleal@users.noreply.github.com> Date: Fri, 12 Jul 2024 17:10:38 +0100 Subject: [PATCH 0270/1589] Update GW to v0.10.1 (#49190) * Update meta.yaml * Update meta.yaml * Update fix-linker-issues.patch * Update meta.yaml * Update and rename fix-ldflags.patch to fix-version.patch * Update meta.yaml * Update meta.yaml --- recipes/gw/fix-ldflags.patch | 5 ----- recipes/gw/fix-linker-issues.patch | 2 +- recipes/gw/fix-version.patch | 4 ++++ recipes/gw/meta.yaml | 6 +++--- 4 files changed, 8 insertions(+), 9 deletions(-) delete mode 100644 recipes/gw/fix-ldflags.patch create mode 100644 recipes/gw/fix-version.patch diff --git a/recipes/gw/fix-ldflags.patch b/recipes/gw/fix-ldflags.patch deleted file mode 100644 index a6ca9f35a7f78..0000000000000 --- a/recipes/gw/fix-ldflags.patch +++ /dev/null @@ -1,5 +0,0 @@ -+++ b/Makefile -@@ -55,1 +55,1 @@ -- LDFLAGS= -+ - diff --git a/recipes/gw/fix-linker-issues.patch b/recipes/gw/fix-linker-issues.patch index b8092058913e6..27ab2e2f7e8ca 100644 --- a/recipes/gw/fix-linker-issues.patch +++ b/recipes/gw/fix-linker-issues.patch @@ -2,4 +2,4 @@ +++ b/Makefile @@ -132,1 +132,1 @@ - $(CXX) $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) $(LDLIBS) -o $@ -+ $(CXX) $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) $(LDLIBS) -Wl,-rpath,$(PREFIX)/lib -Wl,-rpath-link,$(PREFIX)/lib -lxcb-glx -lxcb-dri2 -lexpat -o $@ ++ $(CXX) $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) $(LDLIBS) -Wl,-rpath,$(PREFIX)/lib -Wl,-rpath-link,$(PREFIX)/lib -o $@ diff --git a/recipes/gw/fix-version.patch b/recipes/gw/fix-version.patch new file mode 100644 index 0000000000000..963b5293eae99 --- /dev/null +++ b/recipes/gw/fix-version.patch @@ -0,0 +1,4 @@ ++++ b/src/term_out.cpp +@@ -1354,1 +1354,1 @@ +- const char* CURRENT_VERSION = "v0.10.0"; ++ const char* CURRENT_VERSION = "v0.10.1"; diff --git a/recipes/gw/meta.yaml b/recipes/gw/meta.yaml index ae43abb52a571..5346dd6421760 100644 --- a/recipes/gw/meta.yaml +++ b/recipes/gw/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "0.10.0" %} -{% set sha256 = "81d9a560152af6d1c45d90336c74ad051edb5ea29bab5b8791c323b1ed3ac608" %} +{% set version = "0.10.1" %} +{% set sha256 = "a864010d9ba329feb9211d554ea9c410f5bcc1e1462369bef56a8f5b8914f3d2" %} package: @@ -13,7 +13,7 @@ source: sha256: {{ sha256 }} patches: - fix-linker-issues.patch # [linux] - - fix-ldflags.patch + - fix-version.patch build: From 89d2e48a4c831fcee79d0e4e5aa34beab073bf9d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 12:58:44 -0400 Subject: [PATCH 0271/1589] Update pastml to 1.9.46 (#49202) --- recipes/pastml/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pastml/meta.yaml b/recipes/pastml/meta.yaml index 4c9984e30e767..18087182c28db 100644 --- a/recipes/pastml/meta.yaml +++ b/recipes/pastml/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pastml" %} -{% set version = "1.9.45" %} +{% set version = "1.9.46" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 5ec0896b5e434f586c3a1fdd676d588a33b3d6e85a7df55c2fde8eebef895fcf + sha256: cf127cb64693edf587dc3472de87c876d6603cf2215ca7b0bdf4d879df6223ff build: number: 0 From ca715191d33ab7c02b8bd145203bdd17caee7857 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 14:39:35 -0400 Subject: [PATCH 0272/1589] Update knotinframe to 2.3.0 (#49185) * Update knotinframe to 2.3.0 * add run_exports --------- Co-authored-by: mencian --- recipes/knotinframe/build.sh | 5 +++-- recipes/knotinframe/meta.yaml | 12 +++++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/recipes/knotinframe/build.sh b/recipes/knotinframe/build.sh index 8f6aa07be8dcb..7102b23de6748 100644 --- a/recipes/knotinframe/build.sh +++ b/recipes/knotinframe/build.sh @@ -1,5 +1,6 @@ -#!/bin/sh +#!/bin/bash -euo + make PREFIX=$PREFIX CC=$CC -C Misc/Applications/Knotinframe all make PREFIX=$PREFIX CC=$CC -C Misc/Applications/Knotinframe install-program make PREFIX=$PREFIX CC=$CC -C Misc/Applications/lib install -chmod +x $PREFIX/bin/knotinframe* $PREFIX/bin/addRNA* +chmod 755 $PREFIX/bin/knotinframe* $PREFIX/bin/addRNA* diff --git a/recipes/knotinframe/meta.yaml b/recipes/knotinframe/meta.yaml index eadcddf4c285c..a4d765ab3bb01 100644 --- a/recipes/knotinframe/meta.yaml +++ b/recipes/knotinframe/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "2.2.14" %} -{% set sha256 = "da7371378e32b2329da226be79a11974fdc4e66fe0b664757b5aafe29e2e12d6" %} +{% set version = "2.3.0" %} +{% set sha256 = "e3d15d065148ed9dd25315868a31ec6c8a645d254a28ff2dcd01b23aed8b136d" %} package: name: knotinframe @@ -10,14 +10,15 @@ source: url: https://github.com/jlab/fold-grammars/archive/{{ version }}.tar.gz build: - number: 1 + number: 0 + run_exports: + - {{ pin_subpackage('knotinframe', max_pin="x") }} requirements: build: - make - {{ compiler('cxx') }} host: - - perl - bellmans-gapc >=2020.12.08 run: - perl @@ -29,7 +30,8 @@ test: about: home: https://bibiserv.cebitec.uni-bielefeld.de/knotinframe - license: 'GPLv3+' + license: 'GPL-3.0-or-later' + license_family: GPL3 license_file: LICENSE summary: 'Predicts -1 frameshift sites with simple pseudoknots' From 29eb06330a2b79d46f9bc401473c30d3ef5457eb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 14:39:44 -0400 Subject: [PATCH 0273/1589] Update icfree-ml to 2.3.3 (#49166) * Update icfree-ml to 2.3.3 * add pandas * add pydoe2 --------- Co-authored-by: mencian --- recipes/icfree-ml/meta.yaml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/recipes/icfree-ml/meta.yaml b/recipes/icfree-ml/meta.yaml index 4581510534a2c..20ac1de7e1a5b 100644 --- a/recipes/icfree-ml/meta.yaml +++ b/recipes/icfree-ml/meta.yaml @@ -1,18 +1,18 @@ {% set name = "icfree-ml" %} -{% set version = "2.3.2" %} +{% set version = "2.3.3" %} package: name: {{ name|lower }} version: {{ version }} source: - url: https://github.com/brsynth/icfree-ml/archive/refs/tags/2.3.2.tar.gz - sha256: e57f358a372f5f8b5040dca9c500c25be1e1594a73557cc5ae97bf7784aba384 + url: https://github.com/brsynth/icfree-ml/archive/refs/tags/2.3.3.tar.gz + sha256: c52b1baeb63a98ea54f2cd3e4cb96d3a94bbf7f95065c076938694eb8ecb5b17 build: - number: 1 + number: 0 noarch: python - script: {{ PYTHON }} -m pip install -vv . + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv run_exports: - {{ pin_subpackage(name, max_pin="x") }} @@ -25,6 +25,8 @@ requirements: - biopython - pysbol2 - blast + - pandas + - pydoe2 test: source_files: @@ -40,7 +42,9 @@ about: home: https://github.com/brsynth/icfree-ml summary: Design of experiments (DoE) and machine learning packages for the iCFree project license: MIT + license_family: MIT license_file: LICENSE + dev_url: https://github.com/brsynth/icfree-ml extra: recipe-maintainers: From 8dd7d19a688ae8f04ed5a94a0345c10f0683741c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 14:41:07 -0400 Subject: [PATCH 0274/1589] Update simpleaf to 0.17.2 (#49203) --- recipes/simpleaf/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/simpleaf/meta.yaml b/recipes/simpleaf/meta.yaml index 527f757ef3a3a..d482387fd8ef6 100644 --- a/recipes/simpleaf/meta.yaml +++ b/recipes/simpleaf/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.17.1" %} +{% set version = "0.17.2" %} package: name: simpleaf @@ -11,7 +11,7 @@ build: source: url: https://github.com/COMBINE-lab/simpleaf/archive/v{{ version }}.tar.gz - sha256: f7e2a3a187918b7d8c67b77ddd4cd2591cde4acb0ce5d27a5529de500a6ed396 + sha256: b6801cab11e8712b920b3d37fd838487c1dc25e41b933761dfe749030ed4cd33 requirements: build: From 9900a4d94e632ce15d9dba18ef4e5df8a465a71b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 14:47:05 -0400 Subject: [PATCH 0275/1589] Update snakemake-executor-plugin-slurm to 0.8.0 (#49205) --- recipes/snakemake-executor-plugin-slurm/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-executor-plugin-slurm/meta.yaml b/recipes/snakemake-executor-plugin-slurm/meta.yaml index ce9a2ccc62242..e8990b4fa0189 100644 --- a/recipes/snakemake-executor-plugin-slurm/meta.yaml +++ b/recipes/snakemake-executor-plugin-slurm/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-executor-plugin-slurm" %} -{% set version = "0.7.0" %} +{% set version = "0.8.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_executor_plugin_slurm-{{ version }}.tar.gz - sha256: 833ec3b7c990898ca72bf895ed0131a15deb3dfba7c490f965c98b4158125dce + sha256: 7d097267484a306de45db5bbc5d499f8cc044fd1b661d5af3f179f1e0318fe41 build: noarch: python From 4d31d7564135be0caefe66e18b83de4a3fc9db50 Mon Sep 17 00:00:00 2001 From: Anabella Trigila <18577080+atrigila@users.noreply.github.com> Date: Fri, 12 Jul 2024 16:13:56 -0300 Subject: [PATCH 0276/1589] Update checkqc to 4.0.4 (#49201) * update checkqc to 4.0.4 * add doc and dev url, fix typo --- recipes/checkqc/meta.yaml | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/recipes/checkqc/meta.yaml b/recipes/checkqc/meta.yaml index 1def5f9605dfb..5eb9c3ce6caa5 100644 --- a/recipes/checkqc/meta.yaml +++ b/recipes/checkqc/meta.yaml @@ -1,13 +1,14 @@ {% set name = "checkQC" %} -{% set version = "4.0.1" %} +{% set version = "4.0.4" %} +{% set sha256 = "26fdd9e649f25df757cacab2263b814df45cb2531e35850930df3c90183609cb" %} package: name: "{{ name|lower }}" version: "{{ version }}" source: - url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 03bc01d96d45c4c1a0e07d410a6f3ec74c0fab0f7125434ca3d983e70d4d568a + url: https://github.com/Molmed/checkQC/archive/refs/tags/v{{ version }}.tar.gz + sha256: {{ sha256 }} build: number: 0 @@ -15,9 +16,9 @@ build: entry_points: - checkqc = checkQC.app:start - checkqc-ws = checkQC.web_app:start - script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv" + script: "{{ PYTHON }} -m pip install . -vvv" run_exports: - - {{ pin_subpackage('checkqc', max_pin="x") }} + - {{ pin_subpackage('checkqc') }} requirements: host: @@ -26,11 +27,13 @@ requirements: run: - python >=3.6,<3.11 - click >=8.1.1 - - PyYAML >=6.0 + - pyyaml >=6.0 - illumina-interop >=1.2.4 - xmltodict >=0.13.0 - tornado >=6.3.2 - sample-sheet >=0.13.0 + - numpy >=1.26.4 + - pandas >=2.2.2 test: imports: @@ -43,7 +46,7 @@ test: about: home: "https://www.github.com/Molmed/checkQC" - license: GPL-3.0-or-later + license: GPLv3 license_family: GPL3 license_file: LICENSE summary: "A simple program to parse Illumina NGS data and check it for quality criteria." From 8e4195153ca089257e1c6f03525ab7544588da6d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 16:01:41 -0400 Subject: [PATCH 0277/1589] Update egglib to 3.3.3 (#49206) --- recipes/egglib/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/egglib/meta.yaml b/recipes/egglib/meta.yaml index 5faf68cd3fe00..330ef36687503 100644 --- a/recipes/egglib/meta.yaml +++ b/recipes/egglib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "egglib" %} -{% set version = "3.3.2" %} +{% set version = "3.3.3" %} package: name: "{{ name|lower }}" @@ -7,10 +7,10 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/EggLib-{{ version }}.zip - sha256: 596838f6504c5a0f7ae9da9fbe41a595c3113e27d764e1a09a9e8795ef79d056 + sha256: 8f788e1d40243a7e489c71a20581a5e842e0f49bca87096fcee572c087865fc2 build: - number: 1 + number: 0 skip: True # [py < 38 or osx] script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv entry_points: From 62bcdcbe3ef98da32932177898fbe1ab01f33666 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 17:30:05 -0400 Subject: [PATCH 0278/1589] Update pia to 1.5.4 (#49208) --- recipes/pia/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pia/meta.yaml b/recipes/pia/meta.yaml index 56d1fa38fc1d1..2801feec2b3fe 100644 --- a/recipes/pia/meta.yaml +++ b/recipes/pia/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pia" %} -{% set version = "1.5.3" %} -{% set sha256 = "424554ee668e120dada07d01bbf107d9edbb75bb6511278a5c6b724b5344586c" %} +{% set version = "1.5.4" %} +{% set sha256 = "a854e8c7132d6216e58e80a8c27f20f30c6720dfdaa6395d0f96293f37aa3ff8" %} package: name: {{ name|lower }} From 4c699f257c71cbd3495bb1f6ba3073d403fdd45a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 19:22:53 -0400 Subject: [PATCH 0279/1589] Update zol to 1.4.10 (#49211) * Update zol to 1.4.10 * Update meta.yaml --------- Co-authored-by: Rauf Salamzade --- recipes/zol/meta.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/recipes/zol/meta.yaml b/recipes/zol/meta.yaml index 503f5652016b7..b4ffee8842b54 100644 --- a/recipes/zol/meta.yaml +++ b/recipes/zol/meta.yaml @@ -1,5 +1,5 @@ {% set name = "zol" %} -{% set version = "1.4.9" %} +{% set version = "1.4.10" %} package: name: {{ name|lower }} @@ -7,10 +7,10 @@ package: source: url: https://github.com/Kalan-Lab/zol/archive/refs/tags/v{{ version }}.tar.gz - sha256: b4a6a2f62bf9763de6b78ab0832a692696ac8250161998adc50677d829df1a7b + sha256: 5a147e00b400c09423f4739d6a5bae59d7d9007f4d56ad712ccf0c734147bc47 build: - number: 1 + number: 0 skip: True # [py <= 311] run_exports: - {{ pin_subpackage('zol', max_pin='x.x') }} @@ -27,7 +27,7 @@ requirements: - python >=3.10 - r-base - biopython - - muscle + - muscle >=5.0 - setuptools - mcl - pal2nal >=14.1 @@ -50,7 +50,7 @@ requirements: - r-cowplot - r-gggenes - r-gridextra - - skani + - skani >=0.2.2 - slclust - trimal - gzip From ebe5df33d3e8328be6942c1c3507cd690d35d90e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 19:55:10 -0400 Subject: [PATCH 0280/1589] Update skder to 1.2.3 (#49213) --- recipes/skder/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/skder/meta.yaml b/recipes/skder/meta.yaml index b75f11cc4b5bc..c028bb34e45db 100644 --- a/recipes/skder/meta.yaml +++ b/recipes/skder/meta.yaml @@ -1,5 +1,5 @@ {% set name = "skder" %} -{% set version = "1.2.2" %} +{% set version = "1.2.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/raufs/skDER/archive/refs/tags/v{{ version }}.tar.gz - sha256: 13b7c9f900843d0cf5b1f06a9e89ace19cc9ba9eb7e360c5d2cfff290932988f + sha256: 3089d3a60f1007101208b4aa4678133b979590521a497f36eb54c673088790d5 build: number: 0 From cdce79929ea68b02f5b3160497148c5f56f37253 Mon Sep 17 00:00:00 2001 From: Rob Patro Date: Sat, 13 Jul 2024 12:57:13 -0400 Subject: [PATCH 0281/1589] Rebuild piscem (#49219) * Disable -march=native in conda build * Bump build number --- recipes/piscem/build.sh | 4 ++-- recipes/piscem/meta.yaml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/piscem/build.sh b/recipes/piscem/build.sh index 4f056176a5dcd..482a75a82dec1 100644 --- a/recipes/piscem/build.sh +++ b/recipes/piscem/build.sh @@ -26,12 +26,12 @@ if [ "$unamestr" == 'Darwin' ]; then # build statically linked binary with Rust -RUSTFLAGS="-C link-args=-Wl,-undefined,dynamic_lookup" RUST_BACKTRACE=1 cargo install -v -v -j 1 --verbose --root $PREFIX --path . +CONDA_BUILD=TRUE RUSTFLAGS="-C link-args=-Wl,-undefined,dynamic_lookup" RUST_BACKTRACE=1 cargo install -v -v -j 1 --verbose --root $PREFIX --path . else export CFLAGS="${CFLAGS} --param ggc-min-expand=20 --param ggc-min-heapsize=8192" export CXXFLAGS="${CXXFLAGS} --param ggc-min-expand=20 --param ggc-min-heapsize=8192" # build statically linked binary with Rust -RUSTFLAGS="-L $PREFIX/lib64" RUST_BACKTRACE=1 cargo install -v -v -j 1 --verbose --root $PREFIX --path . +CONDA_BUILD=TRUE RUSTFLAGS="-L $PREFIX/lib64" RUST_BACKTRACE=1 cargo install -v -v -j 1 --verbose --root $PREFIX --path . fi diff --git a/recipes/piscem/meta.yaml b/recipes/piscem/meta.yaml index 2cd86dcc2944b..fd687c2eb0479 100644 --- a/recipes/piscem/meta.yaml +++ b/recipes/piscem/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage("piscem", max_pin="x.x") }} From b97ca91822411a46cee4bb0e53707a4e69058a2c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 13 Jul 2024 14:44:17 -0400 Subject: [PATCH 0282/1589] Update aniclustermap to 1.4.0 (#49215) --- recipes/aniclustermap/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/aniclustermap/meta.yaml b/recipes/aniclustermap/meta.yaml index dd5865cca6efc..9791fa3232fea 100644 --- a/recipes/aniclustermap/meta.yaml +++ b/recipes/aniclustermap/meta.yaml @@ -1,5 +1,5 @@ {% set name = "aniclustermap" %} -{% set version = "1.3.0" %} +{% set version = "1.4.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/aniclustermap-{{ version }}.tar.gz - sha256: 67b909f1c987092b198227b2588ea4e634b6f46fe156f450a8d8741d0acd7bae + sha256: c0542543ee14801d448ad9aff1abc4d7c225f94dcae21601e7c4f93bf1b63f26 build: entry_points: From 34fe86fdff8a37cc36a99d8f678bb67b9066eb82 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 13 Jul 2024 14:44:29 -0400 Subject: [PATCH 0283/1589] Update fgpyo to 0.4.0 (#49220) --- recipes/fgpyo/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/fgpyo/meta.yaml b/recipes/fgpyo/meta.yaml index 724cfe8711b77..17701e4fdb277 100644 --- a/recipes/fgpyo/meta.yaml +++ b/recipes/fgpyo/meta.yaml @@ -1,5 +1,5 @@ {% set name = "fgpyo" %} -{% set version = "0.3.0" %} +{% set version = "0.4.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/fulcrumgenomics/{{ name }}/archive/refs/tags/{{ version }}.tar.gz - sha256: 787506e574166c9b2cec80f722db7caa2851d24b787cdd665fae1d42f8a9c9e0 + sha256: fd92a8417fb93f494667f49ef9540e379884180fe8867fea6eb06f56be5937f2 build: noarch: python From 5df9aa6e3205432f7a39df5a98cf445dd4ddffc8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 13 Jul 2024 14:44:36 -0400 Subject: [PATCH 0284/1589] Update knotinframe to 2.3.1 (#49217) --- recipes/knotinframe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/knotinframe/meta.yaml b/recipes/knotinframe/meta.yaml index a4d765ab3bb01..8d41154beb4a7 100644 --- a/recipes/knotinframe/meta.yaml +++ b/recipes/knotinframe/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "2.3.0" %} -{% set sha256 = "e3d15d065148ed9dd25315868a31ec6c8a645d254a28ff2dcd01b23aed8b136d" %} +{% set version = "2.3.1" %} +{% set sha256 = "bfa37ab7ec8b3709d04d69f2013e0e823f5aba116db21b79233336d2dd2771b0" %} package: name: knotinframe From 9d627d99e34bdf2a93b9268451a90f74548a8132 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 13 Jul 2024 14:44:52 -0400 Subject: [PATCH 0285/1589] Update phold to 0.2.0 (#49216) * Update phold to 0.2.0 * Update meta.yaml --------- Co-authored-by: George Bouras <84495559+gbouras13@users.noreply.github.com> --- recipes/phold/meta.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/recipes/phold/meta.yaml b/recipes/phold/meta.yaml index fd6985bdd47e0..666df73ea1284 100644 --- a/recipes/phold/meta.yaml +++ b/recipes/phold/meta.yaml @@ -1,5 +1,5 @@ {% set name = "phold" %} -{% set version = "0.1.4" %} +{% set version = "0.2.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 660283dae06b866a0b903d098252288a382cb2d72a8adcc1e9a5e38a5547d9b3 + sha256: 1e57d55a1a1626bddda07c201d2be0d7816c3df61f069a98acac59176b2c2ad5 build: number: 0 @@ -23,7 +23,7 @@ requirements: - python >=3.8,<3.12 - pip run: - - foldseek ==8.ef4e960 + - foldseek ==9.427df8a - python >=3.8,<3.12 - biopython >=1.76 - alive-progress >=3.0.1 @@ -40,6 +40,7 @@ requirements: - pytorch >=2.1.2 - numpy >=1.20 - pycirclize >=0.3.1 + - h5py >=3.5 From 96f27893e4595ad7d3d13307ef64d288d8939547 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 13 Jul 2024 14:45:23 -0400 Subject: [PATCH 0286/1589] Update gsearch to 0.2.0 (#49212) --- recipes/gsearch/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gsearch/meta.yaml b/recipes/gsearch/meta.yaml index 3149d4081ee0d..e55c87bf50f84 100644 --- a/recipes/gsearch/meta.yaml +++ b/recipes/gsearch/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.1.9" %} +{% set version = "0.2.0" %} package: name: gsearch @@ -11,7 +11,7 @@ build: skip: True # [osx] source: url: https://github.com/jianshu93/gsearch/archive/v{{ version }}.tar.gz - sha256: 21d87192f55a0826744e474c5e22add204b7d2b634bdc692d29ab88175a34c36 + sha256: eb535c1757667a61fb85469910ece55a4344c18c77e1b7013a22b050535d1531 requirements: build: From d873748e51bb1b4944ff614808ce88082a5801f0 Mon Sep 17 00:00:00 2001 From: Edmund Miller <20095261+edmundmiller@users.noreply.github.com> Date: Sat, 13 Jul 2024 15:47:05 -0500 Subject: [PATCH 0287/1589] Fix NARFMAP static build (#49189) * build: Add STATIC=1 * build: Add LD Library path * build: Lock down boost version to have static files * chore: Bump build number? * fix: Remove static build and add boost env variables * build: Remove hard coded boost versions https://github.com/bioconda/bioconda-recipes/pull/49189#pullrequestreview-2175876435 --- recipes/narfmap/build.sh | 4 ++++ recipes/narfmap/meta.yaml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/recipes/narfmap/build.sh b/recipes/narfmap/build.sh index a61afaac5bc31..99c92de8a6f32 100644 --- a/recipes/narfmap/build.sh +++ b/recipes/narfmap/build.sh @@ -1,3 +1,7 @@ +export LD_LIBRARY_PATH="${PREFIX}/lib" +export BOOST_INCLUDE_DIR="${PREFIX}/include" +export BOOST_LIBRARY_DIR="${PREFIX}/lib" + export HAS_GTEST=0 # fix build number in config diff --git a/recipes/narfmap/meta.yaml b/recipes/narfmap/meta.yaml index 633f583be5646..ed77a73e4c577 100644 --- a/recipes/narfmap/meta.yaml +++ b/recipes/narfmap/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 2 skip: True # [osx] run_exports: - {{ pin_subpackage("narfmap", max_pin="x") }} From 57b2016d2a92f4004a0255ecde19965e1f1009b1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 13 Jul 2024 17:29:44 -0400 Subject: [PATCH 0288/1589] Update mycotools to 0.31.37 (#49221) --- recipes/mycotools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mycotools/meta.yaml b/recipes/mycotools/meta.yaml index 33d32cea9238d..7a3c66d459929 100644 --- a/recipes/mycotools/meta.yaml +++ b/recipes/mycotools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mycotools" %} -{% set version = "0.31.36" %} +{% set version = "0.31.37" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mycotools-{{ version }}.tar.gz - sha256: 58edb69ba33a12f7a27e1e013bb1f0377d9231f5e2672cae35a2205f0d71d112 + sha256: c8b5912f6209df8366c8fe694e18a288d9ccad52aaa7d2d19f384cbc1debcf65 build: entry_points: From ea38227bf8225473e125b53a2ba8be31cc74148a Mon Sep 17 00:00:00 2001 From: Cameron Lloyd Date: Sat, 13 Jul 2024 22:34:00 +0100 Subject: [PATCH 0289/1589] perbase: add osx-arm64 build (#49210) --- recipes/perbase/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/perbase/meta.yaml b/recipes/perbase/meta.yaml index 7831961fa6b61..e97ff9b77b19d 100644 --- a/recipes/perbase/meta.yaml +++ b/recipes/perbase/meta.yaml @@ -12,7 +12,7 @@ source: - perbase-aarch64.patch build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('perbase', max_pin="x.x") }} @@ -53,3 +53,4 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 From 9f62999489b4b6987120f74e977a33868a179305 Mon Sep 17 00:00:00 2001 From: Jianshu_Zhao <38149286+jianshu93@users.noreply.github.com> Date: Sat, 13 Jul 2024 17:34:47 -0400 Subject: [PATCH 0290/1589] Update gsearch v0.2.0 (#49209) --- recipes/gsearch/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/gsearch/meta.yaml b/recipes/gsearch/meta.yaml index e55c87bf50f84..45b11240f819f 100644 --- a/recipes/gsearch/meta.yaml +++ b/recipes/gsearch/meta.yaml @@ -17,7 +17,7 @@ requirements: build: - {{ compiler("cxx") }} - {{ compiler('c') }} - - rust >=1.39 + - rust >=1.60 - make - cmake From 568c152b06aeee9ac95cc4a45ccd0f575dc52892 Mon Sep 17 00:00:00 2001 From: s22chan Date: Sat, 13 Jul 2024 17:39:02 -0400 Subject: [PATCH 0291/1589] ncls: update osx-arm64 build (#47447) --- recipes/ncls/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ncls/meta.yaml b/recipes/ncls/meta.yaml index 7471a81ad188c..ec199e0d08771 100644 --- a/recipes/ncls/meta.yaml +++ b/recipes/ncls/meta.yaml @@ -10,8 +10,7 @@ source: sha256: 81aaa5abb123bb21797ed2f8ef921e20222db14a3ecbc61ccf447532f2b7ba93 build: - number: 3 - skip: true # [py2k or osx] + number: 4 script: {{ PYTHON }} -m pip install . --no-deps --ignore-installed -vv run_exports: - {{ pin_subpackage(name, max_pin="x.x.x") }} @@ -41,6 +40,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 recipe-maintainers: - endrebak skip-lints: From f32542916757df7b43efc455f7946f05427a191e Mon Sep 17 00:00:00 2001 From: Carl Mathias Kobel Date: Sat, 13 Jul 2024 23:45:49 +0200 Subject: [PATCH 0292/1589] Update CompareM2 to v2.8.2 (#49194) --- recipes/comparem2/build.sh | 4 ++++ recipes/comparem2/meta.yaml | 7 ++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/recipes/comparem2/build.sh b/recipes/comparem2/build.sh index ec6073d16ee3c..322e1d799584d 100644 --- a/recipes/comparem2/build.sh +++ b/recipes/comparem2/build.sh @@ -13,3 +13,7 @@ cp -rf config docs dynamic_report profile resources tests workflow "${PACKAGE_HO # Make links ln -sf ${PACKAGE_HOME}/comparem2 ${PREFIX}/bin/comparem2 ln -sf ${PACKAGE_HOME}/comparem2 ${PREFIX}/bin/asscom2 # Legacy + +# This one is a hack until I fix Snakemake for good. +ln -sf ${PACKAGE_HOME}/resources/enable_passthrough_parameters.sh ${PREFIX}/bin/enable_passthrough_parameters_comparem2 + diff --git a/recipes/comparem2/meta.yaml b/recipes/comparem2/meta.yaml index 749d3fe7b00ca..abe3fd587efca 100644 --- a/recipes/comparem2/meta.yaml +++ b/recipes/comparem2/meta.yaml @@ -1,13 +1,13 @@ {% set name = "comparem2" %} -{% set version = "2.8.1" %} -{% set sha256 = "8e135f59d3dd48b9977374d30b2666ba8e4922ede1f0397e6a0cae0ff1f9bb92" %} +{% set version = "2.8.2" %} +{% set sha256 = "181b341077d3e2cc86758620475dc4f79dffd9646f182dd30558b852bbffa92d" %} package: name: {{ name }} version: {{ version }} source: - url: https://github.com/cmkobel/comparem2/archive/refs/tags/v{{ version }}.tar.gz + url: https://github.com/cmkobel/CompareM2/archive/refs/tags/v{{ version }}.tar.gz sha256: {{ sha256 }} build: @@ -23,6 +23,7 @@ requirements: - python <3.12 - mamba # Necessary for snakemake to install child environments during development. - pandas + test: commands: From 4e537593d33c386eaf24b9ccbc55b266c45a70c7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 13 Jul 2024 17:49:39 -0400 Subject: [PATCH 0293/1589] Update vcfsim to 1.0.12.alpha (#49222) --- recipes/vcfsim/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/vcfsim/meta.yaml b/recipes/vcfsim/meta.yaml index 5a7af5429f034..00ad1f01fbe82 100644 --- a/recipes/vcfsim/meta.yaml +++ b/recipes/vcfsim/meta.yaml @@ -1,5 +1,5 @@ {% set name = "vcfsim" %} -{% set version = "1.0.11.alpha" %} +{% set version = "1.0.12.alpha" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Pie115/VCFSimulator-SamukLab/archive/{{ version }}.tar.gz - sha256: 9263d88be02a25a4ff9033413ecd2c72807f5ea532434092a35abf96b8858aa0 + sha256: 58ff93f1652f71a5559d0e1b1660c11ecc391ecf32a82bc761aa3837f5c26e94 build: noarch: python From d3c6e607094d864f234ae74ef5744d46ddf9f10c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 13 Jul 2024 19:46:30 -0400 Subject: [PATCH 0294/1589] Update isoquant to 3.4.2 (#49223) --- recipes/isoquant/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/isoquant/meta.yaml b/recipes/isoquant/meta.yaml index 0d7b27eeb72ff..e112ee8533140 100644 --- a/recipes/isoquant/meta.yaml +++ b/recipes/isoquant/meta.yaml @@ -1,6 +1,6 @@ {% set name = "IsoQuant" %} -{% set version = "3.4.1" %} -{% set sha256 = "a2e9d80da36567ab64647b60a919e78c69da7d61d0e9436f1682acada7841485" %} +{% set version = "3.4.2" %} +{% set sha256 = "7cff391e0d9e9d61d4fce6a1218270cf72e8dd034d7cfdd154b4c5b4055e17b4" %} package: name: {{ name | lower }} From eb64f7f21643c9a000cded2170e9c86185674787 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 13 Jul 2024 20:09:41 -0400 Subject: [PATCH 0295/1589] Update snakemake-storage-plugin-azure to 0.1.6 (#49214) Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/snakemake-storage-plugin-azure/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-storage-plugin-azure/meta.yaml b/recipes/snakemake-storage-plugin-azure/meta.yaml index a02ed329f2e5a..9e7875f4811e3 100644 --- a/recipes/snakemake-storage-plugin-azure/meta.yaml +++ b/recipes/snakemake-storage-plugin-azure/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-storage-plugin-azure" %} -{% set version = "0.1.5" %} +{% set version = "0.1.6" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_storage_plugin_azure-{{ version }}.tar.gz - sha256: c200d5ffc1d593083028014becba83ace43749a666f394e567435b7299566568 + sha256: 549e54daf878be652ac5a301b1aa2b4d63d48e21a3a1abe33c4c7b4da79cf8d6 build: noarch: python From 5b16c9d8c1e09f88edae5b2f57b34b02745dab01 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 14 Jul 2024 13:58:43 -0400 Subject: [PATCH 0296/1589] Update mycotools to 0.31.38 (#49233) --- recipes/mycotools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mycotools/meta.yaml b/recipes/mycotools/meta.yaml index 7a3c66d459929..88eeea2c01418 100644 --- a/recipes/mycotools/meta.yaml +++ b/recipes/mycotools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mycotools" %} -{% set version = "0.31.37" %} +{% set version = "0.31.38" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mycotools-{{ version }}.tar.gz - sha256: c8b5912f6209df8366c8fe694e18a288d9ccad52aaa7d2d19f384cbc1debcf65 + sha256: 45198acbbae4a88f180bf2d5cf82a5afe6a71a3b20e0304954afea71a9ff8767 build: entry_points: From c2e35b025f6e26f48cdc9beaf7383c6f089af203 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Sun, 14 Jul 2024 20:01:45 +0200 Subject: [PATCH 0297/1589] Fix pypi urls for bot autobump: setuptools changed some source paths (#49230) * Fix khipu_metabolomics pypi sdist path See https://github.com/bioconda/bioconda-recipes/issues/48971 * update version and sha * url fix * f url * f galaxy sequence utils * f galaxy sequence utils * f galaxy files * f jms * Run exports * fix version * fix pin name * Update requirements of khipu * fix pin * fix * Don't do galaxy-data on this branch * Fix khipu requirements --- recipes/galaxy-files/meta.yaml | 6 +++--- recipes/galaxy-objectstore/meta.yaml | 6 +++--- recipes/galaxy_sequence_utils/meta.yaml | 9 ++++++--- recipes/jms-metabolite-services/meta.yaml | 8 ++++---- recipes/khipu-metabolomics/meta.yaml | 19 +++++++++++++------ 5 files changed, 29 insertions(+), 19 deletions(-) diff --git a/recipes/galaxy-files/meta.yaml b/recipes/galaxy-files/meta.yaml index 574bbf277470b..f5c2829d09ef4 100644 --- a/recipes/galaxy-files/meta.yaml +++ b/recipes/galaxy-files/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "24.0.0" %} -{% set sha256 = "d00dab002d94a6463bb93d6c7fab4d5dce921e7ab54de5ca59c615faa1a14038" %} +{% set version = "24.1.1" %} +{% set sha256 = "d3c23617eed928515fd492fd97588790b1c095fdd298b5f5584307f34846c4ca" %} {% set galaxy_version = version.split(".")[:2]|join(".") %} package: @@ -7,7 +7,7 @@ package: version: {{ version }} source: - url: https://pypi.io/packages/source/g/galaxy-files/galaxy-files-{{ version }}.tar.gz + url: https://pypi.io/packages/source/g/galaxy-files/galaxy_files-{{ version }}.tar.gz sha256: {{ sha256 }} build: diff --git a/recipes/galaxy-objectstore/meta.yaml b/recipes/galaxy-objectstore/meta.yaml index d8ec586420831..ed250a556cf83 100644 --- a/recipes/galaxy-objectstore/meta.yaml +++ b/recipes/galaxy-objectstore/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "24.0.0" %} -{% set sha256 = "0cd30eff8285b83320b3eb5677bb93e3d368a8e771747c906861f88ca5036cd6" %} +{% set version = "24.1.1" %} +{% set sha256 = "0a38e7fedc5c9300507d441c17d745957e1c8a0c65d1b7efde62361bf024eff1" %} {% set galaxy_version = version.split(".")[:2]|join(".") %} package: @@ -7,7 +7,7 @@ package: version: {{ version }} source: - url: https://pypi.io/packages/source/g/galaxy-objectstore/galaxy-objectstore-{{ version }}.tar.gz + url: https://pypi.io/packages/source/g/galaxy-objectstore/galaxy_objectstore-{{ version }}.tar.gz sha256: {{ sha256 }} build: diff --git a/recipes/galaxy_sequence_utils/meta.yaml b/recipes/galaxy_sequence_utils/meta.yaml index d07a8c6e443ca..5e9efa7fccb47 100644 --- a/recipes/galaxy_sequence_utils/meta.yaml +++ b/recipes/galaxy_sequence_utils/meta.yaml @@ -1,5 +1,6 @@ {% set name = "galaxy_sequence_utils" %} {% set version = "1.1.5" %} +{% set sha256 = "c32bd91f6ff11ad6e8b62f8de309d695ef5c33a782afbf5122c1db7144ef1162" %} package: name: {{ name|lower }} @@ -12,13 +13,15 @@ about: summary: Sequence Utilities from the Galaxy project source: - url: https://files.pythonhosted.org/packages/f9/f2/39a48c3cc1635e4086a743c80f782bb216f069316437028d909448c2356a/galaxy_sequence_utils-1.1.5.tar.gz - sha256: c32bd91f6ff11ad6e8b62f8de309d695ef5c33a782afbf5122c1db7144ef1162 + url: https://pypi.io/packages/source/g/galaxy-sequence-utils/galaxy_sequence_utils-{{ version }}.tar.gz + sha256: {{ sha256 }} build: noarch: python - number: 0 + number: 1 preserve_egg_dir: True + run_exports: + -{{ pin_subpackage(name, max_pin="x") }} entry_points: - gx-fastq-to-tabular=galaxy_utils.sequence.scripts.fastq_to_tabular:main - gx-fastq-groomer=galaxy_utils.sequence.scripts.fastq_groomer:main diff --git a/recipes/jms-metabolite-services/meta.yaml b/recipes/jms-metabolite-services/meta.yaml index 07ecbf6f80219..06637fea3c542 100644 --- a/recipes/jms-metabolite-services/meta.yaml +++ b/recipes/jms-metabolite-services/meta.yaml @@ -1,20 +1,20 @@ {% set name = "jms-metabolite-services" %} -{% set version = "0.5.7" %} +{% set version = "0.5.8" %} package: name: {{ name|lower }} version: {{ version }} source: - url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/jms-metabolite-services-{{ version }}.tar.gz - sha256: 39cad5a790ebd876ecce7f093769fb7495bbb44e74953c428d81055e5f7feac9 + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/jms_metabolite_services-{{ version }}.tar.gz + sha256: 0067d4804ebf10aed93556be6e2f7113173b9f5a50c36ea81ef6a2d0254772e7 build: noarch: python script: {{ PYTHON }} -m pip install . -vv number: 0 run_exports: - - {{ pin_subpackage('jms-metabolite-services', max_pin="x.x") }} + - {{ pin_subpackage('jms-metabolite-services', max_pin="x.x") }} requirements: diff --git a/recipes/khipu-metabolomics/meta.yaml b/recipes/khipu-metabolomics/meta.yaml index 49c0ce79ec582..17677c29ab01d 100644 --- a/recipes/khipu-metabolomics/meta.yaml +++ b/recipes/khipu-metabolomics/meta.yaml @@ -1,22 +1,22 @@ {% set name = "khipu-metabolomics" %} -{% set version = "0.7.5" %} +{% set version = "2.0.1" %} package: name: {{ name|lower }} version: {{ version }} source: - url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/khipu-metabolomics-{{ version }}.tar.gz - sha256: 5c89c28d30fccefb1e468d8fbcb3637bd452f002438291f7eb910a762ceb99f1 + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/khipu_metabolomics-{{ version }}.tar.gz + sha256: 98bc3a78ece5def5041506f3219b0a549b3eb95c05b75817d91eabf94f0810ac build: - entry_points: - - khipu=khipu.command_line:main noarch: python script: {{ PYTHON }} -m pip install . -vv number: 0 run_exports: - {{ pin_subpackage('khipu-metabolomics', max_pin="x.x") }} + entry_points: + - khipu=khipu.command_line:main requirements: host: @@ -24,10 +24,16 @@ requirements: - pip run: - python >=3.7 + - intervaltree + - isocor - mass2chem - - treelib + - matplotlib + - numpy - networkx - pandas + - requests + - scipy + - treelib test: imports: - khipu @@ -36,6 +42,7 @@ test: - khipu --help requires: - pip + - requests about: home: https://github.com/shuzhao-li/khipu From ee6d76cdcc1cf27b2a454a4e444d12b8f7d951e6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 14 Jul 2024 14:02:03 -0400 Subject: [PATCH 0298/1589] Update viguno to 0.3.2 (#49229) --- recipes/viguno/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/viguno/meta.yaml b/recipes/viguno/meta.yaml index bf70182f7aac7..f44409a2f4467 100644 --- a/recipes/viguno/meta.yaml +++ b/recipes/viguno/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.3.1" %} -{% set sha256 = "92250d0336e148af08366ee7e4cf88bd95f70e6c0b8aa1c24732b165250953b4" %} +{% set version = "0.3.2" %} +{% set sha256 = "828490fac6f06913b0f65232c2fed446cbef4a9d48ccb4a7bc83fc57b5d7f9ff" %} package: name: viguno From d88107a31456988b8b94a4f8aa66243cef3c8cad Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Mon, 15 Jul 2024 03:43:18 +0200 Subject: [PATCH 0299/1589] Bump bx-python to 0.12, fix pypi url (#49231) * f bx-python * reset build number to 0 * fix deps * disable py38 build * [skip ci] add nsoranzo to maintainer list * Drop unnecessary wheel host requirement * Try to restore py38 build --------- Co-authored-by: Nicola Soranzo --- recipes/bx-python/meta.yaml | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/recipes/bx-python/meta.yaml b/recipes/bx-python/meta.yaml index c08fcc428ad32..fb05bc7948ff6 100644 --- a/recipes/bx-python/meta.yaml +++ b/recipes/bx-python/meta.yaml @@ -1,18 +1,20 @@ {% set name = "bx-python" %} -{% set version = "0.11.0" %} -{% set sha256 = "2cf8872572817e0d36145cc2711889df5729987ffed4e51280da1e3c2ccb9429" %} +{% set version = "0.12.0" %} +{% set sha256 = "aac2405a7b6f0d74a0a38d0e589205ed4e5ecee12df23e2076d40d41cc8335c2" %} package: name: {{ name|lower }} version: {{ version }} source: - url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/bx-python-{{ version }}.tar.gz + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/bx_python-{{ version }}.tar.gz sha256: {{ sha256 }} build: - number: 3 - script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv + number: 0 + script: + - {{ PYTHON }} setup.py build_ext --force # [py<39] + - {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv run_exports: - {{ pin_subpackage(name|lower, max_pin='x.x') }} @@ -22,8 +24,10 @@ requirements: host: - python - cython + - numpy # [py<39] + - numpy >=1.25 # [py>=39] - pip - - numpy + - setuptools - zlib run: - python @@ -66,3 +70,5 @@ extra: additional-platforms: - linux-aarch64 - osx-arm64 + recipe-maintainers: + - nsoranzo From 79cf11519564c252ce2394339d21f4e28bc5a262 Mon Sep 17 00:00:00 2001 From: John Huddleston Date: Mon, 15 Jul 2024 00:20:27 -0700 Subject: [PATCH 0300/1589] Update pathogen-embed to 2.2.0 (#49241) --- recipes/pathogen-embed/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pathogen-embed/meta.yaml b/recipes/pathogen-embed/meta.yaml index fecfe32bcb2a5..45e576bcc55c4 100644 --- a/recipes/pathogen-embed/meta.yaml +++ b/recipes/pathogen-embed/meta.yaml @@ -1,12 +1,12 @@ -{% set version = "2.1.0" %} +{% set version = "2.2.0" %} package: name: pathogen-embed version: {{ version }} source: - url: https://files.pythonhosted.org/packages/0c/71/38ca9c5ad8f2893637ebf62bb4703e59162821860a6d9635b8a2794d2258/pathogen_embed-{{ version }}.tar.gz - sha256: b8339ed5b6b672e4da788c07c82d25b4b7cc5f533e4625bc1786056ad5097f9b + url: https://files.pythonhosted.org/packages/9c/96/971af8ac8519e8924624f70896c73d0d8a9491ee76095391c4da216d4aa4/pathogen_embed-{{ version }}.tar.gz + sha256: e336d1e7127b82c5dd476b3e39d4a315f2e71b127b123ab620ebe6a20977df1c build: number: 0 From 4cf07f9d6aa235d2da806de33f2c70629bb75dfd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 03:38:56 -0400 Subject: [PATCH 0301/1589] Update piscem to 0.10.3 (#49242) --- recipes/piscem/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/piscem/meta.yaml b/recipes/piscem/meta.yaml index fd687c2eb0479..0c261497c9b1d 100644 --- a/recipes/piscem/meta.yaml +++ b/recipes/piscem/meta.yaml @@ -1,13 +1,13 @@ -{% set version = "0.10.2" %} +{% set version = "0.10.3" %} {% set name = "piscem" %} -{% set sha256 = "657456b51174fc64a4c8bc9a641b873b0dca1b48fa05675dd455eb45a5be39e7" %} +{% set sha256 = "5bb7d856e28f7090456bbc9aa81120169cff76b66c47a642916d8d53e35bec8a" %} package: name: {{ name }} version: {{ version }} build: - number: 2 + number: 0 run_exports: - {{ pin_subpackage("piscem", max_pin="x.x") }} From e441dd9c89b8c5f5bb5cddfee929d83fe348a7f7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 03:57:37 -0400 Subject: [PATCH 0302/1589] Update dysgu to 1.6.6 (#49236) --- recipes/dysgu/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/dysgu/meta.yaml b/recipes/dysgu/meta.yaml index c5378708979f1..a1a09caab84af 100644 --- a/recipes/dysgu/meta.yaml +++ b/recipes/dysgu/meta.yaml @@ -1,6 +1,6 @@ {% set name = "dysgu" %} -{% set version = "1.6.5" %} -{% set sha256hash = "9c64989f56d9c83ba28a3d8876abc068b55c631e752a77fd8de2e43cc49fe14a" %} +{% set version = "1.6.6" %} +{% set sha256hash = "cabc54afc88c8a855f79067bdeddc089d99ec91a4e4fe21fd18f42962d0d6a6d" %} package: name: {{ name|lower }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256hash }} build: - number: 1 + number: 0 binary_relocation: False entry_points: - dysgu = dysgu.main:cli From ddc8235a1f1cf3902d6c02cbaa4232013a7972bd Mon Sep 17 00:00:00 2001 From: Jose Figueroa Date: Mon, 15 Jul 2024 04:02:32 -0400 Subject: [PATCH 0303/1589] Update MetaCerberus (#49235) --- recipes/metacerberus/meta.yaml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/recipes/metacerberus/meta.yaml b/recipes/metacerberus/meta.yaml index 94938683b09a1..8ecc533811481 100644 --- a/recipes/metacerberus/meta.yaml +++ b/recipes/metacerberus/meta.yaml @@ -1,16 +1,16 @@ {% set name = "MetaCerberus" %} -{% set version = "1.3.0" %} +{% set version = "1.3.1" %} package: name: "{{ name|lower }}" version: "{{ version }}" source: - url: "https://files.pythonhosted.org/packages/source/m/metacerberus/metacerberus-1.3.0.tar.gz" - sha256: f330233ac8efb794afba370270658e588d88737d73ab472797ea4a4986d60691 + url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" + sha256: 725be35a0e9b2a3867791e1cb8284ec95a09d3479516e9b265e3751659ce7935 build: - number: 1 + number: 0 noarch: python script: "{{ PYTHON }} -m pip install . -vv" run_exports: @@ -25,16 +25,17 @@ requirements: - python >=3.8 - setuptools <70.0.0 - grpcio =1.43 + - pandas - fastqc - flash2 - fastp - porechop - bbmap - - prodigal - - prodigal-gv + - pyrodigal + - pyrodigal-gv - phanotate - trnascan-se - - hmmer + - pyhmmer - ray-default <=2.6.3 - ray-core <=2.6.3 - ray-tune <=2.6.3 From e64062779880fdeb30fd56ce8ecb5583c4bb6d83 Mon Sep 17 00:00:00 2001 From: Ben J Woodcroft Date: Mon, 15 Jul 2024 18:07:22 +1000 Subject: [PATCH 0304/1589] singlem: Pin deps and update description. (#49239) --- recipes/singlem/meta.yaml | 61 +++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 32 deletions(-) diff --git a/recipes/singlem/meta.yaml b/recipes/singlem/meta.yaml index 1c153812c5c68..fbe9bb889e178 100644 --- a/recipes/singlem/meta.yaml +++ b/recipes/singlem/meta.yaml @@ -10,7 +10,7 @@ source: sha256: ab66c8d6f6ec712140f9f1b839c58fec33e5741437866ed7af6459af3188834e build: - number: 0 + number: 1 noarch: python script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" run_exports: @@ -24,42 +24,39 @@ requirements: run: - python >=3.7 - diamond >=2.1.7 - - biopython - - hmmer - - orfm - - mfqe - - extern - - graftm >=0.14.0 - - krona - - pplacer - - sra-tools - - ncbi-ngs-sdk - - sqlite - - squarify + - biopython =1.84 + - hmmer =3.2.1 + - orfm =1.3 + - mfqe =0.5.* + - extern =0.4.* + - graftm =0.15.* + - krona =2.8.* + - pplacer =1.1.alpha19 + - sra-tools =3.1.* + - ncbi-ngs-sdk =3.0.* + - sqlite =3.46.* + - squarify =0.4.* - mafft - - seqmagick - - expressbetadiversity - - cd-hit - - fasttree - - fastalite - - jinja2 - - pip - - sqlalchemy - - pandas - - bird_tool_utils_python >=0.4.1 - - zenodo_backpack - - smafa >=0.7.0 - - pyranges + - seqmagick =0.8.* + - expressbetadiversity =1.0.* + - cd-hit =4.8.* + - fasttree =2.1.* + - fastalite =0.4.* + - jinja2 =3.1.* + - sqlalchemy =2.0.* + - pandas =2.2.* + - bird_tool_utils_python >=0.4.1,<0.5.0 + - zenodo_backpack >=0.3.1,<0.4.0 + - smafa =0.8.* + - pyranges =0.1.* - polars >=0.19.3 - - prodigal - - tqdm - - pyarrow + - prodigal =2.6.* + - tqdm =4.66.* + - pyarrow =16.1.* test: imports: - singlem - requires: - - nose >=1.0 commands: - singlem -h @@ -68,6 +65,6 @@ about: license: "GPL-3.0-or-later" license_family: "GPL3" license_file: "LICENCE.txt" - summary: 'SingleM is a tool to find the abundances of discrete operational taxonomic units (OTUs) directly from shotgun metagenome data, without heavy reliance on reference sequence databases. It is able to differentiate closely related species even if those species are from lineages new to science.' + summary: 'SingleM is a tool for profiling shotgun metagenomes. It has a particular strength in detecting microbial lineages which are not in reference databases. The method it uses also makes it suitable for some related tasks, such as assessing eukaryotic contamination, finding bias in genome recovery, and lineage-targeted MAG recovery.' dev_url: "https://github.com/wwood/singlem" doc_url: "https://wwood.github.io/singlem/" From f7ae1c134476f5c32bccede6028c4b819baf7777 Mon Sep 17 00:00:00 2001 From: Chris Jackson <55370301+chrisjackson-pellicle@users.noreply.github.com> Date: Mon, 15 Jul 2024 18:08:46 +1000 Subject: [PATCH 0305/1589] Restrict to julia 1.8.5 and install/remove ArgParse module via postlink.sh/pre-unlink.sh (#49240) --- recipes/paragone/meta.yaml | 4 ++-- recipes/paragone/post-link.sh | 3 +++ recipes/paragone/pre-unlink.sh | 2 ++ 3 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 recipes/paragone/post-link.sh create mode 100644 recipes/paragone/pre-unlink.sh diff --git a/recipes/paragone/meta.yaml b/recipes/paragone/meta.yaml index d2c06021b0d7f..aeeaccb303378 100644 --- a/recipes/paragone/meta.yaml +++ b/recipes/paragone/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 33927eb32a0f11bb1f9d8f41c229886eeef2106fd8de44da248f1a31b3fd4e23 build: - number: 0 + number: 1 skip: True # [win] entry_points: - paragone = paragone.paragone_main:main @@ -27,7 +27,7 @@ requirements: - clustalo >=1.2.4 - ete3 >=3.1.2 - fasttree - - julia + - julia =1.8.5 - hmmer >=3.3.2 - iqtree >=2.2.0.3 - mafft >=7.245 diff --git a/recipes/paragone/post-link.sh b/recipes/paragone/post-link.sh new file mode 100644 index 0000000000000..f2db9b04598d5 --- /dev/null +++ b/recipes/paragone/post-link.sh @@ -0,0 +1,3 @@ +"${PREFIX}/bin/julia" -e 'using Pkg; Pkg.add("ArgParse")' >> "${PREFIX}/.messages.txt" 2>&1 +"${PREFIX}/bin/julia" -e 'using Pkg; Pkg.instantiate()' >> "${PREFIX}/.messages.txt" 2>&1 + diff --git a/recipes/paragone/pre-unlink.sh b/recipes/paragone/pre-unlink.sh new file mode 100644 index 0000000000000..47e5ca1699104 --- /dev/null +++ b/recipes/paragone/pre-unlink.sh @@ -0,0 +1,2 @@ +"${PREFIX}/bin/julia" -e 'using Pkg; Pkg.rm("ArgParse")' >> "${PREFIX}/.messages.txt" 2>&1 + From b3d530679fe356eb9f9995fd4d2339f65c4d3aab Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Mon, 15 Jul 2024 10:14:03 +0200 Subject: [PATCH 0306/1589] pathogen-embed: Use predictable url that autobump can use (#49243) * pathogen-embed: Use predictable url that autobump can use * Update meta.yaml * Update meta.yaml --- recipes/pathogen-embed/meta.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/recipes/pathogen-embed/meta.yaml b/recipes/pathogen-embed/meta.yaml index 45e576bcc55c4..6508748772242 100644 --- a/recipes/pathogen-embed/meta.yaml +++ b/recipes/pathogen-embed/meta.yaml @@ -1,15 +1,16 @@ {% set version = "2.2.0" %} +{% set name = "pathogen-embed" %} package: - name: pathogen-embed + name: {{ name }} version: {{ version }} source: - url: https://files.pythonhosted.org/packages/9c/96/971af8ac8519e8924624f70896c73d0d8a9491ee76095391c4da216d4aa4/pathogen_embed-{{ version }}.tar.gz + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pathogen_embed-{{ version }}.tar.gz sha256: e336d1e7127b82c5dd476b3e39d4a315f2e71b127b123ab620ebe6a20977df1c build: - number: 0 + number: 1 noarch: python entry_points: - pathogen-distance = pathogen_embed.__main__:run_distance From 096fb7049f1f2a610b1feed283aa0f5e0fffe579 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 06:55:19 -0400 Subject: [PATCH 0307/1589] Update pybiolib to 1.1.2236 (#49252) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index 519a97ec219ac..d599c7b7c2c13 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.1.2232" %} +{% set version = "1.1.2236" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: 531a56ea78eecdc357c0cf02b68a77c4acef69ad2edc553dad3a6e36c3e24184 + sha256: e4e87e11d48de73b311b099a4307c258e6e38c8901dd2d9d1a82d3c035ca5718 build: noarch: python From 5eeb7835c48e6d11120535a0eafd426fb6fa0219 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 06:55:53 -0400 Subject: [PATCH 0308/1589] Update paragone to 1.1.2 (#49253) --- recipes/paragone/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/paragone/meta.yaml b/recipes/paragone/meta.yaml index aeeaccb303378..d1dfd040d9241 100644 --- a/recipes/paragone/meta.yaml +++ b/recipes/paragone/meta.yaml @@ -1,5 +1,5 @@ {% set name = "paragone" %} -{% set version = "1.1.1" %} +{% set version = "1.1.2" %} package: name: {{ name|lower }} @@ -7,10 +7,10 @@ package: source: url: "https://github.com/chrisjackson-pellicle/ParaGone/archive/refs/tags/v{{ version }}.tar.gz" - sha256: 33927eb32a0f11bb1f9d8f41c229886eeef2106fd8de44da248f1a31b3fd4e23 + sha256: 49c5b2d0a3dad9f3d10a6ccc8d89e46959ec09aac0d6a6f4dd44e0cf47914ac0 build: - number: 1 + number: 0 skip: True # [win] entry_points: - paragone = paragone.paragone_main:main From 49fbb476a795058d9e63b836767983a1fa509d18 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 06:56:18 -0400 Subject: [PATCH 0309/1589] Update icfree-ml to 2.4.0 (#49249) --- recipes/icfree-ml/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/icfree-ml/meta.yaml b/recipes/icfree-ml/meta.yaml index 20ac1de7e1a5b..8ebec52264de7 100644 --- a/recipes/icfree-ml/meta.yaml +++ b/recipes/icfree-ml/meta.yaml @@ -1,13 +1,13 @@ {% set name = "icfree-ml" %} -{% set version = "2.3.3" %} +{% set version = "2.4.0" %} package: name: {{ name|lower }} version: {{ version }} source: - url: https://github.com/brsynth/icfree-ml/archive/refs/tags/2.3.3.tar.gz - sha256: c52b1baeb63a98ea54f2cd3e4cb96d3a94bbf7f95065c076938694eb8ecb5b17 + url: https://github.com/brsynth/icfree-ml/archive/refs/tags/2.4.0.tar.gz + sha256: 7ea76c71098b86f562fd676c31b440da86d2f1c83c70b601eea58d4e28cce408 build: number: 0 From ba31111936f4fcd1cc9e2388d114b63fb960d95d Mon Sep 17 00:00:00 2001 From: Matt Holt Date: Mon, 15 Jul 2024 06:58:53 -0500 Subject: [PATCH 0310/1589] Add MethBat to bioconda recipes (#49204) * copy past modify from starphase * fix pin_subpackage --------- Co-authored-by: Martin Grigorov --- recipes/methbat/build.sh | 7 +++++++ recipes/methbat/meta.yaml | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 recipes/methbat/build.sh create mode 100644 recipes/methbat/meta.yaml diff --git a/recipes/methbat/build.sh b/recipes/methbat/build.sh new file mode 100644 index 0000000000000..acfd621a41893 --- /dev/null +++ b/recipes/methbat/build.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +mkdir -p "${PREFIX}"/bin +# bioconda auto-extract for us apparently +# tar -xzf methbat-*.tar.gz +md5sum -c methbat.md5 +cp methbat "${PREFIX}"/bin/ diff --git a/recipes/methbat/meta.yaml b/recipes/methbat/meta.yaml new file mode 100644 index 0000000000000..a9c3225d7a792 --- /dev/null +++ b/recipes/methbat/meta.yaml @@ -0,0 +1,34 @@ +{% set name = "methbat" %} +{% set version = "0.13.0" %} +{% set sha256 = "3d3fc1ce531cea3c95ce21c9ecac42450766ea42e897767e6982599873ec7806" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/PacificBiosciences/MethBat/releases/download/v{{ version }}/methbat-v{{ version }}-x86_64-unknown-linux-gnu.tar.gz + sha256: {{ sha256 }} + +build: + number: 0 + skip: True # [osx] + run_exports: + - {{ pin_subpackage('methbat', max_pin="x.x") }} + +test: + commands: + - methbat --version + +about: + home: https://github.com/PacificBiosciences/MethBat + license: BSD-3-Clause-Clear + summary: A battery of methylation tools for PacBio HiFi reads + +extra: + recipe-maintainers: + - holtjma + - ctsa + skip-lints: + - should_use_compilers + - should_be_noarch_generic From 6922e001fca7ffff9dd4a05d8d1a6e236be97911 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 07:59:38 -0400 Subject: [PATCH 0311/1589] Update architeuthis to 0.3.0 (#49254) --- recipes/architeuthis/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/architeuthis/meta.yaml b/recipes/architeuthis/meta.yaml index 6ef0a4385567a..74b02f6af5daf 100644 --- a/recipes/architeuthis/meta.yaml +++ b/recipes/architeuthis/meta.yaml @@ -1,5 +1,5 @@ {% set name = "architeuthis" %} -{% set version = "0.2.1" %} +{% set version = "0.3.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/cdiener/{{ name }}/archive/{{ version }}.tar.gz - sha256: af522d822ed2dcf3bc386c8cb5ea42772ade1826b998ca0f1cd1d825f1a114ab + sha256: 63aba50c66188202debc822d0ded57d2398f5e4e9d8535f83a2c5e982bb4999f build: number: 0 @@ -41,4 +41,4 @@ about: extra: recipe-maintainers: - - cdiener \ No newline at end of file + - cdiener From c97d7ac1f38aa5772cd569a1d2a659a84c52459b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 08:02:21 -0400 Subject: [PATCH 0312/1589] Update flumut to 0.6.3 (#49255) --- recipes/flumut/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/flumut/meta.yaml b/recipes/flumut/meta.yaml index 5c56a5bdf3788..43f99fbad2427 100644 --- a/recipes/flumut/meta.yaml +++ b/recipes/flumut/meta.yaml @@ -1,5 +1,5 @@ {% set name = "flumut" %} -{% set version = "0.6.2" %} +{% set version = "0.6.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/flumut-{{ version }}.tar.gz - sha256: cf7ea2cf97b449defc7bcd6c209af79874830fec3b6a5f63811f57fe9d3a5624 + sha256: 2feb731cc53316c0ede3f8f82d31c35d9b58d3b27fcffa0d6d35002d88b22c17 build: run_exports: From 6eab11768c77e4cd7b49e38e217a956d68660bdc Mon Sep 17 00:00:00 2001 From: Stephen Watts Date: Mon, 15 Jul 2024 22:36:31 +1000 Subject: [PATCH 0313/1589] Update hicap recipe (#49251) * Use correct biopython version * Bump build number * Use more consistent version pinning --- recipes/hicap/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/hicap/meta.yaml b/recipes/hicap/meta.yaml index ccd261acff7ba..d4a5825b0e5f3 100644 --- a/recipes/hicap/meta.yaml +++ b/recipes/hicap/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 053feab67eb38f1b94caf4541054d11d61f705a7fbe579165089f783fc4753d2 build: - number: 0 + number: 1 noarch: python entry_points: - hicap=hicap.main:main @@ -24,7 +24,7 @@ requirements: - pip run: - python >=3.6 - - biopython ==1.72 + - biopython >=1.79 - reportlab ==3.4.0 - prodigal >=2.6.1 - blast >=2.2.28 From 47522e91fe2a481af94752c524cb214deeea605f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 08:37:11 -0400 Subject: [PATCH 0314/1589] Update flumutdb to 6.2 (#49258) --- recipes/flumutdb/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/flumutdb/meta.yaml b/recipes/flumutdb/meta.yaml index 772ab45fc1186..61b8b678f0783 100644 --- a/recipes/flumutdb/meta.yaml +++ b/recipes/flumutdb/meta.yaml @@ -1,5 +1,5 @@ {% set name = "flumutdb" %} -{% set version = "6.1" %} +{% set version = "6.2" %} package: name: {{ name|lower }} @@ -8,7 +8,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/flumutdb-{{ version }}.tar.gz - sha256: e85a4145b81017996dcd69fa7e52a0ec4c9140dfc557bc30a6e7ea91d7d80bf0 + sha256: 7a604b2c2b0eeebf3dcb453b597d012bfed4d768821799c8b6598b2af3caf625 build: run_exports: From a04aee2d03d99a2c6ca27f88a84a742e34fc3f3f Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Mon, 15 Jul 2024 09:25:30 -0400 Subject: [PATCH 0315/1589] reenable artifact fetching on successful check suite (#49198) --- .github/workflows/CommentResponder.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/CommentResponder.yml b/.github/workflows/CommentResponder.yml index ec8fbabdeb9c1..342bee1f34ae4 100644 --- a/.github/workflows/CommentResponder.yml +++ b/.github/workflows/CommentResponder.yml @@ -1,18 +1,13 @@ name: CommentResponder on: status: - # check_suite: - # types: - # - completed + check_suite: + types: + - completed issue_comment: types: - created -# Re-enable when the bot has been updated to handle azure -# ( -# github.event_name == 'check_suite' && -# github.event.check_suite.conclusion == 'success' -# ) || jobs: comment: runs-on: ubuntu-latest @@ -22,6 +17,10 @@ jobs: github.event_name == 'status' && github.event.state == 'success' ) || + ( + github.event_name == 'check_suite' && + github.event.check_suite.conclusion == 'success' + ) || ( github.event_name == 'issue_comment' && github.event.issue.pull_request && From c32dd0730d09be4cd29204d6dbb854078894fc1d Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 15 Jul 2024 16:27:46 +0300 Subject: [PATCH 0316/1589] viguno: add linux-aarch64 build (#49245) * viguno: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * OSX is not supported for now --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/viguno/meta.yaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/recipes/viguno/meta.yaml b/recipes/viguno/meta.yaml index f44409a2f4467..2ac8badcffa71 100644 --- a/recipes/viguno/meta.yaml +++ b/recipes/viguno/meta.yaml @@ -7,7 +7,7 @@ package: build: skip: True # [osx] - number: 0 + number: 1 run_exports: - {{ pin_subpackage("viguno", max_pin="x.x") }} @@ -41,3 +41,7 @@ about: home: https://github.com/bihealth/varfish-org license: MIT summary: Lookup OMIM genes and HPO terms and compute similarities + +extra: + additional-platforms: + - linux-aarch64 From 97e1d5d420555c30e70c558105b351b1f4c51637 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 15 Jul 2024 16:31:13 +0300 Subject: [PATCH 0317/1589] knotinframe & bellmans-gapc: add linux-aarch64 build (#49246) * knotinframe: add aarch64/arm64 build Signed-off-by: Martin Tzvetanov Grigorov * bellmans-gaps: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * Do not build for OSX ARM64. It fails with unknown configure host arm64-conda Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/bellmans-gapc/build.sh | 5 ++++- recipes/bellmans-gapc/meta.yaml | 6 +++++- recipes/knotinframe/build.sh | 10 ++++++---- recipes/knotinframe/meta.yaml | 6 ++++-- 4 files changed, 19 insertions(+), 8 deletions(-) diff --git a/recipes/bellmans-gapc/build.sh b/recipes/bellmans-gapc/build.sh index ddb85400f1245..1d7068016e25e 100644 --- a/recipes/bellmans-gapc/build.sh +++ b/recipes/bellmans-gapc/build.sh @@ -1,4 +1,7 @@ #!/bin/sh + +set -xe + export SED="sed" export SYSTEM_SUFFIX="_linux-gnu" ./configure --with-boost-libdir=$PREFIX/lib/ CPPFLAGS=-I${PREFIX} --prefix=$PREFIX --disable-gsltest @@ -10,7 +13,7 @@ if [ x"$(uname)" == x"Darwin" ]; then $SED -E "s/ -std=c\+\+17 / -std=c\+\+11 /" -i config.mf fi -make +make -j ${CPU_COUNT} CC=${CC} CXX=${CXX} make install # remove definition of CXX in user space config file, since this will not match users compiler path, # instead let conda take care of providing meaningful CXX and CC values. diff --git a/recipes/bellmans-gapc/meta.yaml b/recipes/bellmans-gapc/meta.yaml index 2bdefca04e26c..7b2838644902b 100644 --- a/recipes/bellmans-gapc/meta.yaml +++ b/recipes/bellmans-gapc/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 590b62d5fc39b1deb45855b0586d7ca3674ef17c59fc84ef445d2760a480f7ba build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('bellmans-gapc', max_pin=None) }} @@ -44,3 +44,7 @@ about: license_family: GPL3 license_file: LICENSE summary: 'A language and compiler for algebraic dynamic programming.' + +extra: + additional-platforms: + - linux-aarch64 diff --git a/recipes/knotinframe/build.sh b/recipes/knotinframe/build.sh index 7102b23de6748..9113b5bb646bb 100644 --- a/recipes/knotinframe/build.sh +++ b/recipes/knotinframe/build.sh @@ -1,6 +1,8 @@ -#!/bin/bash -euo +#!/bin/bash -make PREFIX=$PREFIX CC=$CC -C Misc/Applications/Knotinframe all -make PREFIX=$PREFIX CC=$CC -C Misc/Applications/Knotinframe install-program -make PREFIX=$PREFIX CC=$CC -C Misc/Applications/lib install +set -exuo + +make -j ${CPU_COUNT} PREFIX=$PREFIX CC=$CC -C Misc/Applications/Knotinframe all +make -j ${CPU_COUNT} PREFIX=$PREFIX CC=$CC -C Misc/Applications/Knotinframe install-program +make -j ${CPU_COUNT} PREFIX=$PREFIX CC=$CC -C Misc/Applications/lib install chmod 755 $PREFIX/bin/knotinframe* $PREFIX/bin/addRNA* diff --git a/recipes/knotinframe/meta.yaml b/recipes/knotinframe/meta.yaml index 8d41154beb4a7..93d555f0ee88e 100644 --- a/recipes/knotinframe/meta.yaml +++ b/recipes/knotinframe/meta.yaml @@ -1,5 +1,5 @@ {% set version = "2.3.1" %} -{% set sha256 = "bfa37ab7ec8b3709d04d69f2013e0e823f5aba116db21b79233336d2dd2771b0" %} +{% set sha256 = "d9ab68329e48709cffbf5ed775f905bdddebab470d70836bb522993b971d48af" %} package: name: knotinframe @@ -10,7 +10,7 @@ source: url: https://github.com/jlab/fold-grammars/archive/{{ version }}.tar.gz build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('knotinframe', max_pin="x") }} @@ -36,6 +36,8 @@ about: summary: 'Predicts -1 frameshift sites with simple pseudoknots' extra: + additional-platforms: + - linux-aarch64 identifiers: - doi:10.1093/nar/gkn578 - doi:10.1093/bioinformatics/btu649 From abd22cef52d90ec7c36c081a5cacd4d66feb12f3 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 15 Jul 2024 16:31:52 +0300 Subject: [PATCH 0318/1589] r-rrbgen: add aarch64/arm64 builds (#49256) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/r-rrbgen/meta.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/recipes/r-rrbgen/meta.yaml b/recipes/r-rrbgen/meta.yaml index ffb219c6dfbaa..ca175e16d940b 100644 --- a/recipes/r-rrbgen/meta.yaml +++ b/recipes/r-rrbgen/meta.yaml @@ -10,8 +10,10 @@ source: sha256: '{{ sha256 }}' build: - number: 10 + number: 11 script: '$R CMD INSTALL --build --install-tests .' + run_exports: + - {{ pin_subpackage('r-rrbgen', max_pin="x.x") }} requirements: build: @@ -42,5 +44,8 @@ about: dev_url: https://github.com/rwdavies/rrbgen extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - rwdavies From b9d972e4bfecc807f744c03778483e56eb0c9e81 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 15 Jul 2024 16:32:20 +0300 Subject: [PATCH 0319/1589] architeuthis: add aarch64/arm64 builds (#49257) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/architeuthis/meta.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/recipes/architeuthis/meta.yaml b/recipes/architeuthis/meta.yaml index 74b02f6af5daf..44e0523a764f2 100644 --- a/recipes/architeuthis/meta.yaml +++ b/recipes/architeuthis/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 63aba50c66188202debc822d0ded57d2398f5e4e9d8535f83a2c5e982bb4999f build: - number: 0 + number: 1 script: - go build -v -ldflags "-w -s -X 'main.version={{ version }}'" -o $PREFIX/bin/architeuthis run_exports: @@ -40,5 +40,8 @@ about: dev_url: https://github.com/cdiener/architeuthis.git extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - cdiener From 2307c24c3267dea335b273cc165b2df8dc365e9c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 09:32:31 -0400 Subject: [PATCH 0320/1589] Update earlgrey to 4.4.0 (#49176) * Update earlgrey to 4.4.0 * Do not build SA-SSR in parallel. The Makefile is fragile and fails due to timing issues when building non-sequencially Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov --- recipes/earlgrey/build.sh | 2 +- recipes/earlgrey/meta.yaml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/earlgrey/build.sh b/recipes/earlgrey/build.sh index 217c504636210..5f17a2045b907 100644 --- a/recipes/earlgrey/build.sh +++ b/recipes/earlgrey/build.sh @@ -19,7 +19,7 @@ cp -rf * ${PACKAGE_HOME}/ # Install SA-SSR (has to be done here because SA-SSR is an ancient repository without releases) git clone --depth 1 https://github.com/ridgelab/SA-SSR cd SA-SSR -make -j${CPU_COUNT} +make cp -f bin/sa-ssr ${PREFIX}/bin/ cd ../ && rm -rf SA-SSR/ diff --git a/recipes/earlgrey/meta.yaml b/recipes/earlgrey/meta.yaml index ca583c70fe8b8..6403cc72f9d2b 100644 --- a/recipes/earlgrey/meta.yaml +++ b/recipes/earlgrey/meta.yaml @@ -1,6 +1,6 @@ {% set name = "EarlGrey" %} -{% set version = "4.3.0" %} -{% set sha256 = "f4a455a51aff972dcdf9ab886b9888f8c0eded5e27f12d5b4f0a71e5abcfd282" %} +{% set version = "4.4.0" %} +{% set sha256 = "2557e79c112fdb2e9f1fd96d21394752db0a8004723fe35953d6619c887dcf97" %} package: name: {{ name|lower }} From f39637bd460477c28da1dae65240d4accb1f3f75 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 09:54:43 -0400 Subject: [PATCH 0321/1589] Update pytrf to 1.3.1 (#49259) --- recipes/pytrf/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pytrf/meta.yaml b/recipes/pytrf/meta.yaml index 024fc3a5532ef..63e07f909ad4f 100644 --- a/recipes/pytrf/meta.yaml +++ b/recipes/pytrf/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pytrf" %} -{% set version = "1.3.0" %} -{% set sha256 = "624497536b4e9a5cb8bbddb7ead7a2253a89b27ccf872178e9a8d975e21695f6" %} +{% set version = "1.3.1" %} +{% set sha256 = "ccf3ee18301389d96b5d4db37c90e5202c057d69cc4b539ea154602c93cbe786" %} package: name: "{{ name|lower }}" @@ -11,7 +11,7 @@ source: sha256: "{{ sha256 }}" build: - number: 1 + number: 0 skip: True # [py < 36] script: "{{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv" run_exports: From 86d388282d7449f26d17334009005f536eac63b5 Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Mon, 15 Jul 2024 10:12:18 -0400 Subject: [PATCH 0322/1589] ci: revert automatic artifact fetching (#49261) --- .github/workflows/CommentResponder.yml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/.github/workflows/CommentResponder.yml b/.github/workflows/CommentResponder.yml index 342bee1f34ae4..2052f237029d0 100644 --- a/.github/workflows/CommentResponder.yml +++ b/.github/workflows/CommentResponder.yml @@ -1,13 +1,19 @@ name: CommentResponder on: status: - check_suite: - types: - - completed + # check_suite: + # types: + # - completed issue_comment: types: - created + # Runs too many times + # ( + # github.event_name == 'check_suite' && + # github.event.check_suite.conclusion == 'success' + # ) || + jobs: comment: runs-on: ubuntu-latest @@ -17,10 +23,6 @@ jobs: github.event_name == 'status' && github.event.state == 'success' ) || - ( - github.event_name == 'check_suite' && - github.event.check_suite.conclusion == 'success' - ) || ( github.event_name == 'issue_comment' && github.event.issue.pull_request && From 742db31d689d40cffd5e8811cd72de4000c6d266 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 15 Jul 2024 18:02:53 +0300 Subject: [PATCH 0323/1589] egglib: add aarch64/arm64 builds (#49247) * egglib: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * Do not add osx-arm64 since OSX is generally excluded Co-authored-by: Alicia A. Evans <108547992+aliciaaevans@users.noreply.github.com> --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Alicia A. Evans <108547992+aliciaaevans@users.noreply.github.com> --- recipes/egglib/meta.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/egglib/meta.yaml b/recipes/egglib/meta.yaml index 330ef36687503..459f58ae40dbb 100644 --- a/recipes/egglib/meta.yaml +++ b/recipes/egglib/meta.yaml @@ -10,8 +10,8 @@ source: sha256: 8f788e1d40243a7e489c71a20581a5e842e0f49bca87096fcee572c087865fc2 build: - number: 0 - skip: True # [py < 38 or osx] + number: 1 + skip: True # [osx] script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv entry_points: - egglib-config = egglib.cli.config:main @@ -51,6 +51,8 @@ about: dev_url: "https://gitlab.com/demita/egglib/" extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - ranwez identifiers: From 424e44e13c938af98a82023d5fb6f3fdc58eac83 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 12:26:04 -0400 Subject: [PATCH 0324/1589] Update influx-si-data-manager to 1.0.3 (#49264) --- recipes/influx-si-data-manager/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/influx-si-data-manager/meta.yaml b/recipes/influx-si-data-manager/meta.yaml index 5165c63acd2c4..c71d4d36d6ad6 100644 --- a/recipes/influx-si-data-manager/meta.yaml +++ b/recipes/influx-si-data-manager/meta.yaml @@ -1,5 +1,5 @@ {% set name = "influx-si-data-manager" %} -{% set version = "1.0.2" %} +{% set version = "1.0.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/influx_si_data_manager-{{ version }}.tar.gz - sha256: 5bac948f0c781e50a7e47f746cb7fc71f1f5de1182356a8b6952f0a622bd8fe8 + sha256: 61a158c9f24944bab776847c909371e448c82142f52af2c91a8e68233360f869 build: entry_points: From 940e45afafe74834d3f5deffeb81d8a52f6fc534 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 12:27:05 -0400 Subject: [PATCH 0325/1589] Update dropseq_tools to 3.0.2 (#49265) --- recipes/dropseq_tools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/dropseq_tools/meta.yaml b/recipes/dropseq_tools/meta.yaml index c6996da2610b9..9f3da319ba521 100644 --- a/recipes/dropseq_tools/meta.yaml +++ b/recipes/dropseq_tools/meta.yaml @@ -1,6 +1,6 @@ {% set name = "Dropseq_tools" %} -{% set version = "3.0.1" %} -{% set sha256 = "d247dee375b38b4b897f4fdd8c298d0c5ba3e9d1a4e95c9aecb541d733e121b9" %} +{% set version = "3.0.2" %} +{% set sha256 = "aa681dff54ede54154a9b626c6361da860eb5df749456ece340e152b42c16484" %} package: name: {{ name|lower }} From e5b904079756cbb0e92964c0f16ce957aa48ca7e Mon Sep 17 00:00:00 2001 From: ljmciver Date: Mon, 15 Jul 2024 11:48:13 -0600 Subject: [PATCH 0326/1589] Update Maaslin2 version to use latest release from BioC v3.19 (#49266) * Update meta.yaml to use latest BioC version * Update meta.yaml to use latest BioC release * Update meta.yaml for maaslin2, reset build number * Update meta.yaml in maaslin2, update md5sum to match new version --- recipes/bioconductor-maaslin2/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/bioconductor-maaslin2/meta.yaml b/recipes/bioconductor-maaslin2/meta.yaml index 49d89ae9eb4e0..114353630f890 100644 --- a/recipes/bioconductor-maaslin2/meta.yaml +++ b/recipes/bioconductor-maaslin2/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "1.16.0" %} +{% set version = "1.18.0" %} {% set name = "Maaslin2" %} -{% set bioc = "3.18" %} +{% set bioc = "3.19" %} package: name: 'bioconductor-{{ name|lower }}' @@ -11,11 +11,11 @@ source: - 'https://bioconductor.org/packages/{{ bioc }}/bioc/src/contrib/Archive/{{ name }}/{{ name }}_{{ version }}.tar.gz' - 'https://bioarchive.galaxyproject.org/{{ name }}_{{ version }}.tar.gz' - 'https://depot.galaxyproject.org/software/bioconductor-{{ name|lower }}/bioconductor-{{ name|lower }}_{{ version }}_src_all.tar.gz' - md5: 0f92778b2d59935191e2ac58621da8f5 + md5: 65689f289ef30a89d727f676e645719a patches: - rpath.patch build: - number: 1 + number: 0 rpaths: - lib/R/lib/ - lib/ From b7ad9b9d4f0b4338f6a1df22799025493784466e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 14:45:47 -0400 Subject: [PATCH 0327/1589] Update pycomo to 0.2.1 (#49268) --- recipes/pycomo/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pycomo/meta.yaml b/recipes/pycomo/meta.yaml index 13a5d832d13b2..9e74bf5ddff0c 100644 --- a/recipes/pycomo/meta.yaml +++ b/recipes/pycomo/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pycomo" %} -{% set version = "0.2.0" %} +{% set version = "0.2.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pycomo-{{ version }}.tar.gz - sha256: 48ffd67190484a57f16ad9a81a631e7464dd5d37a7da79907d9940232f3c3433 + sha256: d0ce661bb1a3d7852c2ca5ec2b8714fed2f8b1554da1e2f3874b70a74dd926f3 build: entry_points: From 34f4be08e5dd9788b1004f678036865e2327bb4d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 14:54:39 -0400 Subject: [PATCH 0328/1589] Update mycotools to 0.31.39 (#49270) --- recipes/mycotools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mycotools/meta.yaml b/recipes/mycotools/meta.yaml index 88eeea2c01418..b84a8bd23097f 100644 --- a/recipes/mycotools/meta.yaml +++ b/recipes/mycotools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mycotools" %} -{% set version = "0.31.38" %} +{% set version = "0.31.39" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mycotools-{{ version }}.tar.gz - sha256: 45198acbbae4a88f180bf2d5cf82a5afe6a71a3b20e0304954afea71a9ff8767 + sha256: f4d076d93bb056c039440d0f669c4a8f97a4827ff031da4957dfa9354a22c3ee build: entry_points: From 65417be31bb19511d4f1319d7822932965fb0ce2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 15:32:25 -0400 Subject: [PATCH 0329/1589] Update augur to 25.1.1 (#49269) --- recipes/augur/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/augur/meta.yaml b/recipes/augur/meta.yaml index b18f7ca81a874..07fbe41c998c9 100644 --- a/recipes/augur/meta.yaml +++ b/recipes/augur/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "25.1.0" %} +{% set version = "25.1.1" %} package: name: augur @@ -6,7 +6,7 @@ package: source: url: https://github.com/nextstrain/augur/releases/download/{{ version }}/nextstrain_augur-{{ version }}.tar.gz - sha256: cc75d9c7b4cda380f4f6bf9d2ae00b9e197e883ebc351358971094767db540c0 + sha256: 8374b0815ae4358cbb80892eb5205f6c7264ff5a9cd679f32edb3f3fcab682ef build: number: 0 From e239f6d96c57a271436097f4a451e4a2369fcf69 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 15:32:55 -0400 Subject: [PATCH 0330/1589] Update illumina-interop to 1.3.2 (#49271) --- recipes/illumina-interop/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/illumina-interop/meta.yaml b/recipes/illumina-interop/meta.yaml index 4d1c368792cfd..e2c169cf97e98 100644 --- a/recipes/illumina-interop/meta.yaml +++ b/recipes/illumina-interop/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.3.1" %} +{% set version = "1.3.2" %} {% set sha256 = "0335f20a6d46b3c57a7dd1c337594b156bc1e7558f44cb981f1100f396929baa" %} package: @@ -6,14 +6,14 @@ package: version: '{{version}}' build: - number: 1 + number: 0 skip: true # [osx] run_exports: - {{ pin_subpackage('illumina-interop', max_pin="x.x") }} source: url: https://github.com/Illumina/interop/archive/v{{version}}.tar.gz - sha256: 8784a38f09719f12d12a37defb24eee05085471791a136a0ad13172145819673 + sha256: 4989480b3d074ac36499f122a1de109840b6edab238cc6482f6025d1021d4564 requirements: build: @@ -50,4 +50,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 From 8f793c29ce6fd092325b3aad7f5397bebf81f51f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 15:36:44 -0400 Subject: [PATCH 0331/1589] Update pbstarphase to 0.11.3 (#49274) --- recipes/pbstarphase/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pbstarphase/meta.yaml b/recipes/pbstarphase/meta.yaml index 91913c767158b..9b1869e8b4ebb 100644 --- a/recipes/pbstarphase/meta.yaml +++ b/recipes/pbstarphase/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pbstarphase" %} -{% set version = "0.11.2" %} -{% set sha256 = "ab6ecd08d78891de95f3d2e0dd2cd258e146bc253fd737cfcf6fef78b8704b92" %} +{% set version = "0.11.3" %} +{% set sha256 = "1b935576c546c9630a4ee0b8a193fd308889c3cae491963cbf9b7fdef4aefce5" %} package: name: {{ name }} From fb2f597145ba3cf44936171e780868c74ad7761a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 15:41:34 -0400 Subject: [PATCH 0332/1589] Update pytrf to 1.3.2 (#49267) --- recipes/pytrf/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pytrf/meta.yaml b/recipes/pytrf/meta.yaml index 63e07f909ad4f..db1573d1b88cb 100644 --- a/recipes/pytrf/meta.yaml +++ b/recipes/pytrf/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pytrf" %} -{% set version = "1.3.1" %} -{% set sha256 = "ccf3ee18301389d96b5d4db37c90e5202c057d69cc4b539ea154602c93cbe786" %} +{% set version = "1.3.2" %} +{% set sha256 = "98cd1171f58dc147fa8aac89b23cd0e34eaac83e5b5b501e31723dfc318f6cc5" %} package: name: "{{ name|lower }}" From 5a6a485edae736d1861dfe4a232de592a8b4476f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 15:42:43 -0400 Subject: [PATCH 0333/1589] Update nanomotif to 0.4.9 (#49262) --- recipes/nanomotif/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/nanomotif/meta.yaml b/recipes/nanomotif/meta.yaml index 410861e454a27..208bbdd95ceaf 100644 --- a/recipes/nanomotif/meta.yaml +++ b/recipes/nanomotif/meta.yaml @@ -1,5 +1,5 @@ {% set name = "nanomotif" %} -{% set version = "0.4.8" %} +{% set version = "0.4.9" %} package: @@ -8,7 +8,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/nanomotif-{{ version }}.tar.gz - sha256: 0b58c970618b98810d6b91d4ffed8fa29cfd11fa9e62e6b8c30a19945aca46f6 + sha256: 2d958ff07a35bf20c4db9e1a5bb033efd530e5ff21e16bc88796d70e09566589 build: entry_points: From 12484e726d9cb63546bdf7bdad014584f220b03f Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Mon, 15 Jul 2024 15:43:48 -0400 Subject: [PATCH 0334/1589] gtdb_to_taxdump: rename yml to yaml (#49263) * rename yml to yaml * add run_exports * add numpy * add tests --- recipes/gtdb_to_taxdump/{meta.yml => meta.yaml} | 7 +++++++ 1 file changed, 7 insertions(+) rename recipes/gtdb_to_taxdump/{meta.yml => meta.yaml} (79%) diff --git a/recipes/gtdb_to_taxdump/meta.yml b/recipes/gtdb_to_taxdump/meta.yaml similarity index 79% rename from recipes/gtdb_to_taxdump/meta.yml rename to recipes/gtdb_to_taxdump/meta.yaml index 7316bee1b4239..a0fc5375f7565 100644 --- a/recipes/gtdb_to_taxdump/meta.yml +++ b/recipes/gtdb_to_taxdump/meta.yaml @@ -14,20 +14,27 @@ build: noarch: python number: 0 script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + run_exports: + - {{ pin_subpackage("gtdb_to_taxdump", max_pin="x.x") }} requirements: host: - pip - python + - numpy run: - networkx - python - tqdm + - {{ pin_compatible('numpy') }} test: imports: - bin - gtdb2td + commands: + - gtdb_to_taxdump.py -h + - gtdb_to_taxdump.py --version about: home: https://github.com/nick-youngblut/gtdb_to_taxdump From 48de82322865dc8cacd9647a416f02d2d4d057fa Mon Sep 17 00:00:00 2001 From: Stefan Janssen Date: Mon, 15 Jul 2024 21:44:05 +0200 Subject: [PATCH 0335/1589] Update bellmansgapc (#49272) --- recipes/bellmans-gapc/build.sh | 2 +- recipes/bellmans-gapc/meta.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/bellmans-gapc/build.sh b/recipes/bellmans-gapc/build.sh index 1d7068016e25e..81e7a2009b3b4 100644 --- a/recipes/bellmans-gapc/build.sh +++ b/recipes/bellmans-gapc/build.sh @@ -10,7 +10,7 @@ export SYSTEM_SUFFIX="_linux-gnu" if [ x"$(uname)" == x"Darwin" ]; then export SYSTEM_SUFFIX=`cat config.mf |grep "^SYSTEM_SUFFIX" | cut -d "=" -f2 | tr -d " "` $SED -E "s/ -D_XOPEN_SOURCE=500 / /" -i config.mf - $SED -E "s/ -std=c\+\+17 / -std=c\+\+11 /" -i config.mf + $SED -E "s/ -std=c\+\+17 / -std=c\+\+14 /" -i config.mf fi make -j ${CPU_COUNT} CC=${CC} CXX=${CXX} diff --git a/recipes/bellmans-gapc/meta.yaml b/recipes/bellmans-gapc/meta.yaml index 7b2838644902b..5aac7f2d5df62 100644 --- a/recipes/bellmans-gapc/meta.yaml +++ b/recipes/bellmans-gapc/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 590b62d5fc39b1deb45855b0586d7ca3674ef17c59fc84ef445d2760a480f7ba build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage('bellmans-gapc', max_pin=None) }} From f75f6a71dc55d97acd223d837d0e3145c33bce4b Mon Sep 17 00:00:00 2001 From: John Marshall Date: Tue, 16 Jul 2024 10:14:21 +1200 Subject: [PATCH 0336/1589] Build mappy on macOS ARM (#49275) Also remove zlib run dependency: build-time zlib will add libzlib via its run_exports so we should not over-depend on zlib as well. --- recipes/mappy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mappy/meta.yaml b/recipes/mappy/meta.yaml index 65eba261b4dac..87e127733581f 100644 --- a/recipes/mappy/meta.yaml +++ b/recipes/mappy/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 0ebf7a5d62bd668f5456028215e26176e180ca68161ac18d4f7b48045484cebb build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('mappy', max_pin="x") }} @@ -24,7 +24,6 @@ requirements: - zlib run: - python - - zlib test: imports: @@ -40,3 +39,4 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 From b341aedd5f6bfb6c60060fa8c1c51ebb3cf08617 Mon Sep 17 00:00:00 2001 From: Ales Varabyou Date: Mon, 15 Jul 2024 18:17:08 -0400 Subject: [PATCH 0337/1589] Update ORFanage to 1.2.0 (#49273) * bump to 1.2.0. fix arm compilation * bump to 1.2.0. fix arm compilation --- recipes/orfanage/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/orfanage/meta.yaml b/recipes/orfanage/meta.yaml index 93c67654bf938..bc65cc7e46222 100644 --- a/recipes/orfanage/meta.yaml +++ b/recipes/orfanage/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.1.0" %} -{% set sha = "724e82dd5175fd2420582e39a69b8b7d61d1e49871960d2d6d3a325a383719b6" %} +{% set version = "1.2.0" %} +{% set sha = "480646b3d4ce91768004a0b0b36a9766709bf3d99a23e291f37ea353ceb58b5c" %} package: name: "orfanage" From aac902998815f3e5b08c0249833a9a0bf1e41823 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 01:08:32 -0400 Subject: [PATCH 0338/1589] Update tides-ml to 1.3.2 (#49277) --- recipes/tides-ml/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/tides-ml/meta.yaml b/recipes/tides-ml/meta.yaml index c07781303977e..d397cf604be0d 100644 --- a/recipes/tides-ml/meta.yaml +++ b/recipes/tides-ml/meta.yaml @@ -1,5 +1,5 @@ {% set name = "tides-ml" %} -{% set version = "1.3.0" %} +{% set version = "1.3.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/TIdeS-ML-{{ version }}.tar.gz - sha256: 8bfcd9f56a943a9099536e9a61664023aa9ca9f21fc036c53f0e4d925b95b770 + sha256: f9b33375d4e5f08cf6c1c67e2d7240eb554e1afd2e535dbbde44b9951f5e0199 build: entry_points: From c3c7a9d8e541aed3eede5eb8e673872bcd4dc9fc Mon Sep 17 00:00:00 2001 From: Amirhossein <66441226+nilchia@users.noreply.github.com> Date: Tue, 16 Jul 2024 08:35:39 +0200 Subject: [PATCH 0339/1589] add spacexr to bioconda (#49188) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add spacexr to bioconda * correct requiermetns * fix error * correct directory name * remove r-parallel as it is included in r-base * Update recipes/spacexr/meta.yaml Co-authored-by: Björn Grüning * correct sha256 * Update recipes/spacexr/meta.yaml Co-authored-by: Björn Grüning * update build.sh * fix error and add missing dependancies * correct name * correct directory name --------- Co-authored-by: Björn Grüning --- recipes/r-spacexr/build.sh | 6 +++ recipes/r-spacexr/meta.yaml | 78 +++++++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 recipes/r-spacexr/build.sh create mode 100644 recipes/r-spacexr/meta.yaml diff --git a/recipes/r-spacexr/build.sh b/recipes/r-spacexr/build.sh new file mode 100644 index 0000000000000..e496d517a47ef --- /dev/null +++ b/recipes/r-spacexr/build.sh @@ -0,0 +1,6 @@ +#!/bin/bash +export TAR='/bin/tar' +R -e "library(devtools)" +R -e "options(timeout = 600000000) ### set this to avoid timeout error" +R -e "devtools::install_github('dmcable/spacexr', ref = '0a0861e3d1e16014a20e9b743d0e19d3b42231f3', build_vignettes = FALSE)" +R CMD INSTALL --build . \ No newline at end of file diff --git a/recipes/r-spacexr/meta.yaml b/recipes/r-spacexr/meta.yaml new file mode 100644 index 0000000000000..241ba913d5238 --- /dev/null +++ b/recipes/r-spacexr/meta.yaml @@ -0,0 +1,78 @@ +package: + name: r-spacexr + version: 2.2.1 + +source: + url: https://github.com/dmcable/spacexr/archive/0a0861e3d1e16014a20e9b743d0e19d3b42231f3.zip + sha256: 7d980ecea377a0e2131a87c3ff2b66f512ac69ecc96c2e2b8c1dd4d4f02403f8 + +build: + number: 0 + noarch: generic # Specify that the package is noarch + run_exports: '{{ pin_compatible("r-spacexr", max_pin="x.x") }}' + rpaths: + - lib/R/lib + - lib + +requirements: + host: + - r-base + - r-remotes + - r-devtools + - r-readr + - r-ggplot2 + - r-pals + - r-matrix + - r-doParallel + - r-foreach + - r-quadprog + - r-tibble + - r-dplyr + - r-reshape2 + - r-knitr + - r-rmarkdown + - r-fields + - r-mgcv + - r-compquadform + - r-rfast + - r-locfdr + - r-metafor + - r-data.table + - r-scales + - r-lifecycle + - r-evaluate + run: + - r-base + - r-remotes + - r-readr + - r-ggplot2 + - r-pals + - r-Matrix + - r-doParallel + - r-foreach + - r-quadprog + - r-tibble + - r-dplyr + - r-reshape2 + - r-knitr + - r-rmarkdown + - r-fields + - r-mgcv + - r-compquadform + - r-rfast + - r-locfdr + - r-metafor + - r-data.table + - r-scales + - r-lifecycle + - r-evaluate +test: + commands: + - $R -e "library(spacexr)" + +about: + home: https://github.com/dmcable/spacexr + license: GPL-3.0-only + license_family: GPL3 + license_file: '{{ environ["PREFIX"] }}/lib/R/share/licenses/GPL-3' + summary: Cell type identification and cell type-specific differential expression in spatial transcriptomics \ No newline at end of file From 738dc2fd3ff4cd4d2738046001bfdf2d3fdf7123 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 03:07:40 -0400 Subject: [PATCH 0340/1589] Update graftm to 0.15.1 (#49279) --- recipes/graftm/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/graftm/meta.yaml b/recipes/graftm/meta.yaml index 79ebc38c5a444..f87658e99ed0b 100644 --- a/recipes/graftm/meta.yaml +++ b/recipes/graftm/meta.yaml @@ -1,10 +1,10 @@ package: name: graftm - version: "0.15.0" + version: "0.15.1" source: - url: https://files.pythonhosted.org/packages/6f/dc/8c7b874a0fbeaa4ffb613aa0dcee722222ba0c06276e42881cac79048fc7/graftm-0.15.0.tar.gz - sha256: 794b2c6a8fff36c81db8b9a544ac021ab1397c569638bf7651ce5329db36de21 + url: https://files.pythonhosted.org/packages/bf/a7/283e41730d4d63c87d0fdb055357307d18bc7ca1736f6156baf46762343a/graftm-0.15.1.tar.gz + sha256: 80d828c311d2d6067977cfad5b6bac7cbc5d223ef8ab770d676b39bf2bc75163 build: number: 0 From c9d69238ce92a53561f763ca93eaa3bfa50b1f50 Mon Sep 17 00:00:00 2001 From: Akihiro Kuno Date: Tue, 16 Jul 2024 16:34:05 +0900 Subject: [PATCH 0341/1589] Update DAJIN2 (#49278) --- recipes/dajin2/meta.yaml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/recipes/dajin2/meta.yaml b/recipes/dajin2/meta.yaml index 9dc6207716c85..a96b6a5c76296 100644 --- a/recipes/dajin2/meta.yaml +++ b/recipes/dajin2/meta.yaml @@ -1,5 +1,5 @@ {% set name = "DAJIN2" %} -{% set version = "0.5.2" %} +{% set version = "0.5.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/dajin2-{{ version }}.tar.gz - sha256: aab7698d00d514664cd626a5173cef29a59b2de8d38c9771088906a7cf5a66da + sha256: 51f7c7bc430727c839c8a113c55d92dbcd66311344f456e49ac994edf1a9d6da build: entry_points: @@ -29,19 +29,20 @@ requirements: - scipy >=1.10.0 - pandas >=1.0.0 - openpyxl >=3.1.0 + - plotly >=5.19.0 + - python-kaleido >=0.2.0 - rapidfuzz >=3.6.0 - scikit-learn >=1.3.0 + - ruptures >=1.1.8 + - ortools-python >=9.0 - mappy >=2.24 - pysam >=0.21.0 - flask >=2.2.0 - waitress >=2.1.0 - jinja2 >=3.1.0 - - plotly >=5.19.0 - - python-kaleido >=0.2.0 - cstag >=1.0.0 - midsv >=0.11.0 - wslpath >=0.4.1 - - ruptures >=1.1.8 test: imports: From ede4dcdc43677c17ea823f4092b9032541dcc106 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Tue, 16 Jul 2024 19:36:32 +1200 Subject: [PATCH 0342/1589] Pinned minimap2 version in liftoff (#49282) --- recipes/liftoff/meta.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/recipes/liftoff/meta.yaml b/recipes/liftoff/meta.yaml index 96725711fdcc6..3aa620b92eaf0 100644 --- a/recipes/liftoff/meta.yaml +++ b/recipes/liftoff/meta.yaml @@ -14,7 +14,9 @@ build: entry_points: - liftoff = liftoff.run_liftoff:main script: python -m pip install --no-deps --ignore-installed . - number: 0 + number: 1 + run_exports: + - {{ pin_subpackage('liftoff', max_pin='x') }} requirements: host: @@ -29,7 +31,7 @@ requirements: - pysam >=0.16.0.1 - pyfaidx >=0.5.8 - interlap >=0.2.6 - - minimap2 + - minimap2 ==2.24 - ujson >=3.2.0 - parasail-python >=1.2.1 @@ -50,3 +52,4 @@ extra: recipe-maintainers: - agshumate - standage + - gallvp From a861a7703fa1c88d8d4d8a600ea16587f18df39a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 03:37:31 -0400 Subject: [PATCH 0343/1589] Update strainr2 to 2.0.0 (#49091) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update strainr2 to 2.0.0 * Update strainr2 (#49110) * update summary description and shorten dependencies * add compilation of hashcounter * Try to pin r-tidyverse >=2.0.0 * remove r-base dependency and unpin r-tidyverse * add r library dependencies to host requirements --------- Co-authored-by: Andreas Sjödin --------- Co-authored-by: Kerim Heber <122597229+kheber@users.noreply.github.com> Co-authored-by: Andreas Sjödin --- recipes/strainr2/build.sh | 5 +++-- recipes/strainr2/meta.yaml | 16 +++++++--------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/recipes/strainr2/build.sh b/recipes/strainr2/build.sh index 7919ee79c22f1..1e72ed4dfcb40 100644 --- a/recipes/strainr2/build.sh +++ b/recipes/strainr2/build.sh @@ -3,15 +3,16 @@ mkdir -p "${PREFIX}/bin" ${CC} ${SRC_DIR}/subcontig.c -o subcontig +${CC} ${SRC_DIR}/hashcounter.c -o hashcounter chmod +x $SRC_DIR/PreProcessR chmod +x $SRC_DIR/subcontig -chmod +x $SRC_DIR/hashcounter.py +chmod +x $SRC_DIR/hashcounter chmod +x $SRC_DIR/Plot.R chmod +x $SRC_DIR/StrainR cp $SRC_DIR/PreProcessR ${PREFIX}/bin/ cp $SRC_DIR/subcontig ${PREFIX}/bin/ -cp $SRC_DIR/hashcounter.py ${PREFIX}/bin/ +cp $SRC_DIR/hashcounter ${PREFIX}/bin/ cp $SRC_DIR/Plot.R ${PREFIX}/bin/ cp $SRC_DIR/StrainR ${PREFIX}/bin/ diff --git a/recipes/strainr2/meta.yaml b/recipes/strainr2/meta.yaml index ee2da327887ff..8d6639c53117c 100644 --- a/recipes/strainr2/meta.yaml +++ b/recipes/strainr2/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.0.1" %} +{% set version = "2.0.0" %} package: name: strainr2 @@ -6,10 +6,10 @@ package: source: url: https://github.com/BisanzLab/StrainR2/archive/v{{ version }}.tar.gz - sha256: 943121e54a386bf3cf6e8278b6d443d0d3d2b0edfaff795bcc25777ad3879abb + sha256: 00ddd426e6d27e461c806282107503d93472a93c71c24e82069bf78be1d31a89 build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage("strainr2", max_pin="x") }} @@ -17,15 +17,13 @@ requirements: build: - {{ compiler('c') }} host: - - python - r-base >=4.2.0 + - r-optparse + - r-tidyverse run: - - python - bbmap - fastp - samtools - - sourmash >=4.0.0 - - r-base >=4.2.0 - r-optparse - r-tidyverse @@ -33,13 +31,13 @@ test: commands: - PreProcessR --help - subcontig -h - - hashcounter.py --help + - hashcounter -h - StrainR --help - Plot.R --help about: home: https://github.com/BisanzLab/StrainR2 license: MIT - summary: 'strainr2: get high accuracy metagenomic strain abundance.' + summary: 'StrainR2 accurately deconvolutes strain-level abundances in synthetic microbial communities using metagenomic sequencing reads' license_family: MIT license_file: LICENSE From 65be04832773dfce9c8f3fca5990a071412c62df Mon Sep 17 00:00:00 2001 From: Matty Allan <31744230+matthewfallan@users.noreply.github.com> Date: Tue, 16 Jul 2024 04:06:17 -0400 Subject: [PATCH 0344/1589] Add recipe for seismic-rna (#49237) * Initial commit of recipe for seismic-rna * Add run_exports to meta.yaml build section * Fix the problems causing linting errors * Apply suggestions from code review Co-authored-by: Martin Grigorov * Update meta.yaml Add Conda package brotli-python (equivalent of PyPI package brotli) to runtime dependencies * Update recipe generator; rebuild recipe files --------- Co-authored-by: Martin Grigorov --- recipes/seismic-rna/build.sh | 8 +++++++ recipes/seismic-rna/meta.yaml | 45 +++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 recipes/seismic-rna/build.sh create mode 100644 recipes/seismic-rna/meta.yaml diff --git a/recipes/seismic-rna/build.sh b/recipes/seismic-rna/build.sh new file mode 100644 index 0000000000000..9b50c3a0078a9 --- /dev/null +++ b/recipes/seismic-rna/build.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +# DO NOT RUN THIS SCRIPT YOURSELF! +# It should only be run by conda build. + +set -euxo pipefail + +$PYTHON -m pip install --no-dependencies $PWD \ No newline at end of file diff --git a/recipes/seismic-rna/meta.yaml b/recipes/seismic-rna/meta.yaml new file mode 100644 index 0000000000000..dd30945f9368b --- /dev/null +++ b/recipes/seismic-rna/meta.yaml @@ -0,0 +1,45 @@ +--- + +package: + name: seismic-rna + version: 0.19.2 +about: + home: https://github.com/rouskinlab/seismic-rna + license: GPL-3.0-only + license_family: GPL3 + license_file: LICENSE + license_url: https://www.gnu.org/licenses/gpl-3.0.html + summary: SEISMIC-RNA software by the Rouskin Lab +source: + url: https://github.com/rouskinlab/seismic-rna/archive/refs/tags/v0.19.2.tar.gz + sha256: ef2a7b6932cf3e6247bca25838dcacffca2a43523df5bf0eb455d3243b3f246f +build: + noarch: python + number: 0 + run_exports: + - {{ pin_subpackage("seismic-rna", max_pin="x.x") }} +requirements: + build: + - python >=3.10 + - hatch >=1.12 + run: + - python >=3.10 + - bowtie2 >=2.5.1 + - fastqc >=0.12.1 + - rnastructure >=6.3 + - samtools >=1.17 + - brotli-python >=1.0 + - brotli >=1.0 + - click >=8.1 + - cutadapt >=4.4 + - fastqsplitter >=1.2 + - matplotlib-base >=3.6 + - numpy >=1.23,<1.27 + - numba >=0.59 + - pandas >=1.5 + - plotly >=5.11 + - pyyaml >=6.0 + - scipy >=1.9 +test: + imports: + - seismicrna \ No newline at end of file From 2e573d2c4230b6ce163567129c3e5c0ec32ae461 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 06:37:28 -0400 Subject: [PATCH 0345/1589] Update pycomo to 0.2.2 (#49290) --- recipes/pycomo/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pycomo/meta.yaml b/recipes/pycomo/meta.yaml index 9e74bf5ddff0c..af10fd414d0aa 100644 --- a/recipes/pycomo/meta.yaml +++ b/recipes/pycomo/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pycomo" %} -{% set version = "0.2.1" %} +{% set version = "0.2.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pycomo-{{ version }}.tar.gz - sha256: d0ce661bb1a3d7852c2ca5ec2b8714fed2f8b1554da1e2f3874b70a74dd926f3 + sha256: 242973127addd422bcfabc8db79caaaa88c3a1e87f86b735a4de5449abe99331 build: entry_points: From 0923887fe8c7452779f2406a5ef8b7010a1ea26c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 06:37:55 -0400 Subject: [PATCH 0346/1589] Update cadd-scripts to 1.7.1 (#49291) --- recipes/cadd-scripts/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/cadd-scripts/meta.yaml b/recipes/cadd-scripts/meta.yaml index 57183b15af886..a507661a3f9dc 100644 --- a/recipes/cadd-scripts/meta.yaml +++ b/recipes/cadd-scripts/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.7" %} -{% set sha256 = "46f06c31adc7bdde612c60120f892f2a622494b02812fc047e0d3cee6bd25a0f" %} +{% set version = "1.7.1" %} +{% set sha256 = "c5db00dc26a585cc70500cf535865a4d9e7765db60a71edf1d267af32ae974e4" %} package: name: cadd-scripts From 82f6afaab7fb315232df1e7cc588eb30c88fb878 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 06:42:59 -0400 Subject: [PATCH 0347/1589] Update pia to 1.5.5 (#49292) --- recipes/pia/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pia/meta.yaml b/recipes/pia/meta.yaml index 2801feec2b3fe..83c9eb152c594 100644 --- a/recipes/pia/meta.yaml +++ b/recipes/pia/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pia" %} -{% set version = "1.5.4" %} -{% set sha256 = "a854e8c7132d6216e58e80a8c27f20f30c6720dfdaa6395d0f96293f37aa3ff8" %} +{% set version = "1.5.5" %} +{% set sha256 = "6493f9e4cb579b7943b9a1ddb99d8c21e4abb8eac1b486825bdcce123d3312e9" %} package: name: {{ name|lower }} From 3048a45a2af861c3611e8ea61b11c829f748d5a0 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 07:56:12 -0400 Subject: [PATCH 0348/1589] Update annonars to 0.40.0 (#49294) --- recipes/annonars/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/annonars/meta.yaml b/recipes/annonars/meta.yaml index 3cd1ae6577bdb..f0329a528357d 100644 --- a/recipes/annonars/meta.yaml +++ b/recipes/annonars/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.39.0" %} +{% set version = "0.40.0" %} package: name: annonars @@ -12,7 +12,7 @@ build: source: url: https://github.com/varfish-org/annonars/archive/refs/tags/v{{ version }}.tar.gz - sha256: 7a2fcaae0d06657da6e0fa65828b5b4e8571b48d8029373315c3bc564c35b02c + sha256: 1860e69f89935aa5d5456e55070d4c172cd4b29bdf07ad16b6b4dcf95b4ef7b2 requirements: build: From c7e688ad109982c60029934ff989149a50f2d1c8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 07:58:29 -0400 Subject: [PATCH 0349/1589] Update ensembl-utils to 0.4.1 (#49295) --- recipes/ensembl-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ensembl-utils/meta.yaml b/recipes/ensembl-utils/meta.yaml index 1603d69fc8d76..6c5809c20dfae 100644 --- a/recipes/ensembl-utils/meta.yaml +++ b/recipes/ensembl-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ensembl-utils" %} -{% set version = "0.4.0" %} +{% set version = "0.4.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/ensembl_utils-{{ version }}.tar.gz - sha256: e21ee25f201d2b653fbd1c0d007ddc0e3a51f44e6b519738d19fdbebf155a29b + sha256: 77ec8c4a100df2981f4fb63a9dc13c90c454a8521614c523bfb66f9a273c5d7f build: entry_points: From d796854ad030889674d4843ae9feb53930a609cd Mon Sep 17 00:00:00 2001 From: Johan Dahlberg Date: Tue, 16 Jul 2024 14:43:18 +0200 Subject: [PATCH 0350/1589] bump pixelator to 0.18.2 (#49299) --- recipes/pixelator/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pixelator/meta.yaml b/recipes/pixelator/meta.yaml index d7d7c79822644..72c495e3f1b6a 100644 --- a/recipes/pixelator/meta.yaml +++ b/recipes/pixelator/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pixelator" %} {% set pypi_name = "pixelgen-pixelator" %} -{% set version = "0.18.1" %} +{% set version = "0.18.2" %} package: name: {{ name|lower }} @@ -8,7 +8,7 @@ package: source: url: https://pypi.io/packages/source/{{ pypi_name[0] }}/{{ pypi_name }}/pixelgen_pixelator-{{ version }}.tar.gz - sha256: 1a36b3de15ec8729f01d3950e9c8ca42657d2f3d62f8a13cb71958e617231275 + sha256: b2ae77b1118f804c47cb71e0af3b64d05657e670a9a0f24d79f57bacb38c2fcb build: entry_points: @@ -50,7 +50,7 @@ requirements: - semver >=3.0.0,<4.0.0 - ruamel.yaml >=0.17.21,<0.18.0 - pydantic >=2.0,<2.5 - - polars 0.20.19 + - polars >=1.1.0,<2.0 - importlib-resources >=5.12.0,<6.0.0 - fsspec >=2023.12.2,<2024.0.0 - fastparquet >=2023.8.0,<2024.0.0 From be6a414bed6a77b97e15d4166c24f1073fb6892c Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 16 Jul 2024 16:11:17 +0300 Subject: [PATCH 0351/1589] pytrf: add aarch64/arm64 builds (#49260) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/pytrf/meta.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/recipes/pytrf/meta.yaml b/recipes/pytrf/meta.yaml index db1573d1b88cb..f4afd5195b61e 100644 --- a/recipes/pytrf/meta.yaml +++ b/recipes/pytrf/meta.yaml @@ -11,8 +11,7 @@ source: sha256: "{{ sha256 }}" build: - number: 0 - skip: True # [py < 36] + number: 1 script: "{{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv" run_exports: - {{ pin_subpackage("pytrf", max_pin="x.x") }} @@ -36,3 +35,8 @@ about: license_family: MIT license_file: LICENSE summary: "a fast Python package for finding tandem repeat sequences" + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From 21216c133ee2d4818a813c3a4422aae5d16d28a9 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 16 Jul 2024 16:15:40 +0300 Subject: [PATCH 0352/1589] ucsc-pslsort: add linux-aarch64 build (#49296) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-pslsort/build.sh | 24 ++++++++++++++++-------- recipes/ucsc-pslsort/include.patch | 6 +++--- recipes/ucsc-pslsort/meta.yaml | 22 +++++++++++++++------- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 6916faaba447a..6e6dd0c95effc 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -931,7 +931,6 @@ recipes/ucsc-pslreps recipes/ucsc-pslscore recipes/ucsc-pslselect recipes/ucsc-pslsomerecords -recipes/ucsc-pslsort recipes/ucsc-pslstats recipes/ucsc-pslswap recipes/ucsc-psltobed diff --git a/recipes/ucsc-pslsort/build.sh b/recipes/ucsc-pslsort/build.sh index c3d14514620b3..b18c33998499e 100644 --- a/recipes/ucsc-pslsort/build.sh +++ b/recipes/ucsc-pslsort/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/pslSort && make) -cp bin/pslSort "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslSort" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/pslSort && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/pslSort "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/pslSort" diff --git a/recipes/ucsc-pslsort/include.patch b/recipes/ucsc-pslsort/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-pslsort/include.patch +++ b/recipes/ucsc-pslsort/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-pslsort/meta.yaml b/recipes/ucsc-pslsort/meta.yaml index 2831091fc2ec6..79c34e14b5ec6 100644 --- a/recipes/ucsc-pslsort/meta.yaml +++ b/recipes/ucsc-pslsort/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslsort" %} {% set program = "pslSort" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 5 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "Merge and sort psCluster .psl output files" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From 8168eeab5570f0f2fb41119e323c814d97eb738b Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 16 Jul 2024 16:16:23 +0300 Subject: [PATCH 0353/1589] ucsc-nibfrag: add linux-aarch64 build (#49298) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-nibfrag/build.sh | 24 ++++++++++++++++-------- recipes/ucsc-nibfrag/include.patch | 6 +++--- recipes/ucsc-nibfrag/meta.yaml | 22 +++++++++++++++------- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 6e6dd0c95effc..682993551491c 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -896,7 +896,6 @@ recipes/ucsc-nettoaxt recipes/ucsc-nettobed recipes/ucsc-newprog recipes/ucsc-newpythonprog -recipes/ucsc-nibfrag recipes/ucsc-nibsize recipes/ucsc-oligomatch recipes/ucsc-overlapselect diff --git a/recipes/ucsc-nibfrag/build.sh b/recipes/ucsc-nibfrag/build.sh index 45e7eb54f7668..088a651a09043 100644 --- a/recipes/ucsc-nibfrag/build.sh +++ b/recipes/ucsc-nibfrag/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/nibFrag && make) -cp bin/nibFrag "$PREFIX/bin" -chmod +x "$PREFIX/bin/nibFrag" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/nibFrag && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -x bin/nibFrag "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/nibFrag" diff --git a/recipes/ucsc-nibfrag/include.patch b/recipes/ucsc-nibfrag/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-nibfrag/include.patch +++ b/recipes/ucsc-nibfrag/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-nibfrag/meta.yaml b/recipes/ucsc-nibfrag/meta.yaml index c4ad183570323..17bb497cfb5d5 100644 --- a/recipes/ucsc-nibfrag/meta.yaml +++ b/recipes/ucsc-nibfrag/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-nibfrag" %} {% set program = "nibFrag" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "Extract part of a nib file as .fa (all bases/gaps lower case by default)" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From e54194d5156f6b4ad1fd17b845d00bd4339f8b70 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 09:33:59 -0400 Subject: [PATCH 0354/1589] Update giatools to 0.1.2 (#49303) --- recipes/giatools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/giatools/meta.yaml b/recipes/giatools/meta.yaml index f63d780aa5808..c3ef78906c776 100644 --- a/recipes/giatools/meta.yaml +++ b/recipes/giatools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "giatools" %} -{% set version = "0.1.1" %} +{% set version = "0.1.2" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: "https://github.com/BMCV/giatools/archive/refs/tags/{{ version }}.zip" - sha256: 7b4aeb897382d493dd55f5440a3d2a81e70a096ddf88155faebfb38f0ec774f7 + sha256: a16291b3f3d1868559e8a87d9656a254da9f438e0dcd178ea331b707df3d8f1f build: number: 0 From 11710495923789fbf7f18f2b747d68d0d9bdda62 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 16 Jul 2024 16:47:34 +0300 Subject: [PATCH 0355/1589] libbigwig: add osx-arm64 build (#49289) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/libbigwig/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/libbigwig/meta.yaml b/recipes/libbigwig/meta.yaml index 83e1b7e602790..1dd557e47859e 100644 --- a/recipes/libbigwig/meta.yaml +++ b/recipes/libbigwig/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 5 + number: 6 run_exports: - {{ pin_subpackage('libbigwig', max_pin='x.x') }} @@ -38,4 +38,5 @@ test: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 + - osx-arm64 \ No newline at end of file From 7ed3419e1fa171e261c840eba5c36e8c86bc7a40 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 16 Jul 2024 16:49:49 +0300 Subject: [PATCH 0356/1589] ucsc-xmlcat: add linux-aarch64 build (#49301) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-xmlcat/build.sh | 22 +++++++++++++++------- recipes/ucsc-xmlcat/include.patch | 6 +++--- recipes/ucsc-xmlcat/meta.yaml | 22 +++++++++++++++------- 4 files changed, 33 insertions(+), 18 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 682993551491c..21f12677e65ff 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -969,7 +969,6 @@ recipes/ucsc-validatemanifest recipes/ucsc-websync recipes/ucsc-wigcorrelate recipes/ucsc-wordline -recipes/ucsc-xmlcat recipes/ucsc-xmltosql # Above v1.0.5 there are licensing restrictions and it cannot be distributed diff --git a/recipes/ucsc-xmlcat/build.sh b/recipes/ucsc-xmlcat/build.sh index e77c3bd1bbd9d..0c43ba87a8e5e 100644 --- a/recipes/ucsc-xmlcat/build.sh +++ b/recipes/ucsc-xmlcat/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" mkdir -p "$PREFIX/bin" export MACHTYPE=x86_64 export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/xmlCat && make) -cp bin/xmlCat "$PREFIX/bin" -chmod +x "$PREFIX/bin/xmlCat" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/xmlCat && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/xmlCat "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/xmlCat" diff --git a/recipes/ucsc-xmlcat/include.patch b/recipes/ucsc-xmlcat/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-xmlcat/include.patch +++ b/recipes/ucsc-xmlcat/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-xmlcat/meta.yaml b/recipes/ucsc-xmlcat/meta.yaml index ea0cafbacb9bf..f7728bd133b59 100644 --- a/recipes/ucsc-xmlcat/meta.yaml +++ b/recipes/ucsc-xmlcat/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-xmlcat" %} {% set program = "xmlCat" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "Concatenate xml files together, stuffing all records inside a single outer tag. " + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From b20b176b2a9574011b61dcb433e9587825697d51 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 16 Jul 2024 16:50:06 +0300 Subject: [PATCH 0357/1589] ucsc-toLower: add linux-aarch64 build (#49302) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-tolower/build.sh | 24 ++++++++++++++++-------- recipes/ucsc-tolower/include.patch | 6 +++--- recipes/ucsc-tolower/meta.yaml | 23 ++++++++++++++++------- 4 files changed, 35 insertions(+), 19 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 21f12677e65ff..89ccb2917fa17 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -958,7 +958,6 @@ recipes/ucsc-taillines recipes/ucsc-tdbquery recipes/ucsc-texthistogram recipes/ucsc-ticktodate -recipes/ucsc-tolower recipes/ucsc-toupper recipes/ucsc-transmappsltogenepred recipes/ucsc-trfbig diff --git a/recipes/ucsc-tolower/build.sh b/recipes/ucsc-tolower/build.sh index 0af95bdbc3c1b..c59cd1a12634d 100644 --- a/recipes/ucsc-tolower/build.sh +++ b/recipes/ucsc-tolower/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/toLower && make) -cp bin/toLower "$PREFIX/bin" -chmod +x "$PREFIX/bin/toLower" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/toLower && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/toLower "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/toLower" diff --git a/recipes/ucsc-tolower/include.patch b/recipes/ucsc-tolower/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-tolower/include.patch +++ b/recipes/ucsc-tolower/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-tolower/meta.yaml b/recipes/ucsc-tolower/meta.yaml index 03e77a0938348..076b34215d2e8 100644 --- a/recipes/ucsc-tolower/meta.yaml +++ b/recipes/ucsc-tolower/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-tolower" %} {% set program = "toLower" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,10 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} + requirements: build: @@ -25,22 +28,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "Convert upper case to lower case in file. Leave other chars alone" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From 1fb3a5ceea02ec73ab4e8cb89fe2ecc08e743e43 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 16 Jul 2024 16:59:18 +0300 Subject: [PATCH 0358/1589] orfanage: add aarch64/arm64 builds (#49286) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/orfanage/build.sh | 4 +++- recipes/orfanage/meta.yaml | 7 ++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/recipes/orfanage/build.sh b/recipes/orfanage/build.sh index 0a34af0fb7f2e..c28fb2fe9f67a 100644 --- a/recipes/orfanage/build.sh +++ b/recipes/orfanage/build.sh @@ -1,7 +1,9 @@ #!/bin/bash +set -xe + mkdir build cd build cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DCMAKE_BUILD_TYPE=Release -DORFANAGE_BUILD_LIBBIGWIG=OFF -make +make -j ${CPU_COUNT} make install diff --git a/recipes/orfanage/meta.yaml b/recipes/orfanage/meta.yaml index bc65cc7e46222..69e4c32edb1ae 100644 --- a/recipes/orfanage/meta.yaml +++ b/recipes/orfanage/meta.yaml @@ -10,7 +10,7 @@ source: sha256: {{ sha }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('orfanage', max_pin="x") }} @@ -37,3 +37,8 @@ about: license: GPL-3.0-or-later license_file: LICENSE summary: 'Ultra-efficient and sensitive method to search for ORFs in spliced genomes guided by reference annotation to maximize protein similarity within genes.' + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From 039eefa58d81fd0a68b424cd0acc79fc88c3f5e9 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 16 Jul 2024 17:36:55 +0300 Subject: [PATCH 0359/1589] fastp: add osx-arm64 build (#49293) Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Alicia A. Evans <108547992+aliciaaevans@users.noreply.github.com> --- recipes/fastp/build.sh | 4 ++-- recipes/fastp/meta.yaml | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/recipes/fastp/build.sh b/recipes/fastp/build.sh index 2854121f27d26..a7f3dbddf899c 100644 --- a/recipes/fastp/build.sh +++ b/recipes/fastp/build.sh @@ -1,6 +1,6 @@ #!/bin/bash -set -eu -o pipefail +set -xeu -o pipefail mkdir -p $PREFIX/bin -make INCLUDE_DIRS="$PREFIX/include" LIBRARY_DIRS="$PREFIX/lib" +make -j ${CPU_COUNT} INCLUDE_DIRS="$PREFIX/include" LIBRARY_DIRS="$PREFIX/lib" make install diff --git a/recipes/fastp/meta.yaml b/recipes/fastp/meta.yaml index 6c59e2466cff6..148491c023d63 100644 --- a/recipes/fastp/meta.yaml +++ b/recipes/fastp/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 4fad6db156e769d46071add8a778a13a5cb5186bc1e1a5f9b1ffd499d84d72b5 build: - number: 4 + number: 5 run_exports: - {{ pin_subpackage("fastp", max_pin="x.x") }} @@ -32,6 +32,7 @@ test: extra: additional-platforms: - linux-aarch64 + - osx-arm64 about: home: https://github.com/OpenGene/fastp From c1953d965a28d95f54d5f45533a3cf4b8b210228 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 10:43:08 -0400 Subject: [PATCH 0360/1589] Update pyhmmer to 0.10.14 (#49305) --- recipes/pyhmmer/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pyhmmer/meta.yaml b/recipes/pyhmmer/meta.yaml index be975f2c996f2..9d1d0fd182385 100644 --- a/recipes/pyhmmer/meta.yaml +++ b/recipes/pyhmmer/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pyhmmer" %} -{% set version = "0.10.13" %} +{% set version = "0.10.14" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 65ef2211b96d804e17ba30df7061918a9c6c258353e732dba1ead32d2a623b2e + sha256: eb50bdfdf67a3b1fecfe877d7ca6d9bade9a9f3dea3ad60c959453bbb235573d build: number: 0 From c11ca12b1a0d078f01773af995255dbd673ed05e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 10:44:01 -0400 Subject: [PATCH 0361/1589] Update tobias to 0.17.0 (#49306) --- recipes/tobias/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/tobias/meta.yaml b/recipes/tobias/meta.yaml index b15a6c6c83076..b5ed3996c99f2 100644 --- a/recipes/tobias/meta.yaml +++ b/recipes/tobias/meta.yaml @@ -1,6 +1,6 @@ {% set name = "TOBIAS" %} -{% set version = "0.16.1" %} -{% set sha256 = "c46267c01287be06201b3e6f7a36daad1ad86d6c578f96e878501be7da7fd109" %} +{% set version = "0.17.0" %} +{% set sha256 = "b0965abcbe1cee6a8bf85c01b4ebcf49c678a4cf1f961855e60152d9ade6bd18" %} package: name: {{ name|lower }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 script: {{ PYTHON }} -m pip install . --use-pep517 --no-deps --no-build-isolation -vvv entry_points: - TOBIAS=tobias.TOBIAS:main From 908c18c3d5fb8aa11f282f7d7786dabd9ebf79cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gen=C3=ADs=20Bayarri?= Date: Tue, 16 Jul 2024 16:49:20 +0200 Subject: [PATCH 0362/1589] [biobb_chemistry] update 4.2.1 (#49307) --- recipes/biobb_chemistry/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/biobb_chemistry/meta.yaml b/recipes/biobb_chemistry/meta.yaml index 57de45e5e7fa4..2e12dae73345e 100644 --- a/recipes/biobb_chemistry/meta.yaml +++ b/recipes/biobb_chemistry/meta.yaml @@ -1,5 +1,5 @@ {% set name = "biobb_chemistry" %} -{% set version = "4.2.0" %} +{% set version = "4.2.1" %} package: name: '{{ name|lower }}' @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 9691549356d38bbce6b63fe8c66622cca7c704f57ee600133edfbd9bb5d871f0 + sha256: 729e6b3b955ad9e62997a162c58b3e84945b1e8a7a766a158a093ffb0b1388a8 build: number: 0 From 887341a0382bfad40d9d3858a2fe6e7075f21a6b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 12:13:12 -0400 Subject: [PATCH 0363/1589] Update chewbbaca to 3.3.9 (#49313) --- recipes/chewbbaca/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/chewbbaca/meta.yaml b/recipes/chewbbaca/meta.yaml index 43705581cdfaf..0e07a8938b6ad 100644 --- a/recipes/chewbbaca/meta.yaml +++ b/recipes/chewbbaca/meta.yaml @@ -1,5 +1,5 @@ {% set name = 'chewBBACA' %} -{% set version = '3.3.8' %} +{% set version = '3.3.9' %} package: name: {{ name|lower }} @@ -8,7 +8,7 @@ package: source: url: https://github.com/B-UMMI/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz # url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: de00c13dbd83f91ad7fc427262ceca3ae6746d0395213fb15e3c816965bf33dc + sha256: 7afef83a3e2bd7e451443073ce6f08bc2a9c2149ec9b23bc2be488553bc62169 # sha256: b54c5f4fb2f3c943f9ec51e5b81f4fb9a312fcc87fdea6e0a9f3edbebdf62308 build: From e3f3fde24f4e9bf155498ab523a06834199ae19f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 12:13:29 -0400 Subject: [PATCH 0364/1589] Update fgbio to 2.3.0 (#49311) --- recipes/fgbio/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/fgbio/meta.yaml b/recipes/fgbio/meta.yaml index ee2047de82028..496337cbe9149 100644 --- a/recipes/fgbio/meta.yaml +++ b/recipes/fgbio/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.2.1" %} +{% set version = "2.3.0" %} package: name: fgbio @@ -6,7 +6,7 @@ package: source: url: https://github.com/fulcrumgenomics/fgbio/releases/download/{{ version }}/fgbio-{{ version }}.jar - sha256: bb875e9a9218b841f39bdd007492b56be25b4d112ef7c22311c554b7b60fcd2c + sha256: a0748b52a92403d88e7cf799368c313a05f89c5e3da04f7f8829593a603b7c69 build: noarch: generic From 2e51efe7a64d2707769688cac5e5890eee30f592 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 12:13:45 -0400 Subject: [PATCH 0365/1589] Update fgbio-minimal to 2.3.0 (#49312) --- recipes/fgbio-minimal/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/fgbio-minimal/meta.yaml b/recipes/fgbio-minimal/meta.yaml index 23242dc27e036..ec8d76b58f4d5 100644 --- a/recipes/fgbio-minimal/meta.yaml +++ b/recipes/fgbio-minimal/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.2.1" %} +{% set version = "2.3.0" %} package: name: fgbio-minimal @@ -6,7 +6,7 @@ package: source: url: https://github.com/fulcrumgenomics/fgbio/releases/download/{{ version }}/fgbio-{{ version }}.jar - sha256: bb875e9a9218b841f39bdd007492b56be25b4d112ef7c22311c554b7b60fcd2c + sha256: a0748b52a92403d88e7cf799368c313a05f89c5e3da04f7f8829593a603b7c69 build: noarch: generic From a247d11f2c5780445a233cd18b7c56f3cf62ca74 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 16 Jul 2024 19:14:30 +0300 Subject: [PATCH 0366/1589] r-stitch: add linux-aarch64 build (#49132) * r-stitch: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * Patch STITCH's SeqLib submodule for aarch64 Signed-off-by: Martin Tzvetanov Grigorov * Debug folder contents Signed-off-by: Martin Tzvetanov Grigorov * Pin C/C++ compiler versions only for Linux Signed-off-by: Martin Tzvetanov Grigorov * Revert compiler version pins Signed-off-by: Martin Tzvetanov Grigorov * r-stitch: Ping libcxx to 16.* for OSX Signed-off-by: Martin Tzvetanov Grigorov * Do not build osx-arm64 for r-stitch * Pin libcxx to 16.x for OSX Signed-off-by: Martin Tzvetanov Grigorov * Reset the build number * Pin libcxx to 16.x for OSX Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/r-stitch/build.sh | 13 + recipes/r-stitch/conda_build_config.yaml | 2 +- recipes/r-stitch/meta.yaml | 17 +- recipes/r-stitch/seqlib-aarch64.patch | 9340 ++++++++++++++++++++++ 4 files changed, 9364 insertions(+), 8 deletions(-) create mode 100644 recipes/r-stitch/build.sh create mode 100644 recipes/r-stitch/seqlib-aarch64.patch diff --git a/recipes/r-stitch/build.sh b/recipes/r-stitch/build.sh new file mode 100644 index 0000000000000..56a790ad9541b --- /dev/null +++ b/recipes/r-stitch/build.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +set -xe + +mkdir -p $PREFIX/bin +cp STITCH.R $PREFIX/bin + +# patch a Git submodule +pushd src/SeqLib/ +patch -p1 < ${RECIPE_DIR}/seqlib-aarch64.patch +popd + +$R CMD INSTALL --build --install-tests . diff --git a/recipes/r-stitch/conda_build_config.yaml b/recipes/r-stitch/conda_build_config.yaml index 05918073c06fa..4f2dcf10e9f82 100644 --- a/recipes/r-stitch/conda_build_config.yaml +++ b/recipes/r-stitch/conda_build_config.yaml @@ -1,4 +1,4 @@ c_compiler_version: - 12 cxx_compiler_version: - - 12 + - 12 \ No newline at end of file diff --git a/recipes/r-stitch/meta.yaml b/recipes/r-stitch/meta.yaml index 292b74ce3960c..34537d7679da9 100644 --- a/recipes/r-stitch/meta.yaml +++ b/recipes/r-stitch/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.6.10" %} -{% set sha256_package = "1e432655e299bb5941104c2645ed3a6b3c2c4a44b583c5aaa2b20d2538875f9e" %} +{% set version = "1.6.11" %} +{% set sha256_package = "eb6a8e121eb9689597da9ec5a105ba5392e458ab30510fe26b260b81a6d9fdb0" %} {% set sha256_script = "0c61d79cf519e5c5ae33807725577da3d1599bcc89413c3a6bce3fb7c99090c7" %} package: @@ -14,10 +14,9 @@ source: build: number: 0 - script: - - 'mkdir -p $PREFIX/bin && cp STITCH.R $PREFIX/bin' - - '$R CMD INSTALL --build --install-tests .' - + run_exports: + - {{ pin_subpackage('r-stitch', max_pin="x") }} + requirements: build: - {{ compiler('c') }} @@ -26,6 +25,7 @@ requirements: - automake - pkg-config - make + - libcxx <17 # [osx] host: - r-base - r-rcpp >=0.12.18 @@ -38,6 +38,7 @@ requirements: - mpc >=1.1.0 - libblas - zlib + - libcxx <17 # [osx] run: - r-base - r-rcpp >=0.12.18 @@ -62,7 +63,7 @@ test: about: home: https://github.com/rwdavies/stitch - license: GPL3 + license: GPL-3.0-only license_family: GPL3 license_file: LICENSE summary: STITCH - Sequencing To Imputation Through Constructing Haplotypes @@ -70,5 +71,7 @@ about: dev_url: https://github.com/rwdavies/stitch extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - rwdavies diff --git a/recipes/r-stitch/seqlib-aarch64.patch b/recipes/r-stitch/seqlib-aarch64.patch new file mode 100644 index 0000000000000..b52fd6c6937ed --- /dev/null +++ b/recipes/r-stitch/seqlib-aarch64.patch @@ -0,0 +1,9340 @@ +diff --git c/SeqLib/sse2neon.h i/SeqLib/sse2neon.h +new file mode 100644 +index 0000000..2b12721 +--- /dev/null ++++ i/SeqLib/sse2neon.h +@@ -0,0 +1,9301 @@ ++#ifndef SSE2NEON_H ++#define SSE2NEON_H ++ ++/* ++ * sse2neon is freely redistributable under the MIT License. ++ * ++ * Copyright (c) 2015-2024 SSE2NEON Contributors. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a copy ++ * of this software and associated documentation files (the "Software"), to deal ++ * in the Software without restriction, including without limitation the rights ++ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ++ * copies of the Software, and to permit persons to whom the Software is ++ * furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice shall be included in ++ * all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++ * SOFTWARE. ++ */ ++ ++// This header file provides a simple API translation layer ++// between SSE intrinsics to their corresponding Arm/Aarch64 NEON versions ++// ++// Contributors to this work are: ++// John W. Ratcliff ++// Brandon Rowlett ++// Ken Fast ++// Eric van Beurden ++// Alexander Potylitsin ++// Hasindu Gamaarachchi ++// Jim Huang ++// Mark Cheng ++// Malcolm James MacLeod ++// Devin Hussey (easyaspi314) ++// Sebastian Pop ++// Developer Ecosystem Engineering ++// Danila Kutenin ++// François Turban (JishinMaster) ++// Pei-Hsuan Hung ++// Yang-Hao Yuan ++// Syoyo Fujita ++// Brecht Van Lommel ++// Jonathan Hue ++// Cuda Chen ++// Aymen Qader ++// Anthony Roberts ++ ++/* Tunable configurations */ ++ ++/* Enable precise implementation of math operations ++ * This would slow down the computation a bit, but gives consistent result with ++ * x86 SSE. (e.g. would solve a hole or NaN pixel in the rendering result) ++ */ ++/* _mm_min|max_ps|ss|pd|sd */ ++#ifndef SSE2NEON_PRECISE_MINMAX ++#define SSE2NEON_PRECISE_MINMAX (0) ++#endif ++/* _mm_rcp_ps */ ++#ifndef SSE2NEON_PRECISE_DIV ++#define SSE2NEON_PRECISE_DIV (0) ++#endif ++/* _mm_sqrt_ps and _mm_rsqrt_ps */ ++#ifndef SSE2NEON_PRECISE_SQRT ++#define SSE2NEON_PRECISE_SQRT (0) ++#endif ++/* _mm_dp_pd */ ++#ifndef SSE2NEON_PRECISE_DP ++#define SSE2NEON_PRECISE_DP (0) ++#endif ++ ++/* Enable inclusion of windows.h on MSVC platforms ++ * This makes _mm_clflush functional on windows, as there is no builtin. ++ */ ++#ifndef SSE2NEON_INCLUDE_WINDOWS_H ++#define SSE2NEON_INCLUDE_WINDOWS_H (0) ++#endif ++ ++/* compiler specific definitions */ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma push_macro("FORCE_INLINE") ++#pragma push_macro("ALIGN_STRUCT") ++#define FORCE_INLINE static inline __attribute__((always_inline)) ++#define ALIGN_STRUCT(x) __attribute__((aligned(x))) ++#define _sse2neon_likely(x) __builtin_expect(!!(x), 1) ++#define _sse2neon_unlikely(x) __builtin_expect(!!(x), 0) ++#elif defined(_MSC_VER) ++#if _MSVC_TRADITIONAL ++#error Using the traditional MSVC preprocessor is not supported! Use /Zc:preprocessor instead. ++#endif ++#ifndef FORCE_INLINE ++#define FORCE_INLINE static inline ++#endif ++#ifndef ALIGN_STRUCT ++#define ALIGN_STRUCT(x) __declspec(align(x)) ++#endif ++#define _sse2neon_likely(x) (x) ++#define _sse2neon_unlikely(x) (x) ++#else ++#pragma message("Macro name collisions may happen with unsupported compilers.") ++#endif ++ ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma push_macro("FORCE_INLINE_OPTNONE") ++#define FORCE_INLINE_OPTNONE static inline __attribute__((optimize("O0"))) ++#elif defined(__clang__) ++#pragma push_macro("FORCE_INLINE_OPTNONE") ++#define FORCE_INLINE_OPTNONE static inline __attribute__((optnone)) ++#else ++#define FORCE_INLINE_OPTNONE FORCE_INLINE ++#endif ++ ++#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ < 10 ++#warning "GCC versions earlier than 10 are not supported." ++#endif ++ ++/* C language does not allow initializing a variable with a function call. */ ++#ifdef __cplusplus ++#define _sse2neon_const static const ++#else ++#define _sse2neon_const const ++#endif ++ ++#include ++#include ++ ++#if defined(_WIN32) ++/* Definitions for _mm_{malloc,free} are provided by ++ * from both MinGW-w64 and MSVC. ++ */ ++#define SSE2NEON_ALLOC_DEFINED ++#endif ++ ++/* If using MSVC */ ++#ifdef _MSC_VER ++#include ++#if SSE2NEON_INCLUDE_WINDOWS_H ++#include ++#include ++#endif ++ ++#if !defined(__cplusplus) ++#error SSE2NEON only supports C++ compilation with this compiler ++#endif ++ ++#ifdef SSE2NEON_ALLOC_DEFINED ++#include ++#endif ++ ++#if (defined(_M_AMD64) || defined(__x86_64__)) || \ ++ (defined(_M_ARM64) || defined(__arm64__)) ++#define SSE2NEON_HAS_BITSCAN64 ++#endif ++#endif ++ ++#if defined(__GNUC__) || defined(__clang__) ++#define _sse2neon_define0(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define1(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define2(type, a, b, body) \ ++ __extension__({ \ ++ type _a = (a), _b = (b); \ ++ body \ ++ }) ++#define _sse2neon_return(ret) (ret) ++#else ++#define _sse2neon_define0(type, a, body) [=](type _a) { body }(a) ++#define _sse2neon_define1(type, a, body) [](type _a) { body }(a) ++#define _sse2neon_define2(type, a, b, body) \ ++ [](type _a, type _b) { body }((a), (b)) ++#define _sse2neon_return(ret) return ret ++#endif ++ ++#define _sse2neon_init(...) \ ++ { \ ++ __VA_ARGS__ \ ++ } ++ ++/* Compiler barrier */ ++#if defined(_MSC_VER) ++#define SSE2NEON_BARRIER() _ReadWriteBarrier() ++#else ++#define SSE2NEON_BARRIER() \ ++ do { \ ++ __asm__ __volatile__("" ::: "memory"); \ ++ (void) 0; \ ++ } while (0) ++#endif ++ ++/* Memory barriers ++ * __atomic_thread_fence does not include a compiler barrier; instead, ++ * the barrier is part of __atomic_load/__atomic_store's "volatile-like" ++ * semantics. ++ */ ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) ++#include ++#endif ++ ++FORCE_INLINE void _sse2neon_smp_mb(void) ++{ ++ SSE2NEON_BARRIER(); ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && \ ++ !defined(__STDC_NO_ATOMICS__) ++ atomic_thread_fence(memory_order_seq_cst); ++#elif defined(__GNUC__) || defined(__clang__) ++ __atomic_thread_fence(__ATOMIC_SEQ_CST); ++#else /* MSVC */ ++ __dmb(_ARM64_BARRIER_ISH); ++#endif ++} ++ ++/* Architecture-specific build options */ ++/* FIXME: #pragma GCC push_options is only available on GCC */ ++#if defined(__GNUC__) ++#if defined(__arm__) && __ARM_ARCH == 7 ++/* According to ARM C Language Extensions Architecture specification, ++ * __ARM_NEON is defined to a value indicating the Advanced SIMD (NEON) ++ * architecture supported. ++ */ ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error "You must enable NEON instructions (e.g. -mfpu=neon) to use SSE2NEON." ++#endif ++#if !defined(__clang__) ++#pragma GCC push_options ++#pragma GCC target("fpu=neon") ++#endif ++#elif defined(__aarch64__) || defined(_M_ARM64) ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#pragma GCC target("+simd") ++#endif ++#elif __ARM_ARCH == 8 ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error \ ++ "You must enable NEON instructions (e.g. -mfpu=neon-fp-armv8) to use SSE2NEON." ++#endif ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#endif ++#else ++#error \ ++ "Unsupported target. Must be either ARMv7-A+NEON or ARMv8-A \ ++(you could try setting target explicitly with -march or -mcpu)" ++#endif ++#endif ++ ++#include ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) && (__ARM_ARCH == 8) ++#if defined __has_include && __has_include() ++#include ++#endif ++#endif ++ ++/* Apple Silicon cache lines are double of what is commonly used by Intel, AMD ++ * and other Arm microarchitectures use. ++ * From sysctl -a on Apple M1: ++ * hw.cachelinesize: 128 ++ */ ++#if defined(__APPLE__) && (defined(__aarch64__) || defined(__arm64__)) ++#define SSE2NEON_CACHELINE_SIZE 128 ++#else ++#define SSE2NEON_CACHELINE_SIZE 64 ++#endif ++ ++/* Rounding functions require either Aarch64 instructions or libm fallback */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#include ++#endif ++ ++/* On ARMv7, some registers, such as PMUSERENR and PMCCNTR, are read-only ++ * or even not accessible in user mode. ++ * To write or access to these registers in user mode, ++ * we have to perform syscall instead. ++ */ ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) ++#include ++#endif ++ ++/* "__has_builtin" can be used to query support for built-in functions ++ * provided by gcc/clang and other compilers that support it. ++ */ ++#ifndef __has_builtin /* GCC prior to 10 or non-clang compilers */ ++/* Compatibility with gcc <= 9 */ ++#if defined(__GNUC__) && (__GNUC__ <= 9) ++#define __has_builtin(x) HAS##x ++#define HAS__builtin_popcount 1 ++#define HAS__builtin_popcountll 1 ++ ++// __builtin_shuffle introduced in GCC 4.7.0 ++#if (__GNUC__ >= 5) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) ++#define HAS__builtin_shuffle 1 ++#else ++#define HAS__builtin_shuffle 0 ++#endif ++ ++#define HAS__builtin_shufflevector 0 ++#define HAS__builtin_nontemporal_store 0 ++#else ++#define __has_builtin(x) 0 ++#endif ++#endif ++ ++/** ++ * MACRO for shuffle parameter for _mm_shuffle_ps(). ++ * Argument fp3 is a digit[0123] that represents the fp from argument "b" ++ * of mm_shuffle_ps that will be placed in fp3 of result. fp2 is the same ++ * for fp2 in result. fp1 is a digit[0123] that represents the fp from ++ * argument "a" of mm_shuffle_ps that will be places in fp1 of result. ++ * fp0 is the same for fp0 of result. ++ */ ++#define _MM_SHUFFLE(fp3, fp2, fp1, fp0) \ ++ (((fp3) << 6) | ((fp2) << 4) | ((fp1) << 2) | ((fp0))) ++ ++#if __has_builtin(__builtin_shufflevector) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __builtin_shufflevector(a, b, __VA_ARGS__) ++#elif __has_builtin(__builtin_shuffle) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __extension__({ \ ++ type tmp = {__VA_ARGS__}; \ ++ __builtin_shuffle(a, b, tmp); \ ++ }) ++#endif ++ ++#ifdef _sse2neon_shuffle ++#define vshuffle_s16(a, b, ...) _sse2neon_shuffle(int16x4_t, a, b, __VA_ARGS__) ++#define vshuffleq_s16(a, b, ...) _sse2neon_shuffle(int16x8_t, a, b, __VA_ARGS__) ++#define vshuffle_s32(a, b, ...) _sse2neon_shuffle(int32x2_t, a, b, __VA_ARGS__) ++#define vshuffleq_s32(a, b, ...) _sse2neon_shuffle(int32x4_t, a, b, __VA_ARGS__) ++#define vshuffle_s64(a, b, ...) _sse2neon_shuffle(int64x1_t, a, b, __VA_ARGS__) ++#define vshuffleq_s64(a, b, ...) _sse2neon_shuffle(int64x2_t, a, b, __VA_ARGS__) ++#endif ++ ++/* Rounding mode macros. */ ++#define _MM_FROUND_TO_NEAREST_INT 0x00 ++#define _MM_FROUND_TO_NEG_INF 0x01 ++#define _MM_FROUND_TO_POS_INF 0x02 ++#define _MM_FROUND_TO_ZERO 0x03 ++#define _MM_FROUND_CUR_DIRECTION 0x04 ++#define _MM_FROUND_NO_EXC 0x08 ++#define _MM_FROUND_RAISE_EXC 0x00 ++#define _MM_FROUND_NINT (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_FLOOR (_MM_FROUND_TO_NEG_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_CEIL (_MM_FROUND_TO_POS_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_TRUNC (_MM_FROUND_TO_ZERO | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_RINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_NEARBYINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_NO_EXC) ++#define _MM_ROUND_NEAREST 0x0000 ++#define _MM_ROUND_DOWN 0x2000 ++#define _MM_ROUND_UP 0x4000 ++#define _MM_ROUND_TOWARD_ZERO 0x6000 ++/* Flush zero mode macros. */ ++#define _MM_FLUSH_ZERO_MASK 0x8000 ++#define _MM_FLUSH_ZERO_ON 0x8000 ++#define _MM_FLUSH_ZERO_OFF 0x0000 ++/* Denormals are zeros mode macros. */ ++#define _MM_DENORMALS_ZERO_MASK 0x0040 ++#define _MM_DENORMALS_ZERO_ON 0x0040 ++#define _MM_DENORMALS_ZERO_OFF 0x0000 ++ ++/* indicate immediate constant argument in a given range */ ++#define __constrange(a, b) const ++ ++/* A few intrinsics accept traditional data types like ints or floats, but ++ * most operate on data types that are specific to SSE. ++ * If a vector type ends in d, it contains doubles, and if it does not have ++ * a suffix, it contains floats. An integer vector type can contain any type ++ * of integer, from chars to shorts to unsigned long longs. ++ */ ++typedef int64x1_t __m64; ++typedef float32x4_t __m128; /* 128-bit vector containing 4 floats */ ++// On ARM 32-bit architecture, the float64x2_t is not supported. ++// The data type __m128d should be represented in a different way for related ++// intrinsic conversion. ++#if defined(__aarch64__) || defined(_M_ARM64) ++typedef float64x2_t __m128d; /* 128-bit vector containing 2 doubles */ ++#else ++typedef float32x4_t __m128d; ++#endif ++typedef int64x2_t __m128i; /* 128-bit vector containing integers */ ++ ++// Some intrinsics operate on unaligned data types. ++typedef int16_t ALIGN_STRUCT(1) unaligned_int16_t; ++typedef int32_t ALIGN_STRUCT(1) unaligned_int32_t; ++typedef int64_t ALIGN_STRUCT(1) unaligned_int64_t; ++ ++// __int64 is defined in the Intrinsics Guide which maps to different datatype ++// in different data model ++#if !(defined(_WIN32) || defined(_WIN64) || defined(__int64)) ++#if (defined(__x86_64__) || defined(__i386__)) ++#define __int64 long long ++#else ++#define __int64 int64_t ++#endif ++#endif ++ ++/* type-safe casting between types */ ++ ++#define vreinterpretq_m128_f16(x) vreinterpretq_f32_f16(x) ++#define vreinterpretq_m128_f32(x) (x) ++#define vreinterpretq_m128_f64(x) vreinterpretq_f32_f64(x) ++ ++#define vreinterpretq_m128_u8(x) vreinterpretq_f32_u8(x) ++#define vreinterpretq_m128_u16(x) vreinterpretq_f32_u16(x) ++#define vreinterpretq_m128_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128_s8(x) vreinterpretq_f32_s8(x) ++#define vreinterpretq_m128_s16(x) vreinterpretq_f32_s16(x) ++#define vreinterpretq_m128_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_f16_m128(x) vreinterpretq_f16_f32(x) ++#define vreinterpretq_f32_m128(x) (x) ++#define vreinterpretq_f64_m128(x) vreinterpretq_f64_f32(x) ++ ++#define vreinterpretq_u8_m128(x) vreinterpretq_u8_f32(x) ++#define vreinterpretq_u16_m128(x) vreinterpretq_u16_f32(x) ++#define vreinterpretq_u32_m128(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_s8_m128(x) vreinterpretq_s8_f32(x) ++#define vreinterpretq_s16_m128(x) vreinterpretq_s16_f32(x) ++#define vreinterpretq_s32_m128(x) vreinterpretq_s32_f32(x) ++#define vreinterpretq_s64_m128(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_m128i_s8(x) vreinterpretq_s64_s8(x) ++#define vreinterpretq_m128i_s16(x) vreinterpretq_s64_s16(x) ++#define vreinterpretq_m128i_s32(x) vreinterpretq_s64_s32(x) ++#define vreinterpretq_m128i_s64(x) (x) ++ ++#define vreinterpretq_m128i_u8(x) vreinterpretq_s64_u8(x) ++#define vreinterpretq_m128i_u16(x) vreinterpretq_s64_u16(x) ++#define vreinterpretq_m128i_u32(x) vreinterpretq_s64_u32(x) ++#define vreinterpretq_m128i_u64(x) vreinterpretq_s64_u64(x) ++ ++#define vreinterpretq_f32_m128i(x) vreinterpretq_f32_s64(x) ++#define vreinterpretq_f64_m128i(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_s8_m128i(x) vreinterpretq_s8_s64(x) ++#define vreinterpretq_s16_m128i(x) vreinterpretq_s16_s64(x) ++#define vreinterpretq_s32_m128i(x) vreinterpretq_s32_s64(x) ++#define vreinterpretq_s64_m128i(x) (x) ++ ++#define vreinterpretq_u8_m128i(x) vreinterpretq_u8_s64(x) ++#define vreinterpretq_u16_m128i(x) vreinterpretq_u16_s64(x) ++#define vreinterpretq_u32_m128i(x) vreinterpretq_u32_s64(x) ++#define vreinterpretq_u64_m128i(x) vreinterpretq_u64_s64(x) ++ ++#define vreinterpret_m64_s8(x) vreinterpret_s64_s8(x) ++#define vreinterpret_m64_s16(x) vreinterpret_s64_s16(x) ++#define vreinterpret_m64_s32(x) vreinterpret_s64_s32(x) ++#define vreinterpret_m64_s64(x) (x) ++ ++#define vreinterpret_m64_u8(x) vreinterpret_s64_u8(x) ++#define vreinterpret_m64_u16(x) vreinterpret_s64_u16(x) ++#define vreinterpret_m64_u32(x) vreinterpret_s64_u32(x) ++#define vreinterpret_m64_u64(x) vreinterpret_s64_u64(x) ++ ++#define vreinterpret_m64_f16(x) vreinterpret_s64_f16(x) ++#define vreinterpret_m64_f32(x) vreinterpret_s64_f32(x) ++#define vreinterpret_m64_f64(x) vreinterpret_s64_f64(x) ++ ++#define vreinterpret_u8_m64(x) vreinterpret_u8_s64(x) ++#define vreinterpret_u16_m64(x) vreinterpret_u16_s64(x) ++#define vreinterpret_u32_m64(x) vreinterpret_u32_s64(x) ++#define vreinterpret_u64_m64(x) vreinterpret_u64_s64(x) ++ ++#define vreinterpret_s8_m64(x) vreinterpret_s8_s64(x) ++#define vreinterpret_s16_m64(x) vreinterpret_s16_s64(x) ++#define vreinterpret_s32_m64(x) vreinterpret_s32_s64(x) ++#define vreinterpret_s64_m64(x) (x) ++ ++#define vreinterpret_f32_m64(x) vreinterpret_f32_s64(x) ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f64_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f64_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) vreinterpretq_f64_f32(x) ++#define vreinterpretq_m128d_f64(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f64(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f64(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f64(x) ++ ++#define vreinterpretq_f64_m128d(x) (x) ++#define vreinterpretq_f32_m128d(x) vreinterpretq_f32_f64(x) ++#else ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_m128d_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_f32_m128d(x) (x) ++#endif ++ ++// A struct is defined in this header file called 'SIMDVec' which can be used ++// by applications which attempt to access the contents of an __m128 struct ++// directly. It is important to note that accessing the __m128 struct directly ++// is bad coding practice by Microsoft: @see: ++// https://learn.microsoft.com/en-us/cpp/cpp/m128 ++// ++// However, some legacy source code may try to access the contents of an __m128 ++// struct directly so the developer can use the SIMDVec as an alias for it. Any ++// casting must be done manually by the developer, as you cannot cast or ++// otherwise alias the base NEON data type for intrinsic operations. ++// ++// union intended to allow direct access to an __m128 variable using the names ++// that the MSVC compiler provides. This union should really only be used when ++// trying to access the members of the vector as integer values. GCC/clang ++// allow native access to the float members through a simple array access ++// operator (in C since 4.6, in C++ since 4.8). ++// ++// Ideally direct accesses to SIMD vectors should not be used since it can cause ++// a performance hit. If it really is needed however, the original __m128 ++// variable can be aliased with a pointer to this union and used to access ++// individual components. The use of this union should be hidden behind a macro ++// that is used throughout the codebase to access the members instead of always ++// declaring this type of variable. ++typedef union ALIGN_STRUCT(16) SIMDVec { ++ float m128_f32[4]; // as floats - DON'T USE. Added for convenience. ++ int8_t m128_i8[16]; // as signed 8-bit integers. ++ int16_t m128_i16[8]; // as signed 16-bit integers. ++ int32_t m128_i32[4]; // as signed 32-bit integers. ++ int64_t m128_i64[2]; // as signed 64-bit integers. ++ uint8_t m128_u8[16]; // as unsigned 8-bit integers. ++ uint16_t m128_u16[8]; // as unsigned 16-bit integers. ++ uint32_t m128_u32[4]; // as unsigned 32-bit integers. ++ uint64_t m128_u64[2]; // as unsigned 64-bit integers. ++} SIMDVec; ++ ++// casting using SIMDVec ++#define vreinterpretq_nth_u64_m128i(x, n) (((SIMDVec *) &x)->m128_u64[n]) ++#define vreinterpretq_nth_u32_m128i(x, n) (((SIMDVec *) &x)->m128_u32[n]) ++#define vreinterpretq_nth_u8_m128i(x, n) (((SIMDVec *) &x)->m128_u8[n]) ++ ++/* SSE macros */ ++#define _MM_GET_FLUSH_ZERO_MODE _sse2neon_mm_get_flush_zero_mode ++#define _MM_SET_FLUSH_ZERO_MODE _sse2neon_mm_set_flush_zero_mode ++#define _MM_GET_DENORMALS_ZERO_MODE _sse2neon_mm_get_denormals_zero_mode ++#define _MM_SET_DENORMALS_ZERO_MODE _sse2neon_mm_set_denormals_zero_mode ++ ++// Function declaration ++// SSE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void); ++FORCE_INLINE __m128 _mm_move_ss(__m128, __m128); ++FORCE_INLINE __m128 _mm_or_ps(__m128, __m128); ++FORCE_INLINE __m128 _mm_set_ps1(float); ++FORCE_INLINE __m128 _mm_setzero_ps(void); ++// SSE2 ++FORCE_INLINE __m128i _mm_and_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_castps_si128(__m128); ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128); ++FORCE_INLINE __m128d _mm_move_sd(__m128d, __m128d); ++FORCE_INLINE __m128i _mm_or_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_set_epi32(int, int, int, int); ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t, int64_t); ++FORCE_INLINE __m128d _mm_set_pd(double, double); ++FORCE_INLINE __m128i _mm_set1_epi32(int); ++FORCE_INLINE __m128i _mm_setzero_si128(void); ++// SSE4.1 ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d); ++FORCE_INLINE __m128 _mm_ceil_ps(__m128); ++FORCE_INLINE __m128d _mm_floor_pd(__m128d); ++FORCE_INLINE __m128 _mm_floor_ps(__m128); ++FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d, int); ++FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128, int); ++// SSE4.2 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t, uint8_t); ++ ++/* Backwards compatibility for compilers with lack of specific type support */ ++ ++// Older gcc does not define vld1q_u8_x4 type ++#if defined(__GNUC__) && !defined(__clang__) && \ ++ ((__GNUC__ <= 13 && defined(__arm__)) || \ ++ (__GNUC__ == 10 && __GNUC_MINOR__ < 3 && defined(__aarch64__)) || \ ++ (__GNUC__ <= 9 && defined(__aarch64__))) ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ uint8x16x4_t ret; ++ ret.val[0] = vld1q_u8(p + 0); ++ ret.val[1] = vld1q_u8(p + 16); ++ ret.val[2] = vld1q_u8(p + 32); ++ ret.val[3] = vld1q_u8(p + 48); ++ return ret; ++} ++#else ++// Wraps vld1q_u8_x4 ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ return vld1q_u8_x4(p); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddv u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ const uint64x1_t v1 = vpaddl_u32(vpaddl_u16(vpaddl_u8(v8))); ++ return vget_lane_u8(vreinterpret_u8_u64(v1), 0); ++} ++#else ++// Wraps vaddv_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ return vaddv_u8(v8); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ uint8x8_t tmp = vpadd_u8(vget_low_u8(a), vget_high_u8(a)); ++ uint8_t res = 0; ++ for (int i = 0; i < 8; ++i) ++ res += tmp[i]; ++ return res; ++} ++#else ++// Wraps vaddvq_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ return vaddvq_u8(a); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u16 variant */ ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ uint32x4_t m = vpaddlq_u16(a); ++ uint64x2_t n = vpaddlq_u32(m); ++ uint64x1_t o = vget_low_u64(n) + vget_high_u64(n); ++ ++ return vget_lane_u32((uint32x2_t) o, 0); ++} ++#else ++// Wraps vaddvq_u16 ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ return vaddvq_u16(a); ++} ++#endif ++ ++/* Function Naming Conventions ++ * The naming convention of SSE intrinsics is straightforward. A generic SSE ++ * intrinsic function is given as follows: ++ * _mm__ ++ * ++ * The parts of this format are given as follows: ++ * 1. describes the operation performed by the intrinsic ++ * 2. identifies the data type of the function's primary arguments ++ * ++ * This last part, , is a little complicated. It identifies the ++ * content of the input values, and can be set to any of the following values: ++ * + ps - vectors contain floats (ps stands for packed single-precision) ++ * + pd - vectors contain doubles (pd stands for packed double-precision) ++ * + epi8/epi16/epi32/epi64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * signed integers ++ * + epu8/epu16/epu32/epu64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * unsigned integers ++ * + si128 - unspecified 128-bit vector or 256-bit vector ++ * + m128/m128i/m128d - identifies input vector types when they are different ++ * than the type of the returned vector ++ * ++ * For example, _mm_setzero_ps. The _mm implies that the function returns ++ * a 128-bit vector. The _ps at the end implies that the argument vectors ++ * contain floats. ++ * ++ * A complete example: Byte Shuffle - pshufb (_mm_shuffle_epi8) ++ * // Set packed 16-bit integers. 128 bits, 8 short, per 16 bits ++ * __m128i v_in = _mm_setr_epi16(1, 2, 3, 4, 5, 6, 7, 8); ++ * // Set packed 8-bit integers ++ * // 128 bits, 16 chars, per 8 bits ++ * __m128i v_perm = _mm_setr_epi8(1, 0, 2, 3, 8, 9, 10, 11, ++ * 4, 5, 12, 13, 6, 7, 14, 15); ++ * // Shuffle packed 8-bit integers ++ * __m128i v_out = _mm_shuffle_epi8(v_in, v_perm); // pshufb ++ */ ++ ++/* Constants for use with _mm_prefetch. */ ++enum _mm_hint { ++ _MM_HINT_NTA = 0, /* load data to L1 and L2 cache, mark it as NTA */ ++ _MM_HINT_T0 = 1, /* load data to L1 and L2 cache */ ++ _MM_HINT_T1 = 2, /* load data to L2 cache only */ ++ _MM_HINT_T2 = 3, /* load data to L2 cache only, mark it as NTA */ ++}; ++ ++// The bit field mapping to the FPCR(floating-point control register) ++typedef struct { ++ uint16_t res0; ++ uint8_t res1 : 6; ++ uint8_t bit22 : 1; ++ uint8_t bit23 : 1; ++ uint8_t bit24 : 1; ++ uint8_t res2 : 7; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32_t res3; ++#endif ++} fpcr_bitfield; ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of b and places it into the high end of the result. ++FORCE_INLINE __m128 _mm_shuffle_ps_1032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in high ++// end of result takes the higher two 32 bit values from b and swaps them and ++// places in low end of result. ++FORCE_INLINE __m128 _mm_shuffle_ps_2301(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b23 = vrev64_f32(vget_high_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b23)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0321(__m128 a, __m128 b) ++{ ++ float32x2_t a21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a21, b03)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2103(__m128 a, __m128 b) ++{ ++ float32x2_t a03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a03, b21)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0101(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b01)); ++} ++ ++// keeps the low 64 bits of b in the low and puts the high 64 bits of a in the ++// high ++FORCE_INLINE __m128 _mm_shuffle_ps_3210(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0011(__m128 a, __m128 b) ++{ ++ float32x2_t a11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a11, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0022(__m128 a, __m128 b) ++{ ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a22, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2200(__m128 a, __m128 b) ++{ ++ float32x2_t a00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a00, b22)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_3202(__m128 a, __m128 b) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t a02 = vset_lane_f32(a0, a22, 1); /* TODO: use vzip ?*/ ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a02, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1133(__m128 a, __m128 b) ++{ ++ float32x2_t a33 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a33, b11)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b20)); ++} ++ ++// For MSVC, we check only if it is ARM64, as every single ARM64 processor ++// supported by WoA has crypto extensions. If this changes in the future, ++// this can be verified via the runtime-only method of: ++// IsProcessorFeaturePresent(PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE) ++#if (defined(_M_ARM64) && !defined(__clang__)) || \ ++ (defined(__ARM_FEATURE_CRYPTO) && \ ++ (defined(__aarch64__) || __has_builtin(__builtin_arm_crypto_vmullp64))) ++// Wraps vmull_p64 ++FORCE_INLINE uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly64_t a = vget_lane_p64(vreinterpret_p64_u64(_a), 0); ++ poly64_t b = vget_lane_p64(vreinterpret_p64_u64(_b), 0); ++#if defined(_MSC_VER) ++ __n64 a1 = {a}, b1 = {b}; ++ return vreinterpretq_u64_p128(vmull_p64(a1, b1)); ++#else ++ return vreinterpretq_u64_p128(vmull_p64(a, b)); ++#endif ++} ++#else // ARMv7 polyfill ++// ARMv7/some A64 lacks vmull_p64, but it has vmull_p8. ++// ++// vmull_p8 calculates 8 8-bit->16-bit polynomial multiplies, but we need a ++// 64-bit->128-bit polynomial multiply. ++// ++// It needs some work and is somewhat slow, but it is still faster than all ++// known scalar methods. ++// ++// Algorithm adapted to C from ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/, which is adapted ++// from "Fast Software Polynomial Multiplication on ARM Processors Using the ++// NEON Engine" by Danilo Camara, Conrado Gouvea, Julio Lopez and Ricardo Dahab ++// (https://hal.inria.fr/hal-01506572) ++static uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly8x8_t a = vreinterpret_p8_u64(_a); ++ poly8x8_t b = vreinterpret_p8_u64(_b); ++ ++ // Masks ++ uint8x16_t k48_32 = vcombine_u8(vcreate_u8(0x0000ffffffffffff), ++ vcreate_u8(0x00000000ffffffff)); ++ uint8x16_t k16_00 = vcombine_u8(vcreate_u8(0x000000000000ffff), ++ vcreate_u8(0x0000000000000000)); ++ ++ // Do the multiplies, rotating with vext to get all combinations ++ uint8x16_t d = vreinterpretq_u8_p16(vmull_p8(a, b)); // D = A0 * B0 ++ uint8x16_t e = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 1))); // E = A0 * B1 ++ uint8x16_t f = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 1), b)); // F = A1 * B0 ++ uint8x16_t g = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 2))); // G = A0 * B2 ++ uint8x16_t h = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 2), b)); // H = A2 * B0 ++ uint8x16_t i = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 3))); // I = A0 * B3 ++ uint8x16_t j = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 3), b)); // J = A3 * B0 ++ uint8x16_t k = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 4))); // L = A0 * B4 ++ ++ // Add cross products ++ uint8x16_t l = veorq_u8(e, f); // L = E + F ++ uint8x16_t m = veorq_u8(g, h); // M = G + H ++ uint8x16_t n = veorq_u8(i, j); // N = I + J ++ ++ // Interleave. Using vzip1 and vzip2 prevents Clang from emitting TBL ++ // instructions. ++#if defined(__aarch64__) ++ uint8x16_t lm_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t lm_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t nk_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++ uint8x16_t nk_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++#else ++ uint8x16_t lm_p0 = vcombine_u8(vget_low_u8(l), vget_low_u8(m)); ++ uint8x16_t lm_p1 = vcombine_u8(vget_high_u8(l), vget_high_u8(m)); ++ uint8x16_t nk_p0 = vcombine_u8(vget_low_u8(n), vget_low_u8(k)); ++ uint8x16_t nk_p1 = vcombine_u8(vget_high_u8(n), vget_high_u8(k)); ++#endif ++ // t0 = (L) (P0 + P1) << 8 ++ // t1 = (M) (P2 + P3) << 16 ++ uint8x16_t t0t1_tmp = veorq_u8(lm_p0, lm_p1); ++ uint8x16_t t0t1_h = vandq_u8(lm_p1, k48_32); ++ uint8x16_t t0t1_l = veorq_u8(t0t1_tmp, t0t1_h); ++ ++ // t2 = (N) (P4 + P5) << 24 ++ // t3 = (K) (P6 + P7) << 32 ++ uint8x16_t t2t3_tmp = veorq_u8(nk_p0, nk_p1); ++ uint8x16_t t2t3_h = vandq_u8(nk_p1, k16_00); ++ uint8x16_t t2t3_l = veorq_u8(t2t3_tmp, t2t3_h); ++ ++ // De-interleave ++#if defined(__aarch64__) ++ uint8x16_t t0 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t1 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t2 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++ uint8x16_t t3 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++#else ++ uint8x16_t t1 = vcombine_u8(vget_high_u8(t0t1_l), vget_high_u8(t0t1_h)); ++ uint8x16_t t0 = vcombine_u8(vget_low_u8(t0t1_l), vget_low_u8(t0t1_h)); ++ uint8x16_t t3 = vcombine_u8(vget_high_u8(t2t3_l), vget_high_u8(t2t3_h)); ++ uint8x16_t t2 = vcombine_u8(vget_low_u8(t2t3_l), vget_low_u8(t2t3_h)); ++#endif ++ // Shift the cross products ++ uint8x16_t t0_shift = vextq_u8(t0, t0, 15); // t0 << 8 ++ uint8x16_t t1_shift = vextq_u8(t1, t1, 14); // t1 << 16 ++ uint8x16_t t2_shift = vextq_u8(t2, t2, 13); // t2 << 24 ++ uint8x16_t t3_shift = vextq_u8(t3, t3, 12); // t3 << 32 ++ ++ // Accumulate the products ++ uint8x16_t cross1 = veorq_u8(t0_shift, t1_shift); ++ uint8x16_t cross2 = veorq_u8(t2_shift, t3_shift); ++ uint8x16_t mix = veorq_u8(d, cross1); ++ uint8x16_t r = veorq_u8(mix, cross2); ++ return vreinterpretq_u64_u8(r); ++} ++#endif // ARMv7 polyfill ++ ++// C equivalent: ++// __m128i _mm_shuffle_epi32_default(__m128i a, ++// __constrange(0, 255) int imm) { ++// __m128i ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = a[(imm >> 4) & 0x03]; ret[3] = a[(imm >> 6) & 0x03]; ++// return ret; ++// } ++#define _mm_shuffle_epi32_default(a, imm) \ ++ vreinterpretq_m128i_s32(vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), \ ++ ((imm) >> 2) & 0x3), \ ++ vmovq_n_s32(vgetq_lane_s32( \ ++ vreinterpretq_s32_m128i(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of a and places it into the high end of the result. ++FORCE_INLINE __m128i _mm_shuffle_epi_1032(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in low end ++// of result takes the higher two 32 bit values from a and swaps them and places ++// in high end of result. ++FORCE_INLINE __m128i _mm_shuffle_epi_2301(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a23 = vrev64_s32(vget_high_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a23)); ++} ++ ++// rotates the least significant 32 bits into the most significant 32 bits, and ++// shifts the rest down ++FORCE_INLINE __m128i _mm_shuffle_epi_0321(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 1)); ++} ++ ++// rotates the most significant 32 bits into the least significant 32 bits, and ++// shifts the rest up ++FORCE_INLINE __m128i _mm_shuffle_epi_2103(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 3)); ++} ++ ++// gets the lower 64 bits of a, and places it in the upper 64 bits ++// gets the lower 64 bits of a and places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1010(__m128i a) ++{ ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a10, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements, and places it in the ++// lower 64 bits gets the lower 64 bits of a, and places it in the upper 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1001(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements and places it in the ++// upper 64 bits gets the lower 64 bits of a, swaps the 0 and 1 elements, and ++// places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_0101(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_2211(__m128i a) ++{ ++ int32x2_t a11 = vdup_lane_s32(vget_low_s32(vreinterpretq_s32_m128i(a)), 1); ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ return vreinterpretq_m128i_s32(vcombine_s32(a11, a22)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_0122(__m128i a) ++{ ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a22, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_3332(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a33 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 1); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a33)); ++} ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32(vdupq_laneq_s32(vreinterpretq_s32_m128i(a), (imm))) ++#else ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vdupq_n_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)))) ++#endif ++ ++// NEON does not support a general purpose permute intrinsic. ++// Shuffle single-precision (32-bit) floating-point elements in a using the ++// control in imm8, and store the results in dst. ++// ++// C equivalent: ++// __m128 _mm_shuffle_ps_default(__m128 a, __m128 b, ++// __constrange(0, 255) int imm) { ++// __m128 ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = b[(imm >> 4) & 0x03]; ret[3] = b[(imm >> 6) & 0x03]; ++// return ret; ++// } ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_ps ++#define _mm_shuffle_ps_default(a, b, imm) \ ++ vreinterpretq_m128_f32(vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), ((imm) >> 2) & 0x3), \ ++ vmovq_n_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Shuffle 16-bit integers in the low 64 bits of a using the control in imm8. ++// Store the results in the low 64 bits of dst, with the high 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflelo_epi16 ++#define _mm_shufflelo_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t lowBits = vget_low_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, (imm) & (0x3)), ret, 0); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++// Shuffle 16-bit integers in the high 64 bits of a using the control in imm8. ++// Store the results in the high 64 bits of dst, with the low 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflehi_epi16 ++#define _mm_shufflehi_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t highBits = vget_high_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, (imm) & (0x3)), ret, 4); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 2) & 0x3), ret, \ ++ 5); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 4) & 0x3), ret, \ ++ 6); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 6) & 0x3), ret, \ ++ 7); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++/* MMX */ ++ ++//_mm_empty is a no-op on arm ++FORCE_INLINE void _mm_empty(void) {} ++ ++/* SSE */ ++ ++// Add packed single-precision (32-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ps ++FORCE_INLINE __m128 _mm_add_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Add the lower single-precision (32-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ss ++FORCE_INLINE __m128 _mm_add_ss(__m128 a, __m128 b) ++{ ++ float32_t b0 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++ float32x4_t value = vsetq_lane_f32(b0, vdupq_n_f32(0), 0); ++ // the upper values in the result must be the remnants of . ++ return vreinterpretq_m128_f32(vaddq_f32(a, value)); ++} ++ ++// Compute the bitwise AND of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_ps ++FORCE_INLINE __m128 _mm_and_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vandq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Compute the bitwise NOT of packed single-precision (32-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_ps ++FORCE_INLINE __m128 _mm_andnot_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vbicq_s32(vreinterpretq_s32_m128(b), ++ vreinterpretq_s32_m128(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu16 ++FORCE_INLINE __m64 _mm_avg_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16( ++ vrhadd_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu8 ++FORCE_INLINE __m64 _mm_avg_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vrhadd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ps ++FORCE_INLINE __m128 _mm_cmpeq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ss ++FORCE_INLINE __m128 _mm_cmpeq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpeq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ps ++FORCE_INLINE __m128 _mm_cmpge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ss ++FORCE_INLINE __m128 _mm_cmpge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ps ++FORCE_INLINE __m128 _mm_cmpgt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ss ++FORCE_INLINE __m128 _mm_cmpgt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpgt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ps ++FORCE_INLINE __m128 _mm_cmple_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ss ++FORCE_INLINE __m128 _mm_cmple_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmple_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ps ++FORCE_INLINE __m128 _mm_cmplt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ss ++FORCE_INLINE __m128 _mm_cmplt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmplt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ps ++FORCE_INLINE __m128 _mm_cmpneq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ss ++FORCE_INLINE __m128 _mm_cmpneq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpneq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ps ++FORCE_INLINE __m128 _mm_cmpnge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ss ++FORCE_INLINE __m128 _mm_cmpnge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ps ++FORCE_INLINE __m128 _mm_cmpngt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ss ++FORCE_INLINE __m128 _mm_cmpngt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpngt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ps ++FORCE_INLINE __m128 _mm_cmpnle_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ss ++FORCE_INLINE __m128 _mm_cmpnle_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnle_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ps ++FORCE_INLINE __m128 _mm_cmpnlt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ss ++FORCE_INLINE __m128 _mm_cmpnlt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnlt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ps ++// ++// See also: ++// http://stackoverflow.com/questions/8627331/what-does-ordered-unordered-comparison-mean ++// http://stackoverflow.com/questions/29349621/neon-isnanval-intrinsics ++FORCE_INLINE __m128 _mm_cmpord_ps(__m128 a, __m128 b) ++{ ++ // Note: NEON does not have ordered compare builtin ++ // Need to compare a eq a and b eq b to check for NaN ++ // Do AND of results to get final ++ uint32x4_t ceqaa = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t ceqbb = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vandq_u32(ceqaa, ceqbb)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ss ++FORCE_INLINE __m128 _mm_cmpord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpord_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ps ++FORCE_INLINE __m128 _mm_cmpunord_ps(__m128 a, __m128 b) ++{ ++ uint32x4_t f32a = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t f32b = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vmvnq_u32(vandq_u32(f32a, f32b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ss ++FORCE_INLINE __m128 _mm_cmpunord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpunord_ps(a, b)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_ss ++FORCE_INLINE int _mm_comieq_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_eq_b = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_eq_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_ss ++FORCE_INLINE int _mm_comige_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_ge_b = ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_ge_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_ss ++FORCE_INLINE int _mm_comigt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_gt_b = ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_gt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_ss ++FORCE_INLINE int _mm_comile_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_le_b = ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_le_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_ss ++FORCE_INLINE int _mm_comilt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_lt_b = ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_lt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_ss ++FORCE_INLINE int _mm_comineq_ss(__m128 a, __m128 b) ++{ ++ return !_mm_comieq_ss(a, b); ++} ++ ++// Convert packed signed 32-bit integers in b to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, and copy the upper 2 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_pi2ps ++FORCE_INLINE __m128 _mm_cvt_pi2ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ps2pi ++FORCE_INLINE __m64 _mm_cvt_ps2pi(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))))); ++#else ++ return vreinterpret_m64_s32(vcvt_s32_f32(vget_low_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION))))); ++#endif ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_si2ss ++FORCE_INLINE __m128 _mm_cvt_si2ss(__m128 a, int b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ss2si ++FORCE_INLINE int _mm_cvt_ss2si(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vgetq_lane_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))), ++ 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int32_t) data; ++#endif ++} ++ ++// Convert packed 16-bit integers in a to packed single-precision (32-bit) ++// floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi16_ps ++FORCE_INLINE __m128 _mm_cvtpi16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vmovl_s16(vreinterpret_s16_m64(a)))); ++} ++ ++// Convert packed 32-bit integers in b to packed single-precision (32-bit) ++// floating-point elements, store the results in the lower 2 elements of dst, ++// and copy the upper 2 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_ps ++FORCE_INLINE __m128 _mm_cvtpi32_ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, then convert the packed signed 32-bit integers in b to ++// single-precision (32-bit) floating-point element, and store the results in ++// the upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32x2_ps ++FORCE_INLINE __m128 _mm_cvtpi32x2_ps(__m64 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vcombine_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b)))); ++} ++ ++// Convert the lower packed 8-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi8_ps ++FORCE_INLINE __m128 _mm_cvtpi8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vmovl_s16(vget_low_s16(vmovl_s8(vreinterpret_s8_m64(a)))))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 16-bit integers, and store the results in dst. Note: this intrinsic ++// will generate 0x7FFF, rather than 0x8000, for input values between 0x7FFF and ++// 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi16 ++FORCE_INLINE __m64 _mm_cvtps_pi16(__m128 a) ++{ ++ return vreinterpret_m64_s16( ++ vqmovn_s32(vreinterpretq_s32_m128i(_mm_cvtps_epi32(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi32 ++#define _mm_cvtps_pi32(a) _mm_cvt_ps2pi(a) ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 8-bit integers, and store the results in lower 4 elements of dst. ++// Note: this intrinsic will generate 0x7F, rather than 0x80, for input values ++// between 0x7F and 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi8 ++FORCE_INLINE __m64 _mm_cvtps_pi8(__m128 a) ++{ ++ return vreinterpret_m64_s8(vqmovn_s16( ++ vcombine_s16(vreinterpret_s16_m64(_mm_cvtps_pi16(a)), vdup_n_s16(0)))); ++} ++ ++// Convert packed unsigned 16-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu16_ps ++FORCE_INLINE __m128 _mm_cvtpu16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_u32(vmovl_u16(vreinterpret_u16_m64(a)))); ++} ++ ++// Convert the lower packed unsigned 8-bit integers in a to packed ++// single-precision (32-bit) floating-point elements, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu8_ps ++FORCE_INLINE __m128 _mm_cvtpu8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_u32( ++ vmovl_u16(vget_low_u16(vmovl_u8(vreinterpret_u8_m64(a)))))); ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_ss ++#define _mm_cvtsi32_ss(a, b) _mm_cvt_si2ss(a, b) ++ ++// Convert the signed 64-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_ss ++FORCE_INLINE __m128 _mm_cvtsi64_ss(__m128 a, int64_t b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Copy the lower single-precision (32-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_f32 ++FORCE_INLINE float _mm_cvtss_f32(__m128 a) ++{ ++ return vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si32 ++#define _mm_cvtss_si32(a) _mm_cvt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si64 ++FORCE_INLINE int64_t _mm_cvtss_si64(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return (int64_t) vgetq_lane_f32(vrndiq_f32(vreinterpretq_f32_m128(a)), 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int64_t) data; ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ps2pi ++FORCE_INLINE __m64 _mm_cvtt_ps2pi(__m128 a) ++{ ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ss2si ++FORCE_INLINE int _mm_cvtt_ss2si(__m128 a) ++{ ++ return vgetq_lane_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)), 0); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_pi32 ++#define _mm_cvttps_pi32(a) _mm_cvtt_ps2pi(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si32 ++#define _mm_cvttss_si32(a) _mm_cvtt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si64 ++FORCE_INLINE int64_t _mm_cvttss_si64(__m128 a) ++{ ++ return (int64_t) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Divide packed single-precision (32-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise division intrinsic, we implement ++// division by multiplying a by b's reciprocal before using the Newton-Raphson ++// method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ps ++FORCE_INLINE __m128 _mm_div_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vdivq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(b)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(a), recip)); ++#endif ++} ++ ++// Divide the lower single-precision (32-bit) floating-point element in a by the ++// lower single-precision (32-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper 3 packed elements from a to ++// the upper elements of dst. ++// Warning: ARMv7-A does not produce the same result compared to Intel and not ++// IEEE-compliant. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ss ++FORCE_INLINE __m128 _mm_div_ss(__m128 a, __m128 b) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_div_ps(a, b)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_pi16 ++#define _mm_extract_pi16(a, imm) \ ++ (int32_t) vget_lane_u16(vreinterpret_u16_m64(a), (imm)) ++ ++// Free aligned memory that was allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_free ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void _mm_free(void *addr) ++{ ++ free(addr); ++} ++#endif ++ ++FORCE_INLINE uint64_t _sse2neon_get_fpcr(void) ++{ ++ uint64_t value; ++#if defined(_MSC_VER) ++ value = _ReadStatusReg(ARM64_FPCR); ++#else ++ __asm__ __volatile__("mrs %0, FPCR" : "=r"(value)); /* read */ ++#endif ++ return value; ++} ++ ++FORCE_INLINE void _sse2neon_set_fpcr(uint64_t value) ++{ ++#if defined(_MSC_VER) ++ _WriteStatusReg(ARM64_FPCR, value); ++#else ++ __asm__ __volatile__("msr FPCR, %0" ::"r"(value)); /* write */ ++#endif ++} ++ ++// Macro: Get the flush zero bits from the MXCSR control and status register. ++// The flush zero may contain any of the following flags: _MM_FLUSH_ZERO_ON or ++// _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_FLUSH_ZERO_MODE ++FORCE_INLINE unsigned int _sse2neon_mm_get_flush_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_FLUSH_ZERO_ON : _MM_FLUSH_ZERO_OFF; ++} ++ ++// Macro: Get the rounding mode bits from the MXCSR control and status register. ++// The rounding mode may contain any of the following flags: _MM_ROUND_NEAREST, ++// _MM_ROUND_DOWN, _MM_ROUND_UP, _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_ROUNDING_MODE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ if (r.field.bit22) { ++ return r.field.bit23 ? _MM_ROUND_TOWARD_ZERO : _MM_ROUND_UP; ++ } else { ++ return r.field.bit23 ? _MM_ROUND_DOWN : _MM_ROUND_NEAREST; ++ } ++} ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_pi16 ++#define _mm_insert_pi16(a, b, imm) \ ++ vreinterpret_m64_s16(vset_lane_s16((b), vreinterpret_s16_m64(a), (imm))) ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps ++FORCE_INLINE __m128 _mm_load_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// ++// dst[31:0] := MEM[mem_addr+31:mem_addr] ++// dst[63:32] := MEM[mem_addr+31:mem_addr] ++// dst[95:64] := MEM[mem_addr+31:mem_addr] ++// dst[127:96] := MEM[mem_addr+31:mem_addr] ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps1 ++#define _mm_load_ps1 _mm_load1_ps ++ ++// Load a single-precision (32-bit) floating-point element from memory into the ++// lower of dst, and zero the upper 3 elements. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ss ++FORCE_INLINE __m128 _mm_load_ss(const float *p) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(*p, vdupq_n_f32(0), 0)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_ps ++FORCE_INLINE __m128 _mm_load1_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_dup_f32(p)); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// upper 2 elements of dst, and copy the lower 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pi ++FORCE_INLINE __m128 _mm_loadh_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vget_low_f32(a), vld1_f32((const float32_t *) p))); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// lower 2 elements of dst, and copy the upper 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pi ++FORCE_INLINE __m128 _mm_loadl_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vld1_f32((const float32_t *) p), vget_high_f32(a))); ++} ++ ++// Load 4 single-precision (32-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_ps ++FORCE_INLINE __m128 _mm_loadr_ps(const float *p) ++{ ++ float32x4_t v = vrev64q_f32(vld1q_f32(p)); ++ return vreinterpretq_m128_f32(vextq_f32(v, v, 2)); ++} ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_ps ++FORCE_INLINE __m128 _mm_loadu_ps(const float *p) ++{ ++ // for neon, alignment doesn't matter, so _mm_load_ps and _mm_loadu_ps are ++ // equivalent for neon ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load unaligned 16-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si16 ++FORCE_INLINE __m128i _mm_loadu_si16(const void *p) ++{ ++ return vreinterpretq_m128i_s16( ++ vsetq_lane_s16(*(const unaligned_int16_t *) p, vdupq_n_s16(0), 0)); ++} ++ ++// Load unaligned 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si64 ++FORCE_INLINE __m128i _mm_loadu_si64(const void *p) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(*(const unaligned_int64_t *) p, vdupq_n_s64(0), 0)); ++} ++ ++// Allocate size bytes of memory, aligned to the alignment specified in align, ++// and return a pointer to the allocated memory. _mm_free should be used to free ++// memory that is allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_malloc ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void *_mm_malloc(size_t size, size_t align) ++{ ++ void *ptr; ++ if (align == 1) ++ return malloc(size); ++ if (align == 2 || (sizeof(void *) == 8 && align == 4)) ++ align = sizeof(void *); ++ if (!posix_memalign(&ptr, align, size)) ++ return ptr; ++ return NULL; ++} ++#endif ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmove_si64 ++FORCE_INLINE void _mm_maskmove_si64(__m64 a, __m64 mask, char *mem_addr) ++{ ++ int8x8_t shr_mask = vshr_n_s8(vreinterpret_s8_m64(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x8_t masked = ++ vbsl_s8(vreinterpret_u8_s8(shr_mask), vreinterpret_s8_m64(a), ++ vreinterpret_s8_u64(vget_low_u64(vreinterpretq_u64_m128(b)))); ++ vst1_s8((int8_t *) mem_addr, masked); ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_maskmovq ++#define _m_maskmovq(a, mask, mem_addr) _mm_maskmove_si64(a, mask, mem_addr) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pi16 ++FORCE_INLINE __m64 _mm_max_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmax_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) maximum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ps ++FORCE_INLINE __m128 _mm_max_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcgtq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vmaxq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pu8 ++FORCE_INLINE __m64 _mm_max_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmax_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) maximum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ss ++FORCE_INLINE __m128 _mm_max_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_max_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pi16 ++FORCE_INLINE __m64 _mm_min_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmin_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) minimum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ps ++FORCE_INLINE __m128 _mm_min_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcltq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vminq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pu8 ++FORCE_INLINE __m64 _mm_min_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmin_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) minimum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ss ++FORCE_INLINE __m128 _mm_min_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_min_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the lower single-precision (32-bit) floating-point element from b to the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_ss ++FORCE_INLINE __m128 _mm_move_ss(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(vgetq_lane_f32(vreinterpretq_f32_m128(b), 0), ++ vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the upper 2 single-precision (32-bit) floating-point elements from b to ++// the lower 2 elements of dst, and copy the upper 2 elements from a to the ++// upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehl_ps ++FORCE_INLINE __m128 _mm_movehl_ps(__m128 a, __m128 b) ++{ ++#if defined(aarch64__) ++ return vreinterpretq_m128_u64( ++ vzip2q_u64(vreinterpretq_u64_m128(b), vreinterpretq_u64_m128(a))); ++#else ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(b32, a32)); ++#endif ++} ++ ++// Move the lower 2 single-precision (32-bit) floating-point elements from b to ++// the upper 2 elements of dst, and copy the lower 2 elements from a to the ++// lower 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movelh_ps ++FORCE_INLINE __m128 _mm_movelh_ps(__m128 __A, __m128 __B) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(__A)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(__B)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pi8 ++FORCE_INLINE int _mm_movemask_pi8(__m64 a) ++{ ++ uint8x8_t input = vreinterpret_u8_m64(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int8_t shift[8] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint8x8_t tmp = vshr_n_u8(input, 7); ++ return vaddv_u8(vshl_u8(tmp, vld1_s8(shift))); ++#else ++ // Refer the implementation of `_mm_movemask_epi8` ++ uint16x4_t high_bits = vreinterpret_u16_u8(vshr_n_u8(input, 7)); ++ uint32x2_t paired16 = ++ vreinterpret_u32_u16(vsra_n_u16(high_bits, high_bits, 7)); ++ uint8x8_t paired32 = ++ vreinterpret_u8_u32(vsra_n_u32(paired16, paired16, 14)); ++ return vget_lane_u8(paired32, 0) | ((int) vget_lane_u8(paired32, 4) << 4); ++#endif ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed single-precision (32-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_ps ++FORCE_INLINE int _mm_movemask_ps(__m128 a) ++{ ++ uint32x4_t input = vreinterpretq_u32_m128(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int32_t shift[4] = {0, 1, 2, 3}; ++ uint32x4_t tmp = vshrq_n_u32(input, 31); ++ return vaddvq_u32(vshlq_u32(tmp, vld1q_s32(shift))); ++#else ++ // Uses the exact same method as _mm_movemask_epi8, see that for details. ++ // Shift out everything but the sign bits with a 32-bit unsigned shift ++ // right. ++ uint64x2_t high_bits = vreinterpretq_u64_u32(vshrq_n_u32(input, 31)); ++ // Merge the two pairs together with a 64-bit unsigned shift right + add. ++ uint8x16_t paired = ++ vreinterpretq_u8_u64(vsraq_n_u64(high_bits, high_bits, 31)); ++ // Extract the result. ++ return vgetq_lane_u8(paired, 0) | (vgetq_lane_u8(paired, 8) << 2); ++#endif ++} ++ ++// Multiply packed single-precision (32-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ps ++FORCE_INLINE_OPTNONE __m128 _mm_mul_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vmulq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Multiply the lower single-precision (32-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ss ++FORCE_INLINE __m128 _mm_mul_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_mul_ps(a, b)); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_pu16 ++FORCE_INLINE __m64 _mm_mulhi_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16(vshrn_n_u32( ++ vmull_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b)), 16)); ++} ++ ++// Compute the bitwise OR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_ps ++FORCE_INLINE __m128 _mm_or_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vorrq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgb ++#define _m_pavgb(a, b) _mm_avg_pu8(a, b) ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgw ++#define _m_pavgw(a, b) _mm_avg_pu16(a, b) ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pextrw ++#define _m_pextrw(a, imm) _mm_extract_pi16(a, imm) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_pinsrw ++#define _m_pinsrw(a, i, imm) _mm_insert_pi16(a, i, imm) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxsw ++#define _m_pmaxsw(a, b) _mm_max_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxub ++#define _m_pmaxub(a, b) _mm_max_pu8(a, b) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminsw ++#define _m_pminsw(a, b) _mm_min_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminub ++#define _m_pminub(a, b) _mm_min_pu8(a, b) ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmovmskb ++#define _m_pmovmskb(a) _mm_movemask_pi8(a) ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmulhuw ++#define _m_pmulhuw(a, b) _mm_mulhi_pu16(a, b) ++ ++// Fetch the line of data from memory that contains address p to a location in ++// the cache hierarchy specified by the locality hint i. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_prefetch ++FORCE_INLINE void _mm_prefetch(char const *p, int i) ++{ ++ (void) i; ++#if defined(_MSC_VER) ++ switch (i) { ++ case _MM_HINT_NTA: ++ __prefetch2(p, 1); ++ break; ++ case _MM_HINT_T0: ++ __prefetch2(p, 0); ++ break; ++ case _MM_HINT_T1: ++ __prefetch2(p, 2); ++ break; ++ case _MM_HINT_T2: ++ __prefetch2(p, 4); ++ break; ++ } ++#else ++ switch (i) { ++ case _MM_HINT_NTA: ++ __builtin_prefetch(p, 0, 0); ++ break; ++ case _MM_HINT_T0: ++ __builtin_prefetch(p, 0, 3); ++ break; ++ case _MM_HINT_T1: ++ __builtin_prefetch(p, 0, 2); ++ break; ++ case _MM_HINT_T2: ++ __builtin_prefetch(p, 0, 1); ++ break; ++ } ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_psadbw ++#define _m_psadbw(a, b) _mm_sad_pu8(a, b) ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pshufw ++#define _m_pshufw(a, imm) _mm_shuffle_pi16(a, imm) ++ ++// Compute the approximate reciprocal of packed single-precision (32-bit) ++// floating-point elements in a, and store the results in dst. The maximum ++// relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ps ++FORCE_INLINE __m128 _mm_rcp_ps(__m128 in) ++{ ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(in)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#if SSE2NEON_PRECISE_DIV ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#endif ++ return vreinterpretq_m128_f32(recip); ++} ++ ++// Compute the approximate reciprocal of the lower single-precision (32-bit) ++// floating-point element in a, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ss ++FORCE_INLINE __m128 _mm_rcp_ss(__m128 a) ++{ ++ return _mm_move_ss(a, _mm_rcp_ps(a)); ++} ++ ++// Compute the approximate reciprocal square root of packed single-precision ++// (32-bit) floating-point elements in a, and store the results in dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ps ++FORCE_INLINE __m128 _mm_rsqrt_ps(__m128 in) ++{ ++ float32x4_t out = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Generate masks for detecting whether input has any 0.0f/-0.0f ++ // (which becomes positive/negative infinity by IEEE-754 arithmetic rules). ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t neg_inf = vdupq_n_u32(0xFF800000); ++ const uint32x4_t has_pos_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(out)); ++ const uint32x4_t has_neg_zero = ++ vceqq_u32(neg_inf, vreinterpretq_u32_f32(out)); ++ ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#if SSE2NEON_PRECISE_SQRT ++ // Additional Netwon-Raphson iteration for accuracy ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#endif ++ ++ // Set output vector element to infinity/negative-infinity if ++ // the corresponding input vector element is 0.0f/-0.0f. ++ out = vbslq_f32(has_pos_zero, (float32x4_t) pos_inf, out); ++ out = vbslq_f32(has_neg_zero, (float32x4_t) neg_inf, out); ++ ++ return vreinterpretq_m128_f32(out); ++} ++ ++// Compute the approximate reciprocal square root of the lower single-precision ++// (32-bit) floating-point element in a, store the result in the lower element ++// of dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ss ++FORCE_INLINE __m128 _mm_rsqrt_ss(__m128 in) ++{ ++ return vsetq_lane_f32(vgetq_lane_f32(_mm_rsqrt_ps(in), 0), in, 0); ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_pu8 ++FORCE_INLINE __m64 _mm_sad_pu8(__m64 a, __m64 b) ++{ ++ uint64x1_t t = vpaddl_u32(vpaddl_u16( ++ vpaddl_u8(vabd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))))); ++ return vreinterpret_m64_u16( ++ vset_lane_u16((int) vget_lane_u64(t, 0), vdup_n_u16(0), 0)); ++} ++ ++// Macro: Set the flush zero bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The flush zero may contain any of the ++// following flags: _MM_FLUSH_ZERO_ON or _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_FLUSH_ZERO_MODE ++FORCE_INLINE void _sse2neon_mm_set_flush_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_FLUSH_ZERO_MASK) == _MM_FLUSH_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps ++FORCE_INLINE __m128 _mm_set_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {x, y, z, w}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps1 ++FORCE_INLINE __m128 _mm_set_ps1(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Macro: Set the rounding mode bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The rounding mode may contain any of ++// the following flags: _MM_ROUND_NEAREST, _MM_ROUND_DOWN, _MM_ROUND_UP, ++// _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_ROUNDING_MODE ++FORCE_INLINE void _MM_SET_ROUNDING_MODE(int rounding) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ switch (rounding) { ++ case _MM_ROUND_TOWARD_ZERO: ++ r.field.bit22 = 1; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_DOWN: ++ r.field.bit22 = 0; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_UP: ++ r.field.bit22 = 1; ++ r.field.bit23 = 0; ++ break; ++ default: //_MM_ROUND_NEAREST ++ r.field.bit22 = 0; ++ r.field.bit23 = 0; ++ } ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Copy single-precision (32-bit) floating-point element a to the lower element ++// of dst, and zero the upper 3 elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ss ++FORCE_INLINE __m128 _mm_set_ss(float a) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(a, vdupq_n_f32(0), 0)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_ps ++FORCE_INLINE __m128 _mm_set1_ps(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Set the MXCSR control and status register with the value in unsigned 32-bit ++// integer a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setcsr ++// FIXME: _mm_setcsr() implementation supports changing the rounding mode only. ++FORCE_INLINE void _mm_setcsr(unsigned int a) ++{ ++ _MM_SET_ROUNDING_MODE(a); ++} ++ ++// Get the unsigned 32-bit value of the MXCSR control and status register. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_getcsr ++// FIXME: _mm_getcsr() implementation supports reading the rounding mode only. ++FORCE_INLINE unsigned int _mm_getcsr(void) ++{ ++ return _MM_GET_ROUNDING_MODE(); ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_ps ++FORCE_INLINE __m128 _mm_setr_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {w, z, y, x}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Return vector of type __m128 with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_ps ++FORCE_INLINE __m128 _mm_setzero_ps(void) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(0)); ++} ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi16 ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pi16(a, imm) \ ++ vreinterpret_m64_s16(vshuffle_s16( \ ++ vreinterpret_s16_m64(a), vreinterpret_s16_m64(a), (imm & 0x3), \ ++ ((imm >> 2) & 0x3), ((imm >> 4) & 0x3), ((imm >> 6) & 0x3))) ++#else ++#define _mm_shuffle_pi16(a, imm) \ ++ _sse2neon_define1( \ ++ __m64, a, int16x4_t ret; \ ++ ret = vmov_n_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), (imm) & (0x3))); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpret_m64_s16(ret));) ++#endif ++ ++// Perform a serializing operation on all store-to-memory instructions that were ++// issued prior to this instruction. Guarantees that every store instruction ++// that precedes, in program order, is globally visible before any store ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sfence ++FORCE_INLINE void _mm_sfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory and store-to-memory ++// instructions that were issued prior to this instruction. Guarantees that ++// every memory access that precedes, in program order, the memory fence ++// instruction is globally visible before any memory instruction which follows ++// the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mfence ++FORCE_INLINE void _mm_mfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory instructions that ++// were issued prior to this instruction. Guarantees that every load instruction ++// that precedes, in program order, is globally visible before any load ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lfence ++FORCE_INLINE void _mm_lfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// FORCE_INLINE __m128 _mm_shuffle_ps(__m128 a, __m128 b, __constrange(0,255) ++// int imm) ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_ps(a, b, imm) \ ++ __extension__({ \ ++ float32x4_t _input1 = vreinterpretq_f32_m128(a); \ ++ float32x4_t _input2 = vreinterpretq_f32_m128(b); \ ++ float32x4_t _shuf = \ ++ vshuffleq_s32(_input1, _input2, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ (((imm) >> 4) & 0x3) + 4, (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128_f32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_ps(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128, a, b, __m128 ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_1032(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_ps_2301(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_ps_0321(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_ps_2103(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_movelh_ps(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_1001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_ps_0101(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 1, 0): \ ++ ret = _mm_shuffle_ps_3210(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 1, 1): \ ++ ret = _mm_shuffle_ps_0011(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 2, 2): \ ++ ret = _mm_shuffle_ps_0022(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 0, 0): \ ++ ret = _mm_shuffle_ps_2200(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 0, 2): \ ++ ret = _mm_shuffle_ps_3202(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 3, 2): \ ++ ret = _mm_movehl_ps(_b, _a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 3, 3): \ ++ ret = _mm_shuffle_ps_1133(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 1, 0): \ ++ ret = _mm_shuffle_ps_2010(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_2001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_2032(_a, _b); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_ps_default(_a, _b, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Compute the square root of packed single-precision (32-bit) floating-point ++// elements in a, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise square root intrinsic, we implement ++// square root by multiplying input in with its reciprocal square root before ++// using the Newton-Raphson method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ps ++FORCE_INLINE __m128 _mm_sqrt_ps(__m128 in) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) && !SSE2NEON_PRECISE_SQRT ++ return vreinterpretq_m128_f32(vsqrtq_f32(vreinterpretq_f32_m128(in))); ++#else ++ float32x4_t recip = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Test for vrsqrteq_f32(0) -> positive infinity case. ++ // Change to zero, so that s * 1/sqrt(s) result is zero too. ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t div_by_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(recip)); ++ recip = vreinterpretq_f32_u32( ++ vandq_u32(vmvnq_u32(div_by_zero), vreinterpretq_u32_f32(recip))); ++ ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ ++ // sqrt(s) = s * 1/sqrt(s) ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(in), recip)); ++#endif ++} ++ ++// Compute the square root of the lower single-precision (32-bit) floating-point ++// element in a, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ss ++FORCE_INLINE __m128 _mm_sqrt_ss(__m128 in) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_sqrt_ps(in)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(in), 0)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps ++FORCE_INLINE void _mm_store_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps1 ++FORCE_INLINE void _mm_store_ps1(float *p, __m128 a) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ vst1q_f32(p, vdupq_n_f32(a0)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ss ++FORCE_INLINE void _mm_store_ss(float *p, __m128 a) ++{ ++ vst1q_lane_f32(p, vreinterpretq_f32_m128(a), 0); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store1_ps ++#define _mm_store1_ps _mm_store_ps1 ++ ++// Store the upper 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pi ++FORCE_INLINE void _mm_storeh_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_high_f32(a)); ++} ++ ++// Store the lower 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pi ++FORCE_INLINE void _mm_storel_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_low_f32(a)); ++} ++ ++// Store 4 single-precision (32-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_ps ++FORCE_INLINE void _mm_storer_ps(float *p, __m128 a) ++{ ++ float32x4_t tmp = vrev64q_f32(vreinterpretq_f32_m128(a)); ++ float32x4_t rev = vextq_f32(tmp, tmp, 2); ++ vst1q_f32(p, rev); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_ps ++FORCE_INLINE void _mm_storeu_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Stores 16-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si16 ++FORCE_INLINE void _mm_storeu_si16(void *p, __m128i a) ++{ ++ vst1q_lane_s16((int16_t *) p, vreinterpretq_s16_m128i(a), 0); ++} ++ ++// Stores 64-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si64 ++FORCE_INLINE void _mm_storeu_si64(void *p, __m128i a) ++{ ++ vst1q_lane_s64((int64_t *) p, vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Store 64-bits of integer data from a into memory using a non-temporal memory ++// hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pi ++FORCE_INLINE void _mm_stream_pi(__m64 *p, __m64 a) ++{ ++ vst1_s64((int64_t *) p, vreinterpret_s64_m64(a)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating- ++// point elements) from a into memory using a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_ps ++FORCE_INLINE void _mm_stream_ps(float *p, __m128 a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (float32x4_t *) p); ++#else ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++#endif ++} ++ ++// Subtract packed single-precision (32-bit) floating-point elements in b from ++// packed single-precision (32-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ps ++FORCE_INLINE __m128 _mm_sub_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Subtract the lower single-precision (32-bit) floating-point element in b from ++// the lower single-precision (32-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper 3 packed elements from ++// a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ss ++FORCE_INLINE __m128 _mm_sub_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_sub_ps(a, b)); ++} ++ ++// Macro: Transpose the 4x4 matrix formed by the 4 rows of single-precision ++// (32-bit) floating-point elements in row0, row1, row2, and row3, and store the ++// transposed matrix in these vectors (row0 now contains column 0, etc.). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=MM_TRANSPOSE4_PS ++#define _MM_TRANSPOSE4_PS(row0, row1, row2, row3) \ ++ do { \ ++ float32x4x2_t ROW01 = vtrnq_f32(row0, row1); \ ++ float32x4x2_t ROW23 = vtrnq_f32(row2, row3); \ ++ row0 = vcombine_f32(vget_low_f32(ROW01.val[0]), \ ++ vget_low_f32(ROW23.val[0])); \ ++ row1 = vcombine_f32(vget_low_f32(ROW01.val[1]), \ ++ vget_low_f32(ROW23.val[1])); \ ++ row2 = vcombine_f32(vget_high_f32(ROW01.val[0]), \ ++ vget_high_f32(ROW23.val[0])); \ ++ row3 = vcombine_f32(vget_high_f32(ROW01.val[1]), \ ++ vget_high_f32(ROW23.val[1])); \ ++ } while (0) ++ ++// according to the documentation, these intrinsics behave the same as the ++// non-'u' versions. We'll just alias them here. ++#define _mm_ucomieq_ss _mm_comieq_ss ++#define _mm_ucomige_ss _mm_comige_ss ++#define _mm_ucomigt_ss _mm_comigt_ss ++#define _mm_ucomile_ss _mm_comile_ss ++#define _mm_ucomilt_ss _mm_comilt_ss ++#define _mm_ucomineq_ss _mm_comineq_ss ++ ++// Return vector of type __m128i with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_undefined_si128 ++FORCE_INLINE __m128i _mm_undefined_si128(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128i a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_si128(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Return vector of type __m128 with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_ps ++FORCE_INLINE __m128 _mm_undefined_ps(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128 a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_ps(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the high half a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_ps ++FORCE_INLINE __m128 _mm_unpackhi_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_ps ++FORCE_INLINE __m128 _mm_unpacklo_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Compute the bitwise XOR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_ps ++FORCE_INLINE __m128 _mm_xor_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ veorq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++/* SSE2 */ ++ ++// Add packed 16-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi16 ++FORCE_INLINE __m128i _mm_add_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed 32-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi32 ++FORCE_INLINE __m128i _mm_add_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vaddq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Add packed 64-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi64 ++FORCE_INLINE __m128i _mm_add_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vaddq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Add packed 8-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi8 ++FORCE_INLINE __m128i _mm_add_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed double-precision (64-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_pd ++FORCE_INLINE __m128d _mm_add_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1] + db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add the lower double-precision (64-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper element from ++// a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_sd ++FORCE_INLINE __m128d _mm_add_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_add_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add 64-bit integers a and b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_si64 ++FORCE_INLINE __m64 _mm_add_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vadd_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Add packed signed 16-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi16 ++FORCE_INLINE __m128i _mm_adds_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed signed 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi8 ++FORCE_INLINE __m128i _mm_adds_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed unsigned 16-bit integers in a and b using saturation, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu16 ++FORCE_INLINE __m128i _mm_adds_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqaddq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Add packed unsigned 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu8 ++FORCE_INLINE __m128i _mm_adds_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compute the bitwise AND of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_pd ++FORCE_INLINE __m128d _mm_and_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vandq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_si128 ++FORCE_INLINE __m128i _mm_and_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vandq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compute the bitwise NOT of packed double-precision (64-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_pd ++FORCE_INLINE __m128d _mm_andnot_pd(__m128d a, __m128d b) ++{ ++ // *NOTE* argument swap ++ return vreinterpretq_m128d_s64( ++ vbicq_s64(vreinterpretq_s64_m128d(b), vreinterpretq_s64_m128d(a))); ++} ++ ++// Compute the bitwise NOT of 128 bits (representing integer data) in a and then ++// AND with b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_si128 ++FORCE_INLINE __m128i _mm_andnot_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vbicq_s32(vreinterpretq_s32_m128i(b), ++ vreinterpretq_s32_m128i(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu16 ++FORCE_INLINE __m128i _mm_avg_epu16(__m128i a, __m128i b) ++{ ++ return (__m128i) vrhaddq_u16(vreinterpretq_u16_m128i(a), ++ vreinterpretq_u16_m128i(b)); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu8 ++FORCE_INLINE __m128i _mm_avg_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vrhaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bslli_si128 ++#define _mm_bslli_si128(a, imm) _mm_slli_si128(a, imm) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bsrli_si128 ++#define _mm_bsrli_si128(a, imm) _mm_srli_si128(a, imm) ++ ++// Cast vector of type __m128d to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_ps ++FORCE_INLINE __m128 _mm_castpd_ps(__m128d a) ++{ ++ return vreinterpretq_m128_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128d to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_si128 ++FORCE_INLINE __m128i _mm_castpd_si128(__m128d a) ++{ ++ return vreinterpretq_m128i_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128 to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_pd ++FORCE_INLINE __m128d _mm_castps_pd(__m128 a) ++{ ++ return vreinterpretq_m128d_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128 to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_si128 ++FORCE_INLINE __m128i _mm_castps_si128(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128i to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_pd ++FORCE_INLINE __m128d _mm_castsi128_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vreinterpretq_f64_m128i(a)); ++#else ++ return vreinterpretq_m128d_f32(vreinterpretq_f32_m128i(a)); ++#endif ++} ++ ++// Cast vector of type __m128i to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_ps ++FORCE_INLINE __m128 _mm_castsi128_ps(__m128i a) ++{ ++ return vreinterpretq_m128_s32(vreinterpretq_s32_m128i(a)); ++} ++ ++// Invalidate and flush the cache line that contains p from all levels of the ++// cache hierarchy. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clflush ++#if defined(__APPLE__) ++#include ++#endif ++FORCE_INLINE void _mm_clflush(void const *p) ++{ ++ (void) p; ++ ++ /* sys_icache_invalidate is supported since macOS 10.5. ++ * However, it does not work on non-jailbroken iOS devices, although the ++ * compilation is successful. ++ */ ++#if defined(__APPLE__) ++ sys_icache_invalidate((void *) (uintptr_t) p, SSE2NEON_CACHELINE_SIZE); ++#elif defined(__GNUC__) || defined(__clang__) ++ uintptr_t ptr = (uintptr_t) p; ++ __builtin___clear_cache((char *) ptr, ++ (char *) ptr + SSE2NEON_CACHELINE_SIZE); ++#elif (_MSC_VER) && SSE2NEON_INCLUDE_WINDOWS_H ++ FlushInstructionCache(GetCurrentProcess(), p, SSE2NEON_CACHELINE_SIZE); ++#endif ++} ++ ++// Compare packed 16-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi16 ++FORCE_INLINE __m128i _mm_cmpeq_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vceqq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed 32-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi32 ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vceqq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed 8-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi8 ++FORCE_INLINE __m128i _mm_cmpeq_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vceqq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_pd ++FORCE_INLINE __m128d _mm_cmpeq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_sd ++FORCE_INLINE __m128d _mm_cmpeq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpeq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_pd ++FORCE_INLINE __m128d _mm_cmpge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) >= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_sd ++FORCE_INLINE __m128d _mm_cmpge_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpge_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi16 ++FORCE_INLINE __m128i _mm_cmpgt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcgtq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi32 ++FORCE_INLINE __m128i _mm_cmpgt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcgtq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi8 ++FORCE_INLINE __m128i _mm_cmpgt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcgtq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_pd ++FORCE_INLINE __m128d _mm_cmpgt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_sd ++FORCE_INLINE __m128d _mm_cmpgt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpgt_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_pd ++FORCE_INLINE __m128d _mm_cmple_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) <= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_sd ++FORCE_INLINE __m128d _mm_cmple_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmple_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtw instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi16 ++FORCE_INLINE __m128i _mm_cmplt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcltq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtd instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi32 ++FORCE_INLINE __m128i _mm_cmplt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcltq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtb instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi8 ++FORCE_INLINE __m128i _mm_cmplt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcltq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_pd ++FORCE_INLINE __m128d _mm_cmplt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_sd ++FORCE_INLINE __m128d _mm_cmplt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmplt_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_pd ++FORCE_INLINE __m128d _mm_cmpneq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_s32(vmvnq_s32(vreinterpretq_s32_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vmvnq_u32(vandq_u32(cmp, swapped))); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_sd ++FORCE_INLINE __m128d _mm_cmpneq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpneq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_pd ++FORCE_INLINE __m128d _mm_cmpnge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) >= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) >= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_sd ++FORCE_INLINE __m128d _mm_cmpnge_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnge_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_cmpngt_pd ++FORCE_INLINE __m128d _mm_cmpngt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) > (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) > (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_sd ++FORCE_INLINE __m128d _mm_cmpngt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpngt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_pd ++FORCE_INLINE __m128d _mm_cmpnle_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) <= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) <= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_sd ++FORCE_INLINE __m128d _mm_cmpnle_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnle_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_pd ++FORCE_INLINE __m128d _mm_cmpnlt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) < (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) < (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_sd ++FORCE_INLINE __m128d _mm_cmpnlt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnlt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_pd ++FORCE_INLINE __m128d _mm_cmpord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Excluding NaNs, any two floating point numbers can be compared. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_u64(vandq_u64(not_nan_a, not_nan_b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_sd ++FORCE_INLINE __m128d _mm_cmpord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_pd ++FORCE_INLINE __m128d _mm_cmpunord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Two NaNs are not equal in comparison operation. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_s32( ++ vmvnq_s32(vreinterpretq_s32_u64(vandq_u64(not_nan_a, not_nan_b)))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_sd ++FORCE_INLINE __m128d _mm_cmpunord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpunord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_sd ++FORCE_INLINE int _mm_comige_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgeq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 >= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_sd ++FORCE_INLINE int _mm_comigt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgtq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 > *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_sd ++FORCE_INLINE int _mm_comile_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcleq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 <= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_sd ++FORCE_INLINE int _mm_comilt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcltq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 < *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_sd ++FORCE_INLINE int _mm_comieq_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vceqq_f64(a, b), 0) & 0x1; ++#else ++ uint32x4_t a_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(a)); ++ uint32x4_t b_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(b), vreinterpretq_u32_m128d(b)); ++ uint32x4_t a_and_b_not_nan = vandq_u32(a_not_nan, b_not_nan); ++ uint32x4_t a_eq_b = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint64x2_t and_results = vandq_u64(vreinterpretq_u64_u32(a_and_b_not_nan), ++ vreinterpretq_u64_u32(a_eq_b)); ++ return vgetq_lane_u64(and_results, 0) & 0x1; ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_sd ++FORCE_INLINE int _mm_comineq_sd(__m128d a, __m128d b) ++{ ++ return !_mm_comieq_sd(a, b); ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_pd ++FORCE_INLINE __m128d _mm_cvtepi32_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a))))); ++#else ++ double a0 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++ double a1 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_ps ++FORCE_INLINE __m128 _mm_cvtepi32_ps(__m128i a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_epi32 ++FORCE_INLINE_OPTNONE __m128i _mm_cvtpd_epi32(__m128d a) ++{ ++// vrnd32xq_f64 not supported on clang ++#if defined(__ARM_FEATURE_FRINT) && !defined(__clang__) ++ float64x2_t rounded = vrnd32xq_f64(vreinterpretq_f64_m128d(a)); ++ int64x2_t integers = vcvtq_s64_f64(rounded); ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vmovn_s64(integers), vdup_n_s32(0))); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) d1, (int32_t) d0); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_pi32 ++FORCE_INLINE_OPTNONE __m64 _mm_cvtpd_pi32(__m128d a) ++{ ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) d0, (int32_t) d1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed single-precision (32-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_ps ++FORCE_INLINE __m128 _mm_cvtpd_ps(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float32x2_t tmp = vcvt_f32_f64(vreinterpretq_f64_m128d(a)); ++ return vreinterpretq_m128_f32(vcombine_f32(tmp, vdup_n_f32(0))); ++#else ++ float a0 = (float) ((double *) &a)[0]; ++ float a1 = (float) ((double *) &a)[1]; ++ return _mm_set_ps(0, 0, a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_pd ++FORCE_INLINE __m128d _mm_cvtpi32_pd(__m64 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vreinterpret_s32_m64(a)))); ++#else ++ double a0 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 0); ++ double a1 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_epi32 ++// *NOTE*. The default rounding mode on SSE is 'round to even', which ARMv7-A ++// does not support! It is supported on ARMv8-A however. ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128 a) ++{ ++#if defined(__ARM_FEATURE_FRINT) ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vrnd32xq_f32(a))); ++#elif (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: ++ return vreinterpretq_m128i_s32(vcvtnq_s32_f32(a)); ++ case _MM_ROUND_DOWN: ++ return vreinterpretq_m128i_s32(vcvtmq_s32_f32(a)); ++ case _MM_ROUND_UP: ++ return vreinterpretq_m128i_s32(vcvtpq_s32_f32(a)); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(a)); ++ } ++#else ++ float *f = (float *) &a; ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128i_s32( ++ vbslq_s32(is_delta_half, r_even, r_normal)); ++ } ++ case _MM_ROUND_DOWN: ++ return _mm_set_epi32(floorf(f[3]), floorf(f[2]), floorf(f[1]), ++ floorf(f[0])); ++ case _MM_ROUND_UP: ++ return _mm_set_epi32(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ++ ceilf(f[0])); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return _mm_set_epi32((int32_t) f[3], (int32_t) f[2], (int32_t) f[1], ++ (int32_t) f[0]); ++ } ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed double-precision (64-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pd ++FORCE_INLINE __m128d _mm_cvtps_pd(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvt_f64_f32(vget_low_f32(vreinterpretq_f32_m128(a)))); ++#else ++ double a0 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ double a1 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Copy the lower double-precision (64-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_f64 ++FORCE_INLINE double _mm_cvtsd_f64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (double) vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0); ++#else ++ return ((double *) &a)[0]; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si32 ++FORCE_INLINE int32_t _mm_cvtsd_si32(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int32_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int32_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64 ++FORCE_INLINE int64_t _mm_cvtsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int64_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64x ++#define _mm_cvtsd_si64x _mm_cvtsd_si64 ++ ++// Convert the lower double-precision (64-bit) floating-point element in b to a ++// single-precision (32-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_ss ++FORCE_INLINE __m128 _mm_cvtsd_ss(__m128 a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32(vsetq_lane_f32( ++ vget_lane_f32(vcvt_f32_f64(vreinterpretq_f64_m128d(b)), 0), ++ vreinterpretq_f32_m128(a), 0)); ++#else ++ return vreinterpretq_m128_f32(vsetq_lane_f32((float) ((double *) &b)[0], ++ vreinterpretq_f32_m128(a), 0)); ++#endif ++} ++ ++// Copy the lower 32-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si32 ++FORCE_INLINE int _mm_cvtsi128_si32(__m128i a) ++{ ++ return vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64 ++FORCE_INLINE int64_t _mm_cvtsi128_si64(__m128i a) ++{ ++ return vgetq_lane_s64(vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Convert the signed 32-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_sd ++FORCE_INLINE __m128d _mm_cvtsi32_sd(__m128d a, int32_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Copy 32-bit integer a to the lower elements of dst, and zero the upper ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_si128 ++FORCE_INLINE __m128i _mm_cvtsi32_si128(int a) ++{ ++ return vreinterpretq_m128i_s32(vsetq_lane_s32(a, vdupq_n_s32(0), 0)); ++} ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_sd ++FORCE_INLINE __m128d _mm_cvtsi64_sd(__m128d a, int64_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_si128 ++FORCE_INLINE __m128i _mm_cvtsi64_si128(int64_t a) ++{ ++ return vreinterpretq_m128i_s64(vsetq_lane_s64(a, vdupq_n_s64(0), 0)); ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_si128 ++#define _mm_cvtsi64x_si128(a) _mm_cvtsi64_si128(a) ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_sd ++#define _mm_cvtsi64x_sd(a, b) _mm_cvtsi64_sd(a, b) ++ ++// Convert the lower single-precision (32-bit) floating-point element in b to a ++// double-precision (64-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_sd ++FORCE_INLINE __m128d _mm_cvtss_sd(__m128d a, __m128 b) ++{ ++ double d = (double) vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(d, vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &d, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_epi32 ++FORCE_INLINE __m128i _mm_cvttpd_epi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) a1, (int32_t) a0); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_pi32 ++FORCE_INLINE __m64 _mm_cvttpd_pi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) a0, (int32_t) a1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_epi32 ++FORCE_INLINE __m128i _mm_cvttps_epi32(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a))); ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si32 ++FORCE_INLINE int32_t _mm_cvttsd_si32(__m128d a) ++{ ++ double ret = *((double *) &a); ++ return (int32_t) ret; ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64 ++FORCE_INLINE int64_t _mm_cvttsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_s64(vcvtq_s64_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ double ret = *((double *) &a); ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64x ++#define _mm_cvttsd_si64x(a) _mm_cvttsd_si64(a) ++ ++// Divide packed double-precision (64-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_pd ++FORCE_INLINE __m128d _mm_div_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] / db[0]; ++ c[1] = da[1] / db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Divide the lower double-precision (64-bit) floating-point element in a by the ++// lower double-precision (64-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper element from a to the upper ++// element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_sd ++FORCE_INLINE __m128d _mm_div_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t tmp = ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1), tmp, 1)); ++#else ++ return _mm_move_sd(a, _mm_div_pd(a, b)); ++#endif ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi16 ++// FORCE_INLINE int _mm_extract_epi16(__m128i a, __constrange(0,8) int imm) ++#define _mm_extract_epi16(a, imm) \ ++ vgetq_lane_u16(vreinterpretq_u16_m128i(a), (imm)) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi16 ++// FORCE_INLINE __m128i _mm_insert_epi16(__m128i a, int b, ++// __constrange(0,8) int imm) ++#define _mm_insert_epi16(a, b, imm) \ ++ vreinterpretq_m128i_s16( \ ++ vsetq_lane_s16((b), vreinterpretq_s16_m128i(a), (imm))) ++ ++// Load 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd ++FORCE_INLINE __m128d _mm_load_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64(p)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], fp[2], fp[3]}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd1 ++#define _mm_load_pd1 _mm_load1_pd ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower of dst, and zero the upper element. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_sd ++FORCE_INLINE __m128d _mm_load_sd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(*p, vdupq_n_f64(0), 0)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], 0, 0}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_si128 ++FORCE_INLINE __m128i _mm_load_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const int32_t *) p)); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_pd ++FORCE_INLINE __m128d _mm_load1_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_dup_f64(p)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(const int64_t *) p)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// upper element of dst, and copy the lower element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pd ++FORCE_INLINE __m128d _mm_loadh_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vget_low_f64(vreinterpretq_f64_m128d(a)), vld1_f64(p))); ++#else ++ return vreinterpretq_m128d_f32(vcombine_f32( ++ vget_low_f32(vreinterpretq_f32_m128d(a)), vld1_f32((const float *) p))); ++#endif ++} ++ ++// Load 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_epi64 ++FORCE_INLINE __m128i _mm_loadl_epi64(__m128i const *p) ++{ ++ /* Load the lower 64 bits of the value pointed to by p into the ++ * lower 64 bits of the result, zeroing the upper 64 bits of the result. ++ */ ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vld1_s32((int32_t const *) p), vcreate_s32(0))); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower element of dst, and copy the upper element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pd ++FORCE_INLINE __m128d _mm_loadl_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vld1_f64(p), vget_high_f64(vreinterpretq_f64_m128d(a)))); ++#else ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vld1_f32((const float *) p), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++#endif ++} ++ ++// Load 2 double-precision (64-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_pd ++FORCE_INLINE __m128d _mm_loadr_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t v = vld1q_f64(p); ++ return vreinterpretq_m128d_f64(vextq_f64(v, v, 1)); ++#else ++ int64x2_t v = vld1q_s64((const int64_t *) p); ++ return vreinterpretq_m128d_s64(vextq_s64(v, v, 1)); ++#endif ++} ++ ++// Loads two double-precision from unaligned memory, floating-point values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_pd ++FORCE_INLINE __m128d _mm_loadu_pd(const double *p) ++{ ++ return _mm_load_pd(p); ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si128 ++FORCE_INLINE __m128i _mm_loadu_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const unaligned_int32_t *) p)); ++} ++ ++// Load unaligned 32-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si32 ++FORCE_INLINE __m128i _mm_loadu_si32(const void *p) ++{ ++ return vreinterpretq_m128i_s32( ++ vsetq_lane_s32(*(const unaligned_int32_t *) p, vdupq_n_s32(0), 0)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Horizontally add adjacent pairs of intermediate ++// 32-bit integers, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_madd_epi16 ++FORCE_INLINE __m128i _mm_madd_epi16(__m128i a, __m128i b) ++{ ++ int32x4_t low = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t high = ++ vmull_high_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b)); ++ ++ return vreinterpretq_m128i_s32(vpaddq_s32(low, high)); ++#else ++ int32x4_t high = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ int32x2_t low_sum = vpadd_s32(vget_low_s32(low), vget_high_s32(low)); ++ int32x2_t high_sum = vpadd_s32(vget_low_s32(high), vget_high_s32(high)); ++ ++ return vreinterpretq_m128i_s32(vcombine_s32(low_sum, high_sum)); ++#endif ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. mem_addr does not need to be aligned ++// on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmoveu_si128 ++FORCE_INLINE void _mm_maskmoveu_si128(__m128i a, __m128i mask, char *mem_addr) ++{ ++ int8x16_t shr_mask = vshrq_n_s8(vreinterpretq_s8_m128i(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x16_t masked = ++ vbslq_s8(vreinterpretq_u8_s8(shr_mask), vreinterpretq_s8_m128i(a), ++ vreinterpretq_s8_m128(b)); ++ vst1q_s8((int8_t *) mem_addr, masked); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi16 ++FORCE_INLINE __m128i _mm_max_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmaxq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu8 ++FORCE_INLINE __m128i _mm_max_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vmaxq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pd ++FORCE_INLINE __m128d _mm_max_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcgtq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vmaxq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? a1 : b1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_sd ++FORCE_INLINE __m128d _mm_max_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_max_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] > db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi16 ++FORCE_INLINE __m128i _mm_min_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vminq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu8 ++FORCE_INLINE __m128i _mm_min_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vminq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pd ++FORCE_INLINE __m128d _mm_min_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcltq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vminq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? a1 : b1; ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_sd ++FORCE_INLINE __m128d _mm_min_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_min_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] < db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to the lower element of dst, and zero the ++// upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_epi64 ++FORCE_INLINE __m128i _mm_move_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(0, vreinterpretq_s64_m128i(a), 1)); ++} ++ ++// Move the lower double-precision (64-bit) floating-point element from b to the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_sd ++FORCE_INLINE __m128d _mm_move_sd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vget_low_f32(vreinterpretq_f32_m128d(b)), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_epi8 ++FORCE_INLINE int _mm_movemask_epi8(__m128i a) ++{ ++ // Use increasingly wide shifts+adds to collect the sign bits ++ // together. ++ // Since the widening shifts would be rather confusing to follow in little ++ // endian, everything will be illustrated in big endian order instead. This ++ // has a different result - the bits would actually be reversed on a big ++ // endian machine. ++ ++ // Starting input (only half the elements are shown): ++ // 89 ff 1d c0 00 10 99 33 ++ uint8x16_t input = vreinterpretq_u8_m128i(a); ++ ++ // Shift out everything but the sign bits with an unsigned shift right. ++ // ++ // Bytes of the vector:: ++ // 89 ff 1d c0 00 10 99 33 ++ // \ \ \ \ \ \ \ \ high_bits = (uint16x4_t)(input >> 7) ++ // | | | | | | | | ++ // 01 01 00 01 00 00 01 00 ++ // ++ // Bits of first important lane(s): ++ // 10001001 (89) ++ // \______ ++ // | ++ // 00000001 (01) ++ uint16x8_t high_bits = vreinterpretq_u16_u8(vshrq_n_u8(input, 7)); ++ ++ // Merge the even lanes together with a 16-bit unsigned shift right + add. ++ // 'xx' represents garbage data which will be ignored in the final result. ++ // In the important bytes, the add functions like a binary OR. ++ // ++ // 01 01 00 01 00 00 01 00 ++ // \_ | \_ | \_ | \_ | paired16 = (uint32x4_t)(input + (input >> 7)) ++ // \| \| \| \| ++ // xx 03 xx 01 xx 00 xx 02 ++ // ++ // 00000001 00000001 (01 01) ++ // \_______ | ++ // \| ++ // xxxxxxxx xxxxxx11 (xx 03) ++ uint32x4_t paired16 = ++ vreinterpretq_u32_u16(vsraq_n_u16(high_bits, high_bits, 7)); ++ ++ // Repeat with a wider 32-bit shift + add. ++ // xx 03 xx 01 xx 00 xx 02 ++ // \____ | \____ | paired32 = (uint64x1_t)(paired16 + (paired16 >> ++ // 14)) ++ // \| \| ++ // xx xx xx 0d xx xx xx 02 ++ // ++ // 00000011 00000001 (03 01) ++ // \\_____ || ++ // '----.\|| ++ // xxxxxxxx xxxx1101 (xx 0d) ++ uint64x2_t paired32 = ++ vreinterpretq_u64_u32(vsraq_n_u32(paired16, paired16, 14)); ++ ++ // Last, an even wider 64-bit shift + add to get our result in the low 8 bit ++ // lanes. xx xx xx 0d xx xx xx 02 ++ // \_________ | paired64 = (uint8x8_t)(paired32 + (paired32 >> ++ // 28)) ++ // \| ++ // xx xx xx xx xx xx xx d2 ++ // ++ // 00001101 00000010 (0d 02) ++ // \ \___ | | ++ // '---. \| | ++ // xxxxxxxx 11010010 (xx d2) ++ uint8x16_t paired64 = ++ vreinterpretq_u8_u64(vsraq_n_u64(paired32, paired32, 28)); ++ ++ // Extract the low 8 bits from each 64-bit lane with 2 8-bit extracts. ++ // xx xx xx xx xx xx xx d2 ++ // || return paired64[0] ++ // d2 ++ // Note: Little endian would return the correct value 4b (01001011) instead. ++ return vgetq_lane_u8(paired64, 0) | ((int) vgetq_lane_u8(paired64, 8) << 8); ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed double-precision (64-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pd ++FORCE_INLINE int _mm_movemask_pd(__m128d a) ++{ ++ uint64x2_t input = vreinterpretq_u64_m128d(a); ++ uint64x2_t high_bits = vshrq_n_u64(input, 63); ++ return (int) (vgetq_lane_u64(high_bits, 0) | ++ (vgetq_lane_u64(high_bits, 1) << 1)); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movepi64_pi64 ++FORCE_INLINE __m64 _mm_movepi64_pi64(__m128i a) ++{ ++ return vreinterpret_m64_s64(vget_low_s64(vreinterpretq_s64_m128i(a))); ++} ++ ++// Copy the 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movpi64_epi64 ++FORCE_INLINE __m128i _mm_movpi64_epi64(__m64 a) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vreinterpret_s64_m64(a), vdup_n_s64(0))); ++} ++ ++// Multiply the low unsigned 32-bit integers from each packed 64-bit element in ++// a and b, and store the unsigned 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epu32 ++FORCE_INLINE __m128i _mm_mul_epu32(__m128i a, __m128i b) ++{ ++ // vmull_u32 upcasts instead of masking, so we downcast. ++ uint32x2_t a_lo = vmovn_u64(vreinterpretq_u64_m128i(a)); ++ uint32x2_t b_lo = vmovn_u64(vreinterpretq_u64_m128i(b)); ++ return vreinterpretq_m128i_u64(vmull_u32(a_lo, b_lo)); ++} ++ ++// Multiply packed double-precision (64-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_pd ++FORCE_INLINE __m128d _mm_mul_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vmulq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] * db[0]; ++ c[1] = da[1] * db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Multiply the lower double-precision (64-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper element ++// from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_mul_sd ++FORCE_INLINE __m128d _mm_mul_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_mul_pd(a, b)); ++} ++ ++// Multiply the low unsigned 32-bit integers from a and b, and store the ++// unsigned 64-bit result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_su32 ++FORCE_INLINE __m64 _mm_mul_su32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u64(vget_low_u64( ++ vmull_u32(vreinterpret_u32_m64(a), vreinterpret_u32_m64(b)))); ++} ++ ++// Multiply the packed signed 16-bit integers in a and b, producing intermediate ++// 32-bit integers, and store the high 16 bits of the intermediate integers in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epi16 ++FORCE_INLINE __m128i _mm_mulhi_epi16(__m128i a, __m128i b) ++{ ++ /* FIXME: issue with large values because of result saturation */ ++ // int16x8_t ret = vqdmulhq_s16(vreinterpretq_s16_m128i(a), ++ // vreinterpretq_s16_m128i(b)); /* =2*a*b */ return ++ // vreinterpretq_m128i_s16(vshrq_n_s16(ret, 1)); ++ int16x4_t a3210 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b3210 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab3210 = vmull_s16(a3210, b3210); /* 3333222211110000 */ ++ int16x4_t a7654 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b7654 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab7654 = vmull_s16(a7654, b7654); /* 7777666655554444 */ ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_s32(ab3210), vreinterpretq_u16_s32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epu16 ++FORCE_INLINE __m128i _mm_mulhi_epu16(__m128i a, __m128i b) ++{ ++ uint16x4_t a3210 = vget_low_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b3210 = vget_low_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab3210 = vmull_u16(a3210, b3210); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32x4_t ab7654 = ++ vmull_high_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ uint16x8_t r = vuzp2q_u16(vreinterpretq_u16_u32(ab3210), ++ vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r); ++#else ++ uint16x4_t a7654 = vget_high_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b7654 = vget_high_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab7654 = vmull_u16(a7654, b7654); ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_u32(ab3210), vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++#endif ++} ++ ++// Multiply the packed 16-bit integers in a and b, producing intermediate 32-bit ++// integers, and store the low 16 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi16 ++FORCE_INLINE __m128i _mm_mullo_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmulq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compute the bitwise OR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_or_pd ++FORCE_INLINE __m128d _mm_or_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vorrq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise OR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_si128 ++FORCE_INLINE __m128i _mm_or_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vorrq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi16 ++FORCE_INLINE __m128i _mm_packs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vqmovn_s16(vreinterpretq_s16_m128i(a)), ++ vqmovn_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi32 ++FORCE_INLINE __m128i _mm_packs_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vqmovn_s32(vreinterpretq_s32_m128i(a)), ++ vqmovn_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi16 ++FORCE_INLINE __m128i _mm_packus_epi16(const __m128i a, const __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcombine_u8(vqmovun_s16(vreinterpretq_s16_m128i(a)), ++ vqmovun_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Pause the processor. This is typically used in spin-wait loops and depending ++// on the x86 processor typical values are in the 40-100 cycle range. The ++// 'yield' instruction isn't a good fit because it's effectively a nop on most ++// Arm cores. Experience with several databases has shown has shown an 'isb' is ++// a reasonable approximation. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_pause ++FORCE_INLINE void _mm_pause(void) ++{ ++#if defined(_MSC_VER) ++ __isb(_ARM64_BARRIER_SY); ++#else ++ __asm__ __volatile__("isb\n"); ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce two ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of 64-bit elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_epu8 ++FORCE_INLINE __m128i _mm_sad_epu8(__m128i a, __m128i b) ++{ ++ uint16x8_t t = vpaddlq_u8(vabdq_u8((uint8x16_t) a, (uint8x16_t) b)); ++ return vreinterpretq_m128i_u64(vpaddlq_u32(vpaddlq_u16(t))); ++} ++ ++// Set packed 16-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi16 ++FORCE_INLINE __m128i _mm_set_epi16(short i7, ++ short i6, ++ short i5, ++ short i4, ++ short i3, ++ short i2, ++ short i1, ++ short i0) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {i0, i1, i2, i3, i4, i5, i6, i7}; ++ return vreinterpretq_m128i_s16(vld1q_s16(data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi32 ++FORCE_INLINE __m128i _mm_set_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i0, i1, i2, i3}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64 ++FORCE_INLINE __m128i _mm_set_epi64(__m64 i1, __m64 i2) ++{ ++ return _mm_set_epi64x(vget_lane_s64(i1, 0), vget_lane_s64(i2, 0)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64x ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t i1, int64_t i2) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vcreate_s64(i2), vcreate_s64(i1))); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi8 ++FORCE_INLINE __m128i _mm_set_epi8(signed char b15, ++ signed char b14, ++ signed char b13, ++ signed char b12, ++ signed char b11, ++ signed char b10, ++ signed char b9, ++ signed char b8, ++ signed char b7, ++ signed char b6, ++ signed char b5, ++ signed char b4, ++ signed char b3, ++ signed char b2, ++ signed char b1, ++ signed char b0) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd ++FORCE_INLINE __m128d _mm_set_pd(double e1, double e0) ++{ ++ double ALIGN_STRUCT(16) data[2] = {e0, e1}; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64((float64_t *) data)); ++#else ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) data)); ++#endif ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd1 ++#define _mm_set_pd1 _mm_set1_pd ++ ++// Copy double-precision (64-bit) floating-point element a to the lower element ++// of dst, and zero the upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_sd ++FORCE_INLINE __m128d _mm_set_sd(double a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(a, vdupq_n_f64(0), 0)); ++#else ++ return _mm_set_pd(0, a); ++#endif ++} ++ ++// Broadcast 16-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi16 ++FORCE_INLINE __m128i _mm_set1_epi16(short w) ++{ ++ return vreinterpretq_m128i_s16(vdupq_n_s16(w)); ++} ++ ++// Broadcast 32-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi32 ++FORCE_INLINE __m128i _mm_set1_epi32(int _i) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(_i)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64 ++FORCE_INLINE __m128i _mm_set1_epi64(__m64 _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_lane_s64(_i, 0)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64x ++FORCE_INLINE __m128i _mm_set1_epi64x(int64_t _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_n_s64(_i)); ++} ++ ++// Broadcast 8-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi8 ++FORCE_INLINE __m128i _mm_set1_epi8(signed char w) ++{ ++ return vreinterpretq_m128i_s8(vdupq_n_s8(w)); ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_pd ++FORCE_INLINE __m128d _mm_set1_pd(double d) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(d)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(int64_t *) &d)); ++#endif ++} ++ ++// Set packed 16-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi16 ++FORCE_INLINE __m128i _mm_setr_epi16(short w0, ++ short w1, ++ short w2, ++ short w3, ++ short w4, ++ short w5, ++ short w6, ++ short w7) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {w0, w1, w2, w3, w4, w5, w6, w7}; ++ return vreinterpretq_m128i_s16(vld1q_s16((int16_t *) data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi32 ++FORCE_INLINE __m128i _mm_setr_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i3, i2, i1, i0}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi64 ++FORCE_INLINE __m128i _mm_setr_epi64(__m64 e1, __m64 e0) ++{ ++ return vreinterpretq_m128i_s64(vcombine_s64(e1, e0)); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi8 ++FORCE_INLINE __m128i _mm_setr_epi8(signed char b0, ++ signed char b1, ++ signed char b2, ++ signed char b3, ++ signed char b4, ++ signed char b5, ++ signed char b6, ++ signed char b7, ++ signed char b8, ++ signed char b9, ++ signed char b10, ++ signed char b11, ++ signed char b12, ++ signed char b13, ++ signed char b14, ++ signed char b15) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_pd ++FORCE_INLINE __m128d _mm_setr_pd(double e1, double e0) ++{ ++ return _mm_set_pd(e0, e1); ++} ++ ++// Return vector of type __m128d with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_pd ++FORCE_INLINE __m128d _mm_setzero_pd(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(0)); ++#else ++ return vreinterpretq_m128d_f32(vdupq_n_f32(0)); ++#endif ++} ++ ++// Return vector of type __m128i with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_si128 ++FORCE_INLINE __m128i _mm_setzero_si128(void) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(0)); ++} ++ ++// Shuffle 32-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi32 ++// FORCE_INLINE __m128i _mm_shuffle_epi32(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shuffle_epi32(a, imm) \ ++ __extension__({ \ ++ int32x4_t _input = vreinterpretq_s32_m128i(a); \ ++ int32x4_t _shuf = \ ++ vshuffleq_s32(_input, _input, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ ((imm) >> 4) & 0x3, ((imm) >> 6) & 0x3); \ ++ vreinterpretq_m128i_s32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_epi32(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, __m128i ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_epi_1032(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_epi_2301(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_epi_0321(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_epi_2103(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_shuffle_epi_1010(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_epi_1001(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_epi_0101(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 1, 1): \ ++ ret = _mm_shuffle_epi_2211(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 2, 2): \ ++ ret = _mm_shuffle_epi_0122(_a); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 2): \ ++ ret = _mm_shuffle_epi_3332(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 0, 0): \ ++ ret = _mm_shuffle_epi32_splat(_a, 0); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 1, 1): \ ++ ret = _mm_shuffle_epi32_splat(_a, 1); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 2, 2): \ ++ ret = _mm_shuffle_epi32_splat(_a, 2); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 3): \ ++ ret = _mm_shuffle_epi32_splat(_a, 3); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_epi32_default(_a, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Shuffle double-precision (64-bit) floating-point elements using the control ++// in imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pd ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pd(a, b, imm8) \ ++ vreinterpretq_m128d_s64( \ ++ vshuffleq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b), \ ++ imm8 & 0x1, ((imm8 & 0x2) >> 1) + 2)) ++#else ++#define _mm_shuffle_pd(a, b, imm8) \ ++ _mm_castsi128_pd(_mm_set_epi64x( \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(b), (imm8 & 0x2) >> 1), \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(a), imm8 & 0x1))) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflehi_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflehi_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = \ ++ vshuffleq_s16(_input, _input, 0, 1, 2, 3, ((imm) & (0x3)) + 4, \ ++ (((imm) >> 2) & 0x3) + 4, (((imm) >> 4) & 0x3) + 4, \ ++ (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflehi_epi16(a, imm) _mm_shufflehi_epi16_function((a), (imm)) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflelo_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflelo_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = vshuffleq_s16( \ ++ _input, _input, ((imm) & (0x3)), (((imm) >> 2) & 0x3), \ ++ (((imm) >> 4) & 0x3), (((imm) >> 6) & 0x3), 4, 5, 6, 7); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflelo_epi16(a, imm) _mm_shufflelo_epi16_function((a), (imm)) ++#endif ++ ++// Shift packed 16-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi16 ++FORCE_INLINE __m128i _mm_sll_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16((int16_t) c); ++ return vreinterpretq_m128i_s16(vshlq_s16(vreinterpretq_s16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi32 ++FORCE_INLINE __m128i _mm_sll_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32((int32_t) c); ++ return vreinterpretq_m128i_s32(vshlq_s32(vreinterpretq_s32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi64 ++FORCE_INLINE __m128i _mm_sll_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64((int64_t) c); ++ return vreinterpretq_m128i_s64(vshlq_s64(vreinterpretq_s64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi16 ++FORCE_INLINE __m128i _mm_slli_epi16(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~15)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16(vreinterpretq_s16_m128i(a), vdupq_n_s16(imm))); ++} ++ ++// Shift packed 32-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi32 ++FORCE_INLINE __m128i _mm_slli_epi32(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~31)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32(vreinterpretq_s32_m128i(a), vdupq_n_s32(imm))); ++} ++ ++// Shift packed 64-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi64 ++FORCE_INLINE __m128i _mm_slli_epi64(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~63)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s64( ++ vshlq_s64(vreinterpretq_s64_m128i(a), vdupq_n_s64(imm))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_si128 ++#define _mm_slli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely(imm == 0)) ret = vreinterpretq_s8_m128i(_a); \ ++ else if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vdupq_n_s8(0), vreinterpretq_s8_m128i(_a), \ ++ ((imm <= 0 || imm > 15) ? 0 : (16 - imm))); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Compute the square root of packed double-precision (64-bit) floating-point ++// elements in a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_pd ++FORCE_INLINE __m128d _mm_sqrt_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsqrtq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double a0 = sqrt(((double *) &a)[0]); ++ double a1 = sqrt(((double *) &a)[1]); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Compute the square root of the lower double-precision (64-bit) floating-point ++// element in b, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_sd ++FORCE_INLINE __m128d _mm_sqrt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_sqrt_pd(b)); ++#else ++ return _mm_set_pd(((double *) &a)[1], sqrt(((double *) &b)[0])); ++#endif ++} ++ ++// Shift packed 16-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi16 ++FORCE_INLINE __m128i _mm_sra_epi16(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_cmplt_epi16(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16((int16x8_t) a, vdupq_n_s16((int) -c))); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi32 ++FORCE_INLINE __m128i _mm_sra_epi32(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_cmplt_epi32(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32((int32x4_t) a, vdupq_n_s32((int) -c))); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in sign ++// bits, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi16 ++FORCE_INLINE __m128i _mm_srai_epi16(__m128i a, int imm) ++{ ++ const int count = (imm & ~15) ? 15 : imm; ++ return (__m128i) vshlq_s16((int16x8_t) a, vdupq_n_s16(-count)); ++} ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi32 ++// FORCE_INLINE __m128i _mm_srai_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srai_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) == 0)) { \ ++ ret = _a; \ ++ } else if (_sse2neon_likely(0 < (imm) && (imm) < 32)) { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshlq_s32(vreinterpretq_s32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } else { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshrq_n_s32(vreinterpretq_s32_m128i(_a), 31)); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 16-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi16 ++FORCE_INLINE __m128i _mm_srl_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16(-(int16_t) c); ++ return vreinterpretq_m128i_u16(vshlq_u16(vreinterpretq_u16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi32 ++FORCE_INLINE __m128i _mm_srl_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32(-(int32_t) c); ++ return vreinterpretq_m128i_u32(vshlq_u32(vreinterpretq_u32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi64 ++FORCE_INLINE __m128i _mm_srl_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64(-(int64_t) c); ++ return vreinterpretq_m128i_u64(vshlq_u64(vreinterpretq_u64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi16 ++#define _mm_srli_epi16(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~15)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u16( \ ++ vshlq_u16(vreinterpretq_u16_m128i(_a), vdupq_n_s16(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi32 ++// FORCE_INLINE __m128i _mm_srli_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srli_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~31)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u32( \ ++ vshlq_u32(vreinterpretq_u32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 64-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi64 ++#define _mm_srli_epi64(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~63)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u64( \ ++ vshlq_u64(vreinterpretq_u64_m128i(_a), vdupq_n_s64(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_si128 ++#define _mm_srli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vreinterpretq_s8_m128i(_a), vdupq_n_s8(0), \ ++ (imm > 15 ? 0 : imm)); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd ++FORCE_INLINE void _mm_store_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64((float64_t *) mem_addr, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_f32((float32_t *) mem_addr, vreinterpretq_f32_m128d(a)); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd1 ++FORCE_INLINE void _mm_store_pd1(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x1_t a_low = vget_low_f64(vreinterpretq_f64_m128d(a)); ++ vst1q_f64((float64_t *) mem_addr, ++ vreinterpretq_f64_m128d(vcombine_f64(a_low, a_low))); ++#else ++ float32x2_t a_low = vget_low_f32(vreinterpretq_f32_m128d(a)); ++ vst1q_f32((float32_t *) mem_addr, ++ vreinterpretq_f32_m128d(vcombine_f32(a_low, a_low))); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_store_sd ++FORCE_INLINE void _mm_store_sd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_u64((uint64_t *) mem_addr, vget_low_u64(vreinterpretq_u64_m128d(a))); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_si128 ++FORCE_INLINE void _mm_store_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#expand=9,526,5601&text=_mm_store1_pd ++#define _mm_store1_pd _mm_store_pd1 ++ ++// Store the upper double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pd ++FORCE_INLINE void _mm_storeh_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_high_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_high_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 64-bit integer from the first element of a into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_epi64 ++FORCE_INLINE void _mm_storel_epi64(__m128i *a, __m128i b) ++{ ++ vst1_u64((uint64_t *) a, vget_low_u64(vreinterpretq_u64_m128i(b))); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pd ++FORCE_INLINE void _mm_storel_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_low_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 2 double-precision (64-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_pd ++FORCE_INLINE void _mm_storer_pd(double *mem_addr, __m128d a) ++{ ++ float32x4_t f = vreinterpretq_f32_m128d(a); ++ _mm_store_pd(mem_addr, vreinterpretq_m128d_f32(vextq_f32(f, f, 2))); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_pd ++FORCE_INLINE void _mm_storeu_pd(double *mem_addr, __m128d a) ++{ ++ _mm_store_pd(mem_addr, a); ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si128 ++FORCE_INLINE void _mm_storeu_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store 32-bit integer from the first element of a into memory. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si32 ++FORCE_INLINE void _mm_storeu_si32(void *p, __m128i a) ++{ ++ vst1q_lane_s32((int32_t *) p, vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory using a non-temporal memory hint. mem_addr must ++// be aligned on a 16-byte boundary or a general-protection exception may be ++// generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pd ++FORCE_INLINE void _mm_stream_pd(double *p, __m128d a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (__m128d *) p); ++#elif defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64(p, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128d(a)); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory using a non-temporal memory ++// hint. mem_addr must be aligned on a 16-byte boundary or a general-protection ++// exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si128 ++FORCE_INLINE void _mm_stream_si128(__m128i *p, __m128i a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, p); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128i(a)); ++#endif ++} ++ ++// Store 32-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si32 ++FORCE_INLINE void _mm_stream_si32(int *p, int a) ++{ ++ vst1q_lane_s32((int32_t *) p, vdupq_n_s32(a), 0); ++} ++ ++// Store 64-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si64 ++FORCE_INLINE void _mm_stream_si64(__int64 *p, __int64 a) ++{ ++ vst1_s64((int64_t *) p, vdup_n_s64((int64_t) a)); ++} ++ ++// Subtract packed 16-bit integers in b from packed 16-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi16 ++FORCE_INLINE __m128i _mm_sub_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed 32-bit integers in b from packed 32-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi32 ++FORCE_INLINE __m128i _mm_sub_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Subtract packed 64-bit integers in b from packed 64-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi64 ++FORCE_INLINE __m128i _mm_sub_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vsubq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Subtract packed 8-bit integers in b from packed 8-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi8 ++FORCE_INLINE __m128i _mm_sub_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed double-precision (64-bit) floating-point elements in b from ++// packed double-precision (64-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_sub_pd ++FORCE_INLINE __m128d _mm_sub_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] - db[0]; ++ c[1] = da[1] - db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Subtract the lower double-precision (64-bit) floating-point element in b from ++// the lower double-precision (64-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_sd ++FORCE_INLINE __m128d _mm_sub_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_sub_pd(a, b)); ++} ++ ++// Subtract 64-bit integer b from 64-bit integer a, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_si64 ++FORCE_INLINE __m64 _mm_sub_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vsub_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Subtract packed signed 16-bit integers in b from packed 16-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi16 ++FORCE_INLINE __m128i _mm_subs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed signed 8-bit integers in b from packed 8-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi8 ++FORCE_INLINE __m128i _mm_subs_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed unsigned 16-bit integers in b from packed unsigned 16-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu16 ++FORCE_INLINE __m128i _mm_subs_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqsubq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Subtract packed unsigned 8-bit integers in b from packed unsigned 8-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu8 ++FORCE_INLINE __m128i _mm_subs_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqsubq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++#define _mm_ucomieq_sd _mm_comieq_sd ++#define _mm_ucomige_sd _mm_comige_sd ++#define _mm_ucomigt_sd _mm_comigt_sd ++#define _mm_ucomile_sd _mm_comile_sd ++#define _mm_ucomilt_sd _mm_comilt_sd ++#define _mm_ucomineq_sd _mm_comineq_sd ++ ++// Return vector of type __m128d with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_pd ++FORCE_INLINE __m128d _mm_undefined_pd(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128d a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_pd(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi16 ++FORCE_INLINE __m128i _mm_unpackhi_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip2q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi32 ++FORCE_INLINE __m128i _mm_unpackhi_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip2q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_high_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi64 ++FORCE_INLINE __m128i _mm_unpackhi_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip2q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_h = vget_high_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_h = vget_high_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_h, b_h)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the high half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi8 ++FORCE_INLINE __m128i _mm_unpackhi_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip2q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the high half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_pd ++FORCE_INLINE __m128d _mm_unpackhi_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip2q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_high_s64(vreinterpretq_s64_m128d(a)), ++ vget_high_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi16 ++FORCE_INLINE __m128i _mm_unpacklo_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip1q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi32 ++FORCE_INLINE __m128i _mm_unpacklo_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip1q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_low_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi64 ++FORCE_INLINE __m128i _mm_unpacklo_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip1q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_l = vget_low_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_l = vget_low_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_l, b_l)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi8 ++FORCE_INLINE __m128i _mm_unpacklo_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip1q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_pd ++FORCE_INLINE __m128d _mm_unpacklo_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip1q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_low_s64(vreinterpretq_s64_m128d(a)), ++ vget_low_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Compute the bitwise XOR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_pd ++FORCE_INLINE __m128d _mm_xor_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ veorq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise XOR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_si128 ++FORCE_INLINE __m128i _mm_xor_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ veorq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++/* SSE3 */ ++ ++// Alternatively add and subtract packed double-precision (64-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_addsub_pd ++FORCE_INLINE __m128d _mm_addsub_pd(__m128d a, __m128d b) ++{ ++ _sse2neon_const __m128d mask = _mm_set_pd(1.0f, -1.0f); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vfmaq_f64(vreinterpretq_f64_m128d(a), ++ vreinterpretq_f64_m128d(b), ++ vreinterpretq_f64_m128d(mask))); ++#else ++ return _mm_add_pd(_mm_mul_pd(b, mask), a); ++#endif ++} ++ ++// Alternatively add and subtract packed single-precision (32-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=addsub_ps ++FORCE_INLINE __m128 _mm_addsub_ps(__m128 a, __m128 b) ++{ ++ _sse2neon_const __m128 mask = _mm_setr_ps(-1.0f, 1.0f, -1.0f, 1.0f); ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_FMA) /* VFPv4+ */ ++ return vreinterpretq_m128_f32(vfmaq_f32(vreinterpretq_f32_m128(a), ++ vreinterpretq_f32_m128(mask), ++ vreinterpretq_f32_m128(b))); ++#else ++ return _mm_add_ps(_mm_mul_ps(b, mask), a); ++#endif ++} ++ ++// Horizontally add adjacent pairs of double-precision (64-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pd ++FORCE_INLINE __m128d _mm_hadd_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vpaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[] = {da[0] + da[1], db[0] + db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of single-precision (32-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_ps ++FORCE_INLINE __m128 _mm_hadd_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vpaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vpadd_f32(a10, a32), vpadd_f32(b10, b32))); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of double-precision (64-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pd ++FORCE_INLINE __m128d _mm_hsub_pd(__m128d _a, __m128d _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vuzp1q_f64(a, b), vuzp2q_f64(a, b))); ++#else ++ double *da = (double *) &_a; ++ double *db = (double *) &_b; ++ double c[] = {da[0] - da[1], db[0] - db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of single-precision (32-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_ps ++FORCE_INLINE __m128 _mm_hsub_ps(__m128 _a, __m128 _b) ++{ ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vuzp1q_f32(a, b), vuzp2q_f32(a, b))); ++#else ++ float32x4x2_t c = vuzpq_f32(a, b); ++ return vreinterpretq_m128_f32(vsubq_f32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Load 128-bits of integer data from unaligned memory into dst. This intrinsic ++// may perform better than _mm_loadu_si128 when the data crosses a cache line ++// boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lddqu_si128 ++#define _mm_lddqu_si128 _mm_loadu_si128 ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loaddup_pd ++#define _mm_loaddup_pd _mm_load1_pd ++ ++// Duplicate the low double-precision (64-bit) floating-point element from a, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movedup_pd ++FORCE_INLINE __m128d _mm_movedup_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdupq_laneq_f64(vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_u64( ++ vdupq_n_u64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0))); ++#endif ++} ++ ++// Duplicate odd-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehdup_ps ++FORCE_INLINE __m128 _mm_movehdup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 1, 1, 3, 3)); ++#else ++ float32_t a1 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ float32_t a3 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 3); ++ float ALIGN_STRUCT(16) data[4] = {a1, a1, a3, a3}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Duplicate even-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_moveldup_ps ++FORCE_INLINE __m128 _mm_moveldup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 0, 0, 2, 2)); ++#else ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32_t a2 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 2); ++ float ALIGN_STRUCT(16) data[4] = {a0, a0, a2, a2}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++/* SSSE3 */ ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi16 ++FORCE_INLINE __m128i _mm_abs_epi16(__m128i a) ++{ ++ return vreinterpretq_m128i_s16(vabsq_s16(vreinterpretq_s16_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi32 ++FORCE_INLINE __m128i _mm_abs_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32(vabsq_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi8 ++FORCE_INLINE __m128i _mm_abs_epi8(__m128i a) ++{ ++ return vreinterpretq_m128i_s8(vabsq_s8(vreinterpretq_s8_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi16 ++FORCE_INLINE __m64 _mm_abs_pi16(__m64 a) ++{ ++ return vreinterpret_m64_s16(vabs_s16(vreinterpret_s16_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi32 ++FORCE_INLINE __m64 _mm_abs_pi32(__m64 a) ++{ ++ return vreinterpret_m64_s32(vabs_s32(vreinterpret_s32_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi8 ++FORCE_INLINE __m64 _mm_abs_pi8(__m64 a) ++{ ++ return vreinterpret_m64_s8(vabs_s8(vreinterpret_s8_m64(a))); ++} ++ ++// Concatenate 16-byte blocks in a and b into a 32-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 16 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_epi8 ++#if defined(__GNUC__) && !defined(__clang__) ++#define _mm_alignr_epi8(a, b, imm) \ ++ __extension__({ \ ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); \ ++ uint8x16_t _b = vreinterpretq_u8_m128i(b); \ ++ __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) \ ++ ret = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) \ ++ ret = _mm_srli_si128(a, imm >= 16 ? imm - 16 : 0); \ ++ else \ ++ ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(_b, _a, imm < 16 ? imm : 0)); \ ++ ret; \ ++ }) ++ ++#else ++#define _mm_alignr_epi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, uint8x16_t __a = vreinterpretq_u8_m128i(_a); \ ++ uint8x16_t __b = vreinterpretq_u8_m128i(_b); __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) ret = \ ++ vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) ret = \ ++ _mm_srli_si128(_a, imm >= 16 ? imm - 16 : 0); \ ++ else ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(__b, __a, imm < 16 ? imm : 0)); \ ++ _sse2neon_return(ret);) ++ ++#endif ++ ++// Concatenate 8-byte blocks in a and b into a 16-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 8 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_pi8 ++#define _mm_alignr_pi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m64, a, b, __m64 ret; if (_sse2neon_unlikely((imm) >= 16)) { \ ++ ret = vreinterpret_m64_s8(vdup_n_s8(0)); \ ++ } else { \ ++ uint8x8_t tmp_low; \ ++ uint8x8_t tmp_high; \ ++ if ((imm) >= 8) { \ ++ const int idx = (imm) -8; \ ++ tmp_low = vreinterpret_u8_m64(_a); \ ++ tmp_high = vdup_n_u8(0); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } else { \ ++ const int idx = (imm); \ ++ tmp_low = vreinterpret_u8_m64(_b); \ ++ tmp_high = vreinterpret_u8_m64(_a); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } \ ++ } _sse2neon_return(ret);) ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi16 ++FORCE_INLINE __m128i _mm_hadd_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16(vpaddq_s16(a, b)); ++#else ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(vget_low_s16(a), vget_high_s16(a)), ++ vpadd_s16(vget_low_s16(b), vget_high_s16(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi32 ++FORCE_INLINE __m128i _mm_hadd_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32(vpaddq_s32(a, b)); ++#else ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vpadd_s32(vget_low_s32(a), vget_high_s32(a)), ++ vpadd_s32(vget_low_s32(b), vget_high_s32(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi16 ++FORCE_INLINE __m64 _mm_hadd_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vpadd_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi32 ++FORCE_INLINE __m64 _mm_hadd_pi32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s32( ++ vpadd_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_epi16 ++FORCE_INLINE __m128i _mm_hadds_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ return vreinterpretq_s64_s16( ++ vqaddq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ // Interleave using vshrn/vmovn ++ // [a0|a2|a4|a6|b0|b2|b4|b6] ++ // [a1|a3|a5|a7|b1|b3|b5|b7] ++ int16x8_t ab0246 = vcombine_s16(vmovn_s32(a), vmovn_s32(b)); ++ int16x8_t ab1357 = vcombine_s16(vshrn_n_s32(a, 16), vshrn_n_s32(b, 16)); ++ // Saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(ab0246, ab1357)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_pi16 ++FORCE_INLINE __m64 _mm_hadds_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_s64_s16(vqadd_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t res = vuzp_s16(a, b); ++ return vreinterpret_s64_s16(vqadd_s16(res.val[0], res.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi16 ++FORCE_INLINE __m128i _mm_hsub_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi32 ++FORCE_INLINE __m128i _mm_hsub_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vuzp1q_s32(a, b), vuzp2q_s32(a, b))); ++#else ++ int32x4x2_t c = vuzpq_s32(a, b); ++ return vreinterpretq_m128i_s32(vsubq_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pi16 ++FORCE_INLINE __m64 _mm_hsub_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_hsub_pi32 ++FORCE_INLINE __m64 _mm_hsub_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s32(vsub_s32(vuzp1_s32(a, b), vuzp2_s32(a, b))); ++#else ++ int32x2x2_t c = vuzp_s32(a, b); ++ return vreinterpret_m64_s32(vsub_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_epi16 ++FORCE_INLINE __m128i _mm_hsubs_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vqsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_pi16 ++FORCE_INLINE __m64 _mm_hsubs_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vqsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vqsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, ++// and pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_epi16 ++FORCE_INLINE __m128i _mm_maddubs_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ int16x8_t tl = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_low_u8(a))), ++ vmovl_s8(vget_low_s8(b))); ++ int16x8_t th = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_high_u8(a))), ++ vmovl_s8(vget_high_s8(b))); ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vuzp1q_s16(tl, th), vuzp2q_s16(tl, th))); ++#else ++ // This would be much simpler if x86 would choose to zero extend OR sign ++ // extend, not both. This could probably be optimized better. ++ uint16x8_t a = vreinterpretq_u16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // Zero extend a ++ int16x8_t a_odd = vreinterpretq_s16_u16(vshrq_n_u16(a, 8)); ++ int16x8_t a_even = vreinterpretq_s16_u16(vbicq_u16(a, vdupq_n_u16(0xff00))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x8_t b_even = vshrq_n_s16(vshlq_n_s16(b, 8), 8); ++ int16x8_t b_odd = vshrq_n_s16(b, 8); ++ ++ // multiply ++ int16x8_t prod1 = vmulq_s16(a_even, b_even); ++ int16x8_t prod2 = vmulq_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(prod1, prod2)); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, and ++// pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_pi16 ++FORCE_INLINE __m64 _mm_maddubs_pi16(__m64 _a, __m64 _b) ++{ ++ uint16x4_t a = vreinterpret_u16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // Zero extend a ++ int16x4_t a_odd = vreinterpret_s16_u16(vshr_n_u16(a, 8)); ++ int16x4_t a_even = vreinterpret_s16_u16(vand_u16(a, vdup_n_u16(0xff))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x4_t b_even = vshr_n_s16(vshl_n_s16(b, 8), 8); ++ int16x4_t b_odd = vshr_n_s16(b, 8); ++ ++ // multiply ++ int16x4_t prod1 = vmul_s16(a_even, b_even); ++ int16x4_t prod2 = vmul_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpret_m64_s16(vqadd_s16(prod1, prod2)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Shift right by 15 bits while rounding up, and store ++// the packed 16-bit integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_epi16 ++FORCE_INLINE __m128i _mm_mulhrs_epi16(__m128i a, __m128i b) ++{ ++ // Has issues due to saturation ++ // return vreinterpretq_m128i_s16(vqrdmulhq_s16(a, b)); ++ ++ // Multiply ++ int32x4_t mul_lo = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int32x4_t mul_hi = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ // Rounding narrowing shift right ++ // narrow = (int16_t)((mul + 16384) >> 15); ++ int16x4_t narrow_lo = vrshrn_n_s32(mul_lo, 15); ++ int16x4_t narrow_hi = vrshrn_n_s32(mul_hi, 15); ++ ++ // Join together ++ return vreinterpretq_m128i_s16(vcombine_s16(narrow_lo, narrow_hi)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Truncate each intermediate integer to the 18 most ++// significant bits, round by adding 1, and store bits [16:1] to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_pi16 ++FORCE_INLINE __m64 _mm_mulhrs_pi16(__m64 a, __m64 b) ++{ ++ int32x4_t mul_extend = ++ vmull_s16((vreinterpret_s16_m64(a)), (vreinterpret_s16_m64(b))); ++ ++ // Rounding narrowing shift right ++ return vreinterpret_m64_s16(vrshrn_n_s32(mul_extend, 15)); ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi8 ++FORCE_INLINE __m128i _mm_shuffle_epi8(__m128i a, __m128i b) ++{ ++ int8x16_t tbl = vreinterpretq_s8_m128i(a); // input a ++ uint8x16_t idx = vreinterpretq_u8_m128i(b); // input b ++ uint8x16_t idx_masked = ++ vandq_u8(idx, vdupq_n_u8(0x8F)); // avoid using meaningless bits ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8(vqtbl1q_s8(tbl, idx_masked)); ++#elif defined(__GNUC__) ++ int8x16_t ret; ++ // %e and %f represent the even and odd D registers ++ // respectively. ++ __asm__ __volatile__( ++ "vtbl.8 %e[ret], {%e[tbl], %f[tbl]}, %e[idx]\n" ++ "vtbl.8 %f[ret], {%e[tbl], %f[tbl]}, %f[idx]\n" ++ : [ret] "=&w"(ret) ++ : [tbl] "w"(tbl), [idx] "w"(idx_masked)); ++ return vreinterpretq_m128i_s8(ret); ++#else ++ // use this line if testing on aarch64 ++ int8x8x2_t a_split = {vget_low_s8(tbl), vget_high_s8(tbl)}; ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vtbl2_s8(a_split, vget_low_u8(idx_masked)), ++ vtbl2_s8(a_split, vget_high_u8(idx_masked)))); ++#endif ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi8 ++FORCE_INLINE __m64 _mm_shuffle_pi8(__m64 a, __m64 b) ++{ ++ const int8x8_t controlMask = ++ vand_s8(vreinterpret_s8_m64(b), vdup_n_s8((int8_t) (0x1 << 7 | 0x07))); ++ int8x8_t res = vtbl1_s8(vreinterpret_s8_m64(a), controlMask); ++ return vreinterpret_m64_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed ++// 16-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi16 ++FORCE_INLINE __m128i _mm_sign_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x8_t ltMask = vreinterpretq_u16_s16(vshrq_n_s16(b, 15)); ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqzq_s16(b)); ++#else ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqq_s16(b, vdupq_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s16(a) equals to negative ++ // 'a') based on ltMask ++ int16x8_t masked = vbslq_s16(ltMask, vnegq_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x8_t res = vbicq_s16(masked, zeroMask); ++ return vreinterpretq_m128i_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed ++// 32-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi32 ++FORCE_INLINE __m128i _mm_sign_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x4_t ltMask = vreinterpretq_u32_s32(vshrq_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqzq_s32(b)); ++#else ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqq_s32(b, vdupq_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s32(a) equals to negative ++ // 'a') based on ltMask ++ int32x4_t masked = vbslq_s32(ltMask, vnegq_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x4_t res = vbicq_s32(masked, zeroMask); ++ return vreinterpretq_m128i_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed ++// 8-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi8 ++FORCE_INLINE __m128i _mm_sign_epi8(__m128i _a, __m128i _b) ++{ ++ int8x16_t a = vreinterpretq_s8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x16_t ltMask = vreinterpretq_u8_s8(vshrq_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqzq_s8(b)); ++#else ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqq_s8(b, vdupq_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s8(a) return negative 'a') ++ // based on ltMask ++ int8x16_t masked = vbslq_s8(ltMask, vnegq_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x16_t res = vbicq_s8(masked, zeroMask); ++ ++ return vreinterpretq_m128i_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed 16-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi16 ++FORCE_INLINE __m64 _mm_sign_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x4_t ltMask = vreinterpret_u16_s16(vshr_n_s16(b, 15)); ++ ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceqz_s16(b)); ++#else ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceq_s16(b, vdup_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s16(a) return negative 'a') ++ // based on ltMask ++ int16x4_t masked = vbsl_s16(ltMask, vneg_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x4_t res = vbic_s16(masked, zeroMask); ++ ++ return vreinterpret_m64_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed 32-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi32 ++FORCE_INLINE __m64 _mm_sign_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x2_t ltMask = vreinterpret_u32_s32(vshr_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceqz_s32(b)); ++#else ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceq_s32(b, vdup_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s32(a) return negative 'a') ++ // based on ltMask ++ int32x2_t masked = vbsl_s32(ltMask, vneg_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x2_t res = vbic_s32(masked, zeroMask); ++ ++ return vreinterpret_m64_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed 8-bit integer ++// in b is negative, and store the results in dst. Element in dst are zeroed out ++// when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi8 ++FORCE_INLINE __m64 _mm_sign_pi8(__m64 _a, __m64 _b) ++{ ++ int8x8_t a = vreinterpret_s8_m64(_a); ++ int8x8_t b = vreinterpret_s8_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x8_t ltMask = vreinterpret_u8_s8(vshr_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceqz_s8(b)); ++#else ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceq_s8(b, vdup_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s8(a) return negative 'a') ++ // based on ltMask ++ int8x8_t masked = vbsl_s8(ltMask, vneg_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x8_t res = vbic_s8(masked, zeroMask); ++ ++ return vreinterpret_m64_s8(res); ++} ++ ++/* SSE4.1 */ ++ ++// Blend packed 16-bit integers from a and b using control mask imm8, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_epi16 ++// FORCE_INLINE __m128i _mm_blend_epi16(__m128i a, __m128i b, ++// __constrange(0,255) int imm) ++#define _mm_blend_epi16(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, \ ++ const uint16_t _mask[8] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 1)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 2)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 3)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 4)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 5)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 6)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 7)) ? (uint16_t) -1 : 0x0); \ ++ uint16x8_t _mask_vec = vld1q_u16(_mask); \ ++ uint16x8_t __a = vreinterpretq_u16_m128i(_a); \ ++ uint16x8_t __b = vreinterpretq_u16_m128i(_b); _sse2neon_return( \ ++ vreinterpretq_m128i_u16(vbslq_u16(_mask_vec, __b, __a)));) ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using control mask imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_pd ++#define _mm_blend_pd(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128d, a, b, \ ++ const uint64_t _mask[2] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? ~UINT64_C(0) : UINT64_C(0), \ ++ ((imm) & (1 << 1)) ? ~UINT64_C(0) : UINT64_C(0)); \ ++ uint64x2_t _mask_vec = vld1q_u64(_mask); \ ++ uint64x2_t __a = vreinterpretq_u64_m128d(_a); \ ++ uint64x2_t __b = vreinterpretq_u64_m128d(_b); _sse2neon_return( \ ++ vreinterpretq_m128d_u64(vbslq_u64(_mask_vec, __b, __a)));) ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_ps ++FORCE_INLINE __m128 _mm_blend_ps(__m128 _a, __m128 _b, const char imm8) ++{ ++ const uint32_t ALIGN_STRUCT(16) ++ data[4] = {((imm8) & (1 << 0)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0}; ++ uint32x4_t mask = vld1q_u32(data); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Blend packed 8-bit integers from a and b using mask, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_epi8 ++FORCE_INLINE __m128i _mm_blendv_epi8(__m128i _a, __m128i _b, __m128i _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint8x16_t mask = ++ vreinterpretq_u8_s8(vshrq_n_s8(vreinterpretq_s8_m128i(_mask), 7)); ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ uint8x16_t b = vreinterpretq_u8_m128i(_b); ++ return vreinterpretq_m128i_u8(vbslq_u8(mask, b, a)); ++} ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_pd ++FORCE_INLINE __m128d _mm_blendv_pd(__m128d _a, __m128d _b, __m128d _mask) ++{ ++ uint64x2_t mask = ++ vreinterpretq_u64_s64(vshrq_n_s64(vreinterpretq_s64_m128d(_mask), 63)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64(vbslq_f64(mask, b, a)); ++#else ++ uint64x2_t a = vreinterpretq_u64_m128d(_a); ++ uint64x2_t b = vreinterpretq_u64_m128d(_b); ++ return vreinterpretq_m128d_u64(vbslq_u64(mask, b, a)); ++#endif ++} ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_ps ++FORCE_INLINE __m128 _mm_blendv_ps(__m128 _a, __m128 _b, __m128 _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint32x4_t mask = ++ vreinterpretq_u32_s32(vshrq_n_s32(vreinterpretq_s32_m128(_mask), 31)); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a up ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_pd ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndpq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(ceil(f[1]), ceil(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a up to ++// an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ps ++FORCE_INLINE __m128 _mm_ceil_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndpq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ceilf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b up to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_sd ++FORCE_INLINE __m128d _mm_ceil_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_ceil_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b up to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ss ++FORCE_INLINE __m128 _mm_ceil_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_ceil_ps(b)); ++} ++ ++// Compare packed 64-bit integers in a and b for equality, and store the results ++// in dst ++FORCE_INLINE __m128i _mm_cmpeq_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vceqq_u64(vreinterpretq_u64_m128i(a), vreinterpretq_u64_m128i(b))); ++#else ++ // ARMv7 lacks vceqq_u64 ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128i_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Sign extend packed 16-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi32 ++FORCE_INLINE __m128i _mm_cvtepi16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vmovl_s16(vget_low_s16(vreinterpretq_s16_m128i(a)))); ++} ++ ++// Sign extend packed 16-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi64 ++FORCE_INLINE __m128i _mm_cvtepi16_epi64(__m128i a) ++{ ++ int16x8_t s16x8 = vreinterpretq_s16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Sign extend packed 32-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_epi64 ++FORCE_INLINE __m128i _mm_cvtepi32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a)))); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 16-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi16 ++FORCE_INLINE __m128i _mm_cvtepi8_epi16(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ return vreinterpretq_m128i_s16(s16x8); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi32 ++FORCE_INLINE __m128i _mm_cvtepi8_epi32(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_s32(s32x4); ++} ++ ++// Sign extend packed 8-bit integers in the low 8 bytes of a to packed 64-bit ++// integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi64 ++FORCE_INLINE __m128i _mm_cvtepi8_epi64(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi32 ++FORCE_INLINE __m128i _mm_cvtepu16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_u32( ++ vmovl_u16(vget_low_u16(vreinterpretq_u16_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi64 ++FORCE_INLINE __m128i _mm_cvtepu16_epi64(__m128i a) ++{ ++ uint16x8_t u16x8 = vreinterpretq_u16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Zero extend packed unsigned 32-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu32_epi64 ++FORCE_INLINE __m128i _mm_cvtepu32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_u64( ++ vmovl_u32(vget_low_u32(vreinterpretq_u32_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 16-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi16 ++FORCE_INLINE __m128i _mm_cvtepu8_epi16(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx HGFE DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0H0G 0F0E 0D0C 0B0A */ ++ return vreinterpretq_m128i_u16(u16x8); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi32 ++FORCE_INLINE __m128i _mm_cvtepu8_epi32(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_u32(u32x4); ++} ++ ++// Zero extend packed unsigned 8-bit integers in the low 8 bytes of a to packed ++// 64-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi64 ++FORCE_INLINE __m128i _mm_cvtepu8_epi64(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Conditionally multiply the packed double-precision (64-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, and ++// conditionally store the sum in dst using the low 4 bits of imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_pd ++FORCE_INLINE __m128d _mm_dp_pd(__m128d a, __m128d b, const int imm) ++{ ++ // Generate mask value from constant immediate bit value ++ const int64_t bit0Mask = imm & 0x01 ? UINT64_MAX : 0; ++ const int64_t bit1Mask = imm & 0x02 ? UINT64_MAX : 0; ++#if !SSE2NEON_PRECISE_DP ++ const int64_t bit4Mask = imm & 0x10 ? UINT64_MAX : 0; ++ const int64_t bit5Mask = imm & 0x20 ? UINT64_MAX : 0; ++#endif ++ // Conditional multiplication ++#if !SSE2NEON_PRECISE_DP ++ __m128d mul = _mm_mul_pd(a, b); ++ const __m128d mulMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit5Mask, bit4Mask)); ++ __m128d tmp = _mm_and_pd(mul, mulMask); ++#else ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double d0 = (imm & 0x10) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 0) ++ : 0; ++ double d1 = (imm & 0x20) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 1) ++ : 0; ++#else ++ double d0 = (imm & 0x10) ? ((double *) &a)[0] * ((double *) &b)[0] : 0; ++ double d1 = (imm & 0x20) ? ((double *) &a)[1] * ((double *) &b)[1] : 0; ++#endif ++ __m128d tmp = _mm_set_pd(d1, d0); ++#endif ++ // Sum the products ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double sum = vpaddd_f64(vreinterpretq_f64_m128d(tmp)); ++#else ++ double sum = *((double *) &tmp) + *(((double *) &tmp) + 1); ++#endif ++ // Conditionally store the sum ++ const __m128d sumMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit1Mask, bit0Mask)); ++ __m128d res = _mm_and_pd(_mm_set_pd1(sum), sumMask); ++ return res; ++} ++ ++// Conditionally multiply the packed single-precision (32-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, ++// and conditionally store the sum in dst using the low 4 bits of imm. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_ps ++FORCE_INLINE __m128 _mm_dp_ps(__m128 a, __m128 b, const int imm) ++{ ++ float32x4_t elementwise_prod = _mm_mul_ps(a, b); ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ /* shortcuts */ ++ if (imm == 0xFF) { ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++ ++ if ((imm & 0x0F) == 0x0F) { ++ if (!(imm & (1 << 4))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 0); ++ if (!(imm & (1 << 5))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 1); ++ if (!(imm & (1 << 6))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 2); ++ if (!(imm & (1 << 7))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 3); ++ ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++#endif ++ ++ float s = 0.0f; ++ ++ if (imm & (1 << 4)) ++ s += vgetq_lane_f32(elementwise_prod, 0); ++ if (imm & (1 << 5)) ++ s += vgetq_lane_f32(elementwise_prod, 1); ++ if (imm & (1 << 6)) ++ s += vgetq_lane_f32(elementwise_prod, 2); ++ if (imm & (1 << 7)) ++ s += vgetq_lane_f32(elementwise_prod, 3); ++ ++ const float32_t res[4] = { ++ (imm & 0x1) ? s : 0.0f, ++ (imm & 0x2) ? s : 0.0f, ++ (imm & 0x4) ? s : 0.0f, ++ (imm & 0x8) ? s : 0.0f, ++ }; ++ return vreinterpretq_m128_f32(vld1q_f32(res)); ++} ++ ++// Extract a 32-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi32 ++// FORCE_INLINE int _mm_extract_epi32(__m128i a, __constrange(0,4) int imm) ++#define _mm_extract_epi32(a, imm) \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)) ++ ++// Extract a 64-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi64 ++// FORCE_INLINE __int64 _mm_extract_epi64(__m128i a, __constrange(0,2) int imm) ++#define _mm_extract_epi64(a, imm) \ ++ vgetq_lane_s64(vreinterpretq_s64_m128i(a), (imm)) ++ ++// Extract an 8-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. FORCE_INLINE int _mm_extract_epi8(__m128i a, ++// __constrange(0,16) int imm) ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi8 ++#define _mm_extract_epi8(a, imm) vgetq_lane_u8(vreinterpretq_u8_m128i(a), (imm)) ++ ++// Extracts the selected single-precision (32-bit) floating-point from a. ++// FORCE_INLINE int _mm_extract_ps(__m128 a, __constrange(0,4) int imm) ++#define _mm_extract_ps(a, imm) vgetq_lane_s32(vreinterpretq_s32_m128(a), (imm)) ++ ++// Round the packed double-precision (64-bit) floating-point elements in a down ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_pd ++FORCE_INLINE __m128d _mm_floor_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndmq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(floor(f[1]), floor(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a down ++// to an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ps ++FORCE_INLINE __m128 _mm_floor_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndmq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(floorf(f[3]), floorf(f[2]), floorf(f[1]), floorf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b down to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_sd ++FORCE_INLINE __m128d _mm_floor_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_floor_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b down to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ss ++FORCE_INLINE __m128 _mm_floor_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_floor_ps(b)); ++} ++ ++// Copy a to dst, and insert the 32-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi32 ++// FORCE_INLINE __m128i _mm_insert_epi32(__m128i a, int b, ++// __constrange(0,4) int imm) ++#define _mm_insert_epi32(a, b, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vsetq_lane_s32((b), vreinterpretq_s32_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the 64-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi64 ++// FORCE_INLINE __m128i _mm_insert_epi64(__m128i a, __int64 b, ++// __constrange(0,2) int imm) ++#define _mm_insert_epi64(a, b, imm) \ ++ vreinterpretq_m128i_s64( \ ++ vsetq_lane_s64((b), vreinterpretq_s64_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the lower 8-bit integer from i into dst at the ++// location specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi8 ++// FORCE_INLINE __m128i _mm_insert_epi8(__m128i a, int b, ++// __constrange(0,16) int imm) ++#define _mm_insert_epi8(a, b, imm) \ ++ vreinterpretq_m128i_s8(vsetq_lane_s8((b), vreinterpretq_s8_m128i(a), (imm))) ++ ++// Copy a to tmp, then insert a single-precision (32-bit) floating-point ++// element from b into tmp using the control in imm8. Store tmp to dst using ++// the mask in imm8 (elements are zeroed out when the corresponding bit is set). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=insert_ps ++#define _mm_insert_ps(a, b, imm8) \ ++ _sse2neon_define2( \ ++ __m128, a, b, \ ++ float32x4_t tmp1 = \ ++ vsetq_lane_f32(vgetq_lane_f32(_b, (imm8 >> 6) & 0x3), \ ++ vreinterpretq_f32_m128(_a), 0); \ ++ float32x4_t tmp2 = \ ++ vsetq_lane_f32(vgetq_lane_f32(tmp1, 0), \ ++ vreinterpretq_f32_m128(_a), ((imm8 >> 4) & 0x3)); \ ++ const uint32_t data[4] = \ ++ _sse2neon_init(((imm8) & (1 << 0)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0); \ ++ uint32x4_t mask = vld1q_u32(data); \ ++ float32x4_t all_zeros = vdupq_n_f32(0); \ ++ \ ++ _sse2neon_return(vreinterpretq_m128_f32( \ ++ vbslq_f32(mask, all_zeros, vreinterpretq_f32_m128(tmp2))));) ++ ++// Compare packed signed 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi32 ++FORCE_INLINE __m128i _mm_max_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmaxq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi8 ++FORCE_INLINE __m128i _mm_max_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vmaxq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu16 ++FORCE_INLINE __m128i _mm_max_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vmaxq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_max_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vmaxq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi32 ++FORCE_INLINE __m128i _mm_min_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vminq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi8 ++FORCE_INLINE __m128i _mm_min_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vminq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu16 ++FORCE_INLINE __m128i _mm_min_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vminq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_min_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vminq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Horizontally compute the minimum amongst the packed unsigned 16-bit integers ++// in a, store the minimum and index in dst, and zero the remaining bits in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_minpos_epu16 ++FORCE_INLINE __m128i _mm_minpos_epu16(__m128i a) ++{ ++ __m128i dst; ++ uint16_t min, idx = 0; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Find the minimum value ++ min = vminvq_u16(vreinterpretq_u16_m128i(a)); ++ ++ // Get the index of the minimum value ++ static const uint16_t idxv[] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint16x8_t minv = vdupq_n_u16(min); ++ uint16x8_t cmeq = vceqq_u16(minv, vreinterpretq_u16_m128i(a)); ++ idx = vminvq_u16(vornq_u16(vld1q_u16(idxv), cmeq)); ++#else ++ // Find the minimum value ++ __m64 tmp; ++ tmp = vreinterpret_m64_u16( ++ vmin_u16(vget_low_u16(vreinterpretq_u16_m128i(a)), ++ vget_high_u16(vreinterpretq_u16_m128i(a)))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ min = vget_lane_u16(vreinterpret_u16_m64(tmp), 0); ++ // Get the index of the minimum value ++ int i; ++ for (i = 0; i < 8; i++) { ++ if (min == vgetq_lane_u16(vreinterpretq_u16_m128i(a), 0)) { ++ idx = (uint16_t) i; ++ break; ++ } ++ a = _mm_srli_si128(a, 2); ++ } ++#endif ++ // Generate result ++ dst = _mm_setzero_si128(); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(min, vreinterpretq_u16_m128i(dst), 0)); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(idx, vreinterpretq_u16_m128i(dst), 1)); ++ return dst; ++} ++ ++// Compute the sum of absolute differences (SADs) of quadruplets of unsigned ++// 8-bit integers in a compared to those in b, and store the 16-bit results in ++// dst. Eight SADs are performed using one quadruplet from b and eight ++// quadruplets from a. One quadruplet is selected from b starting at on the ++// offset specified in imm8. Eight quadruplets are formed from sequential 8-bit ++// integers selected from a starting at the offset specified in imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mpsadbw_epu8 ++FORCE_INLINE __m128i _mm_mpsadbw_epu8(__m128i a, __m128i b, const int imm) ++{ ++ uint8x16_t _a, _b; ++ ++ switch (imm & 0x4) { ++ case 0: ++ // do nothing ++ _a = vreinterpretq_u8_m128i(a); ++ break; ++ case 4: ++ _a = vreinterpretq_u8_u32(vextq_u32(vreinterpretq_u32_m128i(a), ++ vreinterpretq_u32_m128i(a), 1)); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ switch (imm & 0x3) { ++ case 0: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 0))); ++ break; ++ case 1: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 1))); ++ break; ++ case 2: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 2))); ++ break; ++ case 3: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 3))); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ int16x8_t c04, c15, c26, c37; ++ uint8x8_t low_b = vget_low_u8(_b); ++ c04 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a), low_b)); ++ uint8x16_t _a_1 = vextq_u8(_a, _a, 1); ++ c15 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_1), low_b)); ++ uint8x16_t _a_2 = vextq_u8(_a, _a, 2); ++ c26 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_2), low_b)); ++ uint8x16_t _a_3 = vextq_u8(_a, _a, 3); ++ c37 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_3), low_b)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // |0|4|2|6| ++ c04 = vpaddq_s16(c04, c26); ++ // |1|5|3|7| ++ c15 = vpaddq_s16(c15, c37); ++ ++ int32x4_t trn1_c = ++ vtrn1q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ int32x4_t trn2_c = ++ vtrn2q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ return vreinterpretq_m128i_s16(vpaddq_s16(vreinterpretq_s16_s32(trn1_c), ++ vreinterpretq_s16_s32(trn2_c))); ++#else ++ int16x4_t c01, c23, c45, c67; ++ c01 = vpadd_s16(vget_low_s16(c04), vget_low_s16(c15)); ++ c23 = vpadd_s16(vget_low_s16(c26), vget_low_s16(c37)); ++ c45 = vpadd_s16(vget_high_s16(c04), vget_high_s16(c15)); ++ c67 = vpadd_s16(vget_high_s16(c26), vget_high_s16(c37)); ++ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(c01, c23), vpadd_s16(c45, c67))); ++#endif ++} ++ ++// Multiply the low signed 32-bit integers from each packed 64-bit element in ++// a and b, and store the signed 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epi32 ++FORCE_INLINE __m128i _mm_mul_epi32(__m128i a, __m128i b) ++{ ++ // vmull_s32 upcasts instead of masking, so we downcast. ++ int32x2_t a_lo = vmovn_s64(vreinterpretq_s64_m128i(a)); ++ int32x2_t b_lo = vmovn_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vmull_s32(a_lo, b_lo)); ++} ++ ++// Multiply the packed 32-bit integers in a and b, producing intermediate 64-bit ++// integers, and store the low 32 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi32 ++FORCE_INLINE __m128i _mm_mullo_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmulq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi32 ++FORCE_INLINE __m128i _mm_packus_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcombine_u16(vqmovun_s32(vreinterpretq_s32_m128i(a)), ++ vqmovun_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_pd ++FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d a, int rounding) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndnq_f64(vreinterpretq_f64_m128d(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_pd(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_pd(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndq_f64(vreinterpretq_f64_m128d(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128d_f64(vrndiq_f64(vreinterpretq_f64_m128d(a))); ++ } ++#else ++ double *v_double = (double *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ double res[2], tmp; ++ for (int i = 0; i < 2; i++) { ++ tmp = (v_double[i] < 0) ? -v_double[i] : v_double[i]; ++ double roundDown = floor(tmp); // Round down value ++ double roundUp = ceil(tmp); // Round up value ++ double diffDown = tmp - roundDown; ++ double diffUp = roundUp - tmp; ++ if (diffDown < diffUp) { ++ /* If it's closer to the round down value, then use it */ ++ res[i] = roundDown; ++ } else if (diffDown > diffUp) { ++ /* If it's closer to the round up value, then use it */ ++ res[i] = roundUp; ++ } else { ++ /* If it's equidistant between round up and round down value, ++ * pick the one which is an even number */ ++ double half = roundDown / 2; ++ if (half != floor(half)) { ++ /* If the round down value is odd, return the round up value ++ */ ++ res[i] = roundUp; ++ } else { ++ /* If the round up value is odd, return the round down value ++ */ ++ res[i] = roundDown; ++ } ++ } ++ res[i] = (v_double[i] < 0) ? -res[i] : res[i]; ++ } ++ return _mm_set_pd(res[1], res[0]); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_pd(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_pd(a); ++ } ++ return _mm_set_pd(v_double[1] > 0 ? floor(v_double[1]) : ceil(v_double[1]), ++ v_double[0] > 0 ? floor(v_double[0]) : ceil(v_double[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed single-precision ++// floating-point elements in dst. ++// software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_round_ps ++FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128 a, int rounding) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndnq_f32(vreinterpretq_f32_m128(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_ps(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_ps(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndq_f32(vreinterpretq_f32_m128(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128_f32(vrndiq_f32(vreinterpretq_f32_m128(a))); ++ } ++#else ++ float *v_float = (float *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vbslq_s32(is_delta_half, r_even, r_normal))); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_ps(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_ps(a); ++ } ++ return _mm_set_ps(v_float[3] > 0 ? floorf(v_float[3]) : ceilf(v_float[3]), ++ v_float[2] > 0 ? floorf(v_float[2]) : ceilf(v_float[2]), ++ v_float[1] > 0 ? floorf(v_float[1]) : ceilf(v_float[1]), ++ v_float[0] > 0 ? floorf(v_float[0]) : ceilf(v_float[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b using ++// the rounding parameter, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_sd ++FORCE_INLINE __m128d _mm_round_sd(__m128d a, __m128d b, int rounding) ++{ ++ return _mm_move_sd(a, _mm_round_pd(b, rounding)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b using ++// the rounding parameter, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. Rounding is done according to the ++// rounding[3:0] parameter, which can be one of: ++// (_MM_FROUND_TO_NEAREST_INT |_MM_FROUND_NO_EXC) // round to nearest, and ++// suppress exceptions ++// (_MM_FROUND_TO_NEG_INF |_MM_FROUND_NO_EXC) // round down, and ++// suppress exceptions ++// (_MM_FROUND_TO_POS_INF |_MM_FROUND_NO_EXC) // round up, and suppress ++// exceptions ++// (_MM_FROUND_TO_ZERO |_MM_FROUND_NO_EXC) // truncate, and suppress ++// exceptions _MM_FROUND_CUR_DIRECTION // use MXCSR.RC; see ++// _MM_SET_ROUNDING_MODE ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_ss ++FORCE_INLINE __m128 _mm_round_ss(__m128 a, __m128 b, int rounding) ++{ ++ return _mm_move_ss(a, _mm_round_ps(b, rounding)); ++} ++ ++// Load 128-bits of integer data from memory into dst using a non-temporal ++// memory hint. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_load_si128 ++FORCE_INLINE __m128i _mm_stream_load_si128(__m128i *p) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ return __builtin_nontemporal_load(p); ++#else ++ return vreinterpretq_m128i_s64(vld1q_s64((int64_t *) p)); ++#endif ++} ++ ++// Compute the bitwise NOT of a and then AND with a 128-bit vector containing ++// all 1's, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_ones ++FORCE_INLINE int _mm_test_all_ones(__m128i a) ++{ ++ return (uint64_t) (vgetq_lane_s64(a, 0) & vgetq_lane_s64(a, 1)) == ++ ~(uint64_t) 0; ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_zeros ++FORCE_INLINE int _mm_test_all_zeros(__m128i a, __m128i mask) ++{ ++ int64x2_t a_and_mask = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(mask)); ++ return !(vgetq_lane_s64(a_and_mask, 0) | vgetq_lane_s64(a_and_mask, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute ++// the bitwise NOT of a and then AND with mask, and set CF to 1 if the result is ++// zero, otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_test_mix_ones_zero ++// Note: Argument names may be wrong in the Intel intrinsics guide. ++FORCE_INLINE int _mm_test_mix_ones_zeros(__m128i a, __m128i mask) ++{ ++ uint64x2_t v = vreinterpretq_u64_m128i(a); ++ uint64x2_t m = vreinterpretq_u64_m128i(mask); ++ ++ // find ones (set-bits) and zeros (clear-bits) under clip mask ++ uint64x2_t ones = vandq_u64(m, v); ++ uint64x2_t zeros = vbicq_u64(m, v); ++ ++ // If both 128-bit variables are populated (non-zero) then return 1. ++ // For comparison purposes, first compact each var down to 32-bits. ++ uint32x2_t reduced = vpmax_u32(vqmovn_u64(ones), vqmovn_u64(zeros)); ++ ++ // if folding minimum is non-zero then both vars must be non-zero ++ return (vget_lane_u32(vpmin_u32(reduced, reduced), 0) != 0); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the CF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testc_si128 ++FORCE_INLINE int _mm_testc_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vbicq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testnzc_si128 ++#define _mm_testnzc_si128(a, b) _mm_test_mix_ones_zeros(a, b) ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the ZF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testz_si128 ++FORCE_INLINE int _mm_testz_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++/* SSE4.2 */ ++ ++static const uint16_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask16b[8] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++static const uint8_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask8b[16] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++ ++/* specify the source data format */ ++#define _SIDD_UBYTE_OPS 0x00 /* unsigned 8-bit characters */ ++#define _SIDD_UWORD_OPS 0x01 /* unsigned 16-bit characters */ ++#define _SIDD_SBYTE_OPS 0x02 /* signed 8-bit characters */ ++#define _SIDD_SWORD_OPS 0x03 /* signed 16-bit characters */ ++ ++/* specify the comparison operation */ ++#define _SIDD_CMP_EQUAL_ANY 0x00 /* compare equal any: strchr */ ++#define _SIDD_CMP_RANGES 0x04 /* compare ranges */ ++#define _SIDD_CMP_EQUAL_EACH 0x08 /* compare equal each: strcmp */ ++#define _SIDD_CMP_EQUAL_ORDERED 0x0C /* compare equal ordered */ ++ ++/* specify the polarity */ ++#define _SIDD_POSITIVE_POLARITY 0x00 ++#define _SIDD_MASKED_POSITIVE_POLARITY 0x20 ++#define _SIDD_NEGATIVE_POLARITY 0x10 /* negate results */ ++#define _SIDD_MASKED_NEGATIVE_POLARITY \ ++ 0x30 /* negate results only before end of string */ ++ ++/* specify the output selection in _mm_cmpXstri */ ++#define _SIDD_LEAST_SIGNIFICANT 0x00 ++#define _SIDD_MOST_SIGNIFICANT 0x40 ++ ++/* specify the output selection in _mm_cmpXstrm */ ++#define _SIDD_BIT_MASK 0x00 ++#define _SIDD_UNIT_MASK 0x40 ++ ++/* Pattern Matching for C macros. ++ * https://github.com/pfultz2/Cloak/wiki/C-Preprocessor-tricks,-tips,-and-idioms ++ */ ++ ++/* catenate */ ++#define SSE2NEON_PRIMITIVE_CAT(a, ...) a##__VA_ARGS__ ++#define SSE2NEON_CAT(a, b) SSE2NEON_PRIMITIVE_CAT(a, b) ++ ++#define SSE2NEON_IIF(c) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_IIF_, c) ++/* run the 2nd parameter */ ++#define SSE2NEON_IIF_0(t, ...) __VA_ARGS__ ++/* run the 1st parameter */ ++#define SSE2NEON_IIF_1(t, ...) t ++ ++#define SSE2NEON_COMPL(b) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_COMPL_, b) ++#define SSE2NEON_COMPL_0 1 ++#define SSE2NEON_COMPL_1 0 ++ ++#define SSE2NEON_DEC(x) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_DEC_, x) ++#define SSE2NEON_DEC_1 0 ++#define SSE2NEON_DEC_2 1 ++#define SSE2NEON_DEC_3 2 ++#define SSE2NEON_DEC_4 3 ++#define SSE2NEON_DEC_5 4 ++#define SSE2NEON_DEC_6 5 ++#define SSE2NEON_DEC_7 6 ++#define SSE2NEON_DEC_8 7 ++#define SSE2NEON_DEC_9 8 ++#define SSE2NEON_DEC_10 9 ++#define SSE2NEON_DEC_11 10 ++#define SSE2NEON_DEC_12 11 ++#define SSE2NEON_DEC_13 12 ++#define SSE2NEON_DEC_14 13 ++#define SSE2NEON_DEC_15 14 ++#define SSE2NEON_DEC_16 15 ++ ++/* detection */ ++#define SSE2NEON_CHECK_N(x, n, ...) n ++#define SSE2NEON_CHECK(...) SSE2NEON_CHECK_N(__VA_ARGS__, 0, ) ++#define SSE2NEON_PROBE(x) x, 1, ++ ++#define SSE2NEON_NOT(x) SSE2NEON_CHECK(SSE2NEON_PRIMITIVE_CAT(SSE2NEON_NOT_, x)) ++#define SSE2NEON_NOT_0 SSE2NEON_PROBE(~) ++ ++#define SSE2NEON_BOOL(x) SSE2NEON_COMPL(SSE2NEON_NOT(x)) ++#define SSE2NEON_IF(c) SSE2NEON_IIF(SSE2NEON_BOOL(c)) ++ ++#define SSE2NEON_EAT(...) ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++#define SSE2NEON_WHEN(c) SSE2NEON_IF(c)(SSE2NEON_EXPAND, SSE2NEON_EAT) ++ ++/* recursion */ ++/* deferred expression */ ++#define SSE2NEON_EMPTY() ++#define SSE2NEON_DEFER(id) id SSE2NEON_EMPTY() ++#define SSE2NEON_OBSTRUCT(...) __VA_ARGS__ SSE2NEON_DEFER(SSE2NEON_EMPTY)() ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++ ++#define SSE2NEON_EVAL(...) \ ++ SSE2NEON_EVAL1(SSE2NEON_EVAL1(SSE2NEON_EVAL1(__VA_ARGS__))) ++#define SSE2NEON_EVAL1(...) \ ++ SSE2NEON_EVAL2(SSE2NEON_EVAL2(SSE2NEON_EVAL2(__VA_ARGS__))) ++#define SSE2NEON_EVAL2(...) \ ++ SSE2NEON_EVAL3(SSE2NEON_EVAL3(SSE2NEON_EVAL3(__VA_ARGS__))) ++#define SSE2NEON_EVAL3(...) __VA_ARGS__ ++ ++#define SSE2NEON_REPEAT(count, macro, ...) \ ++ SSE2NEON_WHEN(count) \ ++ (SSE2NEON_OBSTRUCT(SSE2NEON_REPEAT_INDIRECT)()( \ ++ SSE2NEON_DEC(count), macro, \ ++ __VA_ARGS__) SSE2NEON_OBSTRUCT(macro)(SSE2NEON_DEC(count), \ ++ __VA_ARGS__)) ++#define SSE2NEON_REPEAT_INDIRECT() SSE2NEON_REPEAT ++ ++#define SSE2NEON_SIZE_OF_byte 8 ++#define SSE2NEON_NUMBER_OF_LANES_byte 16 ++#define SSE2NEON_SIZE_OF_word 16 ++#define SSE2NEON_NUMBER_OF_LANES_word 8 ++ ++#define SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE(i, type) \ ++ mtx[i] = vreinterpretq_m128i_##type(vceqq_##type( \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)), \ ++ vreinterpretq_##type##_m128i(a))); ++ ++#define SSE2NEON_FILL_LANE(i, type) \ ++ vec_b[i] = \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)); ++ ++#define PCMPSTR_RANGES(a, b, mtx, data_type_prefix, type_prefix, size, \ ++ number_of_lanes, byte_or_word) \ ++ do { \ ++ SSE2NEON_CAT( \ ++ data_type_prefix, \ ++ SSE2NEON_CAT(size, \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(number_of_lanes, _t)))) \ ++ vec_b[number_of_lanes]; \ ++ __m128i mask = SSE2NEON_IIF(byte_or_word)( \ ++ vreinterpretq_m128i_u16(vdupq_n_u16(0xff)), \ ++ vreinterpretq_m128i_u32(vdupq_n_u32(0xffff))); \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, SSE2NEON_FILL_LANE, \ ++ SSE2NEON_CAT(type_prefix, size))) \ ++ for (int i = 0; i < number_of_lanes; i++) { \ ++ mtx[i] = SSE2NEON_CAT(vreinterpretq_m128i_u, \ ++ size)(SSE2NEON_CAT(vbslq_u, size)( \ ++ SSE2NEON_CAT(vreinterpretq_u, \ ++ SSE2NEON_CAT(size, _m128i))(mask), \ ++ SSE2NEON_CAT(vcgeq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))), \ ++ SSE2NEON_CAT(vcleq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))))); \ ++ } \ ++ } while (0) ++ ++#define PCMPSTR_EQ(a, b, mtx, size, number_of_lanes) \ ++ do { \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, \ ++ SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE, \ ++ SSE2NEON_CAT(u, size))) \ ++ } while (0) ++ ++#define SSE2NEON_CMP_EQUAL_ANY_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_any(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_any_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_RANGES_IMPL(type, data_type, us, byte_or_word) \ ++ static int _sse2neon_cmp_##us##type##_ranges(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_RANGES( \ ++ a, b, mtx, data_type, us, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), byte_or_word); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_ranges_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_EQUAL_ORDERED_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_ordered(__m128i a, int la, \ ++ __m128i b, int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_ordered_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type))))( \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), la, lb, mtx); \ ++ } ++ ++static int _sse2neon_aggregate_equal_any_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ int tmp = _sse2neon_vaddvq_u8(vreinterpretq_u8_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_equal_any_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ int tmp = _sse2neon_vaddvq_u16(vreinterpretq_u16_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ANY(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ANY(SSE2NEON_CMP_EQUAL_ANY_) ++ ++static int _sse2neon_aggregate_ranges_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ __m128i tmp = vreinterpretq_m128i_u32( ++ vshrq_n_u32(vreinterpretq_u32_m128i(mtx[j]), 16)); ++ uint32x4_t vec_res = vandq_u32(vreinterpretq_u32_m128i(mtx[j]), ++ vreinterpretq_u32_m128i(tmp)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int t = vaddvq_u32(vec_res) ? 1 : 0; ++#else ++ uint64x2_t sumh = vpaddlq_u32(vec_res); ++ int t = vgetq_lane_u64(sumh, 0) + vgetq_lane_u64(sumh, 1); ++#endif ++ res |= (t << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_ranges_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ __m128i tmp = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 8)); ++ uint16x8_t vec_res = vandq_u16(vreinterpretq_u16_m128i(mtx[j]), ++ vreinterpretq_u16_m128i(tmp)); ++ int t = _sse2neon_vaddvq_u16(vec_res) ? 1 : 0; ++ res |= (t << j); ++ } ++ return res; ++} ++ ++#define SSE2NEON_CMP_RANGES_IS_BYTE 1 ++#define SSE2NEON_CMP_RANGES_IS_WORD 0 ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_RANGES(prefix) \ ++ prefix##IMPL(byte, uint, u, prefix##IS_BYTE) \ ++ prefix##IMPL(byte, int, s, prefix##IS_BYTE) \ ++ prefix##IMPL(word, uint, u, prefix##IS_WORD) \ ++ prefix##IMPL(word, int, s, prefix##IS_WORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_RANGES(SSE2NEON_CMP_RANGES_) ++ ++#undef SSE2NEON_CMP_RANGES_IS_BYTE ++#undef SSE2NEON_CMP_RANGES_IS_WORD ++ ++static int _sse2neon_cmp_byte_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint8x16_t mtx = ++ vceqq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x10000 - (1 << la); ++ int tb = 0x10000 - (1 << lb); ++ uint8x8_t vec_mask, vec0_lo, vec0_hi, vec1_lo, vec1_hi; ++ uint8x8_t tmp_lo, tmp_hi, res_lo, res_hi; ++ vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ vec0_lo = vtst_u8(vdup_n_u8(m0), vec_mask); ++ vec0_hi = vtst_u8(vdup_n_u8(m0 >> 8), vec_mask); ++ vec1_lo = vtst_u8(vdup_n_u8(m1), vec_mask); ++ vec1_hi = vtst_u8(vdup_n_u8(m1 >> 8), vec_mask); ++ tmp_lo = vtst_u8(vdup_n_u8(tb), vec_mask); ++ tmp_hi = vtst_u8(vdup_n_u8(tb >> 8), vec_mask); ++ ++ res_lo = vbsl_u8(vec0_lo, vdup_n_u8(0), vget_low_u8(mtx)); ++ res_hi = vbsl_u8(vec0_hi, vdup_n_u8(0), vget_high_u8(mtx)); ++ res_lo = vbsl_u8(vec1_lo, tmp_lo, res_lo); ++ res_hi = vbsl_u8(vec1_hi, tmp_hi, res_hi); ++ res_lo = vand_u8(res_lo, vec_mask); ++ res_hi = vand_u8(res_hi, vec_mask); ++ ++ int res = _sse2neon_vaddv_u8(res_lo) + (_sse2neon_vaddv_u8(res_hi) << 8); ++ return res; ++} ++ ++static int _sse2neon_cmp_word_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint16x8_t mtx = ++ vceqq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x100 - (1 << la); ++ int tb = 0x100 - (1 << lb); ++ uint16x8_t vec_mask = vld1q_u16(_sse2neon_cmpestr_mask16b); ++ uint16x8_t vec0 = vtstq_u16(vdupq_n_u16(m0), vec_mask); ++ uint16x8_t vec1 = vtstq_u16(vdupq_n_u16(m1), vec_mask); ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(tb), vec_mask); ++ mtx = vbslq_u16(vec0, vdupq_n_u16(0), mtx); ++ mtx = vbslq_u16(vec1, tmp, mtx); ++ mtx = vandq_u16(mtx, vec_mask); ++ return _sse2neon_vaddvq_u16(mtx); ++} ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE 1 ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD 0 ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IMPL(size, number_of_lanes, data_type) \ ++ static int _sse2neon_aggregate_equal_ordered_##size##x##number_of_lanes( \ ++ int bound, int la, int lb, __m128i mtx[16]) \ ++ { \ ++ int res = 0; \ ++ int m1 = SSE2NEON_IIF(data_type)(0x10000, 0x100) - (1 << la); \ ++ uint##size##x8_t vec_mask = SSE2NEON_IIF(data_type)( \ ++ vld1_u##size(_sse2neon_cmpestr_mask##size##b), \ ++ vld1q_u##size(_sse2neon_cmpestr_mask##size##b)); \ ++ uint##size##x##number_of_lanes##_t vec1 = SSE2NEON_IIF(data_type)( \ ++ vcombine_u##size(vtst_u##size(vdup_n_u##size(m1), vec_mask), \ ++ vtst_u##size(vdup_n_u##size(m1 >> 8), vec_mask)), \ ++ vtstq_u##size(vdupq_n_u##size(m1), vec_mask)); \ ++ uint##size##x##number_of_lanes##_t vec_minusone = vdupq_n_u##size(-1); \ ++ uint##size##x##number_of_lanes##_t vec_zero = vdupq_n_u##size(0); \ ++ for (int j = 0; j < lb; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size(vbslq_u##size( \ ++ vec1, vec_minusone, vreinterpretq_u##size##_m128i(mtx[j]))); \ ++ } \ ++ for (int j = lb; j < bound; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size( \ ++ vbslq_u##size(vec1, vec_minusone, vec_zero)); \ ++ } \ ++ unsigned SSE2NEON_IIF(data_type)(char, short) *ptr = \ ++ (unsigned SSE2NEON_IIF(data_type)(char, short) *) mtx; \ ++ for (int i = 0; i < bound; i++) { \ ++ int val = 1; \ ++ for (int j = 0, k = i; j < bound - i && k < bound; j++, k++) \ ++ val &= ptr[k * bound + j]; \ ++ res += val << i; \ ++ } \ ++ return res; \ ++ } ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(prefix) \ ++ prefix##IMPL(8, 16, prefix##IS_UBYTE) \ ++ prefix##IMPL(16, 8, prefix##IS_UWORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(SSE2NEON_AGGREGATE_EQUAL_ORDER_) ++ ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(SSE2NEON_CMP_EQUAL_ORDERED_) ++ ++#define SSE2NEON_CMPESTR_LIST \ ++ _(CMP_UBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_UWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_SBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_SWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_UBYTE_RANGES, cmp_ubyte_ranges) \ ++ _(CMP_UWORD_RANGES, cmp_uword_ranges) \ ++ _(CMP_SBYTE_RANGES, cmp_sbyte_ranges) \ ++ _(CMP_SWORD_RANGES, cmp_sword_ranges) \ ++ _(CMP_UBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_UWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_SBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_SWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_UBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_UWORD_EQUAL_ORDERED, cmp_word_equal_ordered) \ ++ _(CMP_SBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_SWORD_EQUAL_ORDERED, cmp_word_equal_ordered) ++ ++enum { ++#define _(name, func_suffix) name, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++typedef int (*cmpestr_func_t)(__m128i a, int la, __m128i b, int lb); ++static cmpestr_func_t _sse2neon_cmpfunc_table[] = { ++#define _(name, func_suffix) _sse2neon_##func_suffix, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++ ++FORCE_INLINE int _sse2neon_sido_negative(int res, int lb, int imm8, int bound) ++{ ++ switch (imm8 & 0x30) { ++ case _SIDD_NEGATIVE_POLARITY: ++ res ^= 0xffffffff; ++ break; ++ case _SIDD_MASKED_NEGATIVE_POLARITY: ++ res ^= (1 << lb) - 1; ++ break; ++ default: ++ break; ++ } ++ ++ return res & ((bound == 8) ? 0xFF : 0xFFFF); ++} ++ ++FORCE_INLINE int _sse2neon_clz(unsigned int x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt = 0; ++ if (_BitScanReverse(&cnt, x)) ++ return 31 - cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_clz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctz(unsigned int x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt = 0; ++ if (_BitScanForward(&cnt, x)) ++ return cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_ctz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctzll(unsigned long long x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt; ++#if defined(SSE2NEON_HAS_BITSCAN64) ++ if (_BitScanForward64(&cnt, x)) ++ return (int) (cnt); ++#else ++ if (_BitScanForward(&cnt, (unsigned long) (x))) ++ return (int) cnt; ++ if (_BitScanForward(&cnt, (unsigned long) (x >> 32))) ++ return (int) (cnt + 32); ++#endif /* SSE2NEON_HAS_BITSCAN64 */ ++ return 64; ++#else /* assume GNU compatible compilers */ ++ return x != 0 ? __builtin_ctzll(x) : 64; ++#endif ++} ++ ++#define SSE2NEON_MIN(x, y) (x) < (y) ? (x) : (y) ++ ++#define SSE2NEON_CMPSTR_SET_UPPER(var, imm) \ ++ const int var = (imm & 0x01) ? 8 : 16 ++ ++#define SSE2NEON_CMPESTRX_LEN_PAIR(a, b, la, lb) \ ++ int tmp1 = la ^ (la >> 31); \ ++ la = tmp1 - (la >> 31); \ ++ int tmp2 = lb ^ (lb >> 31); \ ++ lb = tmp2 - (lb >> 31); \ ++ la = SSE2NEON_MIN(la, bound); \ ++ lb = SSE2NEON_MIN(lb, bound) ++ ++// Compare all pairs of character in string a and b, ++// then aggregate the result. ++// As the only difference of PCMPESTR* and PCMPISTR* is the way to calculate the ++// length of string, we use SSE2NEON_CMP{I,E}STRX_GET_LEN to get the length of ++// string a and b. ++#define SSE2NEON_COMP_AGG(a, b, la, lb, imm8, IE) \ ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); \ ++ SSE2NEON_##IE##_LEN_PAIR(a, b, la, lb); \ ++ int r2 = (_sse2neon_cmpfunc_table[imm8 & 0x0f])(a, la, b, lb); \ ++ r2 = _sse2neon_sido_negative(r2, lb, imm8, bound) ++ ++#define SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8) \ ++ return (r2 == 0) ? bound \ ++ : ((imm8 & 0x40) ? (31 - _sse2neon_clz(r2)) \ ++ : _sse2neon_ctz(r2)) ++ ++#define SSE2NEON_CMPSTR_GENERATE_MASK(dst) \ ++ __m128i dst = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ if (imm8 & 0x40) { \ ++ if (bound == 8) { \ ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(r2), \ ++ vld1q_u16(_sse2neon_cmpestr_mask16b)); \ ++ dst = vreinterpretq_m128i_u16(vbslq_u16( \ ++ tmp, vdupq_n_u16(-1), vreinterpretq_u16_m128i(dst))); \ ++ } else { \ ++ uint8x16_t vec_r2 = \ ++ vcombine_u8(vdup_n_u8(r2), vdup_n_u8(r2 >> 8)); \ ++ uint8x16_t tmp = \ ++ vtstq_u8(vec_r2, vld1q_u8(_sse2neon_cmpestr_mask8b)); \ ++ dst = vreinterpretq_m128i_u8( \ ++ vbslq_u8(tmp, vdupq_n_u8(-1), vreinterpretq_u8_m128i(dst))); \ ++ } \ ++ } else { \ ++ if (bound == 16) { \ ++ dst = vreinterpretq_m128i_u16( \ ++ vsetq_lane_u16(r2 & 0xffff, vreinterpretq_u16_m128i(dst), 0)); \ ++ } else { \ ++ dst = vreinterpretq_m128i_u8( \ ++ vsetq_lane_u8(r2 & 0xff, vreinterpretq_u8_m128i(dst), 0)); \ ++ } \ ++ } \ ++ return dst ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and returns 1 if b did not contain a null character and the ++// resulting mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestra ++FORCE_INLINE int _mm_cmpestra(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ int lb_cpy = lb; ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return !r2 & (lb_cpy > bound); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrc ++FORCE_INLINE int _mm_cmpestrc(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestri ++FORCE_INLINE int _mm_cmpestri(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrm ++FORCE_INLINE __m128i ++_mm_cmpestrm(__m128i a, int la, __m128i b, int lb, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestro ++FORCE_INLINE int _mm_cmpestro(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrs ++FORCE_INLINE int _mm_cmpestrs(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) lb; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrz ++FORCE_INLINE int _mm_cmpestrz(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) la; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return lb <= (bound - 1); ++} ++ ++#define SSE2NEON_CMPISTRX_LENGTH(str, len, imm8) \ ++ do { \ ++ if (imm8 & 0x01) { \ ++ uint16x8_t equal_mask_##str = \ ++ vceqq_u16(vreinterpretq_u16_m128i(str), vdupq_n_u16(0)); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 3; \ ++ } else { \ ++ uint16x8_t equal_mask_##str = vreinterpretq_u16_u8( \ ++ vceqq_u8(vreinterpretq_u8_m128i(str), vdupq_n_u8(0))); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 2; \ ++ } \ ++ } while (0) ++ ++#define SSE2NEON_CMPISTRX_LEN_PAIR(a, b, la, lb) \ ++ int la, lb; \ ++ do { \ ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); \ ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); \ ++ } while (0) ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if b did not contain a null character and the resulting ++// mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistra ++FORCE_INLINE int _mm_cmpistra(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return !r2 & (lb >= bound); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrc ++FORCE_INLINE int _mm_cmpistrc(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistri ++FORCE_INLINE int _mm_cmpistri(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrm ++FORCE_INLINE __m128i _mm_cmpistrm(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistro ++FORCE_INLINE int _mm_cmpistro(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrs ++FORCE_INLINE int _mm_cmpistrs(__m128i a, __m128i b, const int imm8) ++{ ++ (void) b; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int la; ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrz ++FORCE_INLINE int _mm_cmpistrz(__m128i a, __m128i b, const int imm8) ++{ ++ (void) a; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int lb; ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); ++ return lb <= (bound - 1); ++} ++ ++// Compares the 2 signed 64-bit integers in a and the 2 signed 64-bit integers ++// in b for greater than. ++FORCE_INLINE __m128i _mm_cmpgt_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vcgtq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ return vreinterpretq_m128i_s64(vshrq_n_s64( ++ vqsubq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)), ++ 63)); ++#endif ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 16-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u16 ++FORCE_INLINE uint32_t _mm_crc32_u16(uint32_t crc, uint16_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32ch %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32ch(crc, v); ++#else ++ crc = _mm_crc32_u8(crc, v & 0xff); ++ crc = _mm_crc32_u8(crc, (v >> 8) & 0xff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 32-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u32 ++FORCE_INLINE uint32_t _mm_crc32_u32(uint32_t crc, uint32_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cw %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cw(crc, v); ++#else ++ crc = _mm_crc32_u16(crc, v & 0xffff); ++ crc = _mm_crc32_u16(crc, (v >> 16) & 0xffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 64-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u64 ++FORCE_INLINE uint64_t _mm_crc32_u64(uint64_t crc, uint64_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cx %w[c], %w[c], %x[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cd((uint32_t) crc, v); ++#else ++ crc = _mm_crc32_u32((uint32_t) (crc), v & 0xffffffff); ++ crc = _mm_crc32_u32((uint32_t) (crc), (v >> 32) & 0xffffffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 8-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u8 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t crc, uint8_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cb %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cb(crc, v); ++#else ++ crc ^= v; ++#if defined(__ARM_FEATURE_CRYPTO) ++ // Adapted from: https://mary.rs/lab/crc32/ ++ // Barrent reduction ++ uint64x2_t orig = ++ vcombine_u64(vcreate_u64((uint64_t) (crc) << 24), vcreate_u64(0x0)); ++ uint64x2_t tmp = orig; ++ ++ // Polynomial P(x) of CRC32C ++ uint64_t p = 0x105EC76F1; ++ // Barrett Reduction (in bit-reflected form) constant mu_{64} = \lfloor ++ // 2^{64} / P(x) \rfloor = 0x11f91caf6 ++ uint64_t mu = 0x1dea713f1; ++ ++ // Multiply by mu_{64} ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(mu)); ++ // Divide by 2^{64} (mask away the unnecessary bits) ++ tmp = ++ vandq_u64(tmp, vcombine_u64(vcreate_u64(0xFFFFFFFF), vcreate_u64(0x0))); ++ // Multiply by P(x) (shifted left by 1 for alignment reasons) ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(p)); ++ // Subtract original from result ++ tmp = veorq_u64(tmp, orig); ++ ++ // Extract the 'lower' (in bit-reflected sense) 32 bits ++ crc = vgetq_lane_u32(vreinterpretq_u32_u64(tmp), 1); ++#else // Fall back to the generic table lookup approach ++ // Adapted from: https://create.stephan-brumme.com/crc32/ ++ // Apply half-byte comparison algorithm for the best ratio between ++ // performance and lookup table. ++ ++ // The lookup table just needs to store every 16th entry ++ // of the standard look-up table. ++ static const uint32_t crc32_half_byte_tbl[] = { ++ 0x00000000, 0x105ec76f, 0x20bd8ede, 0x30e349b1, 0x417b1dbc, 0x5125dad3, ++ 0x61c69362, 0x7198540d, 0x82f63b78, 0x92a8fc17, 0xa24bb5a6, 0xb21572c9, ++ 0xc38d26c4, 0xd3d3e1ab, 0xe330a81a, 0xf36e6f75, ++ }; ++ ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++#endif ++#endif ++ return crc; ++} ++ ++/* AES */ ++ ++#if !defined(__ARM_FEATURE_CRYPTO) && (!defined(_M_ARM64) || defined(__clang__)) ++/* clang-format off */ ++#define SSE2NEON_AES_SBOX(w) \ ++ { \ ++ w(0x63), w(0x7c), w(0x77), w(0x7b), w(0xf2), w(0x6b), w(0x6f), \ ++ w(0xc5), w(0x30), w(0x01), w(0x67), w(0x2b), w(0xfe), w(0xd7), \ ++ w(0xab), w(0x76), w(0xca), w(0x82), w(0xc9), w(0x7d), w(0xfa), \ ++ w(0x59), w(0x47), w(0xf0), w(0xad), w(0xd4), w(0xa2), w(0xaf), \ ++ w(0x9c), w(0xa4), w(0x72), w(0xc0), w(0xb7), w(0xfd), w(0x93), \ ++ w(0x26), w(0x36), w(0x3f), w(0xf7), w(0xcc), w(0x34), w(0xa5), \ ++ w(0xe5), w(0xf1), w(0x71), w(0xd8), w(0x31), w(0x15), w(0x04), \ ++ w(0xc7), w(0x23), w(0xc3), w(0x18), w(0x96), w(0x05), w(0x9a), \ ++ w(0x07), w(0x12), w(0x80), w(0xe2), w(0xeb), w(0x27), w(0xb2), \ ++ w(0x75), w(0x09), w(0x83), w(0x2c), w(0x1a), w(0x1b), w(0x6e), \ ++ w(0x5a), w(0xa0), w(0x52), w(0x3b), w(0xd6), w(0xb3), w(0x29), \ ++ w(0xe3), w(0x2f), w(0x84), w(0x53), w(0xd1), w(0x00), w(0xed), \ ++ w(0x20), w(0xfc), w(0xb1), w(0x5b), w(0x6a), w(0xcb), w(0xbe), \ ++ w(0x39), w(0x4a), w(0x4c), w(0x58), w(0xcf), w(0xd0), w(0xef), \ ++ w(0xaa), w(0xfb), w(0x43), w(0x4d), w(0x33), w(0x85), w(0x45), \ ++ w(0xf9), w(0x02), w(0x7f), w(0x50), w(0x3c), w(0x9f), w(0xa8), \ ++ w(0x51), w(0xa3), w(0x40), w(0x8f), w(0x92), w(0x9d), w(0x38), \ ++ w(0xf5), w(0xbc), w(0xb6), w(0xda), w(0x21), w(0x10), w(0xff), \ ++ w(0xf3), w(0xd2), w(0xcd), w(0x0c), w(0x13), w(0xec), w(0x5f), \ ++ w(0x97), w(0x44), w(0x17), w(0xc4), w(0xa7), w(0x7e), w(0x3d), \ ++ w(0x64), w(0x5d), w(0x19), w(0x73), w(0x60), w(0x81), w(0x4f), \ ++ w(0xdc), w(0x22), w(0x2a), w(0x90), w(0x88), w(0x46), w(0xee), \ ++ w(0xb8), w(0x14), w(0xde), w(0x5e), w(0x0b), w(0xdb), w(0xe0), \ ++ w(0x32), w(0x3a), w(0x0a), w(0x49), w(0x06), w(0x24), w(0x5c), \ ++ w(0xc2), w(0xd3), w(0xac), w(0x62), w(0x91), w(0x95), w(0xe4), \ ++ w(0x79), w(0xe7), w(0xc8), w(0x37), w(0x6d), w(0x8d), w(0xd5), \ ++ w(0x4e), w(0xa9), w(0x6c), w(0x56), w(0xf4), w(0xea), w(0x65), \ ++ w(0x7a), w(0xae), w(0x08), w(0xba), w(0x78), w(0x25), w(0x2e), \ ++ w(0x1c), w(0xa6), w(0xb4), w(0xc6), w(0xe8), w(0xdd), w(0x74), \ ++ w(0x1f), w(0x4b), w(0xbd), w(0x8b), w(0x8a), w(0x70), w(0x3e), \ ++ w(0xb5), w(0x66), w(0x48), w(0x03), w(0xf6), w(0x0e), w(0x61), \ ++ w(0x35), w(0x57), w(0xb9), w(0x86), w(0xc1), w(0x1d), w(0x9e), \ ++ w(0xe1), w(0xf8), w(0x98), w(0x11), w(0x69), w(0xd9), w(0x8e), \ ++ w(0x94), w(0x9b), w(0x1e), w(0x87), w(0xe9), w(0xce), w(0x55), \ ++ w(0x28), w(0xdf), w(0x8c), w(0xa1), w(0x89), w(0x0d), w(0xbf), \ ++ w(0xe6), w(0x42), w(0x68), w(0x41), w(0x99), w(0x2d), w(0x0f), \ ++ w(0xb0), w(0x54), w(0xbb), w(0x16) \ ++ } ++#define SSE2NEON_AES_RSBOX(w) \ ++ { \ ++ w(0x52), w(0x09), w(0x6a), w(0xd5), w(0x30), w(0x36), w(0xa5), \ ++ w(0x38), w(0xbf), w(0x40), w(0xa3), w(0x9e), w(0x81), w(0xf3), \ ++ w(0xd7), w(0xfb), w(0x7c), w(0xe3), w(0x39), w(0x82), w(0x9b), \ ++ w(0x2f), w(0xff), w(0x87), w(0x34), w(0x8e), w(0x43), w(0x44), \ ++ w(0xc4), w(0xde), w(0xe9), w(0xcb), w(0x54), w(0x7b), w(0x94), \ ++ w(0x32), w(0xa6), w(0xc2), w(0x23), w(0x3d), w(0xee), w(0x4c), \ ++ w(0x95), w(0x0b), w(0x42), w(0xfa), w(0xc3), w(0x4e), w(0x08), \ ++ w(0x2e), w(0xa1), w(0x66), w(0x28), w(0xd9), w(0x24), w(0xb2), \ ++ w(0x76), w(0x5b), w(0xa2), w(0x49), w(0x6d), w(0x8b), w(0xd1), \ ++ w(0x25), w(0x72), w(0xf8), w(0xf6), w(0x64), w(0x86), w(0x68), \ ++ w(0x98), w(0x16), w(0xd4), w(0xa4), w(0x5c), w(0xcc), w(0x5d), \ ++ w(0x65), w(0xb6), w(0x92), w(0x6c), w(0x70), w(0x48), w(0x50), \ ++ w(0xfd), w(0xed), w(0xb9), w(0xda), w(0x5e), w(0x15), w(0x46), \ ++ w(0x57), w(0xa7), w(0x8d), w(0x9d), w(0x84), w(0x90), w(0xd8), \ ++ w(0xab), w(0x00), w(0x8c), w(0xbc), w(0xd3), w(0x0a), w(0xf7), \ ++ w(0xe4), w(0x58), w(0x05), w(0xb8), w(0xb3), w(0x45), w(0x06), \ ++ w(0xd0), w(0x2c), w(0x1e), w(0x8f), w(0xca), w(0x3f), w(0x0f), \ ++ w(0x02), w(0xc1), w(0xaf), w(0xbd), w(0x03), w(0x01), w(0x13), \ ++ w(0x8a), w(0x6b), w(0x3a), w(0x91), w(0x11), w(0x41), w(0x4f), \ ++ w(0x67), w(0xdc), w(0xea), w(0x97), w(0xf2), w(0xcf), w(0xce), \ ++ w(0xf0), w(0xb4), w(0xe6), w(0x73), w(0x96), w(0xac), w(0x74), \ ++ w(0x22), w(0xe7), w(0xad), w(0x35), w(0x85), w(0xe2), w(0xf9), \ ++ w(0x37), w(0xe8), w(0x1c), w(0x75), w(0xdf), w(0x6e), w(0x47), \ ++ w(0xf1), w(0x1a), w(0x71), w(0x1d), w(0x29), w(0xc5), w(0x89), \ ++ w(0x6f), w(0xb7), w(0x62), w(0x0e), w(0xaa), w(0x18), w(0xbe), \ ++ w(0x1b), w(0xfc), w(0x56), w(0x3e), w(0x4b), w(0xc6), w(0xd2), \ ++ w(0x79), w(0x20), w(0x9a), w(0xdb), w(0xc0), w(0xfe), w(0x78), \ ++ w(0xcd), w(0x5a), w(0xf4), w(0x1f), w(0xdd), w(0xa8), w(0x33), \ ++ w(0x88), w(0x07), w(0xc7), w(0x31), w(0xb1), w(0x12), w(0x10), \ ++ w(0x59), w(0x27), w(0x80), w(0xec), w(0x5f), w(0x60), w(0x51), \ ++ w(0x7f), w(0xa9), w(0x19), w(0xb5), w(0x4a), w(0x0d), w(0x2d), \ ++ w(0xe5), w(0x7a), w(0x9f), w(0x93), w(0xc9), w(0x9c), w(0xef), \ ++ w(0xa0), w(0xe0), w(0x3b), w(0x4d), w(0xae), w(0x2a), w(0xf5), \ ++ w(0xb0), w(0xc8), w(0xeb), w(0xbb), w(0x3c), w(0x83), w(0x53), \ ++ w(0x99), w(0x61), w(0x17), w(0x2b), w(0x04), w(0x7e), w(0xba), \ ++ w(0x77), w(0xd6), w(0x26), w(0xe1), w(0x69), w(0x14), w(0x63), \ ++ w(0x55), w(0x21), w(0x0c), w(0x7d) \ ++ } ++/* clang-format on */ ++ ++/* X Macro trick. See https://en.wikipedia.org/wiki/X_Macro */ ++#define SSE2NEON_AES_H0(x) (x) ++static const uint8_t _sse2neon_sbox[256] = SSE2NEON_AES_SBOX(SSE2NEON_AES_H0); ++static const uint8_t _sse2neon_rsbox[256] = SSE2NEON_AES_RSBOX(SSE2NEON_AES_H0); ++#undef SSE2NEON_AES_H0 ++ ++/* x_time function and matrix multiply function */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#define SSE2NEON_XT(x) (((x) << 1) ^ ((((x) >> 7) & 1) * 0x1b)) ++#define SSE2NEON_MULTIPLY(x, y) \ ++ (((y & 1) * x) ^ ((y >> 1 & 1) * SSE2NEON_XT(x)) ^ \ ++ ((y >> 2 & 1) * SSE2NEON_XT(SSE2NEON_XT(x))) ^ \ ++ ((y >> 3 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))) ^ \ ++ ((y >> 4 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))))) ++#endif ++ ++// In the absence of crypto extensions, implement aesenc using regular NEON ++// intrinsics instead. See: ++// https://www.workofard.com/2017/01/accelerated-aes-for-the-arm64-linux-kernel/ ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/ and ++// for more information. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ /* shift rows */ ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ /* sub bytes */ ++ // Here, we separate the whole 256-bytes table into 4 64-bytes tables, and ++ // look up each of the table. After each lookup, we load the next table ++ // which locates at the next 64-bytes. In the meantime, the index in the ++ // table would be smaller than it was, so the index parameters of ++ // `vqtbx4q_u8()` need to be added the same constant as the loaded tables. ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ // 'w-0x40' equals to 'vsubq_u8(w, vdupq_n_u8(0x40))' ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ /* mix columns */ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ /* add round key */ ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A implementation for a table-based AES */ ++#define SSE2NEON_AES_B2W(b0, b1, b2, b3) \ ++ (((uint32_t) (b3) << 24) | ((uint32_t) (b2) << 16) | \ ++ ((uint32_t) (b1) << 8) | (uint32_t) (b0)) ++// multiplying 'x' by 2 in GF(2^8) ++#define SSE2NEON_AES_F2(x) ((x << 1) ^ (((x >> 7) & 1) * 0x011b /* WPOLY */)) ++// multiplying 'x' by 3 in GF(2^8) ++#define SSE2NEON_AES_F3(x) (SSE2NEON_AES_F2(x) ^ x) ++#define SSE2NEON_AES_U0(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F2(p), p, p, SSE2NEON_AES_F3(p)) ++#define SSE2NEON_AES_U1(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p, p) ++#define SSE2NEON_AES_U2(p) \ ++ SSE2NEON_AES_B2W(p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p) ++#define SSE2NEON_AES_U3(p) \ ++ SSE2NEON_AES_B2W(p, p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p)) ++ ++ // this generates a table containing every possible permutation of ++ // shift_rows() and sub_bytes() with mix_columns(). ++ static const uint32_t ALIGN_STRUCT(16) aes_table[4][256] = { ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U0), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U1), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U2), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U3), ++ }; ++#undef SSE2NEON_AES_B2W ++#undef SSE2NEON_AES_F2 ++#undef SSE2NEON_AES_F3 ++#undef SSE2NEON_AES_U0 ++#undef SSE2NEON_AES_U1 ++#undef SSE2NEON_AES_U2 ++#undef SSE2NEON_AES_U3 ++ ++ uint32_t x0 = _mm_cvtsi128_si32(a); // get a[31:0] ++ uint32_t x1 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); // get a[63:32] ++ uint32_t x2 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xAA)); // get a[95:64] ++ uint32_t x3 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); // get a[127:96] ++ ++ // finish the modulo addition step in mix_columns() ++ __m128i out = _mm_set_epi32( ++ (aes_table[0][x3 & 0xff] ^ aes_table[1][(x0 >> 8) & 0xff] ^ ++ aes_table[2][(x1 >> 16) & 0xff] ^ aes_table[3][x2 >> 24]), ++ (aes_table[0][x2 & 0xff] ^ aes_table[1][(x3 >> 8) & 0xff] ^ ++ aes_table[2][(x0 >> 16) & 0xff] ^ aes_table[3][x1 >> 24]), ++ (aes_table[0][x1 & 0xff] ^ aes_table[1][(x2 >> 8) & 0xff] ^ ++ aes_table[2][(x3 >> 16) & 0xff] ^ aes_table[3][x0 >> 24]), ++ (aes_table[0][x0 & 0xff] ^ aes_table[1][(x1 >> 8) & 0xff] ^ ++ aes_table[2][(x2 >> 16) & 0xff] ^ aes_table[3][x3 >> 24])); ++ ++ return _mm_xor_si128(out, RoundKey); ++#endif ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // inverse mix columns ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & ++ 0x1b); // multiplying 'v' by 2 in GF(2^8) ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ // inverse mix columns ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ // sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A implementation */ ++ uint8_t v[16] = { ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 0)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 5)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 10)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 15)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 4)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 9)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 14)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 3)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 8)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 13)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 2)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 7)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 12)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 1)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 6)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 11)], ++ }; ++ ++ return vreinterpretq_m128i_u8(vld1q_u8(v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (int i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++#if defined(__aarch64__) ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ uint8x16_t v = vreinterpretq_u8_m128i(a); ++ uint8x16_t w; ++ ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ // multiplying 'v' by 2 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ return vreinterpretq_m128i_u8(w); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ vst1q_u8((uint8_t *) v, vreinterpretq_u8_m128i(a)); ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)); ++#endif ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++// ++// Emits the Advanced Encryption Standard (AES) instruction aeskeygenassist. ++// This instruction generates a round key for AES encryption. See ++// https://kazakov.life/2017/11/01/cryptocurrency-mining-on-ios-devices/ ++// for details. ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++#if defined(__aarch64__) ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); ++ uint8x16_t v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), _a); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), _a - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), _a - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), _a - 0xc0); ++ ++ uint32x4_t v_u32 = vreinterpretq_u32_u8(v); ++ uint32x4_t ror_v = vorrq_u32(vshrq_n_u32(v_u32, 8), vshlq_n_u32(v_u32, 24)); ++ uint32x4_t ror_xor_v = veorq_u32(ror_v, vdupq_n_u32(rcon)); ++ ++ return vreinterpretq_m128i_u32(vtrn2q_u32(v_u32, ror_xor_v)); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint32_t X1 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); ++ uint32_t X3 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); ++ for (int i = 0; i < 4; ++i) { ++ ((uint8_t *) &X1)[i] = _sse2neon_sbox[((uint8_t *) &X1)[i]]; ++ ((uint8_t *) &X3)[i] = _sse2neon_sbox[((uint8_t *) &X3)[i]]; ++ } ++ return _mm_set_epi32(((X3 >> 8) | (X3 << 24)) ^ rcon, X3, ++ ((X1 >> 8) | (X1 << 24)) ^ rcon, X1); ++#endif ++} ++#undef SSE2NEON_AES_SBOX ++#undef SSE2NEON_AES_RSBOX ++ ++#if defined(__aarch64__) ++#undef SSE2NEON_XT ++#undef SSE2NEON_MULTIPLY ++#endif ++ ++#else /* __ARM_FEATURE_CRYPTO */ ++// Implements equivalent of 'aesenc' by combining AESE (with an empty key) and ++// AESMC and then manually applying the real key as an xor operation. This ++// unfortunately means an additional xor op; the compiler should be able to ++// optimize this away for repeated calls however. See ++// https://blog.michaelbrase.com/2018/05/08/emulating-x86-aes-intrinsics-on-armv8-a ++// for more details. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesmcq_u8(vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(b))); ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesimcq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return _mm_xor_si128(vreinterpretq_m128i_u8(vaeseq_u8( ++ vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ RoundKey); ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8( ++ veorq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++ return vreinterpretq_m128i_u8(vaesimcq_u8(vreinterpretq_u8_m128i(a))); ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst." ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++ // AESE does ShiftRows and SubBytes on A ++ uint8x16_t u8 = vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)); ++ ++#ifndef _MSC_VER ++ uint8x16_t dest = { ++ // Undo ShiftRows step from AESE and extract X1 and X3 ++ u8[0x4], u8[0x1], u8[0xE], u8[0xB], // SubBytes(X1) ++ u8[0x1], u8[0xE], u8[0xB], u8[0x4], // ROT(SubBytes(X1)) ++ u8[0xC], u8[0x9], u8[0x6], u8[0x3], // SubBytes(X3) ++ u8[0x9], u8[0x6], u8[0x3], u8[0xC], // ROT(SubBytes(X3)) ++ }; ++ uint32x4_t r = {0, (unsigned) rcon, 0, (unsigned) rcon}; ++ return vreinterpretq_m128i_u8(dest) ^ vreinterpretq_m128i_u32(r); ++#else ++ // We have to do this hack because MSVC is strictly adhering to the CPP ++ // standard, in particular C++03 8.5.1 sub-section 15, which states that ++ // unions must be initialized by their first member type. ++ ++ // As per the Windows ARM64 ABI, it is always little endian, so this works ++ __n128 dest{ ++ ((uint64_t) u8.n128_u8[0x4] << 0) | ((uint64_t) u8.n128_u8[0x1] << 8) | ++ ((uint64_t) u8.n128_u8[0xE] << 16) | ++ ((uint64_t) u8.n128_u8[0xB] << 24) | ++ ((uint64_t) u8.n128_u8[0x1] << 32) | ++ ((uint64_t) u8.n128_u8[0xE] << 40) | ++ ((uint64_t) u8.n128_u8[0xB] << 48) | ++ ((uint64_t) u8.n128_u8[0x4] << 56), ++ ((uint64_t) u8.n128_u8[0xC] << 0) | ((uint64_t) u8.n128_u8[0x9] << 8) | ++ ((uint64_t) u8.n128_u8[0x6] << 16) | ++ ((uint64_t) u8.n128_u8[0x3] << 24) | ++ ((uint64_t) u8.n128_u8[0x9] << 32) | ++ ((uint64_t) u8.n128_u8[0x6] << 40) | ++ ((uint64_t) u8.n128_u8[0x3] << 48) | ++ ((uint64_t) u8.n128_u8[0xC] << 56)}; ++ ++ dest.n128_u32[1] = dest.n128_u32[1] ^ rcon; ++ dest.n128_u32[3] = dest.n128_u32[3] ^ rcon; ++ ++ return dest; ++#endif ++} ++#endif ++ ++/* Others */ ++ ++// Perform a carry-less multiplication of two 64-bit integers, selected from a ++// and b according to imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clmulepi64_si128 ++FORCE_INLINE __m128i _mm_clmulepi64_si128(__m128i _a, __m128i _b, const int imm) ++{ ++ uint64x2_t a = vreinterpretq_u64_m128i(_a); ++ uint64x2_t b = vreinterpretq_u64_m128i(_b); ++ switch (imm & 0x11) { ++ case 0x00: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_low_u64(b))); ++ case 0x01: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_low_u64(b))); ++ case 0x10: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_high_u64(b))); ++ case 0x11: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_high_u64(b))); ++ default: ++ abort(); ++ } ++} ++ ++FORCE_INLINE unsigned int _sse2neon_mm_get_denormals_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_DENORMALS_ZERO_ON : _MM_DENORMALS_ZERO_OFF; ++} ++ ++// Count the number of bits set to 1 in unsigned 32-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u32 ++FORCE_INLINE int _mm_popcnt_u32(unsigned int a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcount) ++ return __builtin_popcount(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits(a); ++#else ++ return (int) vaddlv_u8(vcnt_u8(vcreate_u8((uint64_t) a))); ++#endif ++#else ++ uint32_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ ++ vst1_u32(&count, count32x2_val); ++ return count; ++#endif ++} ++ ++// Count the number of bits set to 1 in unsigned 64-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u64 ++FORCE_INLINE int64_t _mm_popcnt_u64(uint64_t a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcountll) ++ return __builtin_popcountll(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits64(a); ++#else ++ return (int64_t) vaddlv_u8(vcnt_u8(vcreate_u8(a))); ++#endif ++#else ++ uint64_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ uint64x1_t count64x1_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ count64x1_val = vpaddl_u32(count32x2_val); ++ vst1_u64(&count, count64x1_val); ++ return count; ++#endif ++} ++ ++FORCE_INLINE void _sse2neon_mm_set_denormals_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_DENORMALS_ZERO_MASK) == _MM_DENORMALS_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Return the current 64-bit value of the processor's time-stamp counter. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=rdtsc ++FORCE_INLINE uint64_t _rdtsc(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t val; ++ ++ /* According to ARM DDI 0487F.c, from Armv8.0 to Armv8.5 inclusive, the ++ * system counter is at least 56 bits wide; from Armv8.6, the counter ++ * must be 64 bits wide. So the system counter could be less than 64 ++ * bits wide and it is attributed with the flag 'cap_user_time_short' ++ * is true. ++ */ ++#if defined(_MSC_VER) ++ val = _ReadStatusReg(ARM64_SYSREG(3, 3, 14, 0, 2)); ++#else ++ __asm__ __volatile__("mrs %0, cntvct_el0" : "=r"(val)); ++#endif ++ ++ return val; ++#else ++ uint32_t pmccntr, pmuseren, pmcntenset; ++ // Read the user mode Performance Monitoring Unit (PMU) ++ // User Enable Register (PMUSERENR) access permissions. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c14, 0" : "=r"(pmuseren)); ++ if (pmuseren & 1) { // Allows reading PMUSERENR for user mode code. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c12, 1" : "=r"(pmcntenset)); ++ if (pmcntenset & 0x80000000UL) { // Is it counting? ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c13, 0" : "=r"(pmccntr)); ++ // The counter is set up to count every 64th cycle ++ return (uint64_t) (pmccntr) << 6; ++ } ++ } ++ ++ // Fallback to syscall as we can't enable PMUSERENR in user mode. ++ struct timeval tv; ++ gettimeofday(&tv, NULL); ++ return (uint64_t) (tv.tv_sec) * 1000000 + tv.tv_usec; ++#endif ++} ++ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma pop_macro("ALIGN_STRUCT") ++#pragma pop_macro("FORCE_INLINE") ++#pragma pop_macro("FORCE_INLINE_OPTNONE") ++#endif ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma GCC pop_options ++#endif ++ ++#endif +diff --git c/SeqLib/ssw.h i/SeqLib/ssw.h +index 583442a..5a962c2 100644 +--- c/SeqLib/ssw.h ++++ i/SeqLib/ssw.h +@@ -11,7 +11,11 @@ + #ifndef SSW_H + #define SSW_H + ++#ifdef __ARM_NEON ++#include "sse2neon.h" ++#else + #include ++#endif + #include + #include + #include +diff --git c/src/ssw.c i/src/ssw.c +index 5851613..2fb43b1 100644 +--- c/src/ssw.c ++++ i/src/ssw.c +@@ -36,7 +36,12 @@ + */ + + #include "SeqLib/ssw.h" ++#ifdef __ARM_NEON ++#include "SeqLib/sse2neon.h" ++#else + #include ++#endif ++#include + #include + #include + #include From 0feedb59f63312202a0d08effe3bc91ff4b46f3d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 13:28:54 -0400 Subject: [PATCH 0367/1589] Update phylodm to 3.1.0 (#49287) * Update phylodm to 3.1.0 * add maturin --------- Co-authored-by: mencian --- recipes/phylodm/build.sh | 6 +----- recipes/phylodm/meta.yaml | 17 +++++++++-------- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/recipes/phylodm/build.sh b/recipes/phylodm/build.sh index f63fcdfc20ec9..f7acad9eae3a0 100644 --- a/recipes/phylodm/build.sh +++ b/recipes/phylodm/build.sh @@ -1,7 +1,3 @@ #!/bin/bash -# Add workaround for SSH-based Git connections from Rust/cargo. See https://github.com/rust-lang/cargo/issues/2078 for details. -# We set CARGO_HOME because we don't pass on HOME to conda-build, thus rendering the default "${HOME}/.cargo" defunct. -export CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_HOME="$(pwd)/.cargo" - -"${PYTHON}" -m pip install . --no-deps --ignore-installed -vv +"${PYTHON}" -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv diff --git a/recipes/phylodm/meta.yaml b/recipes/phylodm/meta.yaml index b35433c6c1c49..01298be68bc1f 100644 --- a/recipes/phylodm/meta.yaml +++ b/recipes/phylodm/meta.yaml @@ -1,6 +1,6 @@ {% set name = "phylodm" %} -{% set version = "3.0.0" %} -{% set sha256 = "c7e051ba1350a947bd72382181aafd1a75bc3a0faa7019dbe8cd1febf5df6069" %} +{% set version = "3.1.0" %} +{% set sha256 = "ea4d0721702209c8309d82e4a54649bd60bb5d697043be4a9f9930bc0fe4e300" %} package: name: {{ name|lower }} @@ -11,7 +11,8 @@ source: sha256: {{ sha256 }} build: - number: 2 + number: 0 + skip: True # [py < 38] run_exports: - {{ pin_subpackage(name, max_pin="x") }} @@ -21,8 +22,7 @@ requirements: host: - python - pip - - setuptools - - setuptools-rust + - maturin >=1.0,<2.0 run: - python - numpy @@ -35,10 +35,11 @@ test: about: home: https://github.com/aaronmussig/PhyloDM - license: GPL-3.0-only - license_family: GPL + license: "GPL-3.0-only" + license_family: GPL3 license_file: LICENSE - summary: Efficient calculation of phylogenetic distance matrices. + summary: "Efficient calculation of phylogenetic distance matrices." + dev_url: https://github.com/aaronmussig/PhyloDM extra: additional-platforms: From 8b42882ccaae5ff377f7fb0d9110b54328460da7 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 16 Jul 2024 21:02:46 +0300 Subject: [PATCH 0368/1589] strainr2: add aarch64/arm64 builds (#49285) Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/strainr2/meta.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/recipes/strainr2/meta.yaml b/recipes/strainr2/meta.yaml index 8d6639c53117c..d92319912b1b0 100644 --- a/recipes/strainr2/meta.yaml +++ b/recipes/strainr2/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 00ddd426e6d27e461c806282107503d93472a93c71c24e82069bf78be1d31a89 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("strainr2", max_pin="x") }} @@ -41,3 +41,8 @@ about: summary: 'StrainR2 accurately deconvolutes strain-level abundances in synthetic microbial communities using metagenomic sequencing reads' license_family: MIT license_file: LICENSE + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From c7267685167325b6082a2db535745f9e50beb1d9 Mon Sep 17 00:00:00 2001 From: Jose Figueroa Date: Tue, 16 Jul 2024 17:42:15 -0400 Subject: [PATCH 0369/1589] Add MetaCerberus-lite (#49310) * MetaCerberus-lite * Add MetaCerberus-lite --- recipes/metacerberus-lite/meta.yaml | 65 +++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 recipes/metacerberus-lite/meta.yaml diff --git a/recipes/metacerberus-lite/meta.yaml b/recipes/metacerberus-lite/meta.yaml new file mode 100644 index 0000000000000..d9dff07348aef --- /dev/null +++ b/recipes/metacerberus-lite/meta.yaml @@ -0,0 +1,65 @@ +{% set name = "MetaCerberus-lite" %} +{% set version = "1.3.1" %} + +package: + name: "{{ name|lower }}" + version: "{{ version }}" + +source: + url: "https://files.pythonhosted.org/packages/source/m/MetaCerberus/MetaCerberus-{{ version }}.tar.gz" + sha256: 725be35a0e9b2a3867791e1cb8284ec95a09d3479516e9b265e3751659ce7935 + +build: + number: 0 + noarch: python + script: "{{ PYTHON }} -m pip install . -vv" + run_exports: + - {{ pin_compatible('MetaCerberus', max_pin="x") }} + +requirements: + host: + - pip + - python >=3.8 + - setuptools <70.0.0 + run: + - python >=3.8 + - setuptools <70.0.0 + - grpcio =1.43 + - pandas + - flash2 + - pyrodigal + - pyrodigal-gv + - pyhmmer + - ray-default <=2.6.3 + - ray-core <=2.6.3 + - ray-tune <=2.6.3 + - ray-dashboard <=2.6.3 + - plotly + - scikit-learn + - dominate + - python-kaleido + - configargparse + - metaomestats + - psutil + + +test: + imports: + - meta_cerberus + commands: + - metacerberus.py --help + + +about: + home: "https://github.com/raw-lab/metacerberus" + license: BSD-3-Clause + license_family: BSD + license_file: LICENSE.txt + summary: "MetaCerberus with reduced dependencies: Versatile Functional Ontology Assignments for Metagenomes via Hidden Markov Model (HMM) searching with environmental focus of shotgun meta'omics data" + doc_url: + dev_url: + +extra: + recipe-maintainers: + - decrevi + - raw-lab From c88168c63361e9081ca1d2998ea2c4f495c4178e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 20:36:10 -0400 Subject: [PATCH 0370/1589] Update pathogen-embed to 2.2.1 (#49319) --- recipes/pathogen-embed/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pathogen-embed/meta.yaml b/recipes/pathogen-embed/meta.yaml index 6508748772242..7adbedfad19a3 100644 --- a/recipes/pathogen-embed/meta.yaml +++ b/recipes/pathogen-embed/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.2.0" %} +{% set version = "2.2.1" %} {% set name = "pathogen-embed" %} package: @@ -7,10 +7,10 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pathogen_embed-{{ version }}.tar.gz - sha256: e336d1e7127b82c5dd476b3e39d4a315f2e71b127b123ab620ebe6a20977df1c + sha256: 50c18c45aa53aa469b26e9b18d903167e7bd52755de6b4a6a2acec9feff8f1dc build: - number: 1 + number: 0 noarch: python entry_points: - pathogen-distance = pathogen_embed.__main__:run_distance From 5f8d4a427d8cc5255de842e12fcaf09d070db06b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 17 Jul 2024 01:31:43 -0400 Subject: [PATCH 0371/1589] Update pathogen-profiler to 4.3.0 (#49317) * Update pathogen-profiler to 4.3.0 * update delly version --------- Co-authored-by: Jody Phelan --- recipes/pathogen-profiler/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/pathogen-profiler/meta.yaml b/recipes/pathogen-profiler/meta.yaml index fc0a41b76c4dd..404ee9ae14a9d 100644 --- a/recipes/pathogen-profiler/meta.yaml +++ b/recipes/pathogen-profiler/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pathogen-profiler" %} -{% set version = "4.2.0" %} -{% set sha256 = "db1744578d50779069007216c5c8f359392d5e0e83ebe2232aa299acc8b30cb3" %} +{% set version = "4.3.0" %} +{% set sha256 = "ca6d579308a045c7d433c71c6951293c2f7f7d4952ca37e80b1830a6e9be7fd4" %} package: name: {{name}} @@ -13,7 +13,7 @@ source: build: script: python -m pip install --no-deps --ignore-installed . noarch: python - number: 1 + number: 0 run_exports: - { pin_subpackage('pathogen-profiler', max_pin="x") } @@ -31,7 +31,7 @@ requirements: - samtools >=1.12 - bcftools >=1.12 - tqdm - - delly >=0.8.7,<=1.1.6 + - delly >=1.2.6 - gatk4 - bedtools - freebayes =1.3.6 From 3d79723610f2965d1fe8f472c512b1a62cfa4ff6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 17 Jul 2024 02:43:43 -0400 Subject: [PATCH 0372/1589] Update hybpiper to 2.2.0 (#49328) --- recipes/hybpiper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/hybpiper/meta.yaml b/recipes/hybpiper/meta.yaml index 5ca91ed5b792f..be3d2f7c46985 100644 --- a/recipes/hybpiper/meta.yaml +++ b/recipes/hybpiper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "hybpiper" %} -{% set version = "2.1.8" %} +{% set version = "2.2.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: "https://github.com/mossmatters/HybPiper/archive/refs/tags/v{{ version }}.tar.gz" - sha256: ff358a560d6dbbec4fdac67457451cb4e6ca21b8661044c43902aa013d805e47 + sha256: 8337b1d17de9fa11f9d2b3f59ccc4597c5e3359d70e26d88346e871ccc6b1ac3 build: number: 0 From ccc732bc1894e374c0a79453147b976330f82ef1 Mon Sep 17 00:00:00 2001 From: pmjklemm Date: Wed, 17 Jul 2024 18:44:23 +1200 Subject: [PATCH 0373/1589] update v6.3.2 (#49327) Co-authored-by: Paul Klemm --- recipes/proteinortho/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/proteinortho/meta.yaml b/recipes/proteinortho/meta.yaml index 3f378b3862338..0d1fa24143b21 100755 --- a/recipes/proteinortho/meta.yaml +++ b/recipes/proteinortho/meta.yaml @@ -1,6 +1,6 @@ {% set name = "proteinortho" %} -{% set version = "6.3.1" %} -{% set sha256 = "9b3f5eb946a4f0f85c362db550163534d7687b8c88906b2eaf81f519de844b08" %} +{% set version = "6.3.2" %} +{% set sha256 = "3b3c58e814ca10f77a25954b0bcddc479b9f61682f3dc5c93d85b07f109342a4" %} package: name: {{ name }} From 8193edade0d381c1e47e5712597bf238f5331593 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 17 Jul 2024 02:47:28 -0400 Subject: [PATCH 0374/1589] Update rosella to 0.5.4 (#49325) --- recipes/rosella/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/rosella/meta.yaml b/recipes/rosella/meta.yaml index 090fd11d0e2ac..e6db3e56acfad 100644 --- a/recipes/rosella/meta.yaml +++ b/recipes/rosella/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "0.5.3" %} +{% set version = "0.5.4" %} {% set name = "rosella" %} -{% set hash = "a7a07f3217c40bc0308eb2fb964092662d6c99f4093e68e96c9575bce208d214" %} +{% set hash = "6e398c335bf23ae55c1ea472d234c706fa7095769e87eb28f213c4950de08cb3" %} package: name: rosella From 1cf197434660baa5fcd6ac1a74cd47b55136162b Mon Sep 17 00:00:00 2001 From: John Marshall Date: Wed, 17 Jul 2024 18:48:16 +1200 Subject: [PATCH 0375/1589] Build bwa on macOS ARM (#49324) --- recipes/bwa/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/bwa/meta.yaml b/recipes/bwa/meta.yaml index c4b7f382317b3..2262ce914671c 100644 --- a/recipes/bwa/meta.yaml +++ b/recipes/bwa/meta.yaml @@ -10,7 +10,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("bwa", max_pin="x.x") }} @@ -38,6 +38,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:bwa - usegalaxy-eu:bwa_mem From 1714b5563a61e8be2396292f3f69863bb82cbd9e Mon Sep 17 00:00:00 2001 From: Cole Lyman Date: Wed, 17 Jul 2024 00:50:42 -0600 Subject: [PATCH 0376/1589] Update CRISPResso2 dependencies (#49320) * Pin matplotlib base version * Pin numpy version * Bump build number and add whitespace to version constraints * Make numpy and matplotlib constraints less strict --- recipes/crispresso2/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/crispresso2/meta.yaml b/recipes/crispresso2/meta.yaml index daf7204b868ba..0ea0c7744814f 100644 --- a/recipes/crispresso2/meta.yaml +++ b/recipes/crispresso2/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('crispresso2', max_pin='x') }} @@ -25,10 +25,10 @@ requirements: run: - python - scipy - - {{ pin_compatible('numpy') }} + - numpy <=1.26.4 - pandas - plotly - - matplotlib-base + - matplotlib-base <=3.8.4 - jinja2 - fastp - samtools From 3db70ef0903095ac5349a92b1516b64d74ddd282 Mon Sep 17 00:00:00 2001 From: Stephen Watts Date: Wed, 17 Jul 2024 16:57:46 +1000 Subject: [PATCH 0377/1589] Update hmftools-neo to 1.2_beta (#49238) * Update hmftools-neo to 1.2_beta * Adjust casing for Neo reference in neo.sh * Restrict recognised non-default classpath * Add run exports --- recipes/hmftools-neo/meta.yaml | 8 +++++--- recipes/hmftools-neo/neo.sh | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/recipes/hmftools-neo/meta.yaml b/recipes/hmftools-neo/meta.yaml index 496ee3a1d5a97..c741d52e75d8b 100644 --- a/recipes/hmftools-neo/meta.yaml +++ b/recipes/hmftools-neo/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.0.1" %} -{% set sha256 = "292e322050965612c959296d11b45dcf9dba371d3c89d64bc10691116d867d90" %} +{% set version = "1.2_beta" %} +{% set sha256 = "66ebf626f8b937f32e326205c56426b996dfea1e7ac0b52526a25101b3b52d75" %} package: name: hmftools-neo @@ -12,6 +12,8 @@ source: build: noarch: generic number: 0 + run_exports: + - {{ pin_subpackage("hmftools-neo", max_pin="x.x") }} requirements: run: @@ -19,7 +21,7 @@ requirements: test: commands: - - 'neo 2>&1 | grep -q "Neo version"' + - 'neo -version | grep "Neo version"' about: home: https://github.com/hartwigmedical/hmftools/tree/master/neo diff --git a/recipes/hmftools-neo/neo.sh b/recipes/hmftools-neo/neo.sh index 786a7a04f1dc5..1183250e0e8d0 100755 --- a/recipes/hmftools-neo/neo.sh +++ b/recipes/hmftools-neo/neo.sh @@ -1,5 +1,5 @@ #!/bin/bash -# hmftools neo executable shell script +# hmftools Neo executable shell script # https://github.com/hartwigmedical/hmftools/tree/master/neo set -eu -o pipefail @@ -60,7 +60,7 @@ if [ "$jvm_mem_opts" == "" ]; then fi pass_arr=($pass_args) -if [[ ${pass_arr[0]:=} == org\.* ]] || [[ ${pass_arr[0]:=} == com\.* ]] +if [[ ${pass_arr[0]:=} == com.hartwig.hmftools.* ]] then eval "$java" $jvm_mem_opts $jvm_prop_opts -cp "$JAR_DIR/neo.jar" $pass_args else From 650fcd523182be952f130a6061f8c062e48a9690 Mon Sep 17 00:00:00 2001 From: Akihiro Kuno Date: Wed, 17 Jul 2024 17:03:59 +0900 Subject: [PATCH 0378/1589] Build bowtie on macOS ARM (#49326) * Build bowtie on macOS ARM * Use parallel build with `make` * Add a comment of why POPCNT_CAPABILITY needs to be disabled for arm64 only * Update recipes/bowtie/build.sh --------- Co-authored-by: Martin Grigorov Co-authored-by: Cornelius Roemer --- recipes/bowtie/build.sh | 13 ++++++++++++- recipes/bowtie/meta.yaml | 3 ++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/recipes/bowtie/build.sh b/recipes/bowtie/build.sh index 65a74b2e7c0c1..469d19a7e25bf 100644 --- a/recipes/bowtie/build.sh +++ b/recipes/bowtie/build.sh @@ -1,5 +1,16 @@ #!/bin/bash -make prefix="${PREFIX}" install +set -xe + +# If the environment is arm64 architecture, set POPCNT_CAPABILITY to 0 and run make. +# This is because the POPCNT instruction is not supported on arm64 architecture. +# By setting POPCNT_CAPABILITY=0, this instruction is disabled, ensuring build compatibility. +# See https://github.com/BenLangmead/bowtie/blob/master/processor_support.h +if [ "$(uname -m)" == "arm64" ]; then + make POPCNT_CAPABILITY=0 -j ${CPU_COUNT} +fi + + +make prefix="${PREFIX}" -j ${CPU_COUNT} install cp -r scripts "${PREFIX}/bin/" diff --git a/recipes/bowtie/meta.yaml b/recipes/bowtie/meta.yaml index 069e9a1bd54ef..fb9765f3543a7 100644 --- a/recipes/bowtie/meta.yaml +++ b/recipes/bowtie/meta.yaml @@ -13,7 +13,7 @@ source: build: skip: True # [py<30] - number: 8 + number: 9 run_exports: - {{ pin_subpackage("bowtie", max_pin="x.x") }} @@ -54,6 +54,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:bowtie - doi:10.1186/gb-2009-10-3-r25 From a8e988b070770ae170cc3cf5148dbcc2df2540ce Mon Sep 17 00:00:00 2001 From: Stephen Watts Date: Wed, 17 Jul 2024 18:23:45 +1000 Subject: [PATCH 0379/1589] Add hmftools-esvee 1.0_beta (#49168) * Add recipe for hmftools-esvee 1.0_beta * Add strict requirement of Sambamba 0.6.8 --- recipes/hmftools-esvee/build.sh | 12 ++++++ recipes/hmftools-esvee/esvee.sh | 69 ++++++++++++++++++++++++++++++++ recipes/hmftools-esvee/meta.yaml | 31 ++++++++++++++ 3 files changed, 112 insertions(+) create mode 100644 recipes/hmftools-esvee/build.sh create mode 100644 recipes/hmftools-esvee/esvee.sh create mode 100644 recipes/hmftools-esvee/meta.yaml diff --git a/recipes/hmftools-esvee/build.sh b/recipes/hmftools-esvee/build.sh new file mode 100644 index 0000000000000..1491f63b30010 --- /dev/null +++ b/recipes/hmftools-esvee/build.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +TGT="$PREFIX/share/$PKG_NAME-$PKG_VERSION-$PKG_BUILDNUM" +[ -d "$TGT" ] || mkdir -p "$TGT" +[ -d "${PREFIX}/bin" ] || mkdir -p "${PREFIX}/bin" + +cd "${SRC_DIR}" +mv esvee*.jar $TGT/esvee.jar + +cp $RECIPE_DIR/esvee.sh $TGT/esvee +ln -s $TGT/esvee $PREFIX/bin +chmod 0755 "${PREFIX}/bin/esvee" diff --git a/recipes/hmftools-esvee/esvee.sh b/recipes/hmftools-esvee/esvee.sh new file mode 100644 index 0000000000000..d4ff865b8322b --- /dev/null +++ b/recipes/hmftools-esvee/esvee.sh @@ -0,0 +1,69 @@ +#!/bin/bash +# hmftools Esvee executable shell script +# https://github.com/hartwigmedical/hmftools/tree/master/esvee +set -eu -o pipefail + +export LC_ALL=en_US.UTF-8 + +# Find original directory of bash script, resolving symlinks +# http://stackoverflow.com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in/246128#246128 +SOURCE="${BASH_SOURCE[0]}" +while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink + DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )" + SOURCE="$(readlink "$SOURCE")" + [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located +done +DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )" + +JAR_DIR=$DIR +ENV_PREFIX="$(dirname $(dirname $DIR))" +# Use Java installed with Anaconda to ensure correct version +java="$ENV_PREFIX/bin/java" + +# if JAVA_HOME is set (non-empty), use it. Otherwise keep "java" +if [ -n "${JAVA_HOME:=}" ]; then + if [ -e "$JAVA_HOME/bin/java" ]; then + java="$JAVA_HOME/bin/java" + fi +fi + +# extract memory and system property Java arguments from the list of provided arguments +# http://java.dzone.com/articles/better-java-shell-script +default_jvm_mem_opts="-Xms512m -Xmx1g" +jvm_mem_opts="" +jvm_prop_opts="" +pass_args="" +for arg in "$@"; do + case $arg in + '-D'*) + jvm_prop_opts="$jvm_prop_opts $arg" + ;; + '-XX'*) + jvm_prop_opts="$jvm_prop_opts $arg" + ;; + '-Xm'*) + jvm_mem_opts="$jvm_mem_opts $arg" + ;; + *) + if [[ ${pass_args} == '' ]] #needed to avoid preceeding space on first arg e.g. ' MarkDuplicates' + then + pass_args="$arg" + else + pass_args="$pass_args \"$arg\"" #quotes later arguments to avoid problem with ()s in MarkDuplicates regex arg + fi + ;; + esac +done + +if [ "$jvm_mem_opts" == "" ]; then + jvm_mem_opts="$default_jvm_mem_opts" +fi + +pass_arr=($pass_args) +if [[ ${pass_arr[0]:=} == com.hartwig.hmftools.* ]] +then + eval "$java" $jvm_mem_opts $jvm_prop_opts -cp "$JAR_DIR/esvee.jar" $pass_args +else + eval "$java" $jvm_mem_opts $jvm_prop_opts -jar "$JAR_DIR/esvee.jar" $pass_args +fi +exit diff --git a/recipes/hmftools-esvee/meta.yaml b/recipes/hmftools-esvee/meta.yaml new file mode 100644 index 0000000000000..96678744d953d --- /dev/null +++ b/recipes/hmftools-esvee/meta.yaml @@ -0,0 +1,31 @@ +{% set version = "1.0_beta" %} +{% set sha256 = "7ee885d48306e73c0cefacd7d59f2aabd213fc6d78d4ca8489a8d6c25e8ce333" %} + +package: + name: hmftools-esvee + version: '{{ version }}' + +source: + url: https://github.com/hartwigmedical/hmftools/releases/download/esvee-v{{ version }}/esvee_v{{ version }}.jar + sha256: '{{ sha256 }}' + +build: + noarch: generic + number: 0 + run_exports: + - {{ pin_subpackage("hmftools-esvee", max_pin="x.x") }} + +requirements: + run: + - openjdk >=8 + - sambamba ==0.6.8 + +test: + commands: + - 'esvee -version | grep Esvee' + +about: + home: https://github.com/hartwigmedical/hmftools/blob/master/esvee/README.md + license: GPL-3.0-only + license_family: GPL3 + summary: Structural variant caller specialised for breakend-breakpoint calling. From a5c0630e6027ed0e77a3069726b8b0eb56a7ce54 Mon Sep 17 00:00:00 2001 From: Yasset Perez-Riverol Date: Wed, 17 Jul 2024 10:31:35 +0100 Subject: [PATCH 0380/1589] sdrf-pipelines update to 0.0.27 (#49316) * Update meta.yaml * Update meta.yaml * Update meta.yaml --- recipes/sdrf-pipelines/meta.yaml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/recipes/sdrf-pipelines/meta.yaml b/recipes/sdrf-pipelines/meta.yaml index 3727971a305b5..cf5fb70753f7d 100644 --- a/recipes/sdrf-pipelines/meta.yaml +++ b/recipes/sdrf-pipelines/meta.yaml @@ -1,13 +1,14 @@ {% set name = "sdrf-pipelines" %} -{% set version = "0.0.26" %} +{% set pypi_name = "sdrf_pipelines" %} +{% set version = "0.0.27" %} package: name: "{{ name|lower }}" version: "{{ version }}" source: - url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: eba64fddad8ecc05ac3efecc43e19a7ba556ede7cd5b57475277a3ec20195216 + url: "https://pypi.io/packages/source/{{ pypi_name[0] }}/{{ pypi_name }}/{{ pypi_name }}-{{ version }}.tar.gz" + sha256: cb52e0c427e820aa28343b2ff58947e23244701798f038e53b5c0f6e36f98f33 build: number: 0 @@ -31,6 +32,9 @@ requirements: - pyaml - defusedxml - pytest + - duckdb + - rdflib + - pyarrow test: imports: @@ -38,7 +42,7 @@ test: - sdrf_pipelines.openms - sdrf_pipelines.sdrf - sdrf_pipelines.utils - - sdrf_pipelines.zooma + - sdrf_pipelines.ols commands: - parse_sdrf --help From 0836a7dcff49681e2ec1199208e0976fe81ae594 Mon Sep 17 00:00:00 2001 From: Amirhossein <66441226+nilchia@users.noreply.github.com> Date: Wed, 17 Jul 2024 12:37:11 +0200 Subject: [PATCH 0381/1589] update infercnv (#49334) * update infercnv * correct build number --- recipes/bioconductor-infercnv/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/bioconductor-infercnv/meta.yaml b/recipes/bioconductor-infercnv/meta.yaml index cca8ee52d9314..bc5498d7db6df 100644 --- a/recipes/bioconductor-infercnv/meta.yaml +++ b/recipes/bioconductor-infercnv/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "1.18.1" %} +{% set version = "1.20.0" %} {% set name = "infercnv" %} -{% set bioc = "3.18" %} +{% set bioc = "3.19" %} package: name: 'bioconductor-{{ name|lower }}' @@ -11,9 +11,9 @@ source: - 'https://bioconductor.org/packages/{{ bioc }}/bioc/src/contrib/Archive/{{ name }}/{{ name }}_{{ version }}.tar.gz' - 'https://bioarchive.galaxyproject.org/{{ name }}_{{ version }}.tar.gz' - 'https://depot.galaxyproject.org/software/bioconductor-{{ name }}/bioconductor-{{ name }}_{{ version }}_src_all.tar.gz' - md5: d5bce5518c27e86b3fb26b6fedad5d7b + sha256: cd7baf7107beee52484e70abc6a48edb09ec877f734226131336adffb14b28ba build: - number: 1 + number: 0 rpaths: - lib/R/lib/ - lib/ From dd6c618ccec7f0442c33dc13790029df32f129be Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 17 Jul 2024 07:28:15 -0400 Subject: [PATCH 0382/1589] Update hla-la to 1.0.4 (#49340) * Update hla-la to 1.0.4 * Add run_exports --------- Co-authored-by: Martin Grigorov --- recipes/hla-la/meta.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/recipes/hla-la/meta.yaml b/recipes/hla-la/meta.yaml index 4563dc5ca4b9f..0297019c8486e 100644 --- a/recipes/hla-la/meta.yaml +++ b/recipes/hla-la/meta.yaml @@ -1,16 +1,18 @@ -{% set version = "1.0.3" %} +{% set version = "1.0.4" %} package: name: hla-la version: {{ version }} build: - number: 2 + number: 0 skip: true # [osx] + run_exports: + - {{ pin_subpackage('hla-la', max_pin="x") }} source: url: https://github.com/DiltheyLab/HLA-LA/archive/v{{ version }}.tar.gz - sha256: bd2434616597aecfb38ec5b3b0e1e9812fa51c5dbf8fcdb2208d53cf694b9785 + sha256: 6a6c28bbee6256fde1b845d23f5d21589e1b83b1c4c2aceb6309bc65a3284ea7 folder: src requirements: From 055428fa9a8ebc88fbf94f40a12309e935b8b7de Mon Sep 17 00:00:00 2001 From: Felix Lenner <52530259+fellen31@users.noreply.github.com> Date: Wed, 17 Jul 2024 13:32:05 +0200 Subject: [PATCH 0383/1589] Add longphase (#49074) * add longphase * wip, errors * c and cxx, no make install * working? * aarch64/arm64 * Revert "aarch64/arm64" This reverts commit 0b68f76c2187fd41e437c3dc9b43e052fbfcc7f1. * aarch64 * osx-arm64 * Export M4 for osx-arm64 * Try with libcxx 16.* for OSX * Do not try to build osx-arm64. It needs more investigation * It does not build on osx --------- Co-authored-by: Martin Grigorov --- recipes/longphase/build.sh | 15 +++++++++++ recipes/longphase/meta.yaml | 50 +++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 recipes/longphase/build.sh create mode 100644 recipes/longphase/meta.yaml diff --git a/recipes/longphase/build.sh b/recipes/longphase/build.sh new file mode 100644 index 0000000000000..64c3a2dbb111b --- /dev/null +++ b/recipes/longphase/build.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -xe + +# https://bioconda.github.io/troubleshooting.html#zlib-errors +export CFLAGS="${CFLAGS} -I$PREFIX/include" +export LDFLAGS="${LDFLAGS} -L$PREFIX/lib" +export CPATH=${PREFIX}/include +export M4=${BUILD_PREFIX}/bin/m4 + +autoreconf -i +./configure --prefix=$PREFIX +make CC=$CC CXX=$CXX -j ${CPU_COUNT} +mkdir -p $PREFIX/bin +cp longphase $PREFIX/bin diff --git a/recipes/longphase/meta.yaml b/recipes/longphase/meta.yaml new file mode 100644 index 0000000000000..cf8b762b52c4a --- /dev/null +++ b/recipes/longphase/meta.yaml @@ -0,0 +1,50 @@ +{% set name = "longphase" %} +{% set version = "1.7.3" %} + +package: + name: {{ name }} + version: {{ version }} + +build: + number: 0 + skip: True # [osx] + run_exports: + - {{ pin_subpackage('longphase', max_pin="x") }} + +source: + url: https://github.com/twolinin/longphase/archive/refs/tags/v{{ version }}.tar.gz + sha256: 58829b55ca55d796b836743466bc7b6caf82cfe9b88c25112bff6a0cd0353345 + +requirements: + build: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + - autoconf + - automake + - make + - cmake + - zlib + host: + - zlib + - bzip2 + - xz + run: + - xz + - zlib + - bzip2 + +test: + commands: + - longphase + +about: + home: "https://github.com/twolinin/longphase" + license: GPL-3.0-only + license_family: GPL3 + license_file: LICENSE + summary: "LongPhase is an ultra-fast program for simultaneously co-phasing SNPs, small indels, large SVs, and (5mC) modifications for Nanopore and PacBio platforms." + dev_url: "https://github.com/twolinin/longphase" + +extra: + additional-platforms: + - linux-aarch64 From cda59f85c0abc48c681f2fcadfba18d0496b21e8 Mon Sep 17 00:00:00 2001 From: Stefan Janssen Date: Wed, 17 Jul 2024 14:35:48 +0200 Subject: [PATCH 0384/1589] Add palikiss (#49228) * using latest release of upstream * use recent gapc update with hopes to compile on OSX * add subrecipe for older version 4.3.10 (pinned in qiime2) which shall additionally expose upp.config * adding new recipe for software pAliKiss * integrating suggestions of @martin-g * update to new upstream release + fixing test call * pin clang to <=15 * Update meta.yaml * pin libcxx, as suggested by @corneliusroemer * removing whitespace * arg, second whitespace removed * removed skip: False # [osx] --- recipes/palikiss/build.sh | 5 ++++ recipes/palikiss/meta.yaml | 49 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 recipes/palikiss/build.sh create mode 100644 recipes/palikiss/meta.yaml diff --git a/recipes/palikiss/build.sh b/recipes/palikiss/build.sh new file mode 100644 index 0000000000000..56654134c23f5 --- /dev/null +++ b/recipes/palikiss/build.sh @@ -0,0 +1,5 @@ +#!/bin/bash +make -j ${CPU_COUNT} PREFIX=$PREFIX CC=$CC -C Misc/Applications/pAliKiss all +make PREFIX=$PREFIX CC=$CC -C Misc/Applications/pAliKiss install-program +make PREFIX=$PREFIX CC=$CC -C Misc/Applications/lib install +chmod +x $PREFIX/bin/pAliKiss* \ No newline at end of file diff --git a/recipes/palikiss/meta.yaml b/recipes/palikiss/meta.yaml new file mode 100644 index 0000000000000..6d375b44938c5 --- /dev/null +++ b/recipes/palikiss/meta.yaml @@ -0,0 +1,49 @@ +{% set version = "2.3.1" %} +{% set packagename = "palikiss" %} +{% set sha256 = "0c5b7d91893d0a23189f4af3602e18f110f030eac49a3658f7acede23596fde0" %} + +package: + name: {{ packagename }} + version: 1.1.0 + +source: + sha256: {{ sha256 }} + # the repository "fold-grammars" contains sources for several programs, i.e. pKiss, RNAshapes, ... + # thus, the version number does not correspond to the {{ packagename }} version number + url: https://github.com/jlab/fold-grammars/archive/{{ version }}.tar.gz + +build: + number: 0 + run_exports: + - {{ pin_subpackage('palikiss', max_pin="x") }} + +requirements: + build: + - make + - {{ compiler('cxx') }} + - libcxx <17 # [osx] + host: + - perl + - bellmans-gapc >=2024.01.12 + - libopenblas + - libcxx <17 # [osx] + run: + - perl + - bellmans-gapc >=2024.01.12 + - libopenblas + +test: + commands: + - pAliKiss --help + - echo -e "CLUSTAL W (1.83) multiple sequence alignment\ntest CGCAUGCUAGUCGCG" | pAliKiss + +about: + home: https://bibiserv.cebitec.uni-bielefeld.de/{{ packagename }} + license: 'GPL-3.0-or-later' + license_file: LICENSE + summary: "pAliKiss predicts RNA secondary structures for fixed RNA multiple sequence alignments, with special attention for pseudoknotted structures." + +extra: + identifiers: + - doi:10.1007/978-3-642-15294-8_5 + - doi:10.1093/bioinformatics/btu649 From 047e7bdec17edeebe353e48934d2012fa4ff1cb4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 17 Jul 2024 09:27:43 -0400 Subject: [PATCH 0385/1589] Update virusrecom to 1.1.7 (#49344) --- recipes/virusrecom/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/virusrecom/meta.yaml b/recipes/virusrecom/meta.yaml index c6bd13b6864e9..a13702997cb2f 100644 --- a/recipes/virusrecom/meta.yaml +++ b/recipes/virusrecom/meta.yaml @@ -1,5 +1,5 @@ {% set name = "virusrecom" %} -{% set version = "1.1.5" %} +{% set version = "1.1.7" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 88747b2590163526baa57115d649db6e0310ace792fab9e6b50275d71265f2ee + sha256: cbb6126dc1fd6f5ee7485d8ff512c81ca5d504a821113a8ff3dca1255c2f89fc build: number: 0 From f9f25d73bd85cbe9623bdb07f0d137c95ec42326 Mon Sep 17 00:00:00 2001 From: Stefan Janssen Date: Wed, 17 Jul 2024 15:29:10 +0200 Subject: [PATCH 0386/1589] Add rnaalishapes (#49227) * using latest release of upstream * use recent gapc update with hopes to compile on OSX * add subrecipe for older version 4.3.10 (pinned in qiime2) which shall additionally expose upp.config * adding another package, sourced from fold-grammars * update upstream + fix test call * update recipe * removed skip: False # [osx] --- recipes/rnaalishapes/build.sh | 5 ++++ recipes/rnaalishapes/meta.yaml | 48 ++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 recipes/rnaalishapes/build.sh create mode 100644 recipes/rnaalishapes/meta.yaml diff --git a/recipes/rnaalishapes/build.sh b/recipes/rnaalishapes/build.sh new file mode 100644 index 0000000000000..747a892974727 --- /dev/null +++ b/recipes/rnaalishapes/build.sh @@ -0,0 +1,5 @@ +#!/bin/bash +make -j ${CPU_COUNT} PREFIX=$PREFIX CC=$CC -C Misc/Applications/RNAalishapes all +make PREFIX=$PREFIX CC=$CC -C Misc/Applications/RNAalishapes install-program +make PREFIX=$PREFIX CC=$CC -C Misc/Applications/lib install +chmod +x $PREFIX/bin/RNAali* diff --git a/recipes/rnaalishapes/meta.yaml b/recipes/rnaalishapes/meta.yaml new file mode 100644 index 0000000000000..f9df163582cb8 --- /dev/null +++ b/recipes/rnaalishapes/meta.yaml @@ -0,0 +1,48 @@ +{% set version = "2.3.1" %} +{% set packagename = "rnaalishapes" %} +{% set sha256 = "0c5b7d91893d0a23189f4af3602e18f110f030eac49a3658f7acede23596fde0" %} + +package: + name: {{ packagename }} + version: 2.5.0 + +source: + sha256: {{ sha256 }} + # the repository "fold-grammars" contains sources for several programs, i.e. pKiss, RNAshapes, ... + # thus, the version number does not correspond to the {{ packagename }} version number + url: https://github.com/jlab/fold-grammars/archive/{{ version }}.tar.gz + +build: + number: 0 + run_exports: + - {{ pin_subpackage('rnaalishapes', max_pin="x") }} + +requirements: + build: + - make + - {{ compiler('cxx') }} + - libcxx <17 # [osx] + host: + - perl + - bellmans-gapc >=2024.01.12 + - libopenblas + - libcxx <17 # [osx] + run: + - perl + - bellmans-gapc >=2024.01.12 + - libopenblas + +test: + commands: + - RNAalishapes -h + - echo -e "CLUSTAL W (1.83) multiple sequence alignment\ntest CGCAUGCUAGUCGCG" | RNAalishapes + +about: + home: https://bibiserv.cebitec.uni-bielefeld.de/{{ packagename }} + license: 'GPL-3.0-or-later' + license_file: LICENSE + summary: "RNAalishapes is a tool for secondary structure prediction, using shape abstraction. Input is a multiple sequence alignment. Pseudoknots are not considered at all." + +extra: + identifiers: + - doi:10.1093/bioinformatics/btu649 From 74d2d400e790cd410ece79f1d55f2014d0f8ab81 Mon Sep 17 00:00:00 2001 From: Nextstrain bot <78992647+nextstrain-bot@users.noreply.github.com> Date: Wed, 17 Jul 2024 10:14:13 -0400 Subject: [PATCH 0387/1589] Update nextclade to 3.8.2 (#49351) Co-authored-by: nextstrain-bot --- recipes/nextclade/meta.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/recipes/nextclade/meta.yaml b/recipes/nextclade/meta.yaml index 23f6a0e05c17e..ee8272d6611b5 100644 --- a/recipes/nextclade/meta.yaml +++ b/recipes/nextclade/meta.yaml @@ -1,5 +1,5 @@ {% set name = "nextclade" %} -{% set version = "3.8.1" %} +{% set version = "3.8.2" %} package: name: "{{ name|lower }}" @@ -7,13 +7,13 @@ package: source: - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-x86_64-unknown-linux-gnu # [linux64] - sha256: d099c8f12c2453da5d4ab7dfc90d962f486797d50f87bdf761b2e1b255054a76 # [linux64] + sha256: 8366d5f7c8f131d8659aa2af1ab014d3ea0d429420dab90f90badbe827a532e6 # [linux64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-aarch64-unknown-linux-gnu # [aarch64] - sha256: 4ff82022f6d703fd76a3d6e778e3dc7fa5e870f75e11d537b8458d2f67be8386 # [aarch64] + sha256: 87fce29bbcfd84290073c0fc23f53ed7c7c459df35077bc11b360515e85917bb # [aarch64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-x86_64-apple-darwin # [osx and x86_64] - sha256: bf85c3b9580b2297abbae63abcd594524a106ca84e3944c5061ac3788de10db2 # [osx and x86_64] + sha256: 414a6c0057665f72f598d1d2051ded309cc7aa96c88468d7cf9322ed559c9013 # [osx and x86_64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-aarch64-apple-darwin # [osx and arm64] - sha256: e001446f040533fc689f92421ebf7ea8ca822eb954f2e43b71979ec3a0f6faa0 # [osx and arm64] + sha256: a5fbd37742cce895bbe7a468f136f06e6ca56e8b44a65e7c52ff15d9a126aa00 # [osx and arm64] build: number: 0 From f4e4768a973644ac15741b01a45681e6a93de576 Mon Sep 17 00:00:00 2001 From: "Joe Wirth (Joseph S. Wirth)" <71667025+dr-joe-wirth@users.noreply.github.com> Date: Wed, 17 Jul 2024 10:31:11 -0400 Subject: [PATCH 0388/1589] attempting to update `khmer` pinnings (#49350) * attempting to update `khmer` pinnings * trying to appease the linter * will this fix the failed test? --- recipes/khmer/meta.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/recipes/khmer/meta.yaml b/recipes/khmer/meta.yaml index 77dc9b24006f5..28c79094230cf 100644 --- a/recipes/khmer/meta.yaml +++ b/recipes/khmer/meta.yaml @@ -13,8 +13,10 @@ source: build: number: 4 - skip: True # [py<30 or py>38 or osx] + skip: True # [py<30 or py>=312 or osx] script: {{ PYTHON }} -m pip install . --no-deps -vv + run_exports: + - {{ pin_subpackage('khmer', max_pin="x.x") }} requirements: build: @@ -24,14 +26,14 @@ requirements: - libgomp # [linux] - make host: - - python + - python >=3.6,<3.12 - pip - setuptools >=18.0 - Cython >=0.25.2 - bzip2 - zlib run: - - python + - python >=3.6,<3.12 - screed >=1.0 - bz2file - bzip2 From e52d0b23765bf03560d8c66984563bcd060d24ac Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 17 Jul 2024 17:53:31 +0300 Subject: [PATCH 0389/1589] ucsc-psltochain: add linux-aarch64 build (#49332) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-psltochain/build.sh | 24 ++++++++++++++++-------- recipes/ucsc-psltochain/include.patch | 6 +++--- recipes/ucsc-psltochain/meta.yaml | 22 +++++++++++++++------- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 89ccb2917fa17..ee5b06a4d5a04 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -934,7 +934,6 @@ recipes/ucsc-pslstats recipes/ucsc-pslswap recipes/ucsc-psltobed recipes/ucsc-psltobigpsl -recipes/ucsc-psltochain recipes/ucsc-psltopslx recipes/ucsc-pslxtofa recipes/ucsc-qacagplift diff --git a/recipes/ucsc-psltochain/build.sh b/recipes/ucsc-psltochain/build.sh index 395fb5dd5152c..4d4568b0f1411 100644 --- a/recipes/ucsc-psltochain/build.sh +++ b/recipes/ucsc-psltochain/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/pslToChain && make) -cp bin/pslToChain "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslToChain" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/pslToChain && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/pslToChain "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/pslToChain" diff --git a/recipes/ucsc-psltochain/include.patch b/recipes/ucsc-psltochain/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-psltochain/include.patch +++ b/recipes/ucsc-psltochain/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-psltochain/meta.yaml b/recipes/ucsc-psltochain/meta.yaml index 690a1adda6060..c851e92f46935 100644 --- a/recipes/ucsc-psltochain/meta.yaml +++ b/recipes/ucsc-psltochain/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-psltochain" %} {% set program = "pslToChain" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "Convert psl records to chain records " + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From cd434224e7e932cfd3b9c70e544dcd57f76dba8a Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 17 Jul 2024 17:53:57 +0300 Subject: [PATCH 0390/1589] ucsc-stringify: add linux-aarch64 build (#49333) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-stringify/build.sh | 24 ++++++++++++++++-------- recipes/ucsc-stringify/include.patch | 6 +++--- recipes/ucsc-stringify/meta.yaml | 22 +++++++++++++++------- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index ee5b06a4d5a04..301c52a2bcb36 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -950,7 +950,6 @@ recipes/ucsc-spacedtotab recipes/ucsc-splitfile recipes/ucsc-splitfilebycolumn recipes/ucsc-sqltoxml -recipes/ucsc-stringify recipes/ucsc-subchar recipes/ucsc-subcolumn recipes/ucsc-taillines diff --git a/recipes/ucsc-stringify/build.sh b/recipes/ucsc-stringify/build.sh index 8e4e6dccf022d..8a122223b89ca 100644 --- a/recipes/ucsc-stringify/build.sh +++ b/recipes/ucsc-stringify/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/stringify && make) -cp bin/stringify "$PREFIX/bin" -chmod +x "$PREFIX/bin/stringify" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/stringify && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/stringify "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/stringify" diff --git a/recipes/ucsc-stringify/include.patch b/recipes/ucsc-stringify/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-stringify/include.patch +++ b/recipes/ucsc-stringify/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-stringify/meta.yaml b/recipes/ucsc-stringify/meta.yaml index b3f3167443d63..b11c925f68302 100644 --- a/recipes/ucsc-stringify/meta.yaml +++ b/recipes/ucsc-stringify/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-stringify" %} {% set program = "stringify" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "Convert file to C strings" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From eb0ad197ac70b6c5795ecb2155f3c9644ca3fb64 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 17 Jul 2024 17:54:22 +0300 Subject: [PATCH 0391/1589] ucsc-psltobed: add linux-aarch64 build (#49335) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-psltobed/build.sh | 24 ++++++++++++++++-------- recipes/ucsc-psltobed/include.patch | 6 +++--- recipes/ucsc-psltobed/meta.yaml | 22 +++++++++++++++------- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 301c52a2bcb36..f320008c67214 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -932,7 +932,6 @@ recipes/ucsc-pslselect recipes/ucsc-pslsomerecords recipes/ucsc-pslstats recipes/ucsc-pslswap -recipes/ucsc-psltobed recipes/ucsc-psltobigpsl recipes/ucsc-psltopslx recipes/ucsc-pslxtofa diff --git a/recipes/ucsc-psltobed/build.sh b/recipes/ucsc-psltobed/build.sh index 5b52875eee5fb..aad6779233d63 100644 --- a/recipes/ucsc-psltobed/build.sh +++ b/recipes/ucsc-psltobed/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/pslToBed && make) -cp bin/pslToBed "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslToBed" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/pslToBed && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/pslToBed "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/pslToBed" diff --git a/recipes/ucsc-psltobed/include.patch b/recipes/ucsc-psltobed/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-psltobed/include.patch +++ b/recipes/ucsc-psltobed/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-psltobed/meta.yaml b/recipes/ucsc-psltobed/meta.yaml index df2d5e872272a..b80b18d71a5c4 100644 --- a/recipes/ucsc-psltobed/meta.yaml +++ b/recipes/ucsc-psltobed/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-psltobed" %} {% set program = "pslToBed" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,20 +27,20 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" @@ -46,3 +48,9 @@ about: summary: " transform a psl format file to a bed format file. " + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From 089b925287f0de3b48226d6b7f4790758e09e978 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 17 Jul 2024 17:54:44 +0300 Subject: [PATCH 0392/1589] ucsc-oligomatch: add linux-aarch64 build (#49336) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-oligomatch/build.sh | 24 ++++++++++++++++-------- recipes/ucsc-oligomatch/include.patch | 6 +++--- recipes/ucsc-oligomatch/meta.yaml | 22 +++++++++++++++------- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index f320008c67214..da1bf99518bbe 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -897,7 +897,6 @@ recipes/ucsc-nettobed recipes/ucsc-newprog recipes/ucsc-newpythonprog recipes/ucsc-nibsize -recipes/ucsc-oligomatch recipes/ucsc-overlapselect recipes/ucsc-para recipes/ucsc-parafetch diff --git a/recipes/ucsc-oligomatch/build.sh b/recipes/ucsc-oligomatch/build.sh index 1d3303dce7e3e..a88ccff20a470 100644 --- a/recipes/ucsc-oligomatch/build.sh +++ b/recipes/ucsc-oligomatch/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/utils/oligoMatch && make) -cp bin/oligoMatch "$PREFIX/bin" -chmod +x "$PREFIX/bin/oligoMatch" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/oligoMatch && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/oligoMatch "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/oligoMatch" diff --git a/recipes/ucsc-oligomatch/include.patch b/recipes/ucsc-oligomatch/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-oligomatch/include.patch +++ b/recipes/ucsc-oligomatch/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-oligomatch/meta.yaml b/recipes/ucsc-oligomatch/meta.yaml index 1aef9ddca42aa..e3e152c54dd21 100644 --- a/recipes/ucsc-oligomatch/meta.yaml +++ b/recipes/ucsc-oligomatch/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-oligomatch" %} {% set program = "oligoMatch" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "find perfect matches in sequence." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From 671147954dd93d714ed1e5d33a3c6090f9de9404 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 17 Jul 2024 17:55:15 +0300 Subject: [PATCH 0393/1589] ucsc-pslpostarget: add linux-aarch64 build (#49337) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-pslpostarget/build.sh | 24 ++++++++++++++++-------- recipes/ucsc-pslpostarget/include.patch | 6 +++--- recipes/ucsc-pslpostarget/meta.yaml | 22 +++++++++++++++------- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index da1bf99518bbe..6ee7994adc790 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -921,7 +921,6 @@ recipes/ucsc-pslmappostchain recipes/ucsc-pslmrnacover recipes/ucsc-pslpairs recipes/ucsc-pslpartition -recipes/ucsc-pslpostarget recipes/ucsc-pslpretty recipes/ucsc-pslrc recipes/ucsc-pslrecalcmatch diff --git a/recipes/ucsc-pslpostarget/build.sh b/recipes/ucsc-pslpostarget/build.sh index 37338962297b7..a69900e05adbd 100644 --- a/recipes/ucsc-pslpostarget/build.sh +++ b/recipes/ucsc-pslpostarget/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/pslPosTarget && make) -cp bin/pslPosTarget "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslPosTarget" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/pslPosTarget && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/pslPosTarget "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/pslPosTarget" diff --git a/recipes/ucsc-pslpostarget/include.patch b/recipes/ucsc-pslpostarget/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-pslpostarget/include.patch +++ b/recipes/ucsc-pslpostarget/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-pslpostarget/meta.yaml b/recipes/ucsc-pslpostarget/meta.yaml index 68c7c3cd85537..7dfaf50fd3ce5 100644 --- a/recipes/ucsc-pslpostarget/meta.yaml +++ b/recipes/ucsc-pslpostarget/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslpostarget" %} {% set program = "pslPosTarget" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "flip psl strands so target is positive and implicit" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From 672bb5d2b6636eb9f4b501cf778c563aa0977692 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 17 Jul 2024 17:56:37 +0300 Subject: [PATCH 0394/1589] kalign3: add aarch64/arm64 builds (#49342) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/kalign3/build.sh | 4 ++-- recipes/kalign3/meta.yaml | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/recipes/kalign3/build.sh b/recipes/kalign3/build.sh index dcc1809fa1c98..57d2c16eae4be 100644 --- a/recipes/kalign3/build.sh +++ b/recipes/kalign3/build.sh @@ -1,8 +1,8 @@ #!/bin/bash -set -eo pipefail +set -xeo pipefail mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=${PREFIX} .. -make +make -j ${CPU_COUNT} make install diff --git a/recipes/kalign3/meta.yaml b/recipes/kalign3/meta.yaml index c9be17442a1a0..29793014d4418 100644 --- a/recipes/kalign3/meta.yaml +++ b/recipes/kalign3/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin='x') }} @@ -27,10 +27,13 @@ test: about: home: https://github.com/TimoLassmann/kalign - license: GPL3 + license: GPL-3.0-only license_file: COPYING summary: 'Kalign is a fast and accurate multiple sequence alignment algorithm.' extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 identifiers: - doi:10.1093/bioinformatics/btz795 From dc450f44977c9f5d2a0780c65d719f3628a0958c Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 17 Jul 2024 18:00:23 +0300 Subject: [PATCH 0395/1589] cancerit-allelecount: add linux-aarch64 build (#49343) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/cancerit-allelecount/build.sh | 4 ++-- recipes/cancerit-allelecount/meta.yaml | 12 ++++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/recipes/cancerit-allelecount/build.sh b/recipes/cancerit-allelecount/build.sh index 5921b2bc83f38..2b179831fcee9 100644 --- a/recipes/cancerit-allelecount/build.sh +++ b/recipes/cancerit-allelecount/build.sh @@ -1,5 +1,5 @@ #!/bin/bash -set -eu +set -xeu export LIBRARY_PATH=${PREFIX}/lib export INCPATH=${PREFIX}/include #export HTSLIB_VERSION=1.7 @@ -18,6 +18,6 @@ sed -i 's/$(CC) /$(compiler) /g' Makefile #Force HTSLIb locations sed -i 's#HTSLOC?=$(HTSLIB)#HTSLOC=${PREFIX}/lib#g' Makefile sed -i 's#prefix=?/usr/local#prefix=${PREFIX}#g' Makefile -make OPTINC="-I$PREFIX/include -L$PREFIX/lib" +make -j ${CPU_COUNT} OPTINC="-I$PREFIX/include -L$PREFIX/lib" mkdir -p $PREFIX/bin cp bin/* $PREFIX/bin diff --git a/recipes/cancerit-allelecount/meta.yaml b/recipes/cancerit-allelecount/meta.yaml index 3320289ef69da..b86b40f7fad2f 100644 --- a/recipes/cancerit-allelecount/meta.yaml +++ b/recipes/cancerit-allelecount/meta.yaml @@ -9,8 +9,10 @@ source: sha256: 5363ae12c2385c962728336a4498b1a29c9eaa3d4a24492d0debf897771cfd3c build: - number: 6 + number: 7 skip: True # [osx] + run_exports: + - {{ pin_subpackage('cancerit-allelecount', max_pin='x') }} requirements: build: @@ -34,5 +36,11 @@ test: about: home: https://github.com/cancerit/alleleCount - license: GPLv3 + license: GPL-3.0-only + license_file: LICENCE + license_family: GPL3 summary: Support code for NGS copy number algorithms + +extra: + additional-platforms: + - linux-aarch64 From b30fac4e47788e33b5b7a8f2aeb5068db03eb1d4 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 17 Jul 2024 18:07:23 +0300 Subject: [PATCH 0396/1589] fido: add linux-aarch64 build (#49347) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/fido/build.sh | 4 +++- recipes/fido/meta.yaml | 7 ++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/recipes/fido/build.sh b/recipes/fido/build.sh index 0aea3c28699f3..ee62480f0e04b 100644 --- a/recipes/fido/build.sh +++ b/recipes/fido/build.sh @@ -1,6 +1,8 @@ #!/bin/bash +set -xe + mkdir -p "${PREFIX}/bin" cd src/cpp sed -i.bak 's/\tg++/\t$(CXX)/' makefile -make BINPATH="${PREFIX}/bin" +make -j ${CPU_COUNT} BINPATH="${PREFIX}/bin" diff --git a/recipes/fido/meta.yaml b/recipes/fido/meta.yaml index 26c5c2c83c124..98053c0117123 100644 --- a/recipes/fido/meta.yaml +++ b/recipes/fido/meta.yaml @@ -7,8 +7,10 @@ source: md5: 6ee89316f492105a6fb06729475c37e0 build: - number: 6 + number: 7 skip: True # [osx] + run_exports: + - {{ pin_subpackage('fido', max_pin='x') }} requirements: build: @@ -26,3 +28,6 @@ about: license: MIT license summary: A method for protein identification in MS/MS proteomics. Think of it like a protein delivery dog. You bring it the scored matches between peptides and spectra, and it fetches a list of proteins ranked by posterior probability by doing clever tricks. +extra: + additional-platforms: + - linux-aarch64 From e1aa379eb666cc6dc1f6b1eec53dd34af6850ac5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 17 Jul 2024 11:35:12 -0400 Subject: [PATCH 0397/1589] Update querynator to 0.5.2 (#49354) --- recipes/querynator/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/querynator/meta.yaml b/recipes/querynator/meta.yaml index 3b1fdabd9f683..0ccd6b596b9b3 100644 --- a/recipes/querynator/meta.yaml +++ b/recipes/querynator/meta.yaml @@ -1,5 +1,5 @@ {% set name = "querynator" %} -{% set version = "0.5.1" %} +{% set version = "0.5.2" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 21a0a77062b86ebf20bc87a7746ab1a58526f485cf2e981ff06ef2dd8fe021f3 + sha256: bad38b5a62cd05701e13cb9e7157a854c0b9870c993971a20ae03ae9c91ac9a9 build: number: 0 From c2c03d997278705436dbe454c3794a6677981ce5 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 17 Jul 2024 18:48:48 +0300 Subject: [PATCH 0398/1589] famsa: add aarch64/arm64 builds (#49346) * famsa: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * Pass PLATFORM=arm8 for aarch64/arm64 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/famsa/build.sh | 16 ++++++++++++++-- recipes/famsa/meta.yaml | 9 +++++++-- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/recipes/famsa/build.sh b/recipes/famsa/build.sh index 10ce8514d75f0..f5a64f295d171 100644 --- a/recipes/famsa/build.sh +++ b/recipes/famsa/build.sh @@ -1,4 +1,16 @@ -#!/bin/bash -e -make famsa -j${CPU_COUNT} +#!/bin/bash + +set -xe + +case $(uname -m) in + aarch64 | arm64) + ARCH_OPTS="PLATFORM=arm8" + ;; + *) + ARCH_OPTS="" + ;; +esac + +make famsa ${ARCH_OPTS} -j${CPU_COUNT} install -d "${PREFIX}/bin" install famsa "${PREFIX}/bin" diff --git a/recipes/famsa/meta.yaml b/recipes/famsa/meta.yaml index 50dc221b1a833..aff435a23945f 100644 --- a/recipes/famsa/meta.yaml +++ b/recipes/famsa/meta.yaml @@ -6,7 +6,9 @@ package: version: {{ version }} build: - number: 2 + number: 3 + run_exports: + - {{ pin_subpackage('famsa', max_pin='x') }} source: url: https://github.com/refresh-bio/FAMSA/archive/v{{ version }}.tar.gz @@ -24,11 +26,14 @@ test: about: home: https://github.com/refresh-bio/FAMSA summary: "Algorithm for large-scale multiple sequence alignments" - license: GPL-3 + license: GPL-3.0-only license_family: GPL license_file: LICENSE extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 identifiers: - doi:10.1038/srep33964 - biotools:famsa From f22cb0e9eb8a54f74c5c148b7406b168540203f4 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 17 Jul 2024 10:54:12 -0500 Subject: [PATCH 0399/1589] Upgrade hits to 0.4.2 (#49322) * Upgrade hits to 0.4.2 * remove skip line --- recipes/hits/meta.yaml | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/recipes/hits/meta.yaml b/recipes/hits/meta.yaml index b0ffd46411dda..9d62615f1cdfe 100644 --- a/recipes/hits/meta.yaml +++ b/recipes/hits/meta.yaml @@ -1,29 +1,32 @@ {% set name = "hits" %} -{% set version = "0.4.0" %} +{% set version = "0.4.2" %} +{% set sha256 = "0e9bab5b353ca907b1c2c8d9d68724716210acc4d50fbaa4f20b6e25902f80dd" %} package: - name: "{{ name|lower }}" - version: "{{ version }}" + name: {{ name|lower }} + version: {{ version }} source: - url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: "743bfc1b56ab8fcf9fefacfcad4c1f23e9bafec1b42225709dbe097c8e669383" + url: https://github.com/jeffhussmann/hits/archive/refs/tags/v{{ version }}.tar.gz + sha256: {{ sha256 }} build: - number: 2 - skip: True # [py != 38] - script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed -vv" + number: 0 + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir --use-pep517 + run_exports: + - {{ pin_subpackage('hits', max_pin="x.x") }} requirements: build: - {{ compiler('c') }} host: - - cython >=0.29.7 - - pip - python + - cython + - pip run: + - python - biopython >=1.72 - - bokeh + - bokeh >=2.4.2 - ipython >=7.8.0 - ipywidgets >=7.4.2 - matplotlib-base >=3.0.2 @@ -31,22 +34,22 @@ requirements: - pandas >=0.23.4 - pillow >=5.3.0 - pysam >=0.15.1 - - python >=3.8 - pyyaml >=3.13 - scipy >=1.2.1 - - seaborn >=0.11.0 + - seaborn-base >=0.11.0 - statsmodels >=0.12.1 test: imports: - hits - - hits.visualize - - hits.visualize.interactive about: - home: "https://github.com/jeffhussmann/hits" - license: GPLv3 - summary: "utilities for processing high-throughput sequencing experiments" + home: https://github.com/jeffhussmann/hits + summary: "Utilities for processing high-throughput sequencing experiments." + license: GPL-3.0-or-later + license_family: GPL3 + license_file: LICENSE + dev_url: https://github.com/jeffhussmann/hits extra: recipe-maintainers: From 2ed9c7a5841cb8a8671a1eae78055a8074eb2c9e Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 17 Jul 2024 12:52:35 -0500 Subject: [PATCH 0400/1589] Add recipe for cassiopeia v2.0.0 (#49323) * Add recipe for cassiopeia v2.0.0 * remove skip line * edit numpy dependency --- recipes/cassiopeia/meta.yaml | 67 ++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 recipes/cassiopeia/meta.yaml diff --git a/recipes/cassiopeia/meta.yaml b/recipes/cassiopeia/meta.yaml new file mode 100644 index 0000000000000..e29153e319632 --- /dev/null +++ b/recipes/cassiopeia/meta.yaml @@ -0,0 +1,67 @@ +{% set name = "cassiopeia" %} +{% set version = "2.0.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/YosefLab/Cassiopeia/archive/{{ version }}.tar.gz + sha256: 28ae7495152683f5733222255056a1e7b2f7a51e1cee2f23f0d9f8ae5f4c3742 + +build: + number: 0 + entry_points: + - cassiopeia-preprocess = cassiopeia.preprocess.cassiopeia_preprocess:main + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir --use-pep517 + run_exports: + - {{ pin_subpackage('cassiopeia', max_pin="x") }} + +requirements: + build: + - {{ compiler('c') }} + host: + - python + - pip + - cython + - numpy + run: + - python + - biopython >=1.71 + - bokeh >=0.12.15 + - ccphylo + - ete3 >=3.1.1 + - hits + - itolapi + - matplotlib-base >=2.2.2 + - nbconvert >=5.4.0 + - nbformat >=4.4.0 + - networkx >=2.5 + - ngs-tools >=1.5.3 + - numba >=0.51.0 + - pandas >=1.1.4 + - pysam >=0.14.1 + - python-levenshtein + - pyyaml >=3.12 + - scipy >=1.2.0 + - typing-extensions >=3.7.4 + - tqdm >=4 + - {{ pin_compatible('numpy') }} + +test: + imports: + - cassiopeia + commands: + - cassiopeia-preprocess --help + +about: + home: https://github.com/YosefLab/Cassiopeia + summary: "The Cython compiler for writing C extensions in the Python language." + license: MIT + license_family: MIT + license_file: LICENSE + dev_url: https://github.com/YosefLab/Cassiopeia + +extra: + recipe-maintainers: + - mencian From 2a0dc3e233382aadf5502ab399301b325928c381 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 17 Jul 2024 13:53:23 -0400 Subject: [PATCH 0401/1589] Update orthanq to 1.7.0 (#49358) --- recipes/orthanq/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/orthanq/meta.yaml b/recipes/orthanq/meta.yaml index 4a92e28023818..ce8c06a76c043 100644 --- a/recipes/orthanq/meta.yaml +++ b/recipes/orthanq/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.6.0" %} +{% set version = "1.7.0" %} package: name: orthanq @@ -12,7 +12,7 @@ build: source: url: https://github.com/orthanq/orthanq/archive/v{{ version }}.tar.gz - sha256: 70b64aa96ec43e160de8c32b379288c15ccbe201447a524c22583ef62cf4d518 + sha256: 7c6c93c47f31bb357210103573e38bed762a3435bdf44bccb0a8740dd15d427c requirements: build: From 19fb9f53d2221e4baa36f90eec365f06c0c493cc Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 17 Jul 2024 13:53:38 -0400 Subject: [PATCH 0402/1589] Update pyrodigal to 3.5.0 (#49357) --- recipes/pyrodigal/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pyrodigal/meta.yaml b/recipes/pyrodigal/meta.yaml index 5eb20b2335647..22c29035b5a4d 100644 --- a/recipes/pyrodigal/meta.yaml +++ b/recipes/pyrodigal/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pyrodigal" %} -{% set version = "3.4.1" %} +{% set version = "3.5.0" %} package: name: "{{ name|lower }}" @@ -7,10 +7,10 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 65963ad8cf651f408758e7fa74cbf793eae9720310f0ef8781ee1a285d435326 + sha256: f80bf17a2388e4007c65312c7ed84b661e0244be1ef8ef74006f4967a3591d09 build: - number: 1 + number: 0 skip: True # [py < 36] script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir --use-pep517 -vvv" entry_points: From 446b3f3c966e1b37a2d191c0599614605986cf4e Mon Sep 17 00:00:00 2001 From: Cole Lyman Date: Wed, 17 Jul 2024 12:04:08 -0600 Subject: [PATCH 0403/1589] Update crispresso2: osx-arm64 additional platform (#49356) * Add osx-arm64 to additional-platforms * Bump build number --- recipes/crispresso2/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/crispresso2/meta.yaml b/recipes/crispresso2/meta.yaml index 0ea0c7744814f..5fd4076cdc98a 100644 --- a/recipes/crispresso2/meta.yaml +++ b/recipes/crispresso2/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage('crispresso2', max_pin='x') }} @@ -50,3 +50,4 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 From 10f9df5ed14f24acad00524e05b88b50b3eb4b3c Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 17 Jul 2024 16:11:23 -0500 Subject: [PATCH 0404/1589] hits: add aarch64/arm64 builds (#49364) --- recipes/hits/meta.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/recipes/hits/meta.yaml b/recipes/hits/meta.yaml index 9d62615f1cdfe..6012f79b190b9 100644 --- a/recipes/hits/meta.yaml +++ b/recipes/hits/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir --use-pep517 run_exports: - {{ pin_subpackage('hits', max_pin="x.x") }} @@ -54,3 +54,6 @@ about: extra: recipe-maintainers: - jeffhussmann + additional-platforms: + - linux-aarch64 + - osx-arm64 From 0406f56f753ca65d1a8b5db9686a8a43ad0925f9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 17 Jul 2024 17:14:16 -0400 Subject: [PATCH 0405/1589] Update synapseclient to 4.4.0 (#49367) --- recipes/synapseclient/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/synapseclient/meta.yaml b/recipes/synapseclient/meta.yaml index 07be3a88467bc..28541bd233a37 100644 --- a/recipes/synapseclient/meta.yaml +++ b/recipes/synapseclient/meta.yaml @@ -1,5 +1,5 @@ {% set name = "synapseclient" %} -{% set version = "4.3.1" %} +{% set version = "4.4.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/synapseclient-{{ version }}.tar.gz - sha256: 9d1c2cd1d6fe4fabb386290c0eed20944ab7e44e6713db40f19cf28babe3be3c + sha256: 331d0740a8cebf29a231d5ead35cda164fc74d7d3a8470803e623f2c33e897b5 build: noarch: python From 1560f4344221186e2caa93ed816645d30f7261eb Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 17 Jul 2024 16:25:17 -0500 Subject: [PATCH 0406/1589] Update cassiopeia recipe (#49363) * Update cassiopeia recipe * remove numpy pinning --- recipes/cassiopeia/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/cassiopeia/meta.yaml b/recipes/cassiopeia/meta.yaml index e29153e319632..7d7254e282891 100644 --- a/recipes/cassiopeia/meta.yaml +++ b/recipes/cassiopeia/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 28ae7495152683f5733222255056a1e7b2f7a51e1cee2f23f0d9f8ae5f4c3742 build: - number: 0 + number: 1 entry_points: - cassiopeia-preprocess = cassiopeia.preprocess.cassiopeia_preprocess:main script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir --use-pep517 @@ -56,7 +56,7 @@ test: about: home: https://github.com/YosefLab/Cassiopeia - summary: "The Cython compiler for writing C extensions in the Python language." + summary: "An end-to-end pipeline for single-cell lineage tracing experiments." license: MIT license_family: MIT license_file: LICENSE From cd3cafc244105c119ae8aa8ccdd39a70799ce372 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 17 Jul 2024 20:49:20 -0400 Subject: [PATCH 0407/1589] Update abpoa to 1.5.2 (#49371) --- recipes/abpoa/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/abpoa/meta.yaml b/recipes/abpoa/meta.yaml index e0cbaba96a5cd..ad3e2d163205c 100644 --- a/recipes/abpoa/meta.yaml +++ b/recipes/abpoa/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.5.1" %} +{% set version = "1.5.2" %} {% set name = "abPOA" %} package: @@ -7,10 +7,10 @@ package: source: url: https://github.com/yangao07/{{ name }}/releases/download/v{{ version }}/{{ name }}-v{{ version }}.tar.gz - sha256: f0e1b41b1c9e18ecd2096df9b60ad053260ec773d70eecb307b02cca0efab89d + sha256: 706f0ca0110f4974ae7b93157db560bb9beda4273d8c883fa6a03ccb19958149 build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage(name | lower, max_pin="x") }} From b2ea21ddb349b4371acc16f93ee519c8d6f5f927 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 17 Jul 2024 20:49:50 -0400 Subject: [PATCH 0408/1589] Update pyabpoa to 1.5.2 (#49368) --- recipes/pyabpoa/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pyabpoa/meta.yaml b/recipes/pyabpoa/meta.yaml index c09f3816be9bb..aafc5a8df934e 100644 --- a/recipes/pyabpoa/meta.yaml +++ b/recipes/pyabpoa/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pyabpoa" %} -{% set version = "1.5.1" %} +{% set version = "1.5.2" %} package: name: {{ name|lower }} @@ -7,10 +7,10 @@ package: source: url: https://github.com/yangao07/abPOA/releases/download/v{{ version }}/abPOA-v{{ version }}.tar.gz - sha256: f0e1b41b1c9e18ecd2096df9b60ad053260ec773d70eecb307b02cca0efab89d + sha256: 706f0ca0110f4974ae7b93157db560bb9beda4273d8c883fa6a03ccb19958149 build: - number: 2 + number: 0 script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --use-pep517 -vvv run_exports: - {{ pin_subpackage(name, max_pin="x") }} From 8670cbf34fef7f18458de7b82556cbbdf64120e5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 17 Jul 2024 22:38:52 -0400 Subject: [PATCH 0409/1589] Update singlem to 0.18.2 (#49377) --- recipes/singlem/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/singlem/meta.yaml b/recipes/singlem/meta.yaml index fbe9bb889e178..c686add8750fa 100644 --- a/recipes/singlem/meta.yaml +++ b/recipes/singlem/meta.yaml @@ -1,5 +1,5 @@ {% set name = "singlem" %} -{% set version = "0.18.1" %} +{% set version = "0.18.2" %} package: name: {{ name|lower }} @@ -7,10 +7,10 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: ab66c8d6f6ec712140f9f1b839c58fec33e5741437866ed7af6459af3188834e + sha256: 8b1f1e51a8cebc4d6d2aa916c6ebb566b3828d3b4029d5831ac186b238d739dc build: - number: 1 + number: 0 noarch: python script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" run_exports: From c08118bba05ca9365cde0f32bf59a2274b316899 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 17 Jul 2024 23:08:53 -0400 Subject: [PATCH 0410/1589] Update pyrodigal to 3.5.1 (#49370) --- recipes/pyrodigal/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pyrodigal/meta.yaml b/recipes/pyrodigal/meta.yaml index 22c29035b5a4d..f314da8744a62 100644 --- a/recipes/pyrodigal/meta.yaml +++ b/recipes/pyrodigal/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pyrodigal" %} -{% set version = "3.5.0" %} +{% set version = "3.5.1" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: f80bf17a2388e4007c65312c7ed84b661e0244be1ef8ef74006f4967a3591d09 + sha256: 20af59a6d968c88910b99d5f647bb7dd22d49e440ead95fe715cdd2c49f36e9f build: number: 0 From f473bbb5f15b96ec5d1c43e832b9840feb911bb6 Mon Sep 17 00:00:00 2001 From: Mitchell Robert Vollger Date: Wed, 17 Jul 2024 20:21:29 -0700 Subject: [PATCH 0411/1589] Add gia (#49361) --- recipes/gia/build.sh | 28 +++++++++++++++++++ recipes/gia/meta.yaml | 63 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+) create mode 100644 recipes/gia/build.sh create mode 100644 recipes/gia/meta.yaml diff --git a/recipes/gia/build.sh b/recipes/gia/build.sh new file mode 100644 index 0000000000000..cce5a6c8aabea --- /dev/null +++ b/recipes/gia/build.sh @@ -0,0 +1,28 @@ +#!/bin/bash -e + +# +# TODO: Remove the following export when pinning is updated and we use +# {{ compiler('rust') }} in the recipe. +export \ + CARGO_NET_GIT_FETCH_WITH_CLI=true \ + CARGO_HOME="${BUILD_PREFIX}/.cargo" +export BINDGEN_EXTRA_CLANG_ARGS="${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" + +# +# install package +# +HOME=$(pwd) +pushd ${PREFIX} + +cargo install --no-track --verbose \ + --root "${PREFIX}" --path "${HOME}" +popd + +echo "Done building gia" 1>&2 + +# +# test install +# +gia help + +exit 0 diff --git a/recipes/gia/meta.yaml b/recipes/gia/meta.yaml new file mode 100644 index 0000000000000..994d6dde9cbf2 --- /dev/null +++ b/recipes/gia/meta.yaml @@ -0,0 +1,63 @@ +{% set version = "0.2" %} +{% set name = "gia" %} +{% set build_number = "0" %} + +package: + name: {{ name }} + version: {{ version }} + + +source: + url: https://github.com/noamteyssier/gia/archive/{{ version }}.tar.gz + sha256: 86c1f4dcd36d296d3261ff456b2599e505fe0977a02bcea4e18641ee8add4920 + + +build: + run_exports: + - {{ pin_subpackage('gia', max_pin="x") }} + number: {{ build_number }} + +requirements: + build: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + - {{ compiler('rust') }} + - make + - cmake + - unzip + - curl + # all the host and run requirements match those needed for htslib + host: + - libcurl + - bzip2 + - xz + - zlib + - libdeflate + - openssl # [not osx] + run: + - libcurl + - bzip2 + - xz + - zlib + - libdeflate + - openssl # [not osx] + +test: + commands: + - gia help + + +about: + home: https://github.com/noamteyssier/gia + license: MIT + summary: Genomic Interval Arithmetic (gia) + + +extra: + recipe-maintainers: + - mrvollger + - noamteyssier + additional-platforms: + - osx-arm64 + - linux-aarch64 + From b1d7ef5906be9ab313255278c4ee053f657d67c0 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 17 Jul 2024 22:45:07 -0500 Subject: [PATCH 0412/1589] Add recipe for scmidas 0.0.17 (#49378) --- recipes/scmidas/meta.yaml | 56 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 recipes/scmidas/meta.yaml diff --git a/recipes/scmidas/meta.yaml b/recipes/scmidas/meta.yaml new file mode 100644 index 0000000000000..c64513e680f91 --- /dev/null +++ b/recipes/scmidas/meta.yaml @@ -0,0 +1,56 @@ +{% set name = "scmidas" %} +{% set version = "0.0.17" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/scmidas-{{ version }}.tar.gz + sha256: d048a28df31340c58fd656ff8918ddebad59eeaa931a7171e582c6d2f5625a79 + +build: + number: 0 + noarch: python + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + run_exports: + - {{ pin_subpackage('scmidas', max_pin="x.x") }} + +requirements: + host: + - python >=3.9 + - pip + run: + - python >=3.9 + - toml + - tqdm + - numpy + - pytorch >1.12 + - matplotlib-base + - pandas + - scikit-learn + - scanpy + - louvain + - rpy2 + - anndata2ri + - ipykernel + - jupyter + +test: + imports: + - scmidas + +about: + home: https://github.com/labomics/midas + summary: "A torch-based integration method for single-cell multi-omic data." + license: MIT + license_family: MIT + license_file: LICENSE + dev_url: https://github.com/labomics/midas + doc_url: https://scmidas.readthedocs.io/en/latest/ + +extra: + recipe-maintainers: + - mencian + identifiers: + - doi:10.1038/s41587-023-02040-y From 88d33eaed2ddfcb6cdef7f85caa0ead06d34df9c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 00:16:26 -0400 Subject: [PATCH 0413/1589] Update liftover to 1.3.0 (#49376) Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/liftover/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/liftover/meta.yaml b/recipes/liftover/meta.yaml index 637b2dadf94f5..8acdcde59dfe1 100644 --- a/recipes/liftover/meta.yaml +++ b/recipes/liftover/meta.yaml @@ -1,6 +1,6 @@ {% set name = "liftover" %} -{% set version = "1.2.2" %} -{% set sha256 = "f858aed016227882263d369969790adf6df2c07399e16f063aec8a248a2b4513" %} +{% set version = "1.3.0" %} +{% set sha256 = "72b870e47a14210ff3bb6c14d90087b348149765780c65a7699a3a56f7ae7016" %} package: name: {{ name|lower }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 skip: True # [py < 38] script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv run_exports: From 76b95b5ee0541d9bb2e5df95fbb884963d6b53e2 Mon Sep 17 00:00:00 2001 From: Justin Chu Date: Wed, 17 Jul 2024 21:53:21 -0700 Subject: [PATCH 0414/1589] Add new recipe: Jupiterplot (#49318) --- recipes/jupiterplot/LICENSE | 674 ++++++++++++++++++++++++++++++++++ recipes/jupiterplot/build.sh | 5 + recipes/jupiterplot/meta.yaml | 43 +++ 3 files changed, 722 insertions(+) create mode 100644 recipes/jupiterplot/LICENSE create mode 100644 recipes/jupiterplot/build.sh create mode 100644 recipes/jupiterplot/meta.yaml diff --git a/recipes/jupiterplot/LICENSE b/recipes/jupiterplot/LICENSE new file mode 100644 index 0000000000000..9cecc1d4669ee --- /dev/null +++ b/recipes/jupiterplot/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + {one line to give the program's name and a brief idea of what it does.} + Copyright (C) {year} {name of author} + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + {project} Copyright (C) {year} {fullname} + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/recipes/jupiterplot/build.sh b/recipes/jupiterplot/build.sh new file mode 100644 index 0000000000000..9520eb3dd8d84 --- /dev/null +++ b/recipes/jupiterplot/build.sh @@ -0,0 +1,5 @@ +#!/bin/bash -euo + +mkdir -p ${PREFIX}/bin + +cp -rf . ${PREFIX}/bin diff --git a/recipes/jupiterplot/meta.yaml b/recipes/jupiterplot/meta.yaml new file mode 100644 index 0000000000000..e2ae417022470 --- /dev/null +++ b/recipes/jupiterplot/meta.yaml @@ -0,0 +1,43 @@ +{% set name = "jupiterplot" %} +{% set version = "1.1" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/JustinChu/JupiterPlot/releases/download/{{ version }}/{{ name }}-{{ version }}.tar.gz + sha256: cecf14dc4a4afaec5ea91d60277952fa6c7825dcc9157157b2efcd395c6103a9 + +build: + number: 0 + noarch: generic + run_exports: + - {{ pin_subpackage('jupiterplot', max_pin="x") }} + +requirements: + run: + - circos + - circos-tools + - minimap2 + - samtools + - make + - perl + - perl-gd + +test: + commands: + - jupiter -h + +about: + home: "https://github.com/JustinChu/JupiterPlot" + summary: "Circos Assembly Consistency (Jupiter) plot" + license: "GPL-3.0-or-later" + license_family: GPL3 + license_file: LICENSE + dev_url: "https://github.com/JustinChu/JupiterPlot" + doc_url: "https://github.com/JustinChu/JupiterPlot/blob/{{ version }}/README.md" + +extra: + identifiers: + - doi:10.5281/zenodo.1241235 From 83c8e637c070532c787fd7670da1741d8331c448 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 01:49:41 -0400 Subject: [PATCH 0415/1589] Update tb-profiler to 6.3.0 (#49339) --- recipes/tb-profiler/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/tb-profiler/meta.yaml b/recipes/tb-profiler/meta.yaml index 61d892d511497..0d2dcc79dbf30 100644 --- a/recipes/tb-profiler/meta.yaml +++ b/recipes/tb-profiler/meta.yaml @@ -1,6 +1,6 @@ {% set name = "tb-profiler" %} -{% set version = "6.2.1" %} -{% set sha256 = "11b4637a37be6fe501aa649ed8598c96e2043f2fbe0e6cf13e9cbf0b9ad8420b" %} +{% set version = "6.3.0" %} +{% set sha256 = "45f3f104a3dd0f2fe07b315e3dc4ab1f0e35be095180363ecc65d41842972140" %} package: name: {{name}} @@ -28,11 +28,11 @@ requirements: - python >=3.8 - git - jinja2 - - pathogen-profiler =4.2.0 + - pathogen-profiler =4.3.0 - filelock - docxtpl - iqtree - - usher + # - usher - joblib - tqdm - pysam From ea95f4623200b711e51fc1abc58666f9b1a2c717 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 04:35:39 -0400 Subject: [PATCH 0416/1589] Update bakta to 1.9.4 (#49381) --- recipes/bakta/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/bakta/meta.yaml b/recipes/bakta/meta.yaml index 2f9fe0bceefe4..fa02ae9c72a68 100644 --- a/recipes/bakta/meta.yaml +++ b/recipes/bakta/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.9.3" %} +{% set version = "1.9.4" %} package: name: bakta @@ -6,7 +6,7 @@ package: source: url: https://github.com/oschwengers/bakta/archive/v{{ version }}.tar.gz - sha256: '774a60b4fa2032ac4804a37eafdb4c2c67f2573d7f93e785b58963a47d535e70' + sha256: 'ad92853e9d4f022024d393149eb086ad36a7e35f824a5d9efed94c3262f9cf66' build: noarch: python From 4dde45164a9e9d4ec77b616985fc3b8bdd2916f2 Mon Sep 17 00:00:00 2001 From: Sebastian Will Date: Thu, 18 Jul 2024 14:05:07 +0200 Subject: [PATCH 0417/1589] Update viennarna to build for platform osx-arm64 (#49144) * Add osx-arm64 as additional platform * Increase build number * Update recipes/viennarna/meta.yaml Build fosx package for arm64 but not x86 Co-authored-by: Alicia A. Evans <108547992+aliciaaevans@users.noreply.github.com> * Update recipe * patch to remove deprecated register assignments, which caused clang to fail * add dependencies for multiprecision floats and lapack * turn off RNAforester for MacOS * suppress some warnings * Remove skip of MacOS for x86 * Update: * remove forester support; no gsl, mpfr for osx * Update recipe for osx * deactivate Perl interface on osx * install swig 4.1.1 on osx * Fix swig pin and add comment * Reactivate RNAforester on Linux * Avoid redefining CFLAGS * Reactivate forester on osx --------- Co-authored-by: Alicia A. Evans <108547992+aliciaaevans@users.noreply.github.com> --- recipes/viennarna/build.sh | 2 +- recipes/viennarna/meta.yaml | 12 ++++- recipes/viennarna/remove-register.patch | 64 +++++++++++++++++++++++++ 3 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 recipes/viennarna/remove-register.patch diff --git a/recipes/viennarna/build.sh b/recipes/viennarna/build.sh index 84c211fc7128f..7771cf62db901 100644 --- a/recipes/viennarna/build.sh +++ b/recipes/viennarna/build.sh @@ -4,7 +4,7 @@ ## (mac or linux) ## if [ `uname` == Darwin ] ; then - extra_config_options="LDFLAGS=-Wl,-headerpad_max_install_names" + extra_config_options="--without-perl LDFLAGS=-Wl,-headerpad_max_install_names" fi ## Configure and make diff --git a/recipes/viennarna/meta.yaml b/recipes/viennarna/meta.yaml index 97a42e3956325..13f38a0f0eae3 100644 --- a/recipes/viennarna/meta.yaml +++ b/recipes/viennarna/meta.yaml @@ -6,8 +6,7 @@ package: version: {{ version }} build: - skip: True # [osx] - number: 2 + number: 3 run_exports: # Ronny said VRNA is stable in x.x releases - {{ pin_subpackage('viennarna', max_pin='x.x') }} @@ -15,17 +14,25 @@ build: source: url: https://www.tbi.univie.ac.at/RNA/download/sourcecode/2_6_x/ViennaRNA-{{ version }}.tar.gz sha256: {{ sha256 }} + patches: + - remove-register.patch requirements: build: - make - {{ compiler('c') }} - {{ compiler('cxx') }} + # pin and install swig on osx due to some incompatibility with + # automatically installed swig + - swig ==4.1.1 # [osx] host: - pkgconfig ## needed for viennarna version checks in dependent packages - perl - python - zlib + - mpfr # [not osx] + - gsl # [not osx] + - lapack - llvm-openmp # [osx] run: - python @@ -50,3 +57,4 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 diff --git a/recipes/viennarna/remove-register.patch b/recipes/viennarna/remove-register.patch new file mode 100644 index 0000000000000..669f253301753 --- /dev/null +++ b/recipes/viennarna/remove-register.patch @@ -0,0 +1,64 @@ +diff --git a/src/RNAlocmin/hash_util.h b/src/RNAlocmin/hash_util.h +index e5dcfd3..50a0138 100644 +--- a/src/RNAlocmin/hash_util.h ++++ b/src/RNAlocmin/hash_util.h +@@ -79,10 +79,10 @@ struct hash_eq { + struct hash_fncts{ + size_t operator()(const Structure &x) const { + +- register short *k; /* the key */ +- register unsigned length; /* the length of the key */ +- register unsigned initval=0; /* the previous hash, or an arbitrary value */ +- register unsigned a,b,c,len; ++ short *k; /* the key */ ++ unsigned length; /* the length of the key */ ++ unsigned initval=0; /* the previous hash, or an arbitrary value */ ++ unsigned a,b,c,len; + + /* Set up the internal state */ + k = x.str; +@@ -123,10 +123,10 @@ struct hash_fncts{ + + size_t operator()(const struct_en &x) const { + +- register short *k; /* the key */ +- register unsigned length; /* the length of the key */ +- register unsigned initval=0; /* the previous hash, or an arbitrary value */ +- register unsigned a,b,c,len; ++ short *k; /* the key */ ++ unsigned length; /* the length of the key */ ++ unsigned initval=0; /* the previous hash, or an arbitrary value */ ++ unsigned a,b,c,len; + + /* Set up the internal state */ + k = x.structure; +@@ -165,10 +165,10 @@ struct hash_fncts{ + return (c & HASHSIZE); + } + size_t operator()(const Structure *x) const { +- register short *k; /* the key */ +- register unsigned length; /* the length of the key */ +- register unsigned initval=0; /* the previous hash, or an arbitrary value */ +- register unsigned a,b,c,len; ++ short *k; /* the key */ ++ unsigned length; /* the length of the key */ ++ unsigned initval=0; /* the previous hash, or an arbitrary value */ ++ unsigned a,b,c,len; + + /* Set up the internal state */ + k = x->str; +@@ -209,10 +209,10 @@ struct hash_fncts{ + + size_t operator()(const struct_en *x) const { + +- register short *k; /* the key */ +- register unsigned length; /* the length of the key */ +- register unsigned initval=0; /* the previous hash, or an arbitrary value */ +- register unsigned a,b,c,len; ++ short *k; /* the key */ ++ unsigned length; /* the length of the key */ ++ unsigned initval=0; /* the previous hash, or an arbitrary value */ ++ unsigned a,b,c,len; + + /* Set up the internal state */ + k = x->structure; From 80759e23925d899a8a527633e5e3b7a4521a8f1e Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 18 Jul 2024 15:06:55 +0300 Subject: [PATCH 0418/1589] gffcompare: add aarch64/arm64 builds (#49345) * gffcompare: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * Add a patch to build GCLIB before trying to use it Signed-off-by: Martin Tzvetanov Grigorov * Make gcc available for GCLIB's build Signed-off-by: Martin Tzvetanov Grigorov * Add zlib as a host dependency for GCLIB Signed-off-by: Martin Tzvetanov Grigorov * Do not build in parallel. It needs to wait for git-clone+build for GCLIB first Signed-off-by: Martin Tzvetanov Grigorov * Drop the patch for building GCLIB Signed-off-by: Martin Tzvetanov Grigorov * Remove CC. It is no more needed since GCLIB's Makefile is not used Signed-off-by: Martin Tzvetanov Grigorov * Update recipes/gffcompare/meta.yaml --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/gffcompare/build.sh | 4 +++- recipes/gffcompare/meta.yaml | 8 ++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/recipes/gffcompare/build.sh b/recipes/gffcompare/build.sh index 307a00d9eb42f..92773a1acf63f 100644 --- a/recipes/gffcompare/build.sh +++ b/recipes/gffcompare/build.sh @@ -1,9 +1,11 @@ #!/bin/bash +set -xe + export CXX="$CXX" export LINKER="$CXX" mkdir -p "$PREFIX"/bin/ make release cp gffcompare "$PREFIX"/bin/ -cp trmap "$PREFIX"/bin/ +cp trmap "$PREFIX"/bin/ \ No newline at end of file diff --git a/recipes/gffcompare/meta.yaml b/recipes/gffcompare/meta.yaml index 36587982fa933..6204e94d07a36 100644 --- a/recipes/gffcompare/meta.yaml +++ b/recipes/gffcompare/meta.yaml @@ -7,8 +7,9 @@ package: version: {{ version }} build: - number: 2 - skip: False + number: 3 + run_exports: + - {{ pin_subpackage(name, max_pin='x.x') }} source: - url: https://github.com/gpertea/gffcompare/archive/v{{ version }}.tar.gz @@ -29,5 +30,8 @@ about: summary: 'GffCompare by Geo Pertea' extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 identifiers: - biotools:gffcompare From 0029911943bd574dada144174f3370653b8b9074 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 10:51:32 -0400 Subject: [PATCH 0419/1589] Update fwdpy11 to 0.24.0 (#49365) * Update fwdpy11 to 0.24.0 * update python pinnings --------- Co-authored-by: mencian --- recipes/fwdpy11/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/fwdpy11/meta.yaml b/recipes/fwdpy11/meta.yaml index 8100a53c23f66..6729780e4e7e6 100644 --- a/recipes/fwdpy11/meta.yaml +++ b/recipes/fwdpy11/meta.yaml @@ -1,5 +1,5 @@ {% set name = "fwdpy11" %} -{% set version = "0.23.0" %} +{% set version = "0.24.0" %} package: name: {{ name|lower }} @@ -7,10 +7,10 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/fwdpy11-{{ version }}.tar.gz - sha256: 2ba384af7fcf71ebd8ff348be0234d6ac37066f29aae5a85e5a4af8967b5d14d + sha256: 1b7b0ad6a78ccb43ebc1d5dee43ae6542dc254543aad6aad3462165204afe3a0 build: - skip: True # [py < 38 or py > 312] + skip: True # [py < 39 or py > 312] number: 0 script_env: - SETUPTOOLS_SCM_PRETEND_VERSION={{ version }} From cb4da184d31ad775ce66fcffab5dc029793f7b7c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 10:58:23 -0400 Subject: [PATCH 0420/1589] Update konezumiaid to 0.3.0 (#49385) --- recipes/konezumiaid/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/konezumiaid/meta.yaml b/recipes/konezumiaid/meta.yaml index ef6dcd8fdba49..92ccaa1b0a3aa 100644 --- a/recipes/konezumiaid/meta.yaml +++ b/recipes/konezumiaid/meta.yaml @@ -1,5 +1,5 @@ {% set name = "KOnezumiAID" %} -{% set version = "0.2.2" %} +{% set version = "0.3.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/konezumiaid-{{ version }}.tar.gz - sha256: 8b3ba715ded372c630d8c6e42f03cc8a950f0c44394f1a30e9c26ea82815c884 + sha256: 9070074372d1026e04016b9979ca3b5a5a216c7acea3ad333ecb955b6ceb4f36 build: entry_points: From b3d915bf04baf9706d7cbe15e10fd6025bcdc27a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 11:03:51 -0400 Subject: [PATCH 0421/1589] Update ggcaller to 1.3.7 (#49384) --- recipes/ggcaller/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ggcaller/meta.yaml b/recipes/ggcaller/meta.yaml index ca162538e3883..4bcc1c0943126 100644 --- a/recipes/ggcaller/meta.yaml +++ b/recipes/ggcaller/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ggCaller" %} -{% set version = "1.3.6" %} +{% set version = "1.3.7" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/bacpop/{{ name }}/archive/v{{ version }}.tar.gz - sha256: 7b8e2f786c56f5305297b95f635752aa74a3775b3fce48c0845cf45bc768b4a2 + sha256: 6b7930ec6f84616812fd89c4f1829e4afb5e2a2b6fd6a489976fef8bb0bbc193 build: number: 0 From 4986b4628041c6af4090e2dac2ccaf789dca2713 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 11:04:52 -0400 Subject: [PATCH 0422/1589] Update knotinframe to 2.3.2 (#49383) --- recipes/knotinframe/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/knotinframe/meta.yaml b/recipes/knotinframe/meta.yaml index 93d555f0ee88e..0a92ed9f51886 100644 --- a/recipes/knotinframe/meta.yaml +++ b/recipes/knotinframe/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "2.3.1" %} -{% set sha256 = "d9ab68329e48709cffbf5ed775f905bdddebab470d70836bb522993b971d48af" %} +{% set version = "2.3.2" %} +{% set sha256 = "d3e6cc8d2ecd31d4764b41fea589b98c637ff227d7ab3dcfe66f2ad3f24dece5" %} package: name: knotinframe @@ -10,7 +10,7 @@ source: url: https://github.com/jlab/fold-grammars/archive/{{ version }}.tar.gz build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('knotinframe', max_pin="x") }} From 6c8cd9053b3f10e95766d9deade2fe094c605759 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 11:06:11 -0400 Subject: [PATCH 0423/1589] Update mycotools to 0.31.40 (#49379) --- recipes/mycotools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mycotools/meta.yaml b/recipes/mycotools/meta.yaml index b84a8bd23097f..e4dd395d68480 100644 --- a/recipes/mycotools/meta.yaml +++ b/recipes/mycotools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mycotools" %} -{% set version = "0.31.39" %} +{% set version = "0.31.40" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mycotools-{{ version }}.tar.gz - sha256: f4d076d93bb056c039440d0f669c4a8f97a4827ff031da4957dfa9354a22c3ee + sha256: 4c4ca7152ed34fb5a2412a972f17c3f7ea1b458475bc87e49dc0045a7f25b42f build: entry_points: From c993d56792202c601f75330af0478380e23b53cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20H=2E=20Franceschini-Santos?= Date: Thu, 18 Jul 2024 17:13:15 +0200 Subject: [PATCH 0424/1589] Update parm to v0.0.4 (#49387) --- recipes/parm/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/parm/meta.yaml b/recipes/parm/meta.yaml index 8a9136750dcbc..7bbca71239c4e 100644 --- a/recipes/parm/meta.yaml +++ b/recipes/parm/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.0.3" %} -{% set sha256 = "c04f8ec7d0d595e6dee291115aa1626371f17a36e125724d1576e7d4b829d8c7" %} +{% set version = "0.0.4" %} +{% set sha256 = "d816519a21c3d26dd35c659ec25eccf0b48cae50fec80f705e0bd1a36c04361e" %} package: name: parm @@ -24,7 +24,7 @@ requirements: - python >=3.10.8 - pytorch - biopython - - numpy + - numpy >=1.26.0 - pandas - matplotlib-base - logomaker From 0dcb54484f1a347db1efd325a309ef76f41248df Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Thu, 18 Jul 2024 17:31:23 +0200 Subject: [PATCH 0425/1589] Update galaxy-data to 24.1.1, add galaxy-schema recipe (#49232) * Update galaxy-data to 24.1.1 * Add galaxy-schema recipe * Sync requirements from setup.cfg * f * Update meta.yaml * Update meta.yaml * fix indent * Update meta.yaml * Update meta.yaml * Update recipes/galaxy-schema/meta.yaml * Update meta.yaml * let's try email_validator as well * Update recipes/galaxy-data/meta.yaml Co-authored-by: Nicola Soranzo * Update recipes/galaxy-schema/meta.yaml Co-authored-by: Nicola Soranzo * Update isa-rwval * fix dependencies * fix isa-rwval sha * tiny edits --------- Co-authored-by: Nicola Soranzo Co-authored-by: mencian --- recipes/galaxy-data/meta.yaml | 62 ++++++++------ recipes/galaxy-schema/meta.yaml | 81 +++++++++++++++++++ recipes/isa-rwval/build_failure.linux-64.yaml | 4 - recipes/isa-rwval/build_failure.osx-64.yaml | 4 - recipes/isa-rwval/meta.yaml | 17 ++-- 5 files changed, 128 insertions(+), 40 deletions(-) create mode 100644 recipes/galaxy-schema/meta.yaml delete mode 100644 recipes/isa-rwval/build_failure.linux-64.yaml delete mode 100644 recipes/isa-rwval/build_failure.osx-64.yaml diff --git a/recipes/galaxy-data/meta.yaml b/recipes/galaxy-data/meta.yaml index 6e13357253dad..12aa8245714e8 100644 --- a/recipes/galaxy-data/meta.yaml +++ b/recipes/galaxy-data/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "22.1.1" %} -{% set sha256 = "27d1fc4ccc0d05adbb49fced1b0bcf59497a702c8bf51e39b058449dc0644cfe" %} +{% set version = "24.1.1" %} +{% set sha256 = "be4d1ba81589cc5e6d4fb38829c1770483cff6c380b7647aa80b7bc90737f573" %} {% set galaxy_version = version.split(".")[:2]|join(".") %} package: @@ -7,43 +7,59 @@ package: version: {{ version }} source: - url: https://pypi.io/packages/source/g/galaxy-data/galaxy-data-{{ version }}.tar.gz + url: https://pypi.io/packages/source/g/galaxy-data/galaxy_data-{{ version }}.tar.gz sha256: {{ sha256 }} build: noarch: python number: 0 - script: "{{ PYTHON }} -m pip install . --no-deps -vv" + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv + run_exports: + - {{ pin_subpackage('galaxy-data', max_pin="x") }} + entry_points: + - galaxy-build-objects=galaxy.model.store.build_objects:main + - galaxy-load-objects=galaxy.model.store.load_objects:main + - galaxy-manage-db=galaxy.model.orm.scripts:manage_db + - galaxy-prune-histories=galaxy.model.scripts:prune_history_table requirements: host: - pip - - python >=3.6 + - python >=3.8 run: + - python >=3.8 + - galaxy-files >={{ galaxy_version }} - galaxy-objectstore >={{ galaxy_version }} + - galaxy-schema >={{ galaxy_version }} + - galaxy-tool-util >={{ galaxy_version }} - galaxy-util >={{ galaxy_version }} - - galaxy_sequence_utils - - bdbag + - alembic + - alembic-utils + - bdbag >=1.6.3 - bx-python + - dnspython + - galaxy_sequence_utils + - h5grove >=1.2.1 - h5py - - isa-rwval - - parsley + - isa-rwval >=0.10.10 + - python-isal + - markupsafe + - mrcfile + - msal - numpy + - parsley - pycryptodome - - pydantic - - pysam >=0.15 - - social-auth-core - - sqlalchemy - - sqlalchemy-migrate - - sqlalchemy-utils - - WebOb - - python >=3.6 - - six >=1.9.0 - # extra: jstree - # - dictobj - # extra: template - # - future - # - cheetah3 + - pydantic >=2.7.4 + - email-validator + # - pylibmagic # Pending https://github.com/kratsg/pylibmagic/issues/54 + - pysam >=0.21 + - python-magic + # - rocrate # Pending https://github.com/ResearchObject/ro-crate-py/issues/139 + - social-auth-core ==4.0.3 + - sqlalchemy >=2.0,<2.1 + - tifffile + - typing-extensions + - webob test: imports: diff --git a/recipes/galaxy-schema/meta.yaml b/recipes/galaxy-schema/meta.yaml new file mode 100644 index 0000000000000..f89975a11c2c7 --- /dev/null +++ b/recipes/galaxy-schema/meta.yaml @@ -0,0 +1,81 @@ +{% set name = "galaxy-schema" %} +{% set version = "24.1.1" %} +{% set sha256 = "622c65bf1f7fc0cfb5cf6ee844e819a7ceff2b929aca5894848761b3a7df84fa" %} +{% set galaxy_version = version.split(".")[:2]|join(".") %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/galaxy_schema-{{ version }}.tar.gz + sha256: {{ sha256 }} + +build: + noarch: python + number: 0 + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv + run_exports: + - {{ pin_subpackage('galaxy-schema', max_pin="x") }} + +requirements: + host: + - python >=3.8 + - pip + run: + - python >=3.8 + - galaxy-util >={{ galaxy_version }} + - pydantic >=2.7.4 + - email-validator + +test: + imports: + - galaxy + - galaxy.schema + # Disabling all .bco imports as I can't figure out how to install pydantic[email] + # Simply installing email-validator as separate dep does not work + #- galaxy.schema.bco + #- galaxy.schema.bco.description_domain + #- galaxy.schema.bco.error_domain + #- galaxy.schema.bco.execution_domain + #- galaxy.schema.bco.io_domain + #- galaxy.schema.bco.parametric_domain + #- galaxy.schema.bco.provenance_domain + #- galaxy.schema.bco.usability_domain + #- galaxy.schema.bco.util + - galaxy.schema.cloud + - galaxy.schema.cloud + - galaxy.schema.drs + - galaxy.schema.fetch_data + - galaxy.schema.fields + - galaxy.schema.generics + - galaxy.schema.groups + - galaxy.schema.help + - galaxy.schema.history + - galaxy.schema.invocation + - galaxy.schema.invocation + - galaxy.schema.jobs + - galaxy.schema.notifications + - galaxy.schema.remote_files + - galaxy.schema.schema + - galaxy.schema.storage_cleaner + - galaxy.schema.types + - galaxy.schema.workflow + - galaxy.schema.workflow.comments + - galaxy.schema.workflows + +about: + home: https://galaxyproject.org + license: MIT + license_family: MIT + license_file: LICENSE + summary: The Galaxy API schema objects. + doc_url: https://docs.galaxyproject.org + dev_url: https://github.com/galaxyproject/galaxy + +extra: + identifiers: + - biotools:galaxy + - doi:10.1093/nar/gky379 + recipe-maintainers: + - bernt-matthias diff --git a/recipes/isa-rwval/build_failure.linux-64.yaml b/recipes/isa-rwval/build_failure.linux-64.yaml deleted file mode 100644 index 10941d9825482..0000000000000 --- a/recipes/isa-rwval/build_failure.linux-64.yaml +++ /dev/null @@ -1,4 +0,0 @@ -recipe_sha: 79dcca1e40634b62bfd92b5248b30c58c92f2b4885b2602c06367234d043f867 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -reason: |- - build job in CI is killed, probably due to memory issues diff --git a/recipes/isa-rwval/build_failure.osx-64.yaml b/recipes/isa-rwval/build_failure.osx-64.yaml deleted file mode 100644 index 10941d9825482..0000000000000 --- a/recipes/isa-rwval/build_failure.osx-64.yaml +++ /dev/null @@ -1,4 +0,0 @@ -recipe_sha: 79dcca1e40634b62bfd92b5248b30c58c92f2b4885b2602c06367234d043f867 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -reason: |- - build job in CI is killed, probably due to memory issues diff --git a/recipes/isa-rwval/meta.yaml b/recipes/isa-rwval/meta.yaml index c866c3cf7d569..4b2ee4c5047ff 100644 --- a/recipes/isa-rwval/meta.yaml +++ b/recipes/isa-rwval/meta.yaml @@ -1,31 +1,30 @@ -{% set version = "0.10.9" %} -{% set sha256 = "2ac3742b85500b9cbc1f993a249e76fc930cb742f1fe4cc96b8136491b4eab89" %} +{% set name = "isa-rwval" %} +{% set version = "0.10.10" %} +{% set sha256 = "3e9fcf37d5e5ff7e92cf28069ecd95d1e62a4025c2d667519da382e5c2258e51" %} package: - name: isa-rwval + name: {{ name }} version: {{ version }} source: - url: https://files.pythonhosted.org/packages/a4/22/39d1b2ae26ba833c994c4019995a67c10edceec99c27f227f5cdf989ab09/isa-rwval-{{ version }}.tar.gz + url: https://pypi.io/packages/source/i/{{ name }}/{{ name }}-{{ version }}.tar.gz sha256: {{ sha256 }} build: noarch: python number: 0 - script: "{{ PYTHON }} -m pip install . --no-deps -vv" + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" requirements: host: - pip - - python >=3.5 - # Depend on galaxy-util during build time to avoid packaging galaxy/__init__.py . + - python >=3.6 run: - networkx - - six - numpy - pandas - matplotlib-base - - python >=3.5 + - python >=3.6 test: imports: From 21ef5050893787c9f15e0c89ac0434a1a7258f95 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 11:37:28 -0400 Subject: [PATCH 0426/1589] Update virusrecom to 1.2.0 (#49389) --- recipes/virusrecom/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/virusrecom/meta.yaml b/recipes/virusrecom/meta.yaml index a13702997cb2f..e51a7bea2b0bb 100644 --- a/recipes/virusrecom/meta.yaml +++ b/recipes/virusrecom/meta.yaml @@ -1,5 +1,5 @@ {% set name = "virusrecom" %} -{% set version = "1.1.7" %} +{% set version = "1.2.0" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: cbb6126dc1fd6f5ee7485d8ff512c81ca5d504a821113a8ff3dca1255c2f89fc + sha256: 98335c08d01caf9019743781ddc7f8f152591380a1574a731cb82fcc4815bc10 build: number: 0 From 879a9e48da1483d34c57c5d9fee18c510cb43e8b Mon Sep 17 00:00:00 2001 From: "Robert A. Petit III" Date: Thu, 18 Jul 2024 10:39:39 -0600 Subject: [PATCH 0427/1589] clermontyping use share folder (#49372) * add missing data for clermontyping * fix typo * expand variable * adjust quotes * update sed statement * I was making this harder then it needed to be -.- * this should do it --- recipes/clermontyping/build.sh | 16 +++++++++++++--- recipes/clermontyping/meta.yaml | 2 +- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/recipes/clermontyping/build.sh b/recipes/clermontyping/build.sh index 05b90b57289ce..1fe3da3fdd2e6 100644 --- a/recipes/clermontyping/build.sh +++ b/recipes/clermontyping/build.sh @@ -2,7 +2,17 @@ set -xe -mkdir -p ${PREFIX}/bin +CLERMONTYPING="${PREFIX}/share/${PKG_NAME}-${PKG_VERSION}" +mkdir -p ${PREFIX}/bin ${CLERMONTYPING} + +# Use the share folder of R scripts and reference data +mv ${SRC_DIR}/bin ${CLERMONTYPING} +mv ${SRC_DIR}/data ${CLERMONTYPING} +chmod 755 ${CLERMONTYPING}/bin/* + +# Edit Wrapper to use Share Folder +sed -E -i "s,^(MY_PATH=.*),\1/../share/${PKG_NAME}-${PKG_VERSION}," $SRC_DIR/clermonTyping.sh + +# Copy wrapper into bin cp $SRC_DIR/clermonTyping.sh ${PREFIX}/bin/ -mkdir -p ${PREFIX}/bin/bin -cp $SRC_DIR/bin/* ${PREFIX}/bin/bin \ No newline at end of file +chmod 755 ${PREFIX}/bin/clermonTyping.sh diff --git a/recipes/clermontyping/meta.yaml b/recipes/clermontyping/meta.yaml index a1c39da64b940..4b11f2423666a 100644 --- a/recipes/clermontyping/meta.yaml +++ b/recipes/clermontyping/meta.yaml @@ -10,7 +10,7 @@ source: sha256: '{{sha256}}' build: - number: 0 + number: 1 noarch: generic run_exports: - {{ pin_subpackage('clermontyping', max_pin=None) }} From e4a0017cfc41fef1b715c209ec112b2005924af8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 15:10:29 -0400 Subject: [PATCH 0428/1589] Update mycotools to 0.31.41 (#49393) --- recipes/mycotools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mycotools/meta.yaml b/recipes/mycotools/meta.yaml index e4dd395d68480..be0bff47a9d44 100644 --- a/recipes/mycotools/meta.yaml +++ b/recipes/mycotools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mycotools" %} -{% set version = "0.31.40" %} +{% set version = "0.31.41" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mycotools-{{ version }}.tar.gz - sha256: 4c4ca7152ed34fb5a2412a972f17c3f7ea1b458475bc87e49dc0045a7f25b42f + sha256: 973a7aed4d9a471e18761fd8b2e6cd9bb3cec7a2ebdecf0062f8c7e98ddd1530 build: entry_points: From ff10017b6a1f7a7b8d519da2a634ad995caf0417 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 15:10:38 -0400 Subject: [PATCH 0429/1589] Update snakemake-storage-plugin-azure to 0.2.0 (#49391) --- recipes/snakemake-storage-plugin-azure/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-storage-plugin-azure/meta.yaml b/recipes/snakemake-storage-plugin-azure/meta.yaml index 9e7875f4811e3..1cef786c7c342 100644 --- a/recipes/snakemake-storage-plugin-azure/meta.yaml +++ b/recipes/snakemake-storage-plugin-azure/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-storage-plugin-azure" %} -{% set version = "0.1.6" %} +{% set version = "0.2.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_storage_plugin_azure-{{ version }}.tar.gz - sha256: 549e54daf878be652ac5a301b1aa2b4d63d48e21a3a1abe33c4c7b4da79cf8d6 + sha256: 6eea1bc5ff7ab7f5261981eca929a5576dfb76382f597d86ea4863a3e2bac7e7 build: noarch: python From 83ab551a83234e8630cf5522555652e131fd28fa Mon Sep 17 00:00:00 2001 From: Malte Kuehl Date: Thu, 18 Jul 2024 21:57:28 +0200 Subject: [PATCH 0430/1589] Add pytximport (#49362) * New recipe * Pin minor version * Fix missing flit requirement * Remove noarch to build on osx, too * Add noarch again after failed linting * Resolve reviewed changes * Update license * Update recipes/pytximport/meta.yaml Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/pytximport/meta.yaml | 58 ++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 recipes/pytximport/meta.yaml diff --git a/recipes/pytximport/meta.yaml b/recipes/pytximport/meta.yaml new file mode 100644 index 0000000000000..5f43ef5d5e436 --- /dev/null +++ b/recipes/pytximport/meta.yaml @@ -0,0 +1,58 @@ +{% set name = "pytximport" %} +{% set version = "0.6.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pytximport-{{ version }}.tar.gz + sha256: 7a32d5cf5cd9582fe832661b81f0159896d69b7d52dd66ca55d74f1ec48f1606 + +build: + noarch: python + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv + number: 0 + entry_points: + - pytximport=pytximport._cli:cli + run_exports: + - {{ pin_subpackage('pytximport', max_pin="x.x") }} + +requirements: + host: + - flit-core >=3.2,<4 + - python >=3.9 + - pip + run: + - python >=3.9 + - anndata >=0.8.0 + - click >=8.1.7 + - dask >=2024.7.0 + - flox >=0.9.8 + - h5py >=3.11.0 + - numpy >=1.23.0 + - pandas >=1.4.0 + - pybiomart >=0.2.0 + - tqdm >=4.66.4 + - xarray >=2024.6.0 + +test: + imports: + - pytximport + commands: + - pytximport --help + +about: + home: https://pytximport.readthedocs.io/en/latest/start.html + dev_url: https://github.com/complextissue/pytximport + doc_url: https://pytximport.readthedocs.io + summary: pytximport - gene count estimation from alignment-free quantification + description: | + pytximport is a Python port of tximport that allows users to import transcript counts from tools such as kallisto and Salmon, correct them for differential isoform usage, and summarize them at the gene level. + license: GPL-3.0-only + license_family: GPL + license_file: LICENSE + +extra: + recipe-maintainers: + - maltekuehl From 876dd24049b10c7e92fb6b0f99e94a2633267bdf Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 16:19:25 -0400 Subject: [PATCH 0431/1589] Update elastic-blast to 1.3.0 (#49366) * Update elastic-blast to 1.3.0 * clean up recipe * Try from github --------- Co-authored-by: mencian Co-authored-by: Greg Boratyn --- recipes/elastic-blast/meta.yaml | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/recipes/elastic-blast/meta.yaml b/recipes/elastic-blast/meta.yaml index 80e44cda57f33..174ee8948b8cf 100644 --- a/recipes/elastic-blast/meta.yaml +++ b/recipes/elastic-blast/meta.yaml @@ -1,46 +1,47 @@ -{% set version = "1.2.0" %} +{% set name = "elastic-blast" %} +{% set version = "1.3.0" %} package: - name: elastic-blast + name: {{ name }} version: {{ version }} source: - url: https://files.pythonhosted.org/packages/source/e/elastic-blast/elastic_blast-{{ version }}.tar.gz - sha256: 584238fc79befa4e90625752eeca928db4807a0b2e0f8956d1fa9d35c61c083f + url: https://github.com/ncbi/elastic-blast/archive/refs/tags/{{ version }}.tar.gz + sha256: 1ac45f41430078de0fa89733079f5ba7147e7c97719ff6f856979b4b5661a52c build: number: 0 - noarch: generic - script: {{ PYTHON }} -m pip install . -vv + noarch: python + script: {{ PYTHON }} -m pip install . -vvv run_exports: - {{ pin_subpackage("elastic-blast", max_pin="x") }} + requirements: host: - pip - - python >=3.7,<3.10 + - python >=3.7 - python-packit - importlib-metadata run: - - python >=3.7,<3.10 + - python >=3.7 - boto3 - awscli - awslimitchecker - tenacity - google-cloud-sdk - kubernetes-client ==1.18.8 + - importlib-resources ==6.1.1 - importlib-metadata - dataclasses-json + - pex ==2.9.0 test: commands: - elastic-blast --version - elastic-blast --help - - gcloud --version - - gsutil --version - - aws --version - - kubectl version --client=true + about: - home: https://pypi.org/project/elastic-blast/ + home: https://github.com/ncbi/elastic-blast/ license: Public Domain license_family: PUBLIC-DOMAIN license_file: LICENSE.md From 87bcd117e3099055e57539cd354a8c6baa39faa0 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 16:34:12 -0400 Subject: [PATCH 0432/1589] Update snakemake-storage-plugin-azure to 0.2.1 (#49397) --- recipes/snakemake-storage-plugin-azure/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-storage-plugin-azure/meta.yaml b/recipes/snakemake-storage-plugin-azure/meta.yaml index 1cef786c7c342..9c4687fa88a71 100644 --- a/recipes/snakemake-storage-plugin-azure/meta.yaml +++ b/recipes/snakemake-storage-plugin-azure/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-storage-plugin-azure" %} -{% set version = "0.2.0" %} +{% set version = "0.2.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_storage_plugin_azure-{{ version }}.tar.gz - sha256: 6eea1bc5ff7ab7f5261981eca929a5576dfb76382f597d86ea4863a3e2bac7e7 + sha256: 0fb2ccf234a6aa7d4ec1e17b2bb2ab9bf19b0bd00f49f587722504ba01ea7423 build: noarch: python From bb1fc9c8c3946fb6ece2c21637206af3513ff1d6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 16:50:30 -0400 Subject: [PATCH 0433/1589] Update liftover to 1.3.1 (#49396) --- recipes/liftover/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/liftover/meta.yaml b/recipes/liftover/meta.yaml index 8acdcde59dfe1..b28259226f6ce 100644 --- a/recipes/liftover/meta.yaml +++ b/recipes/liftover/meta.yaml @@ -1,6 +1,6 @@ {% set name = "liftover" %} -{% set version = "1.3.0" %} -{% set sha256 = "72b870e47a14210ff3bb6c14d90087b348149765780c65a7699a3a56f7ae7016" %} +{% set version = "1.3.1" %} +{% set sha256 = "43173ba201f2ad2ffd84c699b228d3f21da58e4d087d15d8bdcf600697ade10c" %} package: name: {{ name|lower }} From dfff4b855db65576913222e0ffe073482379feee Mon Sep 17 00:00:00 2001 From: Akihiro Kuno Date: Fri, 19 Jul 2024 07:59:21 +0900 Subject: [PATCH 0434/1589] Build primer3-py on macOS ARM (#49375) * Build primer3-py on macOS ARM * Add llvm-openmp for osx * Remove Python < 3.8 build --- recipes/primer3-py/meta.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/recipes/primer3-py/meta.yaml b/recipes/primer3-py/meta.yaml index 4e1a79ec38a1f..6e59d2ae15ff7 100644 --- a/recipes/primer3-py/meta.yaml +++ b/recipes/primer3-py/meta.yaml @@ -10,8 +10,7 @@ source: sha256: 1ec6ce99ea149b1c82361c654a0eab824e698ce32d5f9ed2dd8f8f37564b3f5f build: - number: 2 - skip: True # [py < 38] + number: 3 run_exports: - {{ pin_subpackage('primer3-py', max_pin="x") }} @@ -19,6 +18,7 @@ requirements: build: - {{ compiler('c') }} - make + - llvm-openmp # [osx] host: - python - cython @@ -39,8 +39,11 @@ about: license_file: LICENSE doc_url: https://libnano.github.io/primer3-py/ + extra: additional-platforms: - linux-aarch64 + - osx-arm64 recipe-maintainers: - bgruening + - akikuno From da65e762146495d17b2b5e99cd745275bb22ba2d Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Fri, 19 Jul 2024 05:52:19 +0200 Subject: [PATCH 0435/1589] Add cmaple recipe (#49392) * Add cmaple recipe * add patch * Try simple * verbose build * try with ninja * f * f * let's try this * add proper test * fix test * fix test * try to find out paths * try again * remove failing mulled tests due to lack of source_files support --- recipes/cmaple/build.sh | 37 +++ recipes/cmaple/meta.yaml | 51 ++++ recipes/cmaple/patch | 563 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 651 insertions(+) create mode 100644 recipes/cmaple/build.sh create mode 100644 recipes/cmaple/meta.yaml create mode 100644 recipes/cmaple/patch diff --git a/recipes/cmaple/build.sh b/recipes/cmaple/build.sh new file mode 100644 index 0000000000000..78f24d3e35d16 --- /dev/null +++ b/recipes/cmaple/build.sh @@ -0,0 +1,37 @@ +#!/bin/bash +set -ex + +DCMAKE_ARGS="" +if [ "$(uname)" == Darwin ]; then + CC=$(which "$CC") + CXX=$(which "$CXX") + AR=$(which "$AR") + RANLIB=$(which "$RANLIB") + DCMAKE_ARGS=(-DCMAKE_C_COMPILER="${CC}" -DCMAKE_CXX_COMPILER="${CXX}" + -DCMAKE_CXX_COMPILER_AR="${AR}" -DCMAKE_CXX_COMPILER_RANLIB="${RANLIB}") +fi + +case $(uname -m) in +aarch64) + JOBS=1 # CircleCI's arm.medium VM runs out of memory with higher values + ;; +*) + JOBS=${CPU_COUNT} + ;; +esac + +mkdir build +cmake -S . -B build -DCMAKE_INSTALL_PREFIX="${PREFIX}" -G Ninja \ + "${DCMAKE_ARGS[@]}" \ + -DBUILD_GMOCK=OFF -DINSTALL_GTEST=OFF \ + -Wno-dev -Wno-deprecated --no-warn-unused-cli + +VERBOSE=1 cmake --build build --target install -j ${JOBS} + +chmod 755 "${PREFIX}/bin/cmaple"* + +for file in "${PREFIX}/example.maple" "${PREFIX}/tree.nwk"; do + if [ -f "$file" ]; then + rm "$file" + fi +done diff --git a/recipes/cmaple/meta.yaml b/recipes/cmaple/meta.yaml new file mode 100644 index 0000000000000..bea9bb9ac3cb0 --- /dev/null +++ b/recipes/cmaple/meta.yaml @@ -0,0 +1,51 @@ +{% set name = "cmaple" %} +{% set version = "1.0.0" %} +{% set sha256 = "68693229053d8c456028b7696ee39770ff55a3eaf3454d7087def08accbf0603" %} +package: + name: {{ name }} + version: {{ version | replace("-", "_") }} +build: + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} +source: + - url: https://github.com/iqtree/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz + sha256: {{ sha256 }} + # Patch necessary to build on arm, can be removed with next release + patches: + - patch +requirements: + build: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + - make + - cmake + - ninja + host: + - libgomp # [linux] + - llvm-openmp # [osx] +test: + source_files: + - example/input.fa + commands: + - cmaple + - cmaple -h + - cmaple-aa + # Mulled builds don't work with source_files + - cmaple -aln example/input.fa # [osx] +about: + home: "https://github.com/iqtree/cmaple" + dev_url: "https://github.com/iqtree/cmaple" + doc_url: "https://github.com/iqtree/cmaple/wiki" + license: "GPL-2.0" + license_family: GPL2 + license_file: LICENSE + summary: "MAximum Parsimonious Likelihood Estimation in C/C++" +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 + identifiers: + - doi:10.1093/molbev/msae134 + recipe-maintainers: + - corneliusroemer diff --git a/recipes/cmaple/patch b/recipes/cmaple/patch new file mode 100644 index 0000000000000..afeca4c13e424 --- /dev/null +++ b/recipes/cmaple/patch @@ -0,0 +1,563 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a58bf79..306b4e8 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,6 +1,6 @@ + ################################################################## + # CMAPLE cmake build definition +-# Copyright (c) 2022 Nhan Ly-Trong, Chris Bielow, Nicola De Maio, Bui Quang Minh ++# Copyright (c) 2022 Nhan Ly-Trong, Chris Bielow, Nicola De Maio, Bui Quang Minh + ################################################################## + + # Windows example usages: +@@ -11,10 +11,8 @@ + # + # cmake -G "Visual Studio 12" (32-bit version, compiled with MSVC) + # cmake -G "Visual Studio 12 Win64" (64-bit version, compiled with MSVC) +-# cmake -G "Visual Studio 12 Win64" -T "Intel C++ Compiler XE 15.0" (64-bit version, compiled with ICC) +-# cmake -G "MinGW Makefiles" (TDM-GCC) +-# cmake -G "Unix Makefiles" -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_MAKE_PROGRAM=mingw32-make (TDM-GCC and clang) +- ++## using clang.exe as shipped with Visual Studio: ++# cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -G "Ninja" -DCMAPLE_FLAGS=static ..\cmaple + + # Linux example usages: + #---------------------- +@@ -63,13 +61,24 @@ set(GCC_MIN_VERSION "5") + ############################################################## + # Clang-tidy + ############################################################## +-message("Setup clang-tidy") +-#set(CMAKE_CXX_CLANG_TIDY "clang-tidy;-header-filter=.;-checks=performance-*") ++if (USE_CLANG_TIDY) ++ message("Setup clang-tidy (USE_CLANG_TIDY=ON)") ++ set(CMAKE_CXX_CLANG_TIDY "clang-tidy;-header-filter=.;-checks=performance-*") ++else() ++ message("No clang-tidy (USE_CLANG_TIDY=OFF)") ++endif() ++ + + project(cmaple) + add_definitions(-DCMAPLE) + set(CMAKE_CXX_STANDARD 20) +-set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE) # Enable IPO (LTO) by default ++ ++if (((${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch") AND (NOT APPLE AND UNIX)) ++ OR WIN32) ++ set(CMAKE_INTERPROCEDURAL_OPTIMIZATION FALSE) # Disable IPO (LTO) for Linux ARM ++else() ++ set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE) # Enable IPO (LTO) by default ++endif() + + # The version number. + set (cmaple_VERSION_MAJOR 1) +@@ -80,14 +89,19 @@ option(BUILD_SHARED_LIBS "Build Shared Libraries" OFF) + option(INSTALL_CMAPLE "Enable installation of CMAPLE. (Projects integrating CMAPLE may want to turn this OFF.)" ON) + + ################################################################## +-# check existence of a few basic functions ++# check existence of a few basic functions and headers + ################################################################## +-include (${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake) ++include (CheckFunctionExists) + check_function_exists (gettimeofday HAVE_GETTIMEOFDAY) + check_function_exists (getrusage HAVE_GETRUSAGE) + check_function_exists (GlobalMemoryStatusEx HAVE_GLOBALMEMORYSTATUSEX) + check_function_exists (strndup HAVE_STRNDUP) + check_function_exists (strtok_r HAVE_STRTOK_R) ++## find optional headers ++include (CheckIncludeFile) ++CHECK_INCLUDE_FILE("unistd.h" CMAPLE_HAS_UNISTDH) ++ ++ + + if (NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE "Release") +@@ -129,6 +143,8 @@ else() + message("Target OS : Unknown and untested yet") + endif() + ++# NHANLT: Note: to build a static version, we have to link ++# the static OpenMP library manually here instead of the dynamic one + ################################################################## + # configure OpenMP to build a static version + ################################################################## +@@ -136,13 +152,19 @@ if (NOT CMAPLE_FLAGS MATCHES "single") + message("OpenMP : Yes") + + if(APPLE) +- if(OSX_NATIVE_ARCHITECTURE STREQUAL "arm64") ++ if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch") + link_directories(${PROJECT_SOURCE_DIR}/libraries/static/libmac_m1) + else() + link_directories(${PROJECT_SOURCE_DIR}/libraries/static/libmac) + endif() +- elseif (WIN32 OR UNIX) +- if (CMAKE_SIZEOF_VOID_P EQUAL 4) ++ elseif (UNIX AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") ++ if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch") ++ link_directories(${PROJECT_SOURCE_DIR}/libraries/static/liblinux_arm) ++ else() ++ link_directories(${PROJECT_SOURCE_DIR}/libraries/static/lib) ++ endif() ++ elseif (WIN32) ++ if (BINARY32) + link_directories(${PROJECT_SOURCE_DIR}/libraries/static/lib32) + else() + link_directories(${PROJECT_SOURCE_DIR}/libraries/static/lib) +@@ -169,13 +191,20 @@ endif() + + ## enable 'SSE/AVX' on x86-64, 'neon' on arm to achive faster computations (mainly the Matrix::dotProduct()) + if (CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU") +- if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86") ++ if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86") + add_compile_options(-msse -msse2 -msse3 -mssse3 -msse4 -msse4.1 -msse4.2 -mavx) # needed for simde instructions +- elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm") +- add_compile_options(-neon) +- endif() ++ elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch") ++ # NHANLT: Because the option "-neon" is not found, ++ # I changed it to "-march=native" ++ #add_compile_options(-neon) ++ if (NOT APPLE AND UNIX) ++ add_compile_options(-march=armv8-a) ++ else() ++ add_compile_options(-march=native) ++ endif() ++ endif() + elseif (CMAKE_CXX_COMPILER_ID MATCHES "MSVC") +- if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86") ++ if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86") + add_compile_options(/arch:AVX2) ## not really needed, but may be beneficial in other places when in Release mode (i.e. with optimizations turned on) + endif() + endif() +@@ -244,13 +273,13 @@ FetchContent_MakeAvailable(googletest) + ################################################################## + LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}") + if (NOT TARGET ncl) +- add_subdirectory(libraries/ncl) +-endif() ++ add_subdirectory(libraries/ncl) ++endif() + if (NOT TARGET nclextra) +- add_subdirectory(libraries/nclextra) +-endif() ++ add_subdirectory(libraries/nclextra) ++endif() + add_subdirectory(utils) +-add_subdirectory(libraries/SIMDe) ++add_subdirectory(libraries/SIMDe) + target_include_directories(cmaple_utils PUBLIC ${SIMDE_INCLUDE_DIRECTORY}) + add_subdirectory(model) + add_subdirectory(alignment) +@@ -267,16 +296,17 @@ add_executable(cmaple-aa main/main.cpp) + + if(Backtrace_FOUND) + include_directories(${Backtrace_INCLUDE_DIR}) +- target_link_libraries(cmaple ${Backtrace_LIBRARY}) +- target_link_libraries(cmaple-aa ${Backtrace_LIBRARY}) ++ target_link_libraries(cmaple PRIVATE ${Backtrace_LIBRARY}) ++ target_link_libraries(cmaple-aa PRIVATE ${Backtrace_LIBRARY}) + endif(Backtrace_FOUND) + + ################################################################## + # setup linking flags + ################################################################## + +-target_link_libraries(cmaple maple cmaple_tree cmaple_alignment cmaple_model ncl nclextra cmaple_utils) +-target_link_libraries(cmaple-aa maple-aa cmaple_tree-aa cmaple_alignment-aa cmaple_model-aa ncl nclextra cmaple_utils) ++target_link_libraries(cmaple PUBLIC maple cmaple_tree cmaple_alignment cmaple_model ncl nclextra cmaple_utils) ++target_link_libraries(cmaple-aa PUBLIC maple-aa cmaple_tree-aa cmaple_alignment-aa cmaple_model-aa ncl nclextra cmaple_utils) ++ + + ############################################################## + # add the install targets +@@ -323,7 +353,20 @@ set(CPACK_SOURCE_IGNORE_FILES + + set (SYSTEM_NAME "${CMAKE_SYSTEM_NAME}") + if (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") +- set (SYSTEM_NAME "MacOSX") ++ if (IQTREE_FLAGS MATCHES "oldmac") ++ set (SYSTEM_NAME "macOS10.5") ++ elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch") ++ set (SYSTEM_NAME "macOS-arm") ++ else() ++ set (SYSTEM_NAME "macOS-intel") ++ endif() ++endif() ++if (NOT APPLE AND UNIX) ++ if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch") ++ set (SYSTEM_NAME "Linux-arm") ++ else() ++ set (SYSTEM_NAME "Linux-intel") ++ endif() + endif() + + set(CPACK_PACKAGE_FILE_NAME +diff --git a/alignment/alignment.cpp b/alignment/alignment.cpp +index 738793d..1b98ce1 100644 +--- a/alignment/alignment.cpp ++++ b/alignment/alignment.cpp +@@ -875,7 +875,15 @@ void cmaple::Alignment::readMaple(std::istream& aln_stream) { + + // extract + ssin >> tmp; +- StateType state = convertChar2State(toupper(tmp[0])); ++ StateType state; ++ try ++ { ++ state = convertChar2State(toupper(tmp[0])); ++ } ++ catch(std::invalid_argument& e) ++ { ++ throw std::invalid_argument("Line " + convertIntToString(line_num + 1) + ": " + e.what()); ++ } + + // extract + ssin >> tmp; +@@ -1037,9 +1045,8 @@ auto cmaple::Alignment::convertChar2State(char state) -> StateType { + return 1; + default: + { +- string invalid_state_msg = "Invalid state "; ++ string invalid_state_msg = "Unrecognized character "; + invalid_state_msg += state; +- invalid_state_msg += ". Please check and try again!"; + throw std::invalid_argument(invalid_state_msg); + return TYPE_INVALID; + } +@@ -1081,9 +1088,8 @@ auto cmaple::Alignment::convertChar2State(char state) -> StateType { + case 'V': + return 1 + 2 + 4 + 3; // A or G or C + default: { +- string invalid_state_msg = "Invalid state "; ++ string invalid_state_msg = "Unrecognized character "; + invalid_state_msg += state; +- invalid_state_msg += ". Please check and try again!"; + throw std::invalid_argument(invalid_state_msg); + // return TYPE_INVALID; // unrecognize character + } +@@ -1113,9 +1119,8 @@ auto cmaple::Alignment::convertChar2State(char state) -> StateType { + loc = strchr(symbols_protein, state); + + if (loc == nullptr) { +- string invalid_state_msg = "Invalid state "; ++ string invalid_state_msg = "Unrecognized character "; + invalid_state_msg += state; +- invalid_state_msg += ". Please check and try again!"; + throw std::invalid_argument(invalid_state_msg); + // return TYPE_INVALID; // unrecognize character + } +@@ -1130,9 +1135,8 @@ auto cmaple::Alignment::convertChar2State(char state) -> StateType { + + if (!loc) + { +- string invalid_state_msg = "Invalid state "; ++ string invalid_state_msg = "Unrecognized character "; + invalid_state_msg += state; +- invalid_state_msg += ". Please check and try again!"; + throw std::invalid_argument(invalid_state_msg); + return TYPE_INVALID; // unrecognize character + } +@@ -1141,9 +1145,8 @@ auto cmaple::Alignment::convertChar2State(char state) -> StateType { + case cmaple::SeqRegion::SEQ_AUTO: + case cmaple::SeqRegion::SEQ_UNKNOWN: + default: { +- string invalid_state_msg = "Invalid state "; ++ string invalid_state_msg = "Unrecognized character "; + invalid_state_msg += state; +- invalid_state_msg += ". Please check and try again!"; + throw std::invalid_argument(invalid_state_msg); + // return TYPE_INVALID; + } +diff --git a/cmaple.doxy b/cmaple.doxy +index 3beaee7..da2a488 100644 +--- a/cmaple.doxy ++++ b/cmaple.doxy +@@ -48,13 +48,13 @@ PROJECT_NAME = CMAPLE + # could be handy for archiving the generated documentation or if some version + # control system is used. + +-PROJECT_NUMBER = 1 ++PROJECT_NUMBER = 1.0.0 + + # Using the PROJECT_BRIEF tag one can provide an optional one line description + # for a project that appears at the top of each page and should give viewer a + # quick idea about the purpose of the project. Keep the description short. + +-PROJECT_BRIEF = "CMaple phylogenetic software" ++PROJECT_BRIEF = "C++ MAximum Parsimonious Likelihood Estimation" + + # With the PROJECT_LOGO tag one can specify a logo or an icon that is included + # in the documentation. The maximum height of the logo should not exceed 55 +diff --git a/cmaple_config.h.in b/cmaple_config.h.in +index 2729eea..4090d2b 100644 +--- a/cmaple_config.h.in ++++ b/cmaple_config.h.in +@@ -15,5 +15,7 @@ + #cmakedefine HAVE_STRNDUP + #cmakedefine HAVE_STRTOK_R + ++#cmakedefine CMAPLE_HAS_UNISTDH ++ + /* does the platform provide backtrace functions? */ + #cmakedefine Backtrace_FOUND +diff --git a/libraries/static/liblinux_arm/libomp.a b/libraries/static/liblinux_arm/libomp.a +new file mode 100644 +index 0000000..bf95783 +Binary files /dev/null and b/libraries/static/liblinux_arm/libomp.a differ +diff --git a/libraries/static/libmac_m1/libomp.a b/libraries/static/libmac_m1/libomp.a +index bdff3e4..0c72cdc 100644 +Binary files a/libraries/static/libmac_m1/libomp.a and b/libraries/static/libmac_m1/libomp.a differ +diff --git a/maple/cmaple.cpp b/maple/cmaple.cpp +index c9f898d..9e21c9f 100644 +--- a/maple/cmaple.cpp ++++ b/maple/cmaple.cpp +@@ -150,11 +150,6 @@ void cmaple::runCMAPLE(cmaple::Params ¶ms) + std::ostream null_stream(nullptr); + std::ostream& out_stream = cmaple::verbose_mode >= cmaple::VB_MED ? std::cout : null_stream; + tree.infer(tree_search_type, params.shallow_tree_search, out_stream); +- +- // Write the normal tree file +- ofstream out = ofstream(output_treefile); +- out << tree.exportNewick(tree_format); +- out.close(); + + // Compute branch supports (if users want to do so) + if (params.compute_aLRT_SH) +@@ -169,21 +164,19 @@ void cmaple::runCMAPLE(cmaple::Params ¶ms) + tree.computeBranchSupport(static_cast(params.num_threads), params.aLRT_SH_replicates, params.aLRT_SH_half_epsilon + params.aLRT_SH_half_epsilon, allow_replacing_ML_tree, out_stream); + + // write the tree file with branch supports +- ofstream out_tree_branch_supports = ofstream(prefix + ".aLRT_SH.treefile"); ++ /*ofstream out_tree_branch_supports = ofstream(prefix + ".aLRT_SH.treefile"); + out_tree_branch_supports << tree.exportNewick(tree_format, true); +- out_tree_branch_supports.close(); ++ out_tree_branch_supports.close();*/ + } + + // If needed, apply some minor changes (collapsing zero-branch leaves into less-info sequences, re-estimating model parameters) to make the processes of outputting then re-inputting a tree result in a consistent tree + if (params.make_consistent) +- { + tree.makeTreeInOutConsistent(); +- +- // Overwrite the normal tree file +- ofstream overwrite_out = ofstream(output_treefile); +- overwrite_out << tree.exportNewick(tree_format); +- overwrite_out.close(); +- } ++ ++ // Write the normal tree file ++ ofstream out = ofstream(output_treefile); ++ out << tree.exportNewick(tree_format); ++ out.close(); + + // output log-likelihood of the tree + if (cmaple::verbose_mode > cmaple::VB_QUIET) { +@@ -205,10 +198,10 @@ void cmaple::runCMAPLE(cmaple::Params ¶ms) + // Show information about output files + std::cout << "Analysis results written to:" << std::endl; + std::cout << "Maximum-likelihood tree: " << output_treefile << std::endl; +- if (params.compute_aLRT_SH) { ++ /*if (params.compute_aLRT_SH) { + std::cout << "Tree with aLRT-SH values: " + << prefix + ".aLRT_SH.treefile" << std::endl; +- } ++ }*/ + std::cout << "Screen log file: " << prefix + ".log" << std::endl << std::endl; + + // show runtime +diff --git a/model/model_aa.nexus b/model/model_aa.nexus +index e52e032..6da7af0 100644 +--- a/model/model_aa.nexus ++++ b/model/model_aa.nexus +@@ -208,7 +208,9 @@ model VT= + 0.5411769916657778 0.8912614404565405 1.0894926581511342 0.7447620891784513 2.1579775140421025 0.9183596801412757 0.5818111331782764 0.3374467649724478 7.7587442309146040 0.8626796044156272 1.2452243224541324 0.7835447533710449 1.0899165770956820 10.3848523331334590 0.4819109019647465 0.9547229305958682 0.8564314184691215 4.5377235790405388 + 4.6501894691803214 0.7807017855806767 0.4586061981719967 0.4594535241660911 2.2627456996290891 0.6366932501396869 0.8940572875547330 0.6193321034173915 0.5333220944030346 14.8729334615190609 3.5458093276667237 0.7801080335991272 4.0584577156753401 1.7039730522675411 0.5985498912985666 0.9305232113028208 3.4242218450865543 0.5658969249032649 1.0000000000000000 + 0.0770764620135024 0.0500819370772208 0.0462377395993731 0.0537929860758246 0.0144533387583345 0.0408923608974345 0.0633579339160905 0.0655672355884439 0.0218802687005936 0.0591969699027449 0.0976461276528445 0.0592079410822730 0.0220695876653368 0.0413508521834260 0.0476871596856874 0.0707295165111524 0.0567759161524817 0.0127019797647213 0.0323746050281867 0.0669190817443274; +- ++)" ++// Visual studio needs regular breaks in long strings, to avoid C2026 "string too big" ++R"( + model BLOSUM62= + 0.735790389698 + 0.485391055466 1.297446705134 +@@ -390,7 +392,9 @@ model HIVW= + 0.0050000 0.0050000 5.0647500 2.2815400 8.3483500 0.0050000 0.0050000 0.0050000 47.4889000 0.1145120 0.0050000 0.0050000 0.5791980 4.1272800 0.0050000 0.9331420 0.4906080 0.0050000 + 24.8094000 0.2794250 0.0744808 2.9178600 0.0050000 0.0050000 2.1995200 2.7962200 0.8274790 24.8231000 2.9534400 0.1280650 14.7683000 2.2800000 0.0050000 0.8626370 0.0050000 0.0050000 1.3548200 + 0.0377494 0.0573210 0.0891129 0.0342034 0.0240105 0.0437824 0.0618606 0.0838496 0.0156076 0.0983641 0.0577867 0.0641682 0.0158419 0.0422741 0.0458601 0.0550846 0.0813774 0.0195970 0.0205847 0.0515638; +- ++)" ++// Visual studio needs regular breaks in long strings, to avoid C2026 "string too big" ++R"( + model JTTDCMUT= + 0.531678 + 0.557967 0.451095 +@@ -503,7 +507,9 @@ model MTINV= + 0.021939769224089 0.182762501894970 1.139165041333800 0.192759935895995 1.342951983818990 0.476209340516188 0.137649645940120 0.072268115092742 2.321701900318870 0.177138315144646 0.161052630578922 0.348477651608884 0.393193176722666 3.234681510126880 0.081395316441860 0.345719568712117 0.174898633040519 0.636664640334042 + 2.751362222454670 0.072153227138698 0.065420927831618 0.088077392769029 1.555396905840990 0.065221940911213 0.231186486525368 0.396428077428706 0.008043434782625 8.542589373962890 1.075872855650690 0.056252073499162 1.509852171058890 0.534676724129225 0.162975872809625 0.377288666084473 1.885338569864270 0.128598566560553 0.080346083861554 + 0.031742312696925 0.010900704360282 0.061579224631690 0.016149206459683 0.013570105428042 0.014644105857642 0.022311208924484 0.047847519139008 0.011641804656722 0.094322337728935 0.149407059762824 0.044438717775487 0.077262530905012 0.102287040914816 0.026290210516084 0.105939042375617 0.042869117147647 0.020701008280403 0.046556718622687 0.059540023816010; +- ++)" ++// Visual studio needs regular breaks in long strings, to avoid C2026 "string too big" ++R"( + model Q.PFAM= + 0.531344742 + 0.266631781 0.610524242 +@@ -635,7 +641,9 @@ model Q.MAMMAL= + 0.091694198 0.139818982 0.655149301 0.420781565 5.685285320 0.126113134 0.070592995 0.083304052 7.287086510 0.172110578 0.176288430 0.080506454 0.165573576 5.877878503 0.112513257 0.458878972 0.102291161 0.645002709 + 4.300445029 0.107177686 0.082093349 0.228482448 0.278600785 0.094238794 0.325642029 0.868890049 0.081513165 12.950251994 1.879650916 0.097391390 7.158497660 0.733119107 0.145626117 0.152049202 0.573328824 0.113423271 0.125003102 + 0.067997000 0.055503000 0.036288000 0.046867000 0.021435000 0.050281000 0.068935000 0.055323000 0.026410000 0.041953000 0.101191000 0.060037000 0.019662000 0.036237000 0.055146000 0.096864000 0.057136000 0.011785000 0.024730000 0.066223000; +- ++)" ++// Visual studio needs regular breaks in long strings, to avoid C2026 "string too big" ++R"( + model Q.PLANT= + 0.061995451 + 0.071787018 0.324146307 +@@ -725,7 +733,9 @@ model NQ.BIRD= + 0.003367 0.003420 0.025103 0.019062 0.118842 0.002325 0.001636 0.002267 0.172299 0.003816 0.011255 0.001973 0.001121 0.149120 0.003758 0.041478 0.002483 0.002546 -0.568642 0.002770 + 0.353020 0.003671 0.001550 0.011216 0.004391 0.002838 0.025621 0.063330 0.001568 0.600920 0.192704 0.003462 0.154474 0.028747 0.004789 0.007272 0.022534 0.001180 0.000311 -1.483598 + 0.066333 0.053982 0.037723 0.047442 0.022723 0.049236 0.071640 0.058487 0.025459 0.045195 0.100085 0.061369 0.020983 0.038111 0.053610 0.089423 0.053556 0.012287 0.027118 0.065238; +- ++)" ++// Visual studio needs regular breaks in long strings, to avoid C2026 "string too big" ++R"( + model NQ.INSECT= + -1.158307 0.010073 0.016374 0.018148 0.024562 0.031278 0.050686 0.115871 0.007708 0.016759 0.030487 0.021161 0.017635 0.007697 0.047195 0.387388 0.180867 0.001003 0.005193 0.168222 + 0.016988 -0.864366 0.028327 0.009011 0.016427 0.091271 0.017198 0.023080 0.063484 0.009987 0.026047 0.441579 0.010386 0.003027 0.013118 0.047581 0.024505 0.004420 0.007183 0.010747 +@@ -817,7 +827,9 @@ model NQ.YEAST= + 0.008246 0.005644 0.022807 0.004919 0.019212 0.007773 0.004189 0.001883 0.119939 0.010396 0.023220 0.003733 0.004427 0.375273 0.002243 0.021838 0.007934 0.015523 -0.669995 0.010796 + 0.198675 0.005913 0.007857 0.004763 0.020689 0.009495 0.019917 0.008777 0.004253 0.727245 0.155452 0.012278 0.043536 0.027573 0.012496 0.016617 0.125934 0.001048 0.008587 -1.411103 + 0.062250 0.044391 0.048928 0.052085 0.009471 0.039753 0.068567 0.039996 0.018745 0.069961 0.114036 0.081245 0.018619 0.047434 0.030178 0.090883 0.054691 0.008448 0.033789 0.066530; +- ++)" ++// Visual studio needs regular breaks in long strings, to avoid C2026 "string too big" ++R"( + model FLAVI= + 0.077462 + 0.078037 0.000020 +diff --git a/tree/tree.cpp b/tree/tree.cpp +index 5290594..e130697 100644 +--- a/tree/tree.cpp ++++ b/tree/tree.cpp +@@ -6991,8 +6991,10 @@ PositionType cmaple::Tree::count_aRLT_SH_branch( + lh_diff_3 += site_lh_diff_3[j]; + lh_diff_3 += site_lh_root_diff_3[j]; + } ++#ifdef DEBUG + assert(isinf(lh_diff_2) || fabs(lh_diff_2 - nodelh.getLhDiff2()) < 1e-3); + assert(isinf(lh_diff_3) || fabs(lh_diff_3 - nodelh.getLhDiff3()) < 1e-3); ++#endif + + // iterate a number of replicates + #pragma omp parallel reduction(+ : sh_count) +@@ -8848,8 +8850,17 @@ void cmaple::Tree::expandTreeByOneLessInfoSeq(PhyloNode& node, + // add a new node representing the less-info-seq + // the default min_blength in CMAPLE is not small enough -> I set it at + // min_blength * 0.1 for a higher accuracy when calculating aLRT-SH +- const RealNumType new_min_blength = ++ RealNumType new_min_blength = + (params->fixed_min_blength == -1) ? min_blength * 0.1 : min_blength; ++ ++ // if the two sequences are identical set the new blength at 0 ++ if (lower_regions->compareWithSample(*node.getPartialLh(TOP), ++ static_cast(aln->ref_seq.size()), aln) == 1 && ++ node.getPartialLh(TOP)->compareWithSample(*lower_regions, ++ static_cast(aln->ref_seq.size()), aln) == 1) ++ new_min_blength = 0; ++ ++ // connect the new node to the tree + connectNewSample2Branch( + lower_regions, seq_name_index, node_index, node, top_distance, 0, + new_min_blength, best_child_regions, upper_left_right_regions); +diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt +index 524f20e..1a400be 100644 +--- a/utils/CMakeLists.txt ++++ b/utils/CMakeLists.txt +@@ -7,6 +7,14 @@ matrix.h + logstream.h logstream.cpp + ) + ++if(CLANG AND WIN32) ++ if (BINARY32) ++ target_link_libraries(cmaple_utils ${PROJECT_SOURCE_DIR}/libraries/static/lib32/libiomp5md.dll) ++ else() ++ target_link_libraries(cmaple_utils ${PROJECT_SOURCE_DIR}/libraries/static/lib/libiomp5md.dll) ++ endif() ++endif() ++ + #find_package(OpenMP) + #if(OpenMP_CXX_FOUND) + # if(ZLIB_FOUND) +diff --git a/utils/matrix.h b/utils/matrix.h +index cc72203..7b3b2ba 100644 +--- a/utils/matrix.h ++++ b/utils/matrix.h +@@ -79,7 +79,7 @@ inline double horiz_sum(simde__m256d v) { + vlow = simde_mm_add_pd(vlow, vhigh); // reduce down to 128 + + simde__m128d high64 = simde_mm_unpackhi_pd(vlow, vlow); +- return simde_mm_cvtsd_f64(_mm_add_sd(vlow, high64)); // reduce to scalar ++ return simde_mm_cvtsd_f64(simde_mm_add_sd(vlow, high64)); // reduce to scalar + } + + +diff --git a/utils/operatingsystem.cpp b/utils/operatingsystem.cpp +index b8715d9..08d9a63 100644 +--- a/utils/operatingsystem.cpp ++++ b/utils/operatingsystem.cpp +@@ -8,10 +8,10 @@ + #include "operatingsystem.h" + #include + #include +-#if defined(WIN32) || defined(WIN64) +-#include //for _isatty +-#else ++#if defined(CMAPLE_HAS_UNISTDH) + #include //for isatty ++#else ++#include //for _isatty + #endif + + auto getOSName() -> std::string { +@@ -32,9 +32,9 @@ auto getOSName() -> std::string { + } + + auto isStandardOutputATerminal() -> bool { +-#if defined(WIN32) || defined(WIN64) +- return _isatty(fileno(stdout)); +-#else ++#if defined(CMAPLE_HAS_UNISTDH) + return isatty(fileno(stdout)); ++#else ++ return _isatty(fileno(stdout)); + #endif + } +diff --git a/utils/operatingsystem.h b/utils/operatingsystem.h +index 35ac951..37dfe92 100644 +--- a/utils/operatingsystem.h ++++ b/utils/operatingsystem.h +@@ -9,6 +9,7 @@ + #define operatingsystem_h + + #include ++#include + + std::string getOSName(); + bool isStandardOutputATerminal(); +diff --git a/utils/tools.cpp b/utils/tools.cpp +index a8b1c4e..9992a93 100644 +--- a/utils/tools.cpp ++++ b/utils/tools.cpp +@@ -881,8 +881,8 @@ void cmaple::parseArg(int argc, char* argv[], Params& params) { + outError(e.what()); + } + +- if (params.fixed_min_blength <= 0) { +- outError(" following -min-bl must be positive!"); ++ if (params.fixed_min_blength <= 1e-12) { ++ outError(" following -min-bl must be at least 1e-12!"); + } + + continue; From dff7f1c4dd3fcbc058b8c8cf2e546d8c83e646a2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 23:53:01 -0400 Subject: [PATCH 0436/1589] Update virusrecom to 1.2.1 (#49404) --- recipes/virusrecom/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/virusrecom/meta.yaml b/recipes/virusrecom/meta.yaml index e51a7bea2b0bb..a0f638776f348 100644 --- a/recipes/virusrecom/meta.yaml +++ b/recipes/virusrecom/meta.yaml @@ -1,5 +1,5 @@ {% set name = "virusrecom" %} -{% set version = "1.2.0" %} +{% set version = "1.2.1" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 98335c08d01caf9019743781ddc7f8f152591380a1574a731cb82fcc4815bc10 + sha256: 969e4af84eee30626319b562dbe085ccfdf81c5aa0bb8ff2874b4669f77e70b5 build: number: 0 From c4facb1a04673dfb956d423db8641f3bf32b0568 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 23:53:20 -0400 Subject: [PATCH 0437/1589] Update paragone to 1.1.3 (#49403) --- recipes/paragone/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/paragone/meta.yaml b/recipes/paragone/meta.yaml index d1dfd040d9241..b6c95e93e9849 100644 --- a/recipes/paragone/meta.yaml +++ b/recipes/paragone/meta.yaml @@ -1,5 +1,5 @@ {% set name = "paragone" %} -{% set version = "1.1.2" %} +{% set version = "1.1.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: "https://github.com/chrisjackson-pellicle/ParaGone/archive/refs/tags/v{{ version }}.tar.gz" - sha256: 49c5b2d0a3dad9f3d10a6ccc8d89e46959ec09aac0d6a6f4dd44e0cf47914ac0 + sha256: b6bf77b0ed9641f8d5a85ab3870dc24703410b5beb993c77e7c2803174911182 build: number: 0 From c3d1df76c487341e60ad8f0061140aec207c62b7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 23:53:50 -0400 Subject: [PATCH 0438/1589] Update cogent3 to 2024.7.19a1 (#49401) --- recipes/cogent3/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/cogent3/meta.yaml b/recipes/cogent3/meta.yaml index 4772fb5cad6f0..d475b58bcaa0b 100644 --- a/recipes/cogent3/meta.yaml +++ b/recipes/cogent3/meta.yaml @@ -1,5 +1,5 @@ {% set name = "cogent3" %} -{% set version = "2024.5.7a1" %} +{% set version = "2024.7.19a1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 7e4417a2728d246b1acc695209ec2e4f24ab9c7bfcd01cd113db0a791ea1c090 + sha256: fdf62233b60eb28e16a7aa8a58abdc6b98b594a596b220316875cb3d31f34dda build: noarch: python From 59757358764d353752e2fb6db186ddf5c1020c2a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 23:54:06 -0400 Subject: [PATCH 0439/1589] Update r-ldweaver to 1.5.1 (#49402) --- recipes/r-ldweaver/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/r-ldweaver/meta.yaml b/recipes/r-ldweaver/meta.yaml index 9d1ef8ded260c..8ae0114fc3966 100644 --- a/recipes/r-ldweaver/meta.yaml +++ b/recipes/r-ldweaver/meta.yaml @@ -1,6 +1,6 @@ {% set name = "r-ldweaver" %} -{% set version = "1.5" %} -{% set sha256 = "4952b30c4e50850d6ed119469b377ecd49047f4802c5c1b84564cad60d972676" %} +{% set version = "1.5.1" %} +{% set sha256 = "baa8d5f07f76fa72a57b5b54cf09bd45152a2ee444a2f5a5abbc62fadbe756a1" %} package: name: {{ name }} From 75a13e745e3273b9a2160e419f0659d12e1439b4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 19 Jul 2024 04:40:59 -0400 Subject: [PATCH 0440/1589] Update tmhg to 1.0.3 (#49405) --- recipes/tmhg/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/tmhg/meta.yaml b/recipes/tmhg/meta.yaml index 92b87b6be7175..4c9862644ea4b 100644 --- a/recipes/tmhg/meta.yaml +++ b/recipes/tmhg/meta.yaml @@ -1,5 +1,5 @@ {% set name = "tmhg" %} -{% set version = "1.0.2" %} +{% set version = "1.0.3" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: 'https://github.com/yongze-yin/tMHG-Finder/archive/refs/tags/v{{version}}.tar.gz' - sha256: ce17dbe0f2fc7605948bc4dbd57d0f84c0b92df761c7edefb73419a050959d71 + sha256: 21046a4bab493271c82ede7432b74d7d5cacd68ee586e7be88118d7f74bd5b46 build: run_exports: From c38e38e6a7c7f518b1fe3f5ee78177d2d8521f11 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 19 Jul 2024 04:41:09 -0400 Subject: [PATCH 0441/1589] Update khipu-metabolomics to 2.0.2 (#49399) * Update khipu-metabolomics to 2.0.2 * Update meta.yaml * Update meta.yaml --------- Co-authored-by: Cornelius Roemer --- recipes/khipu-metabolomics/meta.yaml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/recipes/khipu-metabolomics/meta.yaml b/recipes/khipu-metabolomics/meta.yaml index 17677c29ab01d..97660e7d7985f 100644 --- a/recipes/khipu-metabolomics/meta.yaml +++ b/recipes/khipu-metabolomics/meta.yaml @@ -1,5 +1,5 @@ {% set name = "khipu-metabolomics" %} -{% set version = "2.0.1" %} +{% set version = "2.0.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/khipu_metabolomics-{{ version }}.tar.gz - sha256: 98bc3a78ece5def5041506f3219b0a549b3eb95c05b75817d91eabf94f0810ac + sha256: c9c5c1febbe7d368aa249819cb14a6633bb14f1ab13ec1192e1ea27546174d47 build: noarch: python @@ -27,7 +27,7 @@ requirements: - intervaltree - isocor - mass2chem - - matplotlib + - matplotlib-base - numpy - networkx - pandas @@ -42,7 +42,6 @@ test: - khipu --help requires: - pip - - requests about: home: https://github.com/shuzhao-li/khipu From 1f286eed0c07291746091df1eda1e37e51f1b7a1 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Fri, 19 Jul 2024 14:21:44 +0200 Subject: [PATCH 0442/1589] fix: Half Auspice package size (#49415) - Run `yarn cache clean --all` to remove unnecessary cache, saving 250 MB - Make build.sh posix compliant and DRYer --- recipes/auspice/build.sh | 27 +++++++++++++++------------ recipes/auspice/meta.yaml | 12 +++++++----- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/recipes/auspice/build.sh b/recipes/auspice/build.sh index 779b58cd87a2f..bc9e16bc339b8 100644 --- a/recipes/auspice/build.sh +++ b/recipes/auspice/build.sh @@ -1,18 +1,21 @@ #!/bin/sh -set -xeuo pipefail +set -xeuo -mkdir -p $PREFIX/lib/auspice -pushd $PREFIX/lib/auspice - yarn add --non-interactive --ignore-engines $SRC_DIR -popd +AUSPICE_LIB_DIR="$PREFIX"/lib/auspice +mkdir -p "$AUSPICE_LIB_DIR" +cd "$AUSPICE_LIB_DIR" +yarn add --non-interactive --ignore-engines "$SRC_DIR" +yarn cache clean --all # Remove 250 MB source cache added -mkdir -p $PREFIX/bin -pushd $PREFIX/bin - ln -s ../lib/auspice/node_modules/.bin/auspice . -popd +BIN_DIR="$PREFIX"/bin +mkdir -p "$BIN_DIR" +cd "$BIN_DIR" +ln -s ../lib/auspice/node_modules/.bin/auspice . # For the license_file field in meta.yaml -cp $PREFIX/lib/auspice/node_modules/auspice/LICENSE.txt $SRC_DIR -if [ -f $PREFIX/lib/auspice/node_modules/watchpack-chokidar2/node_modules/fsevents/build/node_gyp_bins/python3 ] ; then - unlink $PREFIX/lib/auspice/node_modules/watchpack-chokidar2/node_modules/fsevents/build/node_gyp_bins/python3 +cp "$AUSPICE_LIB_DIR"/node_modules/auspice/LICENSE.txt "$SRC_DIR" + +NODE_GYP_PYTHON="$AUSPICE_LIB_DIR"/node_modules/watchpack-chokidar2/node_modules/fsevents/build/node_gyp_bins/python3 +if [ -f "$NODE_GYP_PYTHON" ]; then + unlink "$NODE_GYP_PYTHON" fi diff --git a/recipes/auspice/meta.yaml b/recipes/auspice/meta.yaml index 4507c2050df07..3d686e8bf8ffe 100644 --- a/recipes/auspice/meta.yaml +++ b/recipes/auspice/meta.yaml @@ -1,17 +1,18 @@ {% set version = "2.56.0" %} +{% set name = "auspice" %} package: - name: auspice + name: {{ name }} version: {{ version }} source: - url: https://registry.npmjs.org/auspice/-/auspice-{{ version }}.tgz + url: https://registry.npmjs.org/{{ name }}/-/{{ name }}-{{ version }}.tgz sha256: 89c620bc790c5e3f28969a253f41e36bf35a13346cb8c6ab55868d9c6ee08714 build: - number: 2 + number: 3 run_exports: - - {{ pin_subpackage("auspice", max_pin="x.x") }} + - {{ pin_subpackage(name, max_pin="x.x") }} requirements: build: @@ -20,7 +21,7 @@ requirements: - "{{ compiler('c') }}" - "{{ compiler('cxx') }}" - nodejs 16.*|18.*|20.* - - python * + - python - pkg-config - yarn 1.* host: @@ -31,6 +32,7 @@ requirements: test: commands: - auspice --help + - auspice -v about: home: https://docs.nextstrain.org/projects/auspice/ From f7f773a589d54ec37cd8f84c6701f4a729099978 Mon Sep 17 00:00:00 2001 From: AntonS-bio <47866509+AntonS-bio@users.noreply.github.com> Date: Fri, 19 Jul 2024 13:40:30 +0100 Subject: [PATCH 0443/1589] Update to version 0.1.22 (#49414) --- recipes/handyreadgenotyper/meta.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/recipes/handyreadgenotyper/meta.yaml b/recipes/handyreadgenotyper/meta.yaml index 173b1894489fa..7460e9d78995f 100644 --- a/recipes/handyreadgenotyper/meta.yaml +++ b/recipes/handyreadgenotyper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "HandyReadGenotyper" %} -{% set version = "0.1.21" %} +{% set version = "0.1.22" %} package: name: {{ name|lower }} @@ -7,14 +7,14 @@ package: source: url: https://github.com/AntonS-bio/HandyReadGenotyper/archive/{{ version }}.tar.gz - sha256: ac0f0bc3f5db78f400e67f355f5cc6de7089bf481d6c8272e42b271a571c2bed + sha256: e969f57238a517c6483de0eabdad57e0359168ac6a6be1ebed34c03cffb2d48d build: noarch: python script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation run_exports: - {{ pin_subpackage('handyreadgenotyper', max_pin="x.x") }} - number: 1 + number: 0 requirements: host: @@ -34,6 +34,7 @@ requirements: test: commands: - train -h + - classify -h requires: - pip From c30d0b8c422061abfe65b1d087c1f463fc99609f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 19 Jul 2024 11:05:08 -0400 Subject: [PATCH 0444/1589] Update defense-finder to 1.3.0 (#49408) --- recipes/defense-finder/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/defense-finder/meta.yaml b/recipes/defense-finder/meta.yaml index 80a8fee131a79..a6efd6b8a8504 100644 --- a/recipes/defense-finder/meta.yaml +++ b/recipes/defense-finder/meta.yaml @@ -1,5 +1,5 @@ {% set name = "defense-finder" %} -{% set version = "1.2.2" %} +{% set version = "1.3.0" %} package: name: {{ name|lower }} @@ -7,11 +7,11 @@ package: source: url: https://github.com/mdmparis/defense-finder/archive/v{{ version }}.tar.gz - sha256: e34e59cf1329e26c9cb6e42bb5cb6a7a051e09ca4bf981b9334f73a08d354625 + sha256: cfcc3092d7426f6bae924d08f8303dcef19446f88808d116443bc8ef287be0c5 # patches: 0001-fix-no-results.patch build: - number: 1 + number: 0 noarch: python script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv run_exports: From fef8130e6c6cfbf2beb90b7438ac15fcf10bebbf Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 19 Jul 2024 11:15:16 -0400 Subject: [PATCH 0445/1589] Update dfast_qc to 1.0.1 (#49411) --- recipes/dfast_qc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/dfast_qc/meta.yaml b/recipes/dfast_qc/meta.yaml index b057e76fa7d9d..60cf4b8dc949e 100644 --- a/recipes/dfast_qc/meta.yaml +++ b/recipes/dfast_qc/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.0.0" %} +{% set version = "1.0.1" %} package: name: dfast_qc @@ -12,7 +12,7 @@ build: source: url: https://github.com/nigyta/dfast_qc/archive/{{ version }}.tar.gz - sha256: 456843b81b4f3e221d2ae20cfd64aec8bd74e7f1a772d64eb9942b164f829813 + sha256: 9f8456e953add634cc5e1e2f7181df4836d9a239a86a21184bdcaa75fa89e90d requirements: From 1c567e44c5906c2d443d7f7217d9c3581cc982d6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 19 Jul 2024 11:35:24 -0400 Subject: [PATCH 0446/1589] Update zdb to 1.3.1 (#49413) --- recipes/zdb/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/zdb/meta.yaml b/recipes/zdb/meta.yaml index 0ac72934d1172..44567e264fe2a 100644 --- a/recipes/zdb/meta.yaml +++ b/recipes/zdb/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.3.0" %} +{% set version = "1.3.1" %} package: name: zdb @@ -11,8 +11,8 @@ build: - {{ pin_subpackage('zdb', max_pin="x.x") }} source: - url: https://github.com/metagenlab/zDB/archive/refs/tags/v1.3.0.tar.gz - sha256: 3f9496d423875e0d281bc62c3fcc88f9878c167ea14ff9b8afebfea4087466c0 + url: https://github.com/metagenlab/zDB/archive/refs/tags/v1.3.1.tar.gz + sha256: dec71cf53fd30f490fbbedd2bfa8488a3d2dfa67459d0c9b54f70a020ce8beb1 requirements: run: From 4eeb356db59908b22364a533f38baeaf511c9204 Mon Sep 17 00:00:00 2001 From: "Robert A. Petit III" Date: Fri, 19 Jul 2024 09:42:16 -0600 Subject: [PATCH 0447/1589] add recipe for scrubby (#49373) * add recipe for scrubby * fix typo try arm build * skip arm due to depends * try OSX build --------- Co-authored-by: mencian --- recipes/scrubby/build.sh | 20 ++++++++++++++++++ recipes/scrubby/meta.yaml | 43 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 recipes/scrubby/build.sh create mode 100644 recipes/scrubby/meta.yaml diff --git a/recipes/scrubby/build.sh b/recipes/scrubby/build.sh new file mode 100644 index 0000000000000..42c7a115fff25 --- /dev/null +++ b/recipes/scrubby/build.sh @@ -0,0 +1,20 @@ +#!/bin/bash +set -ex + +# adopted from: https://github.com/bioconda/bioconda-recipes/blob/master/recipes/rasusa/build.sh + +RUST_BACKTRACE=full + +if [ "$(uname)" == "Darwin" ]; then + # apparently the HOME variable isn't set correctly, and circle ci + # output indicates the following as the home directory + export HOME="/Users/distiller" + export HOME=`pwd` + echo "HOME is $HOME" + + # according to https://github.com/rust-lang/cargo/issues/2422#issuecomment-198458960 + # removing circle ci default configuration solves cargo trouble downloading crates + # git config --global --unset url.ssh://git@github.com.insteadOf +fi + +cargo install -v --locked --root "$PREFIX" --path . diff --git a/recipes/scrubby/meta.yaml b/recipes/scrubby/meta.yaml new file mode 100644 index 0000000000000..9e5b36b11e7b1 --- /dev/null +++ b/recipes/scrubby/meta.yaml @@ -0,0 +1,43 @@ +{% set version = "0.2.1" %} +{% set name = "scrubby" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/esteinig/{{ name }}/archive/{{ version }}.tar.gz + sha256: 88aaf4420393501b1387f45c9291a373a3a01c034c1d1d72555cccb05fea92a2 + +build: + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x.x") }} + +requirements: + build: + - {{ compiler('c') }} + - {{ compiler('rust') }} + - make + - cmake + - clang # [osx] + run: + - minimap2 =2.24 + - kraken2 =2.1.2 + - strobealign =0.8.0 + +test: + commands: + - scrubby -h + +about: + home: https://github.com/esteinig/scrubby + license: MIT + license_family: MIT + summary: Read depletion/extraction and database cleaning using k-mer and alignment methods + license_file: LICENSE + dev_url: https://github.com/esteinig/scrubby + +extra: + recipe-maintainers: + - esteinig From e4dcd41ee4d1746e1d6408339c8eab69c4480a39 Mon Sep 17 00:00:00 2001 From: Niclas Grote <57624670+HomoPolyethylen@users.noreply.github.com> Date: Fri, 19 Jul 2024 17:43:16 +0200 Subject: [PATCH 0448/1589] querynator: pin pandas to 1.5.3 (#49407) * pin pandas to 1.5.3 fixes querynator issue 37 * increment built number lint test failed due to version and built number being same, increment built number --- recipes/querynator/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/querynator/meta.yaml b/recipes/querynator/meta.yaml index 0ccd6b596b9b3..2bbf594ece3e8 100644 --- a/recipes/querynator/meta.yaml +++ b/recipes/querynator/meta.yaml @@ -10,7 +10,7 @@ source: sha256: bad38b5a62cd05701e13cb9e7157a854c0b9870c993971a20ae03ae9c91ac9a9 build: - number: 0 + number: 1 noarch: python run_exports: - {{ pin_subpackage('querynator', max_pin="x") }} @@ -28,7 +28,7 @@ requirements: - httplib2 - matplotlib-base >=3.6.1 - numpy ==1.24.4 - - pandas >=1.5.1 + - pandas ==1.5.3 - pretty_html_table >=0.9.16 - pytest >=6.2.4 - python >=3.8,<3.11 From 63f9e1e4e1fd0f2469c53d507402210d299c4f14 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 19 Jul 2024 12:01:40 -0400 Subject: [PATCH 0449/1589] Update r-ic10 to 2.0.2 (#49410) * Update r-ic10 to 2.0.2 * add run_exports --------- Co-authored-by: mencian --- recipes/r-ic10/build.sh | 1 - recipes/r-ic10/meta.yaml | 15 +++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) delete mode 100644 recipes/r-ic10/build.sh diff --git a/recipes/r-ic10/build.sh b/recipes/r-ic10/build.sh deleted file mode 100644 index 5bf492ab9fc06..0000000000000 --- a/recipes/r-ic10/build.sh +++ /dev/null @@ -1 +0,0 @@ -$R CMD INSTALL --build . diff --git a/recipes/r-ic10/meta.yaml b/recipes/r-ic10/meta.yaml index a2c4c3c934ccb..82853f886728a 100644 --- a/recipes/r-ic10/meta.yaml +++ b/recipes/r-ic10/meta.yaml @@ -1,21 +1,25 @@ -{% set version = '1.5' %} +{% set name = "r-ic10" %} +{% set version = '2.0.2' %} package: - name: r-ic10 + name: {{ name }} version: {{ version|replace("-", "_") }} source: url: - {{ cran_mirror }}/src/contrib/iC10_{{ version }}.tar.gz - {{ cran_mirror }}/src/contrib/Archive/iC10/iC10_{{ version }}.tar.gz - sha256: b471088158320778bac7b145233eeaaf9480061e2a5ac12c58ad7381caee06f7 + sha256: 8c417097765b74576aad6a4dfa30917910dc06a05e858f6a6080574c109c1b32 build: - number: 6 + number: 0 noarch: generic + script: ${R} CMD INSTALL --build . ${R_ARGS} rpaths: - lib/R/lib/ - lib/ + run_exports: + - {{ pin_subpackage('r-ic10', max_pin="x") }} requirements: host: @@ -31,12 +35,11 @@ requirements: test: commands: - - $R -e "library('iC10')" about: home: https://CRAN.R-project.org/package=iC10 - license: GPL-3 + license: GPL-3.0-or-later license_file: '{{ environ["PREFIX"] }}/lib/R/share/licenses/GPL-3' summary: Implementation of the classifier described in the paper 'Genome-driven integrated classification of breast cancer validated in over 7,500 samples' (Ali HR et al., From 560c815be870aa35911e47c6a94211d6590919e4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 19 Jul 2024 13:24:09 -0400 Subject: [PATCH 0450/1589] Update nonpareil to 3.5.5 (#49418) * Update nonpareil to 3.5.5 * Add new dependencies and copy over new utlity script * Linting required build reset? * Update recipes/nonpareil/meta.yaml * Update recipes/nonpareil/meta.yaml --------- Co-authored-by: James A. Fellows Yates --- recipes/nonpareil/meta.yaml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/recipes/nonpareil/meta.yaml b/recipes/nonpareil/meta.yaml index 553c4d5f0a67e..b9efb68dcc775 100644 --- a/recipes/nonpareil/meta.yaml +++ b/recipes/nonpareil/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "3.5.4" %} -{% set sha256 = "41ea9c1378e85787142b29c7cdf8d352073764a620f818333492266e6bbec1cd" %} +{% set version = "3.5.5" %} +{% set sha256 = "a1896a3ecf1394cbbc685de8dcb0eef04aa089e5ad6badf51d0eaa89b4b3bf1e" %} package: name: nonpareil @@ -16,6 +16,8 @@ build: script: | make -j ${CPU_COUNT} cpp="${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}" nonpareil make prefix="${PREFIX}" install + chmod +x utils/NonpareilCurves.R + cp utils/NonpareilCurves.R ${PREFIX}/bin/NonpareilCurves.R requirements: build: @@ -25,11 +27,14 @@ requirements: - zlib run: - r-base + - r-optparse + - r-jsonlite - zlib test: commands: - nonpareil -h 2>&1 | grep "Nonpareil" + - NonpareilCurves.R -h about: home: http://nonpareil.readthedocs.io/ From 82661c20805afc0113923599875ee5b4460b87bb Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Fri, 19 Jul 2024 10:27:25 -0700 Subject: [PATCH 0451/1589] btllib build for osx-arm64 (#49155) * btllib build for osx-arm64 * Skip lrzip dependency for osx-arm64 * Fixes for build restrictions * Fix erroneous skip --- recipes/btllib/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/btllib/meta.yaml b/recipes/btllib/meta.yaml index a22466fe79d65..7414af219a0f1 100644 --- a/recipes/btllib/meta.yaml +++ b/recipes/btllib/meta.yaml @@ -10,8 +10,7 @@ source: sha256: 4c1bb29fdbd7d9a39f960360a5d4b224d22189862b948027a8e3ecd67c635926 build: - skip: True # [py < 38 or win] - number: 2 + number: 3 run_exports: - {{ pin_subpackage('btllib', max_pin="x") }} @@ -39,7 +38,7 @@ requirements: - tar - bzip2 - xz - - lrzip + - lrzip # [not arm64] - zip - wget @@ -61,6 +60,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - doi:10.21105/joss.04720 - doi:10.1093/bioadv/vbad162 From ce54903c75570ec6d83bb7de275b9f7cd587ea45 Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Fri, 19 Jul 2024 13:56:51 -0400 Subject: [PATCH 0452/1589] ggcaller: fix dependency issue (#49419) --- recipes/ggcaller/build_failure.linux-64.yaml | 106 ------------------- recipes/ggcaller/meta.yaml | 4 +- 2 files changed, 2 insertions(+), 108 deletions(-) delete mode 100644 recipes/ggcaller/build_failure.linux-64.yaml diff --git a/recipes/ggcaller/build_failure.linux-64.yaml b/recipes/ggcaller/build_failure.linux-64.yaml deleted file mode 100644 index 1f869f1bff695..0000000000000 --- a/recipes/ggcaller/build_failure.linux-64.yaml +++ /dev/null @@ -1,106 +0,0 @@ -recipe_sha: 881e0ffc9f1369a08046148dd3819c99665e42c9c09ae279668944b12d1e6bff # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - mkl 2023.2.0 h84fe81f_37, which can be installed; - mkl-devel 2023.2.0 would require - mkl 2023.2.0 h84fe81f_49501, which can be installed; - mkl-devel 2023.2.0 would require - mkl 2023.2.0 h84fe81f_49502, which can be installed; - mkl-devel 2023.2.0 would require - mkl 2023.2.0 h84fe81f_49572, which can be installed; - mkl-devel 2023.2.0 would require - mkl 2023.2.0 h84fe81f_50495, which can be installed; - mkl-devel 2023.2.0 would require - mkl 2023.2.0 h84fe81f_50496, which can be installed; - pytorch 1.10.* is not installable because there are no viable options - pytorch 1.10.0 would require - mkl >=2021.4.0,<2022.0a0 , which conflicts with any installable versions previously reported; - pytorch [1.10.1|1.10.2] would require - mkl 2022.* , which conflicts with any installable versions previously reported. - Reloading output folder: ...working... done - Getting pinned dependencies: ...working... failed - Reloading output folder: ...working... done - Getting pinned dependencies: ...working... failed - Reloading output folder: ...working... done - Getting pinned dependencies: ...working... failed - ERROR: Failed to get package records, max retries exceeded. - Reloading output folder: ...working... done - Getting pinned dependencies: ...working... failed - Reloading output folder: ...working... done - Getting pinned dependencies: ...working... failed - Reloading output folder: ...working... done - Getting pinned dependencies: ...working... failed - Reloading output folder: ...working... done - Getting pinned dependencies: ...working... failed - Reloading output folder: ...working... done - Getting pinned dependencies: ...working... failed - Reloading output folder: ...working... done - Getting pinned dependencies: ...working... failed - Reloading output folder: ...working... done - Getting pinned dependencies: ...working... failed - Reloading output folder: ...working... done - Getting pinned dependencies: ...working... failed - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/models/version.py", line 44, in __call__ - return cls._cache_[arg] - KeyError: '>=3.9' - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/bioconda-utils", line 8, in - sys.exit(main()) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/bioconda_utils/cli.py", line 1124, in main - argh.dispatch_commands([ - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/argh/dispatching.py", line 510, in dispatch_commands - dispatch(parser, *args, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/argh/dispatching.py", line 198, in dispatch - return run_endpoint_function( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/argh/dispatching.py", line 269, in run_endpoint_function - return _process_command_output(lines, output_file, raw_output, always_flush) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/argh/dispatching.py", line 289, in _process_command_output - for line in lines: - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/argh/dispatching.py", line 414, in _execute_command - for line in result: - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/argh/dispatching.py", line 394, in _call - result = function(*positional_values, **values_by_name) - File "", line 2, in build - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/bioconda_utils/cli.py", line 137, in wrapper - func(*args, **kwargs) - File "", line 2, in build - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/bioconda_utils/cli.py", line 66, in wrapper - func(*args, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/bioconda_utils/cli.py", line 498, in build - success = build_recipes(recipe_folder, config, recipes, - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/bioconda_utils/build.py", line 431, in build_recipes - pkg_paths = utils.get_package_paths(recipe, check_channels, force=force) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/bioconda_utils/utils.py", line 1125, in get_package_paths - platform, metas = _load_platform_metas(recipe, finalize=True) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/bioconda_utils/utils.py", line 1025, in _load_platform_metas - return platform, load_all_meta(recipe, config=config, finalize=finalize) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/bioconda_utils/utils.py", line 459, in load_all_meta - metas = [ - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/bioconda_utils/utils.py", line 462, in - for (meta, _, _) in api.render( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 74, in render - for od, om in meta.get_output_metadata_set( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/metadata.py", line 2737, in get_output_metadata_set - conda_packages = finalize_outputs_pass( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/metadata.py", line 1095, in finalize_outputs_pass - fm = finalize_metadata( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 688, in finalize_metadata - versioned_run_deps = [ - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 689, in - get_pin_from_build(m, dep, full_build_dep_versions) for dep in run_deps - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 219, in get_pin_from_build - pin = utils.apply_pin_expressions(version.split()[0], **pin_cfg) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 1523, in apply_pin_expressions - parsed_version = VersionOrder(version).version[1:] - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/models/version.py", line 46, in __call__ - val = cls._cache_[arg] = super().__call__(arg) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/models/version.py", line 172, in __init__ - raise InvalidVersionSpec(vstr, "invalid character(s)") - conda.exceptions.InvalidVersionSpec: Invalid version '>=3.9': invalid character(s) -# Last 100 lines of the build log. -category: |- - dependency issue diff --git a/recipes/ggcaller/meta.yaml b/recipes/ggcaller/meta.yaml index 4bcc1c0943126..5a24268ec7461 100644 --- a/recipes/ggcaller/meta.yaml +++ b/recipes/ggcaller/meta.yaml @@ -25,7 +25,7 @@ requirements: - make - tbb - tbb-devel - - mkl-devel # [linux] + - mkl-devel >=2021.4.0,<2023.0.0 # [linux] - openblas # [osx] - protobuf - pytorch-cpu =1.10 @@ -43,7 +43,7 @@ requirements: - setuptools - llvm-openmp # [osx] - libgomp # [linux] - - mkl-devel # [linux] + - mkl-devel >=2021.4.0,<2023.0.0 # [linux] - lapack # [osx] - openblas # [osx] - eigen =3.3 From 1a51aa71e911a26a2a76ef398a8fa7eea77c7972 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 19 Jul 2024 13:57:16 -0400 Subject: [PATCH 0453/1589] Update abyss to 2.3.8 (#49422) --- recipes/abyss/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/abyss/meta.yaml b/recipes/abyss/meta.yaml index 4a7e8a2e62cde..c713a409e12e6 100644 --- a/recipes/abyss/meta.yaml +++ b/recipes/abyss/meta.yaml @@ -1,18 +1,18 @@ {% set name = "abyss" %} -{% set version = "2.3.7" %} +{% set version = "2.3.8" %} package: name: {{ name|lower }} version: {{ version }} build: - number: 4 + number: 0 run_exports: - {{ pin_subpackage(name, max_pin="x") }} source: url: https://github.com/bcgsc/abyss/releases/download/{{ version }}/abyss-{{ version }}.tar.gz - sha256: ba37780e79ec3aa359b6003e383caef13479a87f4d0022af01b86398f9ffca1f + sha256: 3c262269043f619c79ec3dcd91f5595cb141229f9a13d1a76a952b9a0bfb0d84 requirements: build: From c7668978954fdd1a37dbba241d64f26f52a6686a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 19 Jul 2024 14:56:52 -0400 Subject: [PATCH 0454/1589] Update pbstarphase to 0.12.0 (#49424) --- recipes/pbstarphase/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pbstarphase/meta.yaml b/recipes/pbstarphase/meta.yaml index 9b1869e8b4ebb..08cd05ff96e91 100644 --- a/recipes/pbstarphase/meta.yaml +++ b/recipes/pbstarphase/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pbstarphase" %} -{% set version = "0.11.3" %} -{% set sha256 = "1b935576c546c9630a4ee0b8a193fd308889c3cae491963cbf9b7fdef4aefce5" %} +{% set version = "0.12.0" %} +{% set sha256 = "a44a71aa786c8ad08860dcb542bb98cd5142f4c331c54e44533a0b62d6d51d7e" %} package: name: {{ name }} From 39a51a1f0c6219573162f59ab4d67addddc2375d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 19 Jul 2024 16:59:44 -0400 Subject: [PATCH 0455/1589] Update gia to 0.2.23 (#49426) --- recipes/gia/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gia/meta.yaml b/recipes/gia/meta.yaml index 994d6dde9cbf2..63a3997827f29 100644 --- a/recipes/gia/meta.yaml +++ b/recipes/gia/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.2" %} +{% set version = "0.2.23" %} {% set name = "gia" %} {% set build_number = "0" %} @@ -9,7 +9,7 @@ package: source: url: https://github.com/noamteyssier/gia/archive/{{ version }}.tar.gz - sha256: 86c1f4dcd36d296d3261ff456b2599e505fe0977a02bcea4e18641ee8add4920 + sha256: 57f843d61281e7e243ee3ebf16f9aa2e96f9fe0e03a02e14e9b7a43ad3b6d949 build: From f3ee206b3ec85bc4759c90dc664ca7a7540b1eb8 Mon Sep 17 00:00:00 2001 From: jxu10 <142250120+jxu10@users.noreply.github.com> Date: Fri, 19 Jul 2024 14:20:16 -0700 Subject: [PATCH 0456/1589] pybedtools: add osx-arm64 build (#49421) Co-authored-by: Elmar Pruesse --- recipes/pybedtools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybedtools/meta.yaml b/recipes/pybedtools/meta.yaml index eed3d0401005a..1470932f51d10 100644 --- a/recipes/pybedtools/meta.yaml +++ b/recipes/pybedtools/meta.yaml @@ -10,8 +10,7 @@ source: sha256: 1a6fbaad23b013becc741d7d5922a2df03e391bc44ff92772ffb7dd456711161 build: - skip: True # [py < 36] - number: 1 + number: 2 run_exports: - {{ pin_subpackage("pybedtools", max_pin="x.x") }} @@ -49,3 +48,4 @@ extra: - biotools:pybedtools additional-platforms: - linux-aarch64 + - osx-arm64 From 5a8694f7279825b5d2641bd7fb17e4ade21d938b Mon Sep 17 00:00:00 2001 From: Mervin Fansler Date: Fri, 19 Jul 2024 23:26:39 +0200 Subject: [PATCH 0457/1589] Add R package `easyLift` as `r-easylift` (#49417) * add r-easylift * Create build.sh --- recipes/r-easylift/build.sh | 3 +++ recipes/r-easylift/meta.yaml | 50 ++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 recipes/r-easylift/build.sh create mode 100644 recipes/r-easylift/meta.yaml diff --git a/recipes/r-easylift/build.sh b/recipes/r-easylift/build.sh new file mode 100644 index 0000000000000..b8d2635525637 --- /dev/null +++ b/recipes/r-easylift/build.sh @@ -0,0 +1,3 @@ +#!/bin/bash +export DISABLE_AUTOBREW=1 +${R} CMD INSTALL --build . ${R_ARGS} diff --git a/recipes/r-easylift/meta.yaml b/recipes/r-easylift/meta.yaml new file mode 100644 index 0000000000000..266299908bd36 --- /dev/null +++ b/recipes/r-easylift/meta.yaml @@ -0,0 +1,50 @@ +{% set version = "0.2.1" %} +{% set github = "https://github.com/caleblareau/easyLift" %} +{% set commit = "43590e059828027e6f1fa057484b239b028da5fd" %} + +package: + name: r-easylift + version: "{{ version }}" + +source: + url: "{{ github }}/archive/{{ commit }}.zip" + sha256: a259440b5911586235828fbe4c0329fa5c514ac342b24641210af35527e3a680 + +build: + noarch: generic + number: 0 + rpaths: + - lib/R/lib/ + - lib/ + run_exports: + - {{ pin_subpackage("r-easylift", max_pin="x.x") }} + +requirements: + host: + - r-base + - bioconductor-genomicranges + - bioconductor-iranges + - bioconductor-rtracklayer + run: + - r-base + - bioconductor-genomicranges + - bioconductor-iranges + - bioconductor-rtracklayer + +test: + commands: + - $R -e "library(easyLift)" + +about: + home: {{ github }} + dev_url: {{ github }} + license: MIT + license_file: + - LICENSE + - {{ environ["PREFIX"] }}/lib/R/share/licenses/MIT + license_family: MIT + summary: A convenience package for converting between popular mouse & human builds. + +extra: + recipe-maintainers: + - mfansler From 138ea8231a3c51e7457c8dc45ad7cd305240b9dd Mon Sep 17 00:00:00 2001 From: Chris Jackson <55370301+chrisjackson-pellicle@users.noreply.github.com> Date: Sat, 20 Jul 2024 08:01:27 +1000 Subject: [PATCH 0458/1589] Update HybPiper entry point for v2.2.0 (#49428) --- recipes/hybpiper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/hybpiper/meta.yaml b/recipes/hybpiper/meta.yaml index be3d2f7c46985..6305cc6c34bf0 100644 --- a/recipes/hybpiper/meta.yaml +++ b/recipes/hybpiper/meta.yaml @@ -10,11 +10,11 @@ source: sha256: 8337b1d17de9fa11f9d2b3f59ccc4597c5e3359d70e26d88346e871ccc6b1ac3 build: - number: 0 + number: 1 noarch: python script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir entry_points: - - hybpiper = hybpiper.assemble:main + - hybpiper = hybpiper.hybpiper_main:main run_exports: - {{ pin_subpackage('hybpiper', max_pin="x") }} From 9173f0ef76ce736bc4c23a96e1681a935860117d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 19 Jul 2024 18:08:06 -0400 Subject: [PATCH 0459/1589] Update comparem2 to 2.9.1 (#49430) --- recipes/comparem2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/comparem2/meta.yaml b/recipes/comparem2/meta.yaml index abe3fd587efca..b4f14db1a4721 100644 --- a/recipes/comparem2/meta.yaml +++ b/recipes/comparem2/meta.yaml @@ -1,6 +1,6 @@ {% set name = "comparem2" %} -{% set version = "2.8.2" %} -{% set sha256 = "181b341077d3e2cc86758620475dc4f79dffd9646f182dd30558b852bbffa92d" %} +{% set version = "2.9.1" %} +{% set sha256 = "3ffba08cf086c0d5b3ee821e15fa5cf91a4e418e28f7eac6a34628bfbba90023" %} package: name: {{ name }} From 7a6dfb2a05a5f3fd546eef9870afa67d9222c187 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 19 Jul 2024 18:08:32 -0400 Subject: [PATCH 0460/1589] Update straglr to 1.5.1 (#49429) --- recipes/straglr/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/straglr/meta.yaml b/recipes/straglr/meta.yaml index 572fb1c829da6..88b99b723b0dd 100644 --- a/recipes/straglr/meta.yaml +++ b/recipes/straglr/meta.yaml @@ -1,13 +1,13 @@ {% set name = "straglr" %} -{% set version = "1.5.0" %} +{% set version = "1.5.1" %} package: name: {{ name }} version: {{ version }} source: - url: https://github.com/bcgsc/straglr/archive/refs/tags/v1.5.0.tar.gz - sha256: 9daab4251a640959e3caa59e9ebfec1fbd0384c78730b4e71fd5a81d7fa23f58 + url: https://github.com/bcgsc/straglr/archive/refs/tags/v1.5.1.tar.gz + sha256: 8c65247e9329f5c0b51b83cbf595089efc1d5f4783fc7e8346c05b93e9bc8abe build: noarch: python From 3a50a0f915192db6c2941c51ef5a4192412719b5 Mon Sep 17 00:00:00 2001 From: jxu10 <142250120+jxu10@users.noreply.github.com> Date: Fri, 19 Jul 2024 15:11:11 -0700 Subject: [PATCH 0461/1589] Update pydna to 5.2.0 (#49425) --- recipes/pydna/meta.yaml | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/recipes/pydna/meta.yaml b/recipes/pydna/meta.yaml index d55993eb39537..9015c821a1756 100644 --- a/recipes/pydna/meta.yaml +++ b/recipes/pydna/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pydna" %} -{% set version = "3.1.0" %} -{% set hash = "99ed63c845e666b328f728a555ab622d42826cfa515c393d635c22be48727a7b" %} +{% set version = "5.2.0" %} +{% set hash = "24e89cc71c77c727c3681da8fe889fb65f243766db63fb17f67a8a6280fde313" %} package: name: {{ name|lower }} @@ -10,25 +10,33 @@ build: number: 0 noarch: python script: {{ PYTHON }} -m pip install . --no-deps --ignore-installed -vv + script_env: + # Workaround for poetry-dynamic-versioning generating incorrect version due + # to missing Git metadata. + - POETRY_DYNAMIC_VERSIONING_BYPASS={{ version }} + run_exports: + - {{ pin_subpackage('pydna', max_pin='x.x') }} source: - url: https://github.com/BjornFJohansson/{{ name|lower }}/archive/{{ version }}.tar.gz + url: https://github.com/BjornFJohansson/{{ name|lower }}/archive/v{{ version }}.tar.gz sha256: {{ hash }} requirements: host: - - python >=3 + - python >=3.8 - pip - - pytest-runner + - poetry + - poetry-dynamic-versioning run: - - python >=3 - - biopython >=1.65 - - networkx >=1.8.1 - - appdirs >=1.3.0 - - prettytable >=0.7.2 - - ordered-set >=2.0.1 - - pyparsing >=2.1.10 - - requests >=2.12 + - python >=3.8 + - appdirs >=1.4.4 + - biopython >=1.80 + - networkx >=2.8.8 + - prettytable >=3.5.0 + - pyperclip >=1.8.2 + - pyfiglet >=0.8.post1 + - pyparsing >=2.4.7 + - requests >=2.26.0 test: imports: @@ -39,4 +47,4 @@ about: license: BSD-3-Clause license_family: BSD license_file: LICENSE.txt - summary: 'Representing double stranded DNA and simulating cloning, homologous recombination, Gibson assembly, Gel electrophoresis etc.' + summary: 'Representing double stranded DNA and functions for simulating cloning and homologous recombination between DNA molecules.' From b6cec9a4582eb22cd1939dbe12bf0d5209546d3e Mon Sep 17 00:00:00 2001 From: Thom Griffioen Date: Sat, 20 Jul 2024 00:13:21 +0200 Subject: [PATCH 0462/1589] Update BLAST to 2.16.0 (#49338) * Update BLAST to 2.16.0 * Reset build number to 0 * Add @ebete as recipe maintainer * Skip OSX build for now --------- Co-authored-by: Cornelius Roemer --- recipes/blast/meta.yaml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/recipes/blast/meta.yaml b/recipes/blast/meta.yaml index ac83310298c71..69232e668d399 100644 --- a/recipes/blast/meta.yaml +++ b/recipes/blast/meta.yaml @@ -1,6 +1,6 @@ {% set name = "blast" %} -{% set version = "2.15.0" %} -{% set sha256 = "6918c370524c8d44e028bf491e8f245a895e07c66c77b261ce3b38d6058216e0" %} +{% set version = "2.16.0" %} +{% set sha256 = "17c93cf009721023e5aecf5753f9c6a255d157561638b91b3ad7276fd6950c2b" %} package: name: {{ name }} @@ -25,7 +25,8 @@ source: - normbase.patch build: - number: 1 + skip: True # [osx] + number: 0 run_exports: # Now, the point releases seem to be only bugfixes at least (but this definitely was not the # case up to v2.2.31) @@ -89,7 +90,7 @@ test: - get_species_taxids.sh -h > /dev/null about: - home: http://blast.ncbi.nlm.nih.gov/Blast.cgi?PAGE_TYPE=BlastDocs + home: https://blast.ncbi.nlm.nih.gov/doc/blast-help/ license: Public Domain summary: BLAST+ is a new suite of BLAST tools that utilizes the NCBI C++ Toolkit. @@ -100,4 +101,5 @@ extra: - usegalaxy-eu:ncbi_blastx_wrapper recipe-maintainers: - christiam + - ebete - epruesse From f20dff4c1331bd49d80d3500eacad472a1212b91 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 19 Jul 2024 18:26:25 -0400 Subject: [PATCH 0463/1589] Update ymp to 0.3.1 (#49423) * Update ymp to 0.3.1 Co-authored-by: Elmar Pruesse --- recipes/ymp/meta.yaml | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/recipes/ymp/meta.yaml b/recipes/ymp/meta.yaml index 04daf28c6d37a..bbfb3ab1b6b41 100644 --- a/recipes/ymp/meta.yaml +++ b/recipes/ymp/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ymp" %} -{% set version = "0.2.1" %} +{% set version = "0.3.1" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 7bcd41dfeb7534a971d4da44f30ef0b46992799097707279080650145f71a258 + sha256: dbd88b552584f1268c8b7b68df18a94a08eca127561bf60162b8e894711814b4 build: number: 0 @@ -15,10 +15,13 @@ build: - ymp=ymp.cli:main noarch: python script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed -vv" + run_exports: + - {{ pin_subpackage('ymp', max_pin="x.x") }} + requirements: host: - - python >=3.6 + - python >=3.10 - setuptools_scm >=3.4 - setuptools >=42 - pytest-runner @@ -31,27 +34,30 @@ requirements: - pandas >=0.20 - pip - ruamel.yaml >0.15 - - snakemake >=5.20.1,<5.21.0a0 + - snakemake >=7.32.1,<8.0a0 - tqdm >=4.21.0 - xdg - xlrd + - openpyxl - fastentrypoints run: - - python >=3.6 + - python >=3.10 - aiohttp - - click + - click >8 - click-completion - coloredlogs - drmaa - networkx >=2 - pandas >=0.20 - ruamel.yaml >0.15 - - snakemake >=5.20.1,<5.21.0a0 + - snakemake >=7.32.1,<8.0a0 - tqdm >=4.21.0 - xdg - xlrd + - openpyxl - conda + - mamba test: imports: From 042d7733edf9e6e3175bef1a542fc14b6b0b5b62 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 21 Jul 2024 03:17:31 -0400 Subject: [PATCH 0464/1589] Update wfmash to 0.17.0 (#49435) --- recipes/wfmash/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/wfmash/meta.yaml b/recipes/wfmash/meta.yaml index 79efc9cc86ab9..c973a63f23d8c 100644 --- a/recipes/wfmash/meta.yaml +++ b/recipes/wfmash/meta.yaml @@ -1,5 +1,5 @@ {% set name = "wfmash" %} -{% set version = "0.16.0" %} +{% set version = "0.17.0" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: https://github.com/waveygang/{{ name }}/releases/download/v{{ version }}/{{ name }}-v{{ version }}.tar.gz - sha256: a3e59f27553d900ec2ce5b832a548d55b9c4f1e8a034040e39f6cb02bff7860e + sha256: 9d1a9c7c2635fdd617360746d0bd2b5cdf9f775c42247ecf80a81ba585bd54d4 build: skip: True # [osx] From b346c0bb31d4ce259a3adcb95d80cbd7fef55575 Mon Sep 17 00:00:00 2001 From: Greg Boratyn Date: Sun, 21 Jul 2024 07:58:16 -0400 Subject: [PATCH 0465/1589] elastic-blast: fix reported version (#49420) --- recipes/elastic-blast/meta.yaml | 10 ++++++++-- recipes/elastic-blast/version.patch | 9 +++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 recipes/elastic-blast/version.patch diff --git a/recipes/elastic-blast/meta.yaml b/recipes/elastic-blast/meta.yaml index 174ee8948b8cf..edd911e78d3f9 100644 --- a/recipes/elastic-blast/meta.yaml +++ b/recipes/elastic-blast/meta.yaml @@ -8,9 +8,11 @@ package: source: url: https://github.com/ncbi/elastic-blast/archive/refs/tags/{{ version }}.tar.gz sha256: 1ac45f41430078de0fa89733079f5ba7147e7c97719ff6f856979b4b5661a52c + patches: + - version.patch build: - number: 0 + number: 1 noarch: python script: {{ PYTHON }} -m pip install . -vvv run_exports: @@ -29,7 +31,7 @@ requirements: - awslimitchecker - tenacity - google-cloud-sdk - - kubernetes-client ==1.18.8 + - kubernetes-client - importlib-resources ==6.1.1 - importlib-metadata - dataclasses-json @@ -39,6 +41,10 @@ test: commands: - elastic-blast --version - elastic-blast --help + - gcloud --version + - gsutil --version + - aws --version + - kubectl version --client=true about: home: https://github.com/ncbi/elastic-blast/ diff --git a/recipes/elastic-blast/version.patch b/recipes/elastic-blast/version.patch new file mode 100644 index 0000000000000..d4b678a46142f --- /dev/null +++ b/recipes/elastic-blast/version.patch @@ -0,0 +1,9 @@ +--- a/setup.cfg ++++ b/setup.cfg +@@ -50,4 +50,5 @@ data_files = + Makefile = Makefile + + [auto-version] +-type = git-pep440 ++type = fixed ++value = 1.3.0 From acc0c6a3da1a6036e84f24210fe09fdd77f6be0d Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Sun, 21 Jul 2024 05:09:38 -0700 Subject: [PATCH 0466/1589] Bump build for ntroot (#49431) --- recipes/ntroot/build.sh | 1 + recipes/ntroot/meta.yaml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/ntroot/build.sh b/recipes/ntroot/build.sh index 65498faa460dd..9c3343b59ea74 100644 --- a/recipes/ntroot/build.sh +++ b/recipes/ntroot/build.sh @@ -5,3 +5,4 @@ mkdir -p ${PREFIX}/bin cp ntroot ${PREFIX}/bin cp ntRootAncestryPredictor.pl ${PREFIX}/bin cp ntroot_run_pipeline.smk ${PREFIX}/bin +cp ntroot_cross_reference_vcf.py ${PREFIX}/bin diff --git a/recipes/ntroot/meta.yaml b/recipes/ntroot/meta.yaml index b9eb9e928f42a..82a7b533fd94e 100644 --- a/recipes/ntroot/meta.yaml +++ b/recipes/ntroot/meta.yaml @@ -10,7 +10,7 @@ source: sha256: c91ba834bc221e7883dff864aed7a2230700a515f5475b1f2d331007d9db73a8 build: - number: 0 + number: 1 noarch: generic run_exports: - {{ pin_subpackage("ntroot", max_pin="x") }} From ba6f3c884bba8d5c2e0ea7f38140ab33dbbf3137 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 21 Jul 2024 08:11:03 -0400 Subject: [PATCH 0467/1589] Update pytrf to 1.3.3 (#49432) --- recipes/pytrf/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pytrf/meta.yaml b/recipes/pytrf/meta.yaml index f4afd5195b61e..eb36fafc0aa87 100644 --- a/recipes/pytrf/meta.yaml +++ b/recipes/pytrf/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pytrf" %} -{% set version = "1.3.2" %} -{% set sha256 = "98cd1171f58dc147fa8aac89b23cd0e34eaac83e5b5b501e31723dfc318f6cc5" %} +{% set version = "1.3.3" %} +{% set sha256 = "f635dc817e0431d1f29dfda9ea2f2f901c89890443e15cd1f207975d6f84002f" %} package: name: "{{ name|lower }}" @@ -11,7 +11,7 @@ source: sha256: "{{ sha256 }}" build: - number: 1 + number: 0 script: "{{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv" run_exports: - {{ pin_subpackage("pytrf", max_pin="x.x") }} From 3347caa45fa927979c1e1bf68c24f556c4900e6b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 21 Jul 2024 08:15:56 -0400 Subject: [PATCH 0468/1589] Update mycotools to 0.31.42 (#49437) --- recipes/mycotools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mycotools/meta.yaml b/recipes/mycotools/meta.yaml index be0bff47a9d44..5e3111a790c2b 100644 --- a/recipes/mycotools/meta.yaml +++ b/recipes/mycotools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mycotools" %} -{% set version = "0.31.41" %} +{% set version = "0.31.42" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mycotools-{{ version }}.tar.gz - sha256: 973a7aed4d9a471e18761fd8b2e6cd9bb3cec7a2ebdecf0062f8c7e98ddd1530 + sha256: 871f536c467ebaba6b4d721b2392d62866f6fc098a6e298fd3b83b906ae44a08 build: entry_points: From 80e47f62a5414c83c78a2cdc1c628b1f7774eed5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 21 Jul 2024 08:16:38 -0400 Subject: [PATCH 0469/1589] Update snakemake-storage-plugin-azure to 0.2.2 (#49439) --- recipes/snakemake-storage-plugin-azure/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-storage-plugin-azure/meta.yaml b/recipes/snakemake-storage-plugin-azure/meta.yaml index 9c4687fa88a71..a66b6d1a88edc 100644 --- a/recipes/snakemake-storage-plugin-azure/meta.yaml +++ b/recipes/snakemake-storage-plugin-azure/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-storage-plugin-azure" %} -{% set version = "0.2.1" %} +{% set version = "0.2.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_storage_plugin_azure-{{ version }}.tar.gz - sha256: 0fb2ccf234a6aa7d4ec1e17b2bb2ab9bf19b0bd00f49f587722504ba01ea7423 + sha256: df1f5740005dcdbe765f3f6c1b52b657dacaa5177a7a6e981a00aa5f5f2b0be7 build: noarch: python From 2eabcdbd65f2e3fb472d7ef75033a262401121ec Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 21 Jul 2024 08:18:03 -0400 Subject: [PATCH 0470/1589] Update nf-test to 0.9.0 (#49444) --- recipes/nf-test/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/nf-test/meta.yaml b/recipes/nf-test/meta.yaml index 280a8e4979ddd..13b0e97045e44 100644 --- a/recipes/nf-test/meta.yaml +++ b/recipes/nf-test/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.8.4" %} +{% set version = "0.9.0" %} package: @@ -13,7 +13,7 @@ build: source: url: https://github.com/askimed/nf-test/releases/download/v{{version}}/nf-test-{{version}}.tar.gz - sha256: 8023bbe6e354294fba514493f423f80e75869e5daf7e51f4cb808877fdc84381 + sha256: 3e123ceba36b6e890cb12ad4e98792bf4dd2d7e55c36a549b28708df13df0dc7 requirements: host: From 5e865b4061115d5ef98ed60e4bc3462e11ec7ad8 Mon Sep 17 00:00:00 2001 From: Mariia Zelenskaia <102167492+mariia-zelenskaia@users.noreply.github.com> Date: Sun, 21 Jul 2024 14:19:04 +0200 Subject: [PATCH 0471/1589] update TransAnnot version after the paper revision (#49442) --- recipes/transannot/meta.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/recipes/transannot/meta.yaml b/recipes/transannot/meta.yaml index 8db64f2fe9716..4b3e3f49ff2e1 100644 --- a/recipes/transannot/meta.yaml +++ b/recipes/transannot/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1-fa9ebab" %} -{% set sha256 = "432f31744683fa467a1ab76493818f52d3cb8f87d489c7190c255f18c03d9418" %} +{% set version = "3-7f1c8e1" %} +{% set sha256 = "713d5c008886d81da80c6d6990d1bb9d7cf53c9a98dd37aa429cb341e8d2ae36" %} package: name: transannot @@ -40,7 +40,7 @@ test: about: home: https://github.com/soedinglab/transannot - summary: "TransAnnot: fast and all-in-one transcriptome annotation pipeline" + summary: "TransAnnot: a fast transcriptome annotation pipeline" license: GPL-3.0-or-later license_family: GPL license_file: LICENSE.md @@ -50,3 +50,5 @@ extra: - biotools:transannot recipe-maintainers: - mariia-zelenskaia + additional-platforms: + - osx-arm64 From d40409f34ab29b0517da15786f4d5412d63927ae Mon Sep 17 00:00:00 2001 From: Mervin Fansler Date: Sun, 21 Jul 2024 14:21:16 +0200 Subject: [PATCH 0472/1589] Add R package `EpiTrace` as `r-epitrace` (#49412) --- recipes/r-epitrace/build.sh | 3 ++ recipes/r-epitrace/meta.yaml | 80 ++++++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 recipes/r-epitrace/build.sh create mode 100644 recipes/r-epitrace/meta.yaml diff --git a/recipes/r-epitrace/build.sh b/recipes/r-epitrace/build.sh new file mode 100644 index 0000000000000..b8d2635525637 --- /dev/null +++ b/recipes/r-epitrace/build.sh @@ -0,0 +1,3 @@ +#!/bin/bash +export DISABLE_AUTOBREW=1 +${R} CMD INSTALL --build . ${R_ARGS} diff --git a/recipes/r-epitrace/meta.yaml b/recipes/r-epitrace/meta.yaml new file mode 100644 index 0000000000000..23ae72ef2b744 --- /dev/null +++ b/recipes/r-epitrace/meta.yaml @@ -0,0 +1,80 @@ +{% set version = "0.0.1.3" %} +{% set github = "https://github.com/MagpiePKU/EpiTrace" %} +{% set commit = "300ec2137d8da651ba3829c92922841f4eef1b2f" %} + +package: + name: r-epitrace + version: "{{ version }}" + +source: + url: "{{ github }}/archive/{{ commit }}.zip" + sha256: 6d7bea517925436a363da66991fed7a160f9aa117ea8bf2a90e7f075d717dd00 + +build: + noarch: generic + number: 0 + rpaths: + - lib/R/lib/ + - lib/ + run_exports: + - {{ pin_subpackage("r-epitrace", max_pin="x.x.x") }} + +requirements: + host: + - r-base + - r-ape + - r-dplyr + - r-easylift + - r-ggplot2 + - r-ggpubr + - r-matrix + - r-matrixstats + - r-nnls + - r-rcolorbrewer + - r-seurat >=4.0 + - r-seuratobject + - r-signac >=1.5.0 + - r-stringr + - r-tidyr + - r-wgcna >=1.7 + - bioconductor-ggtree + - bioconductor-genomicranges + - bioconductor-plyranges + - bioconductor-sparsematrixstats + run: + - r-ape + - r-ape + - r-dplyr + - r-easylift + - r-ggplot2 + - r-ggpubr + - r-matrix + - r-matrixstats + - r-nnls + - r-rcolorbrewer + - r-seurat >=4.0 + - r-seuratobject + - r-signac >=1.5.0 + - r-stringr + - r-tidyr + - r-wgcna >=1.7 + - bioconductor-ggtree + - bioconductor-genomicranges + - bioconductor-plyranges + - bioconductor-sparsematrixstats + +test: + commands: + - $R -e "library(EpiTrace)" + +about: + home: https://epitrace.readthedocs.io + dev_url: {{ github }} + license: GPL-3.0-or-later + license_file: LICENSE + license_family: GPL + summary: Inference of cell age and phylogeny from single cell ATAC data. + +extra: + recipe-maintainers: + - mfansler From 529bd075fc8079a293adaaf66ff9f9d23352a43a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 21 Jul 2024 14:02:58 -0400 Subject: [PATCH 0473/1589] Update pygcap to 0.0.7 (#49445) --- recipes/pygcap/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pygcap/meta.yaml b/recipes/pygcap/meta.yaml index f5ff896aa7eef..4d08068885af2 100644 --- a/recipes/pygcap/meta.yaml +++ b/recipes/pygcap/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pygcap" %} -{% set version = "0.0.5" %} +{% set version = "0.0.7" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pygcap-{{ version }}.tar.gz - sha256: a82eb375e4daac5f8626f32dce80479bd169cec911739d8e87d031849ec4aa27 + sha256: 616681fb678d3de6100b30da972bdeec57ccfde013e72ad4bd759f9f23bf30e9 build: number: 0 From 0fced5b813fed92f42a0868cea990922d1024fd3 Mon Sep 17 00:00:00 2001 From: Carl Mathias Kobel Date: Sun, 21 Jul 2024 20:04:07 +0200 Subject: [PATCH 0474/1589] amend (#49436) --- recipes/comparem2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/comparem2/meta.yaml b/recipes/comparem2/meta.yaml index b4f14db1a4721..3c6eaf6fd7358 100644 --- a/recipes/comparem2/meta.yaml +++ b/recipes/comparem2/meta.yaml @@ -1,6 +1,6 @@ {% set name = "comparem2" %} {% set version = "2.9.1" %} -{% set sha256 = "3ffba08cf086c0d5b3ee821e15fa5cf91a4e418e28f7eac6a34628bfbba90023" %} +{% set sha256 = "d8dc87511cb213a8e25603bace700e83d91981effd90fae5d493cfc21e5f7281" %} package: name: {{ name }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 noarch: generic run_exports: - {{ pin_subpackage('comparem2', max_pin="x") }} From 13438c62595e903acc4722271556630bad3088e1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 21 Jul 2024 22:13:05 -0400 Subject: [PATCH 0475/1589] Update chronumental to 0.0.65 (#49447) --- recipes/chronumental/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/chronumental/meta.yaml b/recipes/chronumental/meta.yaml index 72c19011e38a4..430c1b3165792 100644 --- a/recipes/chronumental/meta.yaml +++ b/recipes/chronumental/meta.yaml @@ -1,5 +1,5 @@ {% set name = "chronumental" %} -{% set version = "0.0.63" %} +{% set version = "0.0.65" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/chronumental-{{ version }}.tar.gz - sha256: f008bae186592447609cdd51ad940e0474b61a6c0ce9db1b44ed317d3b02f35f + sha256: 3bfa5bca03a466c32a2393db2c978acb1abce9eb0f0edaeb00c922d64c73d50c build: noarch: python From b0bf6417a62c89adea0d151d6b71e2c2f27f65df Mon Sep 17 00:00:00 2001 From: Lucas Czech Date: Sun, 21 Jul 2024 19:14:16 -0700 Subject: [PATCH 0476/1589] Update and refine gappa meta.yaml descriptions (#49388) --- recipes/gappa/meta.yaml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/recipes/gappa/meta.yaml b/recipes/gappa/meta.yaml index 480e2fa880580..e1be51a506d49 100644 --- a/recipes/gappa/meta.yaml +++ b/recipes/gappa/meta.yaml @@ -3,7 +3,7 @@ package: version: "0.8.5" build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('gappa', max_pin='x.x') }} @@ -31,9 +31,19 @@ about: license: GPL-3.0-only license_file: LICENSE.txt summary: Genesis Applications for Phylogenetic Placement Analysis + description: | + gappa is a collection of commands for working with phylogenetic data. + Its main focus are evolutionary placements of short environmental sequences + on a reference phylogenetic tree. Such data are typically produced by tools + such as EPA-ng, RAxML-EPA or pplacer, and usually stored in jplace files. + dev_url: https://github.com/lczech/gappa + doc_url: https://github.com/lczech/gappa/wiki extra: additional-platforms: - linux-aarch64 identifiers: + - doi:10.1093/bioinformatics/btaa070 + - doi:10.3389/fbinf.2022.871393 - doi:10.1093/bioinformatics/bty767 + - doi:10.1371/journal.pone.0217050 From 4cd5261fb9ca1620f22978faf0f619059b7beb68 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 03:28:39 -0400 Subject: [PATCH 0477/1589] Update konezumiaid to 0.3.1 (#49449) --- recipes/konezumiaid/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/konezumiaid/meta.yaml b/recipes/konezumiaid/meta.yaml index 92ccaa1b0a3aa..5ead433a9586c 100644 --- a/recipes/konezumiaid/meta.yaml +++ b/recipes/konezumiaid/meta.yaml @@ -1,5 +1,5 @@ {% set name = "KOnezumiAID" %} -{% set version = "0.3.0" %} +{% set version = "0.3.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/konezumiaid-{{ version }}.tar.gz - sha256: 9070074372d1026e04016b9979ca3b5a5a216c7acea3ad333ecb955b6ceb4f36 + sha256: 78379cd1c923c5e6ae81fe0c0e84f6624b05ecca0cb87a73381431756e8a3489 build: entry_points: From ed4bf3583b98b66b12bf5eab6e6c0880c89b7155 Mon Sep 17 00:00:00 2001 From: Stefan Janssen Date: Mon, 22 Jul 2024 09:30:20 +0200 Subject: [PATCH 0478/1589] Add rapidshapes (#49352) * using latest release of upstream * use recent gapc update with hopes to compile on OSX * add subrecipe for older version 4.3.10 (pinned in qiime2) which shall additionally expose upp.config * adding new recipe * new hashsum * adding rsync dependency * adding explicit g++ dependency at runtime * "patch" readlink option -m to -f * use pre-release * pre-release is using different URL * trigger action --- recipes/rapidshapes/build.sh | 7 +++++ recipes/rapidshapes/meta.yaml | 52 +++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 recipes/rapidshapes/build.sh create mode 100644 recipes/rapidshapes/meta.yaml diff --git a/recipes/rapidshapes/build.sh b/recipes/rapidshapes/build.sh new file mode 100644 index 0000000000000..641712a964c6a --- /dev/null +++ b/recipes/rapidshapes/build.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +make -j ${CPU_COUNT} PREFIX=$PREFIX CC=$CC -C Misc/Applications/RapidShapes all +make PREFIX=$PREFIX CC=$CC -C Misc/Applications/RapidShapes install-program +make PREFIX=$PREFIX CC=$CC -C Misc/Applications/lib install +chmod 755 $PREFIX/bin/RapidShapes* + diff --git a/recipes/rapidshapes/meta.yaml b/recipes/rapidshapes/meta.yaml new file mode 100644 index 0000000000000..33b9844539cdf --- /dev/null +++ b/recipes/rapidshapes/meta.yaml @@ -0,0 +1,52 @@ +{% set version = "2.3.2" %} +{% set packagename = "rapidshapes" %} +{% set sha256 = "d3e6cc8d2ecd31d4764b41fea589b98c637ff227d7ab3dcfe66f2ad3f24dece5" %} + +package: + name: {{ packagename }} + version: 2.1.0 + +source: + sha256: {{ sha256 }} + # the repository "fold-grammars" contains sources for several programs, i.e. pKiss, RNAshapes, ... + # thus, the version number does not correspond to the {{ packagename }} version number + #url: https://github.com/jlab/fold-grammars/archive/{{ version }}.tar.gz + url: https://github.com/jlab/fold-grammars/archive/refs/tags/{{ version }}.tar.gz + +build: + number: 0 + run_exports: + - {{ pin_subpackage('rapidshapes', max_pin="x") }} + +requirements: + build: + - make + - {{ compiler('cxx') }} + - libcxx <17 # [osx] + - rsync + host: + - perl + - bellmans-gapc >=2024.01.12 + - libcxx <17 # [osx] + - rsync + run: + - perl + - bellmans-gapc >=2024.01.12 + - libcxx <17 # [osx] + - gxx_linux-64 # [linux] + - clangxx_osx-64 # [osx] + +test: + commands: + - RapidShapes ccaaagg + +about: + home: https://bibiserv.cebitec.uni-bielefeld.de/{{ packagename }} + license: 'GPL-3.0-or-later' + license_file: LICENSE + summary: 'RapidShapes computes a thermodynamic matcher (TDM), using a runtime heuristic for probabilistic shape analysis.' + +extra: + identifiers: + - doi:10.1093/bioinformatics/btq014 + - doi:10.1093/bioinformatics/btu649 From ac94616dcb91cd733265afa49aae2ebc4f80017f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 04:14:13 -0400 Subject: [PATCH 0479/1589] Update pygcap to 1.0.1 (#49448) * Update pygcap to 1.0.0 * Update pygcap to 1.0.1 * Change max_pin to "x" https://github.com/bioconda/bioconda-recipes/pull/49448 bumped the version from 0.0.7 to 1.0.1 Signed-off-by: Martin Tzvetanov Grigorov (cherry picked from commit 977ce738a030b597eadfc2fc18b3839e19bd3b3b) --------- Co-authored-by: Martin Tzvetanov Grigorov --- recipes/pygcap/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pygcap/meta.yaml b/recipes/pygcap/meta.yaml index 4d08068885af2..86de461bfaea5 100644 --- a/recipes/pygcap/meta.yaml +++ b/recipes/pygcap/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pygcap" %} -{% set version = "0.0.7" %} +{% set version = "1.0.1" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pygcap-{{ version }}.tar.gz - sha256: 616681fb678d3de6100b30da972bdeec57ccfde013e72ad4bd759f9f23bf30e9 + sha256: 29e8817d200539bb67e2ddcaef15f6cec9c726e42c078767e7840922e94fdb76 build: number: 0 @@ -16,7 +16,7 @@ build: entry_points: - pygcap=pygcap.cli:main run_exports: - - {{ pin_subpackage('pygcap', max_pin="x.x") }} + - {{ pin_subpackage('pygcap', max_pin="x") }} requirements: build: From 39da4e0fc4f3d9c6b483b5aed40c058586b415c2 Mon Sep 17 00:00:00 2001 From: Abhilesh Dhawanjewar <2447878+abhilesh@users.noreply.github.com> Date: Mon, 22 Jul 2024 09:37:01 +0100 Subject: [PATCH 0480/1589] Add recipe for Poolsnp (#49156) * Add PoolSNP recipe v1.0.0 * Add run_exports * Fix linting * Include test directory * Specify Testdata destination * Fix path specifications * Fix path specification in test.sh * Potential tests fix * Add noarch specification * Adding .py scripts to bin/ * Test fixes * Add noarch specification * Streamline tests * Alter test command * Separate out tests * Add release tarball --- recipes/poolsnp/build.sh | 33 ++++++++++++++++++++++++++++++ recipes/poolsnp/meta.yaml | 40 +++++++++++++++++++++++++++++++++++++ recipes/poolsnp/run_test.sh | 22 ++++++++++++++++++++ 3 files changed, 95 insertions(+) create mode 100644 recipes/poolsnp/build.sh create mode 100644 recipes/poolsnp/meta.yaml create mode 100644 recipes/poolsnp/run_test.sh diff --git a/recipes/poolsnp/build.sh b/recipes/poolsnp/build.sh new file mode 100644 index 0000000000000..1b0171d1264e6 --- /dev/null +++ b/recipes/poolsnp/build.sh @@ -0,0 +1,33 @@ +#! /bin/bash + +set -ex + +BASE_DIR=$(dirname "$0") +SCRIPTS_DIR="${BASE_DIR}/scripts" +TEST_DATA_DIR="${BASE_DIR}/TestData" + +if [ ! -d "${SCRIPTS_DIR}" ]; then + echo "The scripts directory is missing. It should be placed in the same directory as the PoolSNP.sh script." + exit 1 +fi + +if [ ! -d "${TEST_DATA_DIR}" ]; then + echo "The TestData directory is missing. It should be placed in the same directory as the PoolSNP.sh script." + exit 1 +fi + +mkdir -p ${PREFIX}/bin +mkdir -p ${PREFIX}/bin/scripts +mkdir -p ${PREFIX}/share/PoolSNP + +cp PoolSNP.sh ${PREFIX}/bin +chmod +x ${PREFIX}/bin/PoolSNP.sh + +for script in $SCRIPTS_DIR/*; do + cp $script ${PREFIX}/bin/$(basename $script) + cp $script ${PREFIX}/bin/scripts/ + chmod +x ${PREFIX}/bin/$(basename $script) + chmod +x ${PREFIX}/bin/scripts/$(basename $script) +done + +cp -r ${TEST_DATA_DIR} ${PREFIX}/share/PoolSNP/TestData \ No newline at end of file diff --git a/recipes/poolsnp/meta.yaml b/recipes/poolsnp/meta.yaml new file mode 100644 index 0000000000000..5f92f96931557 --- /dev/null +++ b/recipes/poolsnp/meta.yaml @@ -0,0 +1,40 @@ +{% set name = "poolsnp" %} +{% set version = "1.0.0" %} +{% set github = "https://github.com/capoony/PoolSNP" %} + +package: + name: "{{ name }}" + version: "{{ version }}" + +source: + url: "{{ github }}/archive/refs/tags/v.{{ version }}.tar.gz" + sha256: a73c61c7ef49be9bd1212ea8049fe617296b0a82b80e0338e2b78dc55105438f + +requirements: + host: + - python + - parallel + run: + - python + - parallel + +build: + number: 0 + noarch: generic + run_exports: + - {{ pin_subpackage('poolsnp', max_pin='x.x') }} + +test: + source_files: + - TestData/* + - scripts/* + +about: + summary: PoolSNP is a heuristic SNP caller, which uses an MPILEUP file and a reference genome in FASTA format as inputs. + license: Apache-2.0 + license_file: LICENSE + home: https://github.com/capoony/PoolSNP + +extra: + recipe-maintainers: + - abhilesh \ No newline at end of file diff --git a/recipes/poolsnp/run_test.sh b/recipes/poolsnp/run_test.sh new file mode 100644 index 0000000000000..60c03dc8eaf08 --- /dev/null +++ b/recipes/poolsnp/run_test.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +# Ensure the script is executable +test -x ${PREFIX}/bin/PoolSNP.sh + +# Run PoolSNP.sh with a minimal set of parameters to ensure it executes +bash ${PREFIX}/bin/PoolSNP.sh \ + mpileup="${PREFIX}/share/PoolSNP/TestData/test.mpileup" \ + reference="${PREFIX}/share/PoolSNP/TestData/test.fa" \ + names=Sample1,Sample2 \ + max-cov=0.7 \ + min-cov=4 \ + min-count=4 \ + min-freq=0.01 \ + miss-frac=0.5 \ + jobs=4 \ + badsites=1 \ + allsites=1 \ + output=${PREFIX}/share/PoolSNP/TestResult/test + +# Optionally, check the output file to ensure it was created +test -f ${PREFIX}/share/PoolSNP/TestResult/test.vcf.gz \ No newline at end of file From 7201cf94acd437d099e7490b5a4107ed222de174 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 06:35:50 -0400 Subject: [PATCH 0481/1589] Update nohuman to 0.1.1 (#49450) --- recipes/nohuman/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/nohuman/meta.yaml b/recipes/nohuman/meta.yaml index 5256c6bbd5606..f084e962a765c 100644 --- a/recipes/nohuman/meta.yaml +++ b/recipes/nohuman/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.1.0" %} +{% set version = "0.1.1" %} {% set name = "nohuman" %} package: @@ -7,7 +7,7 @@ package: source: url: https://github.com/mbhall88/{{ name }}/archive/{{ version }}.tar.gz - sha256: 6133ece500c543303f2ba3819b4f8d5d4f04778b04d942c5a9bd840a4ce6e41a + sha256: 73a79909e487e0669e1604407024c8f1db1a3a0adf2fb3d76d80987823d85fd2 build: number: 0 From 5932a68c4055c99cb6a9d194a47ff88b31666779 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 06:49:04 -0400 Subject: [PATCH 0482/1589] Update beacon2-import to 2.2.1 (#49458) --- recipes/beacon2-import/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/beacon2-import/meta.yaml b/recipes/beacon2-import/meta.yaml index 21173f1c679c8..30562965cc5d4 100644 --- a/recipes/beacon2-import/meta.yaml +++ b/recipes/beacon2-import/meta.yaml @@ -1,5 +1,5 @@ {% set name = "beacon2-import" %} -{% set version = "2.1.0" %} +{% set version = "2.2.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/beacon2-import-{{ version }}.tar.gz - sha256: 788fd69d03f5133cd30a97509904686469f4abfb14072c895b37569708348c39 + sha256: 1c8e26beaed158563dbf46f86aec89be385fa79c40f05e081edcb5a91c954290 build: entry_points: From 4e961ddac1a1c1085ecf7180f283073c1547057f Mon Sep 17 00:00:00 2001 From: Mervin Fansler Date: Mon, 22 Jul 2024 12:57:07 +0200 Subject: [PATCH 0483/1589] add R package `gchromVAR` as `r-gchromvar` (#49453) * add r-gchromvar * Create build.sh * url * fix library name --- recipes/r-gchromvar/build.sh | 3 ++ recipes/r-gchromvar/meta.yaml | 56 +++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 recipes/r-gchromvar/build.sh create mode 100644 recipes/r-gchromvar/meta.yaml diff --git a/recipes/r-gchromvar/build.sh b/recipes/r-gchromvar/build.sh new file mode 100644 index 0000000000000..b8d2635525637 --- /dev/null +++ b/recipes/r-gchromvar/build.sh @@ -0,0 +1,3 @@ +#!/bin/bash +export DISABLE_AUTOBREW=1 +${R} CMD INSTALL --build . ${R_ARGS} diff --git a/recipes/r-gchromvar/meta.yaml b/recipes/r-gchromvar/meta.yaml new file mode 100644 index 0000000000000..5d3b2466a581a --- /dev/null +++ b/recipes/r-gchromvar/meta.yaml @@ -0,0 +1,56 @@ +{% set version = "0.3.2" %} +{% set github = "https://github.com/caleblareau/gchromVAR" %} +{% set commit = "e4f33cad4115160ee4bdf16fd625c2fcd0bf3910" %} + +package: + name: r-gchromvar + version: "{{ version }}" + +source: + url: "{{ github }}/archive/{{ commit }}.zip" + sha256: dcb7b686c34155febbf20c17e28aceee7c5301efb817999b3366693da8e75b47 + +build: + noarch: generic + number: 0 + rpaths: + - lib/R/lib/ + - lib/ + run_exports: + - {{ pin_subpackage("r-gchromvar", max_pin="x.x") }} + +requirements: + host: + - r-base + - r-matrix + - bioconductor-biocparallel + - bioconductor-chromvar + - bioconductor-genomicranges + - bioconductor-s4vectors + - bioconductor-summarizedexperiment + run: + - r-base + - r-matrix + - bioconductor-biocparallel + - bioconductor-chromvar + - bioconductor-genomicranges + - bioconductor-s4vectors + - bioconductor-summarizedexperiment + +test: + commands: + - $R -e "library(gchromVAR)" + +about: + home: https://caleblareau.github.io/gchromVAR/ + dev_url: {{ github }} + license: MIT + license_file: + - LICENSE + - {{ environ["PREFIX"] }}/lib/R/share/licenses/MIT + license_family: MIT + summary: R package for computing cell-type specific GWAS enrichments from Finemapping data and quantitative epigenomic data. + +extra: + recipe-maintainers: + - mfansler From d4f4277567f0860cee20a4e2b651f111db019777 Mon Sep 17 00:00:00 2001 From: Felix Lenner <52530259+fellen31@users.noreply.github.com> Date: Mon, 22 Jul 2024 12:58:25 +0200 Subject: [PATCH 0484/1589] add splitubam (#49454) --- recipes/splitubam/build.sh | 9 ++++++++ recipes/splitubam/meta.yaml | 41 +++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 recipes/splitubam/build.sh create mode 100644 recipes/splitubam/meta.yaml diff --git a/recipes/splitubam/build.sh b/recipes/splitubam/build.sh new file mode 100644 index 0000000000000..932803bad05f5 --- /dev/null +++ b/recipes/splitubam/build.sh @@ -0,0 +1,9 @@ +#!/bin/bash -euo +# Add workaround for SSH-based Git connections from Rust/cargo. See https://github.com/rust-lang/cargo/issues/2078 for details. +# We set CARGO_HOME because we don't pass on HOME to conda-build, thus rendering the default "${HOME}/.cargo" defunct. +export CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_HOME="$(pwd)/.cargo" + +export BINDGEN_EXTRA_CLANG_ARGS="${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" + +# build statically linked binary with Rust +RUST_BACKTRACE=1 cargo install --verbose --path . --root $PREFIX diff --git a/recipes/splitubam/meta.yaml b/recipes/splitubam/meta.yaml new file mode 100644 index 0000000000000..e99a9c167f98a --- /dev/null +++ b/recipes/splitubam/meta.yaml @@ -0,0 +1,41 @@ +{% set name = "splitubam" %} +{% set version = "0.1.1" %} + +package: + name: {{ name }} + version: {{ version }} + +build: + number: 0 + run_exports: + - {{ pin_subpackage('splitubam', max_pin="x.x") }} + +source: + url: https://github.com/fellen31/splitubam/archive/refs/tags/{{ version }}.tar.gz + sha256: 3dceb04531f20ad27bf164e0f1c1772b1a31bcc52829c8d00a4b5545a2bce9bd + +requirements: + build: + - {{ compiler('c') }} + - {{ compiler('rust') }} + - clangdev + - make + - pkg-config + host: + - zlib + +test: + commands: + - splitubam --help + +about: + home: "https://github.com/fellen31/splitubam" + license: MIT + license_family: MIT + license_file: LICENSE + summary: "Split one ubam into multiple, per line, fast" + dev_url: "https://github.com/fellen31/splitubam" + +additional-platforms: + - linux-aarch64 + - osx-arm64 From 8dc115c25011b8156d40dfd82c3ad01f3f228dfa Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 22 Jul 2024 16:10:06 +0300 Subject: [PATCH 0485/1589] liftover: add aarch64/arm64 builds (#49451) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/liftover/meta.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/liftover/meta.yaml b/recipes/liftover/meta.yaml index b28259226f6ce..2a39c5f0cbf80 100644 --- a/recipes/liftover/meta.yaml +++ b/recipes/liftover/meta.yaml @@ -11,8 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 - skip: True # [py < 38] + number: 1 script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv run_exports: - {{ pin_subpackage('liftover', max_pin="x") }} @@ -43,5 +42,8 @@ about: dev_url: 'https://pypi.org/project/liftover/' extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - mencian From 2bcfa07fc1583e04aaf535ef271e101dac18dc24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20H=2E=20Franceschini-Santos?= Date: Mon, 22 Jul 2024 15:21:24 +0200 Subject: [PATCH 0486/1589] Update parm to v0.0.5 (#49461) * Update parm to v0.0.4 * update parm to v0.0.5 --------- Co-authored-by: vhfsantos --- recipes/parm/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/parm/meta.yaml b/recipes/parm/meta.yaml index 7bbca71239c4e..cc9d3f2ef73a6 100644 --- a/recipes/parm/meta.yaml +++ b/recipes/parm/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.0.4" %} -{% set sha256 = "d816519a21c3d26dd35c659ec25eccf0b48cae50fec80f705e0bd1a36c04361e" %} +{% set version = "0.0.5" %} +{% set sha256 = "bdb609e7266b0d509ace8b6fd0a2405f6ba8cf68c3b44428ae83b672414e0c2a" %} package: name: parm From 10d39a0a9747f6de9b4fd0862522cea4d36c565b Mon Sep 17 00:00:00 2001 From: Michael Steinbaugh Date: Mon, 22 Jul 2024 09:24:37 -0400 Subject: [PATCH 0487/1589] Update kallisto to v0.51.0 (#49455) * Bump to v0.51.0 * Attempt to add build support for Apple Silicon * Reset build number * Make it explicit that we want to use Conda's m4 installation Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov --- recipes/kallisto/build.sh | 1 + recipes/kallisto/meta.yaml | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/recipes/kallisto/build.sh b/recipes/kallisto/build.sh index b797c382d4071..99c91effdd6c4 100644 --- a/recipes/kallisto/build.sh +++ b/recipes/kallisto/build.sh @@ -1,6 +1,7 @@ #!/bin/bash cd ext/htslib || exit 1 +export M4=${BUILD_PREFIX}/bin/m4 autoreconf --force --install --verbose ./configure cd ../.. || exit 1 diff --git a/recipes/kallisto/meta.yaml b/recipes/kallisto/meta.yaml index 3ad6e31fead1b..489c0d5c2a274 100644 --- a/recipes/kallisto/meta.yaml +++ b/recipes/kallisto/meta.yaml @@ -1,15 +1,15 @@ -{% set version = "0.50.1" %} +{% set version = "0.51.0" %} package: name: kallisto version: {{ version }} source: - url: https://github.com/pachterlab/kallisto/archive/v{{ version }}.tar.gz - sha256: 030752bab3b0e33cd3f23f6d8feddd74194e5513532ffbf23519e84db2a86d34 + url: https://github.com/pachterlab/kallisto/archive/V{{ version }}.tar.gz + sha256: efeb0191c1a6a0d6de69111fb66f4bda51ff31fb40c513280f072bd44556f80d build: - number: 2 + number: 0 run_exports: - {{ pin_subpackage('kallisto', max_pin="x.x") }} @@ -53,3 +53,4 @@ extra: - missing_tests additional-platforms: - linux-aarch64 + - osx-arm64 From 47e8862cb87a8263de332d9e4061d4b1233f249a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 11:37:24 -0400 Subject: [PATCH 0488/1589] Update pygcap to 1.1.6 (#49466) --- recipes/pygcap/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pygcap/meta.yaml b/recipes/pygcap/meta.yaml index 86de461bfaea5..6afd9f62cf3d7 100644 --- a/recipes/pygcap/meta.yaml +++ b/recipes/pygcap/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pygcap" %} -{% set version = "1.0.1" %} +{% set version = "1.1.6" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pygcap-{{ version }}.tar.gz - sha256: 29e8817d200539bb67e2ddcaef15f6cec9c726e42c078767e7840922e94fdb76 + sha256: 4a98ebe034da7e4440cd6874dc581a76a95e10ef91dfd3339c914bed780878af build: number: 0 From cf1009f0a13a0380b5b5eb61199ab4850a56afae Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 11:37:34 -0400 Subject: [PATCH 0489/1589] Update metabolights-utils to 1.1.5 (#49465) * Update metabolights-utils to 1.1.4 * Update metabolights-utils to 1.1.5 --- recipes/metabolights-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/metabolights-utils/meta.yaml b/recipes/metabolights-utils/meta.yaml index c2ed7fc4b6ca6..eb899c33eb3da 100644 --- a/recipes/metabolights-utils/meta.yaml +++ b/recipes/metabolights-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "metabolights-utils" %} -{% set version = "1.1.3" %} +{% set version = "1.1.5" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/metabolights_utils-{{ version }}.tar.gz - sha256: 77a18d9f69e61f6fe607b7497f9b627b56a773a1d00575776f01f0ae3f901eb9 + sha256: eafde551191dac729435067b37acefbd9c2b921f661a4f8253e6a618413a2c27 build: entry_points: From 1906c2b3a5cf39113733edc64d7c0ff8f2fdf86e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 11:37:55 -0400 Subject: [PATCH 0490/1589] Update harpy to 1.2.3 (#49463) --- recipes/harpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index 07613277f35ca..5da755925429d 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.2.2" %} -{% set sha256 = "1d02296332986cc779397f9e6685e25b3f592873962c9d0c8ea707a7b51303b3" %} +{% set version = "1.2.3" %} +{% set sha256 = "286ac2097d6113c7f683490b98e2c7f7b285a32271ef96046a6b18752b6a6025" %} package: name: harpy From 980ee315b9896855161f1a975a77045062a94529 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 11:51:32 -0400 Subject: [PATCH 0491/1589] Update obonet to 1.1.0 (#49434) * Update obonet to 1.1.0 * add run_exports --------- Co-authored-by: mencian --- recipes/obonet/meta.yaml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/recipes/obonet/meta.yaml b/recipes/obonet/meta.yaml index 36d4c179edb60..89ec46a51d353 100644 --- a/recipes/obonet/meta.yaml +++ b/recipes/obonet/meta.yaml @@ -1,5 +1,5 @@ {% set name = "obonet" %} -{% set version = "1.0.0" %} +{% set version = "1.1.0" %} package: name: "{{ name|lower }}" @@ -7,12 +7,14 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: e96a69e41210b01bab2d9613b287899cd8aa61b6a32e5a2792041f76d4bf2a28 + sha256: abf5d7bc5d30f4e1548dbdd100e63df7343c9a15f2f1ec839d5142c63b8a150d build: number: 0 noarch: python - script: "{{ PYTHON }} -m pip install . -vv" + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" + run_exports: + - {{ pin_subpackage('obonet', max_pin="x") }} requirements: host: @@ -29,6 +31,7 @@ test: about: home: "https://github.com/dhimmel/obonet" license: BSD-2-Clause-Patent + license_family: BSD license_file: LICENSE.md summary: "Parse OBO formatted ontologies into networkx" doc_url: "https://github.com/dhimmel/obonet/README.md" From f353fa7081af14006db599f7131ad9c5b442209a Mon Sep 17 00:00:00 2001 From: Robbe Devreese <93122887+rodvrees@users.noreply.github.com> Date: Mon, 22 Jul 2024 18:26:54 +0200 Subject: [PATCH 0492/1589] Add im2deep (#45558) * im2deep * add hash * fix dependency names * remove LICENSE * minor changes to retrigger CI * retrigger * im2deep * add hash * fix dependency names * remove LICENSE * minor changes to retrigger CI * retrigger * small change to retrigger --------- Co-authored-by: mencian Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/im2deep/meta.yaml | 52 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 recipes/im2deep/meta.yaml diff --git a/recipes/im2deep/meta.yaml b/recipes/im2deep/meta.yaml new file mode 100644 index 0000000000000..643715664c695 --- /dev/null +++ b/recipes/im2deep/meta.yaml @@ -0,0 +1,52 @@ +{% set name = "im2deep" %} +{% set version = "0.1.2" %} +{% set sha256 = "9024f46428f619f3b9f2f93f81060749331e7daaee683e35f2067df9c4ddd074" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/im2deep-{{ version }}.tar.gz + sha256: {{ sha256 }} + +build: + + number: 0 + entry_points: + - im2deep=im2deep.__main__:main + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" + noarch: python + run_exports: + - {{ pin_subpackage('im2deep', max_pin="x.x") }} + +requirements: + host: + - pip + - python >=3.8 + run: + - python >=3.8 + - click + - deeplc + - deeplcretrainer + - psm-utils + - pandas + - numpy + - tensorflow >=2.2,<2.13.0 + +test: + imports: + - im2deep + +about: + home: https://github.com/compomics/im2deep + license: Apache-2.0 + license_file: LICENSE + license_family: APACHE + summary: "Framework for prediction of collisional cross-section of peptides." + dev_url: https://github.com/compomics/im2deep + +extra: + recipe-maintainers: + - compomics + From 72eca6ccc8c78e7e51f6a95121bca44b969eac74 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 12:32:22 -0400 Subject: [PATCH 0493/1589] Update fraposa-pgsc to 1.0.0 (#49469) --- recipes/fraposa-pgsc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/fraposa-pgsc/meta.yaml b/recipes/fraposa-pgsc/meta.yaml index f70b5b8a05465..5babab25225b0 100644 --- a/recipes/fraposa-pgsc/meta.yaml +++ b/recipes/fraposa-pgsc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "fraposa-pgsc" %} -{% set version = "0.1.1" %} +{% set version = "1.0.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/fraposa_pgsc-{{ version }}.tar.gz - sha256: 51292cc691422edb54264b3820e93041ae7bbad5f18ee20e7e478063ae0b9424 + sha256: a21ce6c8d90752f23d3694dbbd69060a7dabaeb6ac29d0ecc27c0435b7fce0a7 build: entry_points: From ef76cf122bcb298ce954f7c4f886287037358999 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 14:51:28 -0400 Subject: [PATCH 0494/1589] Update virusrecom to 1.3.1 (#49471) --- recipes/virusrecom/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/virusrecom/meta.yaml b/recipes/virusrecom/meta.yaml index a0f638776f348..6bbb348c19d1a 100644 --- a/recipes/virusrecom/meta.yaml +++ b/recipes/virusrecom/meta.yaml @@ -1,5 +1,5 @@ {% set name = "virusrecom" %} -{% set version = "1.2.1" %} +{% set version = "1.3.1" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 969e4af84eee30626319b562dbe085ccfdf81c5aa0bb8ff2874b4669f77e70b5 + sha256: cc12a3b94602864165530cbf36f64d0054e072a8ff61b445be237bac445e24cc build: number: 0 From dcc186c91f2c3365b3cb35136181790aece07570 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 14:51:45 -0400 Subject: [PATCH 0495/1589] Update im2deep to 0.1.7 (#49470) --- recipes/im2deep/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/im2deep/meta.yaml b/recipes/im2deep/meta.yaml index 643715664c695..0c2453e8e7fe4 100644 --- a/recipes/im2deep/meta.yaml +++ b/recipes/im2deep/meta.yaml @@ -1,6 +1,6 @@ {% set name = "im2deep" %} -{% set version = "0.1.2" %} -{% set sha256 = "9024f46428f619f3b9f2f93f81060749331e7daaee683e35f2067df9c4ddd074" %} +{% set version = "0.1.7" %} +{% set sha256 = "5d5e255e551c2a9131c1a94b76cdbbb5064cc9a76bf8217cb71cc5909bd4a97c" %} package: name: {{ name|lower }} From d6905d2d5dff39923bf02c69820fbdd1e110ecf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Plaza=20O=C3=B1ate?= <4588656+fplazaonate@users.noreply.github.com> Date: Mon, 22 Jul 2024 22:16:42 +0200 Subject: [PATCH 0496/1589] Install dna_jellyfish module (#49464) --- recipes/kmer-jellyfish/build.sh | 2 ++ recipes/kmer-jellyfish/meta.yaml | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/recipes/kmer-jellyfish/build.sh b/recipes/kmer-jellyfish/build.sh index 73d6ed59c87e7..d80b1f2cbe9b7 100644 --- a/recipes/kmer-jellyfish/build.sh +++ b/recipes/kmer-jellyfish/build.sh @@ -7,3 +7,5 @@ make -j ${CPU_COUNT} make install make check -j ${CPU_COUNT} +cd swig/python +pip install . --prefix=$PREFIX diff --git a/recipes/kmer-jellyfish/meta.yaml b/recipes/kmer-jellyfish/meta.yaml index 390387b20c872..3c7f76dafe597 100644 --- a/recipes/kmer-jellyfish/meta.yaml +++ b/recipes/kmer-jellyfish/meta.yaml @@ -10,7 +10,7 @@ source: sha256: ee032b57257948ca0f0610883099267572c91a635eecbd88ae5d8974c2430fcd build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage("kmer-jellyfish", max_pin="x") }} @@ -18,10 +18,16 @@ requirements: build: - {{ compiler('cxx') }} - make + host: + - python >=3.8 + run: + - python >=3.8 test: commands: - jellyfish --version 2>&1 > /dev/null + imports: + - dna_jellyfish about: home: "https://genome.umd.edu/jellyfish.html" From f5ea0405654ea6ee202b3a88730baa24331fd830 Mon Sep 17 00:00:00 2001 From: Mervin Fansler Date: Mon, 22 Jul 2024 22:20:31 +0200 Subject: [PATCH 0497/1589] Adds R package `SCAVENGE` as `r-scavenge` (#49459) --- recipes/r-scavenge/build.sh | 3 ++ recipes/r-scavenge/meta.yaml | 57 ++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 recipes/r-scavenge/build.sh create mode 100644 recipes/r-scavenge/meta.yaml diff --git a/recipes/r-scavenge/build.sh b/recipes/r-scavenge/build.sh new file mode 100644 index 0000000000000..b8d2635525637 --- /dev/null +++ b/recipes/r-scavenge/build.sh @@ -0,0 +1,3 @@ +#!/bin/bash +export DISABLE_AUTOBREW=1 +${R} CMD INSTALL --build . ${R_ARGS} diff --git a/recipes/r-scavenge/meta.yaml b/recipes/r-scavenge/meta.yaml new file mode 100644 index 0000000000000..ae09624aa011a --- /dev/null +++ b/recipes/r-scavenge/meta.yaml @@ -0,0 +1,57 @@ +{% set version = "1.0.2" %} +{% set github = "https://github.com/sankaranlab/SCAVENGE" %} +{% set commit = "8ee8b173d965009a696b2a590d5b17b28b7cf851" %} + +package: + name: r-scavenge + version: "{{ version }}" + +source: + url: "{{ github }}/archive/{{ commit }}.zip" + sha256: b3b57a259f54582be219b6cea90c54016e05e0b5bae07ce964f308786e9a53b7 + +build: + noarch: generic + number: 0 + rpaths: + - lib/R/lib/ + - lib/ + run_exports: + - {{ pin_subpackage("r-scavenge", max_pin="x.x") }} + +requirements: + host: + - r-base + - r-gchromvar + - r-igraph + - r-irlba + - r-matrix + - r-rann + - bioconductor-summarizedexperiment + run: + - r-base + - r-gchromvar + - r-igraph + - r-irlba + - r-matrix + - r-rann + - bioconductor-summarizedexperiment + +test: + commands: + - $R -e "library(SCAVENGE)" + +about: + home: {{ github }} + dev_url: {{ github }} + license: GPL-2.0-or-later + license_file: + - LICENSE + - {{ environ["PREFIX"] }}/lib/R/share/licenses/GPL-2 + - {{ environ["PREFIX"] }}/lib/R/share/licenses/GPL-3 + license_family: GPL + summary: SCAVENGE (Single Cell Analysis of Variant Enrichment through Network propagation of GEnomic data) optimizes the inference of functional and genetic associations to specific cells at single-cell resolution. + +extra: + recipe-maintainers: + - mfansler From 6734c40ef7abc145f31937234d01a35d75eb82c1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 17:15:54 -0400 Subject: [PATCH 0498/1589] Update bracken to 3.0 (#49467) * Update bracken to 3.0 * clean up recipe * remove osx patch * revert back to skipping OSX --------- Co-authored-by: mencian --- recipes/bracken/build.sh | 19 ++++++++++--------- recipes/bracken/meta.yaml | 22 +++++++++++++--------- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/recipes/bracken/build.sh b/recipes/bracken/build.sh index 1bc089cb3021d..7ea7675b8ec7f 100644 --- a/recipes/bracken/build.sh +++ b/recipes/bracken/build.sh @@ -3,14 +3,15 @@ mkdir -p "${PREFIX}"/bin/src # inject compilers -sed -i.bak "s#g++#${CXX} -I${BUILD_PREFIX}/include#" src/Makefile +sed -i.bak "s#g++#${CXX} -I${PREFIX}/include#" src/Makefile +rm src/*.bak sh install_bracken.sh -cp bracken "${PREFIX}"/bin -cp bracken-build "${PREFIX}"/bin -cp src/est_abundance.py "${PREFIX}"/bin/src && chmod +x "${PREFIX}"/bin/src/est_abundance.py -ln -s "${PREFIX}"/bin/src/est_abundance.py "${PREFIX}"/bin/est_abundance.py -cp src/generate_kmer_distribution.py "${PREFIX}"/bin/src && chmod +x "${PREFIX}"/bin/src/generate_kmer_distribution.py -ln -s "${PREFIX}"/bin/src/generate_kmer_distribution.py "${PREFIX}"/bin/generate_kmer_distribution.py -cp src/kmer2read_distr "${PREFIX}"/bin -cp analysis_scripts/combine_bracken_outputs.py "${PREFIX}"/bin && chmod +x "${PREFIX}"/bin/combine_bracken_outputs.py +cp -rf bracken "${PREFIX}"/bin +cp -rf bracken-build "${PREFIX}"/bin +cp -rf src/est_abundance.py "${PREFIX}"/bin/src && chmod +x "${PREFIX}"/bin/src/est_abundance.py +ln -sf "${PREFIX}"/bin/src/est_abundance.py "${PREFIX}"/bin/est_abundance.py +cp -rf src/generate_kmer_distribution.py "${PREFIX}"/bin/src && chmod +x "${PREFIX}"/bin/src/generate_kmer_distribution.py +ln -sf "${PREFIX}"/bin/src/generate_kmer_distribution.py "${PREFIX}"/bin/generate_kmer_distribution.py +cp -rf src/kmer2read_distr "${PREFIX}"/bin +cp -rf analysis_scripts/combine_bracken_outputs.py "${PREFIX}"/bin && chmod +x "${PREFIX}"/bin/combine_bracken_outputs.py diff --git a/recipes/bracken/meta.yaml b/recipes/bracken/meta.yaml index aa8518a741cfe..b684896187a89 100644 --- a/recipes/bracken/meta.yaml +++ b/recipes/bracken/meta.yaml @@ -1,31 +1,31 @@ -{% set version = "2.9" %} -{% set sha256 = "b8fd43fc396a2184d9351fb4a459f95ae9bb5865b195a18e22436f643044c788" %} +{% set name = "bracken" %} +{% set version = "3.0" %} +{% set sha256 = "1d437fd8df1a8c5c03d908a7026a41cd486f5ce771e288be7aadd93542da7e44" %} package: - name: bracken + name: {{ name }} version: {{ version }} source: url: https://github.com/jenniferlu717/Bracken/archive/v{{ version }}.tar.gz sha256: {{ sha256 }} patches: - - osx.patch # [osx] + #- osx.patch # [osx] - py3.patch build: + number: 0 skip: True # [osx] - number: 1 run_exports: - {{ pin_subpackage('bracken', max_pin="x") }} requirements: build: - {{ compiler('cxx') }} - - llvm-openmp # [osx] - - libgomp # [linux] - make host: - - python + - llvm-openmp # [osx] + - libgomp # [linux] run: - python - kraken2 @@ -41,11 +41,15 @@ test: about: home: https://github.com/jenniferlu717/Bracken - license: GPL-3.0 + license: GPL-3.0-or-later + license_family: GPL3 license_file: LICENSE summary: 'Bracken (Bayesian Reestimation of Abundance with KrakEN) is a highly accurate statistical method that computes the abundance of species in DNA sequences from a metagenomics sample.' + dev_url: https://github.com/jenniferlu717/Bracken + doc_url: https://github.com/jenniferlu717/Bracken/blob/v{{ version }}/README.md extra: identifiers: - biotools:Bracken + - usegalaxy-eu:est_abundance - doi:10.7717/peerj-cs.104 From f7742f7330b1f32f264243bb1aa91511cf3e6095 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Mon, 22 Jul 2024 16:59:06 -0500 Subject: [PATCH 0499/1589] Add recipe for r-redeemR v1.0.0 (#49479) --- recipes/r-redeemr/meta.yaml | 94 +++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 recipes/r-redeemr/meta.yaml diff --git a/recipes/r-redeemr/meta.yaml b/recipes/r-redeemr/meta.yaml new file mode 100644 index 0000000000000..d9ac70e68cddc --- /dev/null +++ b/recipes/r-redeemr/meta.yaml @@ -0,0 +1,94 @@ +{% set name = "r-redeemr" %} +{% set version = '1.0.0' %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/chenweng1991/redeemR/archive/refs/tags/v{{ version }}.tar.gz + sha256: 2837bee4a5a6130de08e31f543b11bfbd19eef30d351868b74c42681f45bb6e9 + +build: + number: 0 + script: ${R} CMD INSTALL --build . ${R_ARGS} + rpaths: + - lib/R/lib/ + - lib/ + run_exports: + - {{ pin_subpackage('r-redeemr', max_pin="x") }} + +requirements: + build: + - {{ compiler('c') }} + host: + - r-base + - r-ape + - r-domc + - r-doparallel + - r-dplyr + - r-foreach + - r-ggextra + - r-ggnewscale + - r-ggplot2 + - bioconductor-ggtree + - bioconductor-ggtreeextra + - r-gridextra + - r-igraph + - r-matrix + - r-phangorn + - r-phytools + - r-pryr + - bioconductor-qvalue + - r-rcolorbrewer + - r-reshape2 + - r-scavenge + - r-seurat + - r-matrixstats + - r-tibble + - bioconductor-treeio + - r-tidytree + run: + - r-base + - r-ape + - r-domc + - r-doparallel + - r-dplyr + - r-foreach + - r-ggextra + - r-ggnewscale + - r-ggplot2 + - bioconductor-ggtree + - bioconductor-ggtreeextra + - r-gridextra + - r-igraph + - r-matrix + - r-phangorn + - r-phytools + - r-pryr + - bioconductor-qvalue + - r-rcolorbrewer + - r-reshape2 + - r-scavenge + - r-seurat + - r-matrixstats + - r-tibble + - bioconductor-treeio + - r-tidytree + +test: + commands: + - $R -e "library('redeemR')" + +about: + home: https://github.com/chenweng1991/redeemR + dev_url: https://github.com/chenweng1991/redeemR + license: MIT + license_file: LICENSE + summary: "R package for Regulatory multi-omics with Deep Mitochondrial mutation profiling." + description: "Introduce a new approach for single-cell Regulatory multi-omics (transcriptomics and + chromatin accessibility) with Deep Mitochondrial mutation profiling (~10-fold increase in detection rate), + or ReDeeM. redeemR is the R package that facilitates mutation refining, lineage tracing, as well + multiomics integration analysis." + license_family: MIT + doc_url: https://chenweng1991.github.io/redeemR From f342c6db52d3e7f9f0fe4121f57a5c6f7c0720c9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 19:06:30 -0400 Subject: [PATCH 0500/1589] Update camlhmp to 0.2.0 (#49480) --- recipes/camlhmp/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/camlhmp/meta.yaml b/recipes/camlhmp/meta.yaml index d7284e52d4dac..e6342a4c697f0 100644 --- a/recipes/camlhmp/meta.yaml +++ b/recipes/camlhmp/meta.yaml @@ -1,5 +1,5 @@ {% set name = "camlhmp" %} -{% set version = "0.1.0" %} +{% set version = "0.2.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/camlhmp/camlhmp-{{ version }}.tar.gz - sha256: c2b19d85be14c5764f3ef4c977f958d11e6612d2c4b6c790c1c4e38f1c8b9f79 + sha256: a99dc9c56b285bcbaedbc19a6a7acd427328672070439672129a6251d78a28f7 build: noarch: python From 20a1ce780f5bc131271690edb29ec51ed94e4252 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 20:22:41 -0400 Subject: [PATCH 0501/1589] Update centrosome to 1.2.3 (#49481) --- recipes/centrosome/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/centrosome/meta.yaml b/recipes/centrosome/meta.yaml index 856557b5be116..5bc0f3c0dafd2 100644 --- a/recipes/centrosome/meta.yaml +++ b/recipes/centrosome/meta.yaml @@ -1,5 +1,5 @@ {% set name = "centrosome" %} -{% set version = "1.2.2" %} +{% set version = "1.2.3" %} package: name: "{{ name|lower }}" @@ -7,10 +7,10 @@ package: source: url: https://github.com/CellProfiler/centrosome/archive/v{{version}}.zip - sha256: bb69cd2d0f9df7976710be72c2269368588da36724537657f7d88b6d827456bf + sha256: 889ce9f79857cdf1d0d04d8d19dd749dfae4a077915fadec223717d5ddcb47fc build: - number: 1 + number: 0 skip: True # [py<30] script: CFLAGS="$CFLAGS -Wno-error=int-conversion" python -m pip install --no-deps --ignore-installed . -vv run_exports: From 5ff7032b2c11949f9924c46447e462dd9d7f3f73 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 21:33:58 -0400 Subject: [PATCH 0502/1589] Update camlhmp to 0.2.1 (#49482) --- recipes/camlhmp/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/camlhmp/meta.yaml b/recipes/camlhmp/meta.yaml index e6342a4c697f0..97d3aa0a1c092 100644 --- a/recipes/camlhmp/meta.yaml +++ b/recipes/camlhmp/meta.yaml @@ -1,5 +1,5 @@ {% set name = "camlhmp" %} -{% set version = "0.2.0" %} +{% set version = "0.2.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/camlhmp/camlhmp-{{ version }}.tar.gz - sha256: a99dc9c56b285bcbaedbc19a6a7acd427328672070439672129a6251d78a28f7 + sha256: 7d2ff688b7c8d2b69324c3da16bdc42d15ea9220d874e9cee64eeb8ea1d38af9 build: noarch: python From 1fb971fc3353fdc4ac033468a9c8e4bde8fc0d00 Mon Sep 17 00:00:00 2001 From: xxmalcala <86986240+xxmalcala@users.noreply.github.com> Date: Mon, 22 Jul 2024 21:40:43 -0600 Subject: [PATCH 0503/1589] Update package and dependency versions (#49478) --- recipes/tides-ml/meta.yaml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/recipes/tides-ml/meta.yaml b/recipes/tides-ml/meta.yaml index d397cf604be0d..dcb55a46afbe0 100644 --- a/recipes/tides-ml/meta.yaml +++ b/recipes/tides-ml/meta.yaml @@ -1,5 +1,5 @@ {% set name = "tides-ml" %} -{% set version = "1.3.2" %} +{% set version = "1.3.4" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/TIdeS-ML-{{ version }}.tar.gz - sha256: f9b33375d4e5f08cf6c1c67e2d7240eb554e1afd2e535dbbde44b9951f5e0199 + sha256: 6b4680a6b1ba98c7bc7db8530ff85f547f57892137ca233a32cdade367435d96 build: entry_points: @@ -20,20 +20,20 @@ build: requirements: host: - - python <=3.11.7 + - python >=3.7,<=3.11 - pip run: - - python <=3.11.7 - - biopython >=1.79 - - ete3 >=3.1.2 - - optuna >=3.0 - - pandas >=2.0 - - seaborn >=0.12.2 - - scikit-learn >=1.3.0 - - diamond >=2.1.3 - - cd-hit >=4.8.1 - - barrnap >=0.9 - - kraken2 >=2.0.0 + - python >=3.7,<=3.11 + - biopython =1.79 + - ete3 =3.1.2 + - optuna =3.1 + - pandas =2.0 + - seaborn =0.12.2 + - scikit-learn =1.5.0 + - diamond =2.1 + - cd-hit =4.8 + - barrnap =0.9 + - kraken2 =2.1 test: imports: From 7ad47c1380e4e3bb41b16acc65bf4971ce822564 Mon Sep 17 00:00:00 2001 From: Akihiro Kuno Date: Tue, 23 Jul 2024 12:48:19 +0900 Subject: [PATCH 0504/1589] Update DAJIN2 (#49483) --- recipes/dajin2/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/dajin2/meta.yaml b/recipes/dajin2/meta.yaml index a96b6a5c76296..6428524d57fb4 100644 --- a/recipes/dajin2/meta.yaml +++ b/recipes/dajin2/meta.yaml @@ -1,5 +1,5 @@ {% set name = "DAJIN2" %} -{% set version = "0.5.3" %} +{% set version = "0.5.4" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/dajin2-{{ version }}.tar.gz - sha256: 51f7c7bc430727c839c8a113c55d92dbcd66311344f456e49ac994edf1a9d6da + sha256: c90d026e219c93bd7211d00fabd4e8e5ee0c145e9fc5f0b4ddbd6a72281abe35 build: entry_points: @@ -34,7 +34,7 @@ requirements: - rapidfuzz >=3.6.0 - scikit-learn >=1.3.0 - ruptures >=1.1.8 - - ortools-python >=9.0 + - networkx >=3.0 - mappy >=2.24 - pysam >=0.21.0 - flask >=2.2.0 From 2ea478f14bc35612077646d6d69abb36df1ca5ef Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 23:50:07 -0400 Subject: [PATCH 0505/1589] Update virusrecom to 1.3.2 (#49485) --- recipes/virusrecom/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/virusrecom/meta.yaml b/recipes/virusrecom/meta.yaml index 6bbb348c19d1a..9e95949b46f06 100644 --- a/recipes/virusrecom/meta.yaml +++ b/recipes/virusrecom/meta.yaml @@ -1,5 +1,5 @@ {% set name = "virusrecom" %} -{% set version = "1.3.1" %} +{% set version = "1.3.2" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: cc12a3b94602864165530cbf36f64d0054e072a8ff61b445be237bac445e24cc + sha256: 5ba74f015546c480e6628fcb4625019d98d181c1684fef7b1e29f92bef558141 build: number: 0 From 20d9a794feb6ebb697752f74a351d2b55c3075ee Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 23 Jul 2024 00:51:15 -0400 Subject: [PATCH 0506/1589] Update camlhmp to 0.2.2 (#49486) --- recipes/camlhmp/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/camlhmp/meta.yaml b/recipes/camlhmp/meta.yaml index 97d3aa0a1c092..b9cb984c17da0 100644 --- a/recipes/camlhmp/meta.yaml +++ b/recipes/camlhmp/meta.yaml @@ -1,5 +1,5 @@ {% set name = "camlhmp" %} -{% set version = "0.2.1" %} +{% set version = "0.2.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/camlhmp/camlhmp-{{ version }}.tar.gz - sha256: 7d2ff688b7c8d2b69324c3da16bdc42d15ea9220d874e9cee64eeb8ea1d38af9 + sha256: 564b1bc900ce6d3474a66ae6e357733971a61620be79ddf566f36ac51b74e3c1 build: noarch: python From 68712e4987c0385e1be0605b33c5fe65050c71c5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 23 Jul 2024 02:20:34 -0400 Subject: [PATCH 0507/1589] Update mycotools to 0.31.43 (#49487) --- recipes/mycotools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mycotools/meta.yaml b/recipes/mycotools/meta.yaml index 5e3111a790c2b..9ba6be3cd58d1 100644 --- a/recipes/mycotools/meta.yaml +++ b/recipes/mycotools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mycotools" %} -{% set version = "0.31.42" %} +{% set version = "0.31.43" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mycotools-{{ version }}.tar.gz - sha256: 871f536c467ebaba6b4d721b2392d62866f6fc098a6e298fd3b83b906ae44a08 + sha256: 1df89c05a89cfc82fa1d94f3e3a2f82cc0c4b4f7373ab3063f0f804ad3413914 build: entry_points: From 3327d1a97b0e976b58b2275bee2e89098fc16a8d Mon Sep 17 00:00:00 2001 From: John Marshall Date: Wed, 24 Jul 2024 01:34:55 +1200 Subject: [PATCH 0508/1589] Bump staden_io_lib to 1.15.0 and activate macOS builds (#49490) * Bump staden_io_lib to 1.15.0 and activate macOS builds Also remove library `run` dependencies: these libraries will add appropriate dependencies themselves via their run_exports, and in particular zlib will add libzlib so we should not over-depend on zlib as well. * Patch ancient config.sub and for sysroot_linux-aarch64 2.17 * Depend on libcurl to get the library via run_export correctly --- recipes/staden_io_lib/arm_hwcap.patch | 15 +++++++++++++++ recipes/staden_io_lib/config.patch | 15 +++++++++++++++ recipes/staden_io_lib/meta.yaml | 21 +++++++++------------ 3 files changed, 39 insertions(+), 12 deletions(-) create mode 100644 recipes/staden_io_lib/arm_hwcap.patch create mode 100644 recipes/staden_io_lib/config.patch diff --git a/recipes/staden_io_lib/arm_hwcap.patch b/recipes/staden_io_lib/arm_hwcap.patch new file mode 100644 index 0000000000000..40733dcc33b1d --- /dev/null +++ b/recipes/staden_io_lib/arm_hwcap.patch @@ -0,0 +1,15 @@ +Conda-forge's build environment on ARM uses sysroot_linux-aarch64 2.17, which +is based on glibc 2.17 so does not define HWCAP_* values on ARM. +Work around this by including the kernel header to get the desired values. + +--- a/htscodecs/htscodecs/rANS_static4x16pr.c 2023-10-10 02:54:16 ++++ b/htscodecs/htscodecs/rANS_static4x16pr.c 2024-03-06 00:01:14 +@@ -1030,6 +1030,8 @@ + + #if defined(__linux__) || defined(__FreeBSD__) + #include ++// Ensure ARM HWCAP_* values are defined even on old glibc ++#include + #elif defined(_WIN32) + #include + #endif diff --git a/recipes/staden_io_lib/config.patch b/recipes/staden_io_lib/config.patch new file mode 100644 index 0000000000000..591667b3a81ee --- /dev/null +++ b/recipes/staden_io_lib/config.patch @@ -0,0 +1,15 @@ +Upstream release contains config.{guess,sub} from six years ago that +don't handle Apple silicon. This patches minimally around it. + +--- a/config.sub 2018-02-22 00:00:00 ++++ b/config.sub 2024-07-23 21:45:09 +@@ -450,6 +450,9 @@ + | ymp-* \ + | z8k-* | z80-*) + ;; ++ arm64-apple) ++ basic_machine=aarch64-apple ++ ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown diff --git a/recipes/staden_io_lib/meta.yaml b/recipes/staden_io_lib/meta.yaml index 05414ca88e4e2..aceb5b5700ad2 100644 --- a/recipes/staden_io_lib/meta.yaml +++ b/recipes/staden_io_lib/meta.yaml @@ -1,18 +1,20 @@ {% set name = "staden_io_lib" %} -{% set version = "1.14.14" %} -{% set hash = "a471c79b9aede1776a895cb46fcb81b5d163d6ca9c3e1e33096346fef46d3598" %} +{% set version = "1.15.0" %} +{% set hash = "ad343dac7c77086db1b54585c5887b26eda6430d1639d111dd3304c3b749494f" %} package: name: {{ name|lower }} version: {{ version }} source: - url: https://github.com/jkbonfield/io_lib/releases/download/io_lib-1-14-14/io_lib-1.14.14.tar.gz + url: https://github.com/jkbonfield/io_lib/releases/download/io_lib-{{ version|replace('.','-') }}/io_lib-{{ version }}.tar.gz sha256: {{ hash }} + patches: + - arm_hwcap.patch + - config.patch build: - number: 9 - skip: True # [osx] + number: 0 run_exports: - {{ pin_subpackage('staden_io_lib', max_pin='x.x') }} @@ -24,13 +26,7 @@ requirements: - bzip2 - zlib - xz - - curl - - libdeflate - run: - - bzip2 - - zlib - - xz - - curl + - libcurl - libdeflate test: @@ -46,3 +42,4 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 From 3801b06736e440940c702177888206bfbdb95667 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 23 Jul 2024 10:45:46 -0400 Subject: [PATCH 0509/1589] Update querynator to 0.5.3 (#49495) --- recipes/querynator/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/querynator/meta.yaml b/recipes/querynator/meta.yaml index 2bbf594ece3e8..9a66732b8e6eb 100644 --- a/recipes/querynator/meta.yaml +++ b/recipes/querynator/meta.yaml @@ -1,5 +1,5 @@ {% set name = "querynator" %} -{% set version = "0.5.2" %} +{% set version = "0.5.3" %} package: name: "{{ name|lower }}" @@ -7,10 +7,10 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: bad38b5a62cd05701e13cb9e7157a854c0b9870c993971a20ae03ae9c91ac9a9 + sha256: a265fd68804a3b9b7ebf8b9fc1b8624c77a2ae44db1c060ae720d037a1c99bdb build: - number: 1 + number: 0 noarch: python run_exports: - {{ pin_subpackage('querynator', max_pin="x") }} From 81385b293b7a2611cd51cf0484ba828d4e82c9a6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 23 Jul 2024 10:45:53 -0400 Subject: [PATCH 0510/1589] Update hmftools-orange to 3.7.0 (#49493) --- recipes/hmftools-orange/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/hmftools-orange/meta.yaml b/recipes/hmftools-orange/meta.yaml index 91fb69d4ab0e3..3289d58f61584 100644 --- a/recipes/hmftools-orange/meta.yaml +++ b/recipes/hmftools-orange/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "3.6.0" %} -{% set sha256 = "55d600d1e47e95d24b47ea67b731ba996043448b3287f0c29883270da004e001" %} +{% set version = "3.7.0" %} +{% set sha256 = "5eefa9acb4040361ba4f56ec5670ccdcd0ac18e8b13e3bdbd6a6e6241104dfd1" %} package: name: hmftools-orange From 9c21eaa33598f33df3b4c74da6e529a5abe6c2eb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 23 Jul 2024 10:46:21 -0400 Subject: [PATCH 0511/1589] Update ska2 to 0.3.9 (#49491) --- recipes/ska2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ska2/meta.yaml b/recipes/ska2/meta.yaml index 02b0a45464bd5..f6a8f34b16558 100644 --- a/recipes/ska2/meta.yaml +++ b/recipes/ska2/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ska2" %} -{% set version = "0.3.8" %} +{% set version = "0.3.9" %} package: name: {{ name|lower}} @@ -7,7 +7,7 @@ package: source: url: https://github.com/bacpop/ska.rust/archive/v{{ version }}.tar.gz - sha256: 5abadd0222db05b2bfa787a896d422675312837c7ac850df6283e6a64d4f204b + sha256: e25a05c2c08a871feb5f9eca6993d9719a63a97323385353a58ba30fa829b5c1 build: number: 0 From b409bc71fb570accf6ad6c6d7f4907db39404df1 Mon Sep 17 00:00:00 2001 From: Niklaus Johner Date: Tue, 23 Jul 2024 17:23:23 +0200 Subject: [PATCH 0512/1589] Update zDB recipe for version 1.3.1. (#49199) --- recipes/zdb/meta.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/recipes/zdb/meta.yaml b/recipes/zdb/meta.yaml index 44567e264fe2a..b8864a209efab 100644 --- a/recipes/zdb/meta.yaml +++ b/recipes/zdb/meta.yaml @@ -6,7 +6,7 @@ package: build: noarch: generic - number: 0 + number: 1 run_exports: - {{ pin_subpackage('zdb', max_pin="x.x") }} @@ -16,7 +16,7 @@ source: requirements: run: - - nextflow >=21.04.0,<=22.10.8 + - nextflow >=21.04.0 - mamba test: @@ -26,12 +26,15 @@ test: about: home: https://github.com/metagenlab/zDB/ license: MIT + license_family: MIT license_file: LICENSE summary: zDB is both a bacterial comparative genomics pipeline and a tool to visualize the results dev_url: https://github.com/metagenlab/zDB/ + doc_url: https://zdb.readthedocs.io/en/latest/ extra: recipe-maintainers: - bkm + - njohner identifiers: - biotools:zDB From 1aeed180194731b71c5119f67ba9412cd37005c5 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 23 Jul 2024 10:29:54 -0500 Subject: [PATCH 0513/1589] kma: add arm64 build (#49497) --- recipes/kma/build.sh | 6 +++--- recipes/kma/meta.yaml | 9 ++++----- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/recipes/kma/build.sh b/recipes/kma/build.sh index 20626f6691fb4..62d5aef475fd3 100755 --- a/recipes/kma/build.sh +++ b/recipes/kma/build.sh @@ -1,9 +1,9 @@ #!/bin/bash BINARIES="kma kma_index kma_shm kma_update" -make CFLAGS="${CFLAGS} -w -O3 -I${PREFIX}/include -L${PREFIX}/lib" +make CFLAGS="${CFLAGS} -w -O3 -I${PREFIX}/include -L${PREFIX}/lib" -j "${CPU_COUNT}" mkdir -p ${PREFIX}/bin -cp $BINARIES $PREFIX/bin +cp -rf $BINARIES $PREFIX/bin mkdir -p $PREFIX/doc/kma -cp README.md $PREFIX/doc/kma/ +cp -rf README.md $PREFIX/doc/kma/ diff --git a/recipes/kma/meta.yaml b/recipes/kma/meta.yaml index 0ba3d848b9a81..13fd1af05d5f3 100644 --- a/recipes/kma/meta.yaml +++ b/recipes/kma/meta.yaml @@ -1,6 +1,6 @@ {% set name = "kma" %} -{% set version = "1.4.14" %} -{% set sha256 = "85971fcb2e806d2ee95d3499cd9b358f313b1635d5d71cb189eabc503be4b10f" %} +{% set version = "1.4.15" %} +{% set sha256 = "d95b1a958879fcbd37f680cfad74b7939879d357e13a073e53b62ea108675885" %} package: name: {{ name|lower }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('kma', max_pin="x") }} @@ -21,8 +21,6 @@ requirements: - {{ compiler('c') }} host: - zlib - run: - - zlib test: commands: @@ -40,5 +38,6 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - doi:10.1186/s12859-018-2336-6 From dcf6c6817684f14f9ad92a377494d7e31c5e34cd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 23 Jul 2024 11:31:47 -0400 Subject: [PATCH 0514/1589] Update gxformat2 to 0.19.0 (#49489) * Update gxformat2 to 0.19.0 * add run_exports --------- Co-authored-by: mencian --- recipes/gxformat2/meta.yaml | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/recipes/gxformat2/meta.yaml b/recipes/gxformat2/meta.yaml index 27f44d09908d1..94eda22a18411 100644 --- a/recipes/gxformat2/meta.yaml +++ b/recipes/gxformat2/meta.yaml @@ -1,5 +1,5 @@ {% set name = "gxformat2" %} -{% set version = "0.18.0" %} +{% set version = "0.19.0" %} package: name: "{{ name|lower }}" @@ -7,22 +7,30 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: e772e899968822c07d7b6bf20b662c52a2a87bd03eb0b7a6c81f72b6b2b3ad9e + sha256: 19cf7d4301ef3a7545c465e5daa7127042758bf4d9eba1f1dcc122eb47b99cfc build: number: 0 noarch: python - preserve_egg_dir: True - script: python -m pip install --no-deps --ignore-installed . + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + entry_points: + - gxwf-to-native = gxformat2.converter:main + - gxwf-to-format2 = gxformat2.export:main + - gxwf-lint = gxformat2.lint:main + - gxwf-viz = gxformat2.cytoscape:main + - gxwf-abstract-export = gxformat2.abstract:main + run_exports: + - {{ pin_subpackage('gxformat2', max_pin="x.x") }} requirements: host: - - python + - python >=3.7 - pip run: - - python - - pyyaml + - python >=3.7 - bioblend + - pyyaml + - schema-salad >=8.2 - six >=1.9.0 test: @@ -31,6 +39,8 @@ test: about: home: https://github.com/jmchilton/gxformat2 - license: AFL-3.0-only + license: MIT summary: 'Galaxy Workflow Format 2 Descriptions' - license_family: OTHER + license_family: MIT + license_file: LICENSE + dev_url: https://github.com/jmchilton/gxformat2 From 521edfbae58f0706fd5f010f1d463fc517791d92 Mon Sep 17 00:00:00 2001 From: Thom Griffioen Date: Tue, 23 Jul 2024 20:37:38 +0200 Subject: [PATCH 0515/1589] Update `entrez-direct` to 22.4 (#49496) * Update entrez-direct to 22.4 * Enable osx-arm64 build --- recipes/entrez-direct/meta.yaml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/recipes/entrez-direct/meta.yaml b/recipes/entrez-direct/meta.yaml index d0346051629b9..85cec6100e239 100644 --- a/recipes/entrez-direct/meta.yaml +++ b/recipes/entrez-direct/meta.yaml @@ -1,15 +1,16 @@ -{% set version = "22.1" %} -{% set date = "20240517" %} -{% set sha256 = "28d9cc2d353323375a2102e9031e229943d1f1f975f140d0815db3e5a111f235" %} +{% set name = "entrez-direct" %} +{% set version = "22.4" %} +{% set date = "20240717" %} +{% set sha256 = "350b47cd285aa8370f8af7fc2f3d4a11f31d8118f3f9cb87204063c9f3374739" %} package: - name: entrez-direct + name: {{ name }} version: {{ version }} build: number: 0 run_exports: - - {{ pin_subpackage("entrez-direct", max_pin="x") }} + - {{ pin_subpackage(name, max_pin="x") }} source: url: https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/versions/{{ version }}.{{ date }}/edirect.tar.gz @@ -42,5 +43,6 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 container: extended-base: True From 9d754474d7e9a06763ec99786cbe7bb6162e2761 Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Tue, 23 Jul 2024 14:37:49 -0400 Subject: [PATCH 0516/1589] khmer: update sha in build failure (#49494) --- recipes/khmer/build_failure.linux-64.yaml | 118 +++------------------- 1 file changed, 16 insertions(+), 102 deletions(-) diff --git a/recipes/khmer/build_failure.linux-64.yaml b/recipes/khmer/build_failure.linux-64.yaml index 7e810b76361af..9afdfa5776715 100644 --- a/recipes/khmer/build_failure.linux-64.yaml +++ b/recipes/khmer/build_failure.linux-64.yaml @@ -1,104 +1,18 @@ -recipe_sha: b3ca0bd5abc48a4a6f9cb09105ae183483ec3bd4b8baadd8ef77b286a1aba900 # The commit at which this recipe failed to build. +recipe_sha: 27b4bbe98422ab7e905e27f1693fcc531b4fe44fc7ec6d8fd817fe958e90da78 # The hash of the recipe's meta.yaml at which this recipe failed to build. skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. log: |- - [34m # This is -- a caller that pip uses to run setup.py[0m - [34m #[0m - [34m # - It imports setuptools before invoking setup.py, to enable projects that directly[0m - [34m # import from distutils.core to work with newer packaging standards.[0m - [34m # - It provides a clear error message when setuptools is not installed.[0m - [34m # - It sets sys.argv[0] to the underlying setup.py, when invoking setup.py so[0m - [34m # setuptools doesn'"'"'t think the script is -c. This avoids the following warning:[0m - [34m # manifest_maker: standard file '"'"'-c'"'"' not found".[0m - [34m # - It generates a shim setup.py, for handling setup.cfg-only projects.[0m - [34m import os, sys, tokenize[0m - [34m [0m - [34m try:[0m - [34m import setuptools[0m - [34m except ImportError as error:[0m - [34m print([0m - [34m "ERROR: Can not execute setup.py since setuptools is not available in "[0m - [34m "the build environment.",[0m - [34m file=sys.stderr,[0m - [34m )[0m - [34m sys.exit(1)[0m - [34m [0m - [34m __file__ = %r[0m - [34m sys.argv[0] = __file__[0m - [34m [0m - [34m if os.path.exists(__file__):[0m - [34m filename = __file__[0m - [34m with tokenize.open(__file__) as f:[0m - [34m setup_py_code = f.read()[0m - [34m else:[0m - [34m filename = ""[0m - [34m setup_py_code = "from setuptools import setup; setup()"[0m - [34m [0m - [34m exec(compile(setup_py_code, filename, "exec"))[0m - [34m '"'"''"'"''"'"' % ('"'"'/opt/conda/conda-bld/khmer_1685391754054/work/setup.py'"'"',), "", "exec"))' bdist_wheel -d /tmp/pip-wheel-vjdncpwn[0m - [1;35mcwd[0m: /opt/conda/conda-bld/khmer_1685391754054/work/ - Building wheel for khmer (setup.py): finished with status 'error' - [31m ERROR: Failed building wheel for khmer[0m[31m - [0m Running setup.py clean for khmer - Running command python setup.py clean - /opt/conda/conda-bld/khmer_1685391754054/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.8/site-packages/setuptools/dist.py:755: SetuptoolsDeprecationWarning: Invalid dash-separated options - !! - - ******************************************************************************** - Usage of dash-separated 'include-dirs' will not be supported in future - versions. Please use the underscore name 'include_dirs' instead. - - By 2023-Sep-26, you need to update your project and remove deprecated calls - or your builds will no longer be supported. - - See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details. - ******************************************************************************** - - !! - opt = self.warn_dash_deprecation(opt, section) - /opt/conda/conda-bld/khmer_1685391754054/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.8/site-packages/setuptools/__init__.py:84: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated. - !! - - ******************************************************************************** - Requirements should be satisfied by a PEP 517 installer. - If you are using pip, you can try pip install --use-pep517. - ******************************************************************************** - - !! - dist.fetch_build_eggs(dist.setup_requires) - running clean - removing 'build/temp.linux-x86_64-cpython-38' (and everything under it) - removing 'build/lib.linux-x86_64-cpython-38' (and everything under it) - 'build/bdist.linux-x86_64' does not exist -- can't clean it - 'build/scripts-3.8' does not exist -- can't clean it - removing 'build' - Failed to build khmer - [31mERROR: Could not build wheels for khmer, which is required to install pyproject.toml-based projects[0m[31m - [0mException information: - Traceback (most recent call last): - File "$PREFIX/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 169, in exc_logging_wrapper - status = run_func(*args) - File "$PREFIX/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 248, in wrapper - return func(self, options, args) - File "$PREFIX/lib/python3.8/site-packages/pip/_internal/commands/install.py", line 426, in run - raise InstallationError( - pip._internal.exceptions.InstallationError: Could not build wheels for khmer, which is required to install pyproject.toml-based projects - Removed build tracker: '/tmp/pip-build-tracker-jesaqami' - Traceback (most recent call last): - File "/opt/conda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/conda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 2198, in build - utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env, - File "/opt/conda/lib/python3.8/site-packages/conda_build/utils.py", line 451, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/conda/lib/python3.8/site-packages/conda_build/utils.py", line 427, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/khmer_1685391754054/work/conda_build.sh']' returned non-zero exit status 1. -# Last 100 lines of the build log. +01:00:23 BIOCONDA INFO (OUT) /opt/conda/conda-bld/khmer_1721696148356/_build_env/bin/x86_64-conda-linux-gnu-cc -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include -fPIC -O2 -isystem /opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include -fdebug-prefix-map=/opt/conda/conda-bld/khmer_1721696148356/work=/usr/local/src/conda/khmer-3.0.0a3 -fdebug-prefix-map=/opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho=/usr/local/src/conda-prefix -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include -fPIC -DVERSION=3.0.0a3 -DSEQAN_HAS_BZIP2=1 -DSEQAN_HAS_ZLIB=1 -UNO_UNIQUE_RC -Iinclude -I. -Iinclude -Ithird-party/seqan/core/include -Ithird-party/smhasher -Ithird-party/cqf -Ithird-party/rollinghash -I/opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/python3.11 -c khmer/_oxli/graphs.cpp -o build/temp.linux-x86_64-cpython-311/khmer/_oxli/graphs.o -O3 -std=c++11 -fopenmp +01:00:23 BIOCONDA INFO (OUT) khmer/_oxli/graphs.cpp:196:12: fatal error: longintrepr.h: No such file or directory +01:00:23 BIOCONDA INFO (OUT) 196 | #include "longintrepr.h" +01:00:23 BIOCONDA INFO (OUT) | ^~~~~~~~~~~~~~~ +01:00:23 BIOCONDA INFO (OUT) compilation terminated. +01:00:23 BIOCONDA INFO (OUT) error: command '/opt/conda/conda-bld/khmer_1721696148356/_build_env/bin/x86_64-conda-linux-gnu-cc' failed with exit code 1 +01:00:24 BIOCONDA INFO (OUT) error: subprocess-exited-with-error +01:00:24 BIOCONDA INFO (OUT) +01:00:24 BIOCONDA INFO (OUT) × python setup.py bdist_wheel did not run successfully. +01:00:24 BIOCONDA INFO (OUT) │ exit code: 1 +01:00:24 BIOCONDA INFO (OUT) ╰─> See above for output. +reason: |- + breaks in nightly build +category: |- + compiler error From 6694ccfe1ca6cddc67705903424689409cc182f5 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 23 Jul 2024 14:01:07 -0500 Subject: [PATCH 0517/1589] Add recipe for SEAcells v0.3.3 (#49501) --- recipes/seacells/meta.yaml | 50 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 recipes/seacells/meta.yaml diff --git a/recipes/seacells/meta.yaml b/recipes/seacells/meta.yaml new file mode 100644 index 0000000000000..c2a088b21dd0e --- /dev/null +++ b/recipes/seacells/meta.yaml @@ -0,0 +1,50 @@ +{% set name = "seacells" %} +{% set version = "0.3.3" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/SEACells-{{ version }}.tar.gz + sha256: 0f75d1970ab148732796d2d7afbd1001f779c00959af3212002434780254fc15 + +build: + number: 0 + noarch: python + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + run_exports: + - {{ pin_subpackage('seacells', max_pin="x.x") }} + +requirements: + host: + - python >=3.8 + - pip + run: + - python >=3.8 + - numpy + - pandas + - palantir + - scanpy >1.8 + - anndata + - numba >=0.51.2 + - scipy >=1.5 + - pyranges + +test: + imports: + - SEACells + +about: + home: https://github.com/dpeerlab/SEACells + summary: "SEACells algorithm for Inference of transcriptional and epigenomic cellular states from single-cell genomics data." + license: GPL-2.0-or-later + license_family: GPL + license_file: LICENSE.txt + dev_url: https://github.com/dpeerlab/SEACells + +extra: + recipe-maintainers: + - mencian + identifiers: + - doi:10.1038/s41587-023-01716-9 From fbabf5a60da89fee6e28777f6ea1b1e15f39435f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 23 Jul 2024 15:41:56 -0400 Subject: [PATCH 0518/1589] Update microhapulator to 0.8 (#49498) * Update microhapulator to 0.8 * add run_exports * pin python to <3.12 --------- Co-authored-by: mencian --- recipes/microhapulator/meta.yaml | 43 ++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/recipes/microhapulator/meta.yaml b/recipes/microhapulator/meta.yaml index c5727c42c8c84..311ce5aa3802a 100644 --- a/recipes/microhapulator/meta.yaml +++ b/recipes/microhapulator/meta.yaml @@ -1,56 +1,67 @@ -{% set version = "0.7.2" %} -{% set sha256 = "7fff263a4d469d00695d0a314d9a85b8427b454d6b4dd783f930708a3a796f02" %} +{% set name = "microhapulator" %} +{% set version = "0.8" %} +{% set sha256 = "7415985d6dc7147bec0cf97e1bdf707d72033ccc3fdd0a1c332014da637d35fe" %} package: - name: microhapulator - version: '{{version}}' + name: {{ name }} + version: {{ version }} source: url: https://github.com/bioforensics/MicroHapulator/archive/{{ version }}.tar.gz - sha256: '{{sha256}}' + sha256: {{ sha256 }} build: noarch: python entry_points: - mhpl8r = microhapulator.cli:main - script: python -m pip install --no-deps --ignore-installed . + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir number: 0 + run_exports: + - {{ pin_subpackage('microhapulator', max_pin="x.x") }} requirements: host: - - python >=3 + - python <3.12 - pip run: - - biopython ==1.78 + - biopython - bwa >=0.7.17 - fastqc >=0.11.9 - flash >=1.2 - happer >=0.1 - - insilicoseq >=1.5.4 - - jsonschema >=3.1 + - insilicoseq >=1.5.4,<2.0 + - jsonschema >=4.0 - matplotlib-base >=3.0 - - numpy >=1.15.4 - - pandas >=1.0 - - python >=3 + - microhapdb >=0.10.1 + - multiqc >=1.14 + - nbformat >=5.0,<5.6 + - numpy >=1.19 + - pandas >1.0 + - pulp ==2.3.1 + - python <3.12 - pysam >=0.15.2 - scipy >=1.7 - samtools >=1.12 - - snakemake >=6.0 + - seaborn-base >=0.13.2 + - snakemake-minimal >=7.15.2,<8.0 - termgraph >=0.5 - tqdm >=4.0 test: imports: - microhapulator + commands: + - mhpl8r --help requires: - pytest >=3.10 - pytest-cov >=2.6 about: home: https://github.com/bioforensics/MicroHapulator/ - license: BSD License + license: BSD-3-Clause license_family: BSD - summary: Tools for empirical microhaplotype calling, forensic interpretation, and simulation. + license_file: LICENSE.txt + summary: "Tools for empirical microhaplotype calling, forensic interpretation, and simulation." dev_url: https://github.com/bioforensics/MicroHapulator/ extra: From 94d23891eb5721d939740dd023e44714659575be Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Tue, 23 Jul 2024 12:52:09 -0700 Subject: [PATCH 0519/1589] Build abyss for osx-arm64 (#49473) (Patch elderly config.sub that doesn't recognise Apple silicon.) --- recipes/abyss/config.patch | 15 +++++++++++++++ recipes/abyss/meta.yaml | 5 ++++- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 recipes/abyss/config.patch diff --git a/recipes/abyss/config.patch b/recipes/abyss/config.patch new file mode 100644 index 0000000000000..0eff6cb938fc6 --- /dev/null +++ b/recipes/abyss/config.patch @@ -0,0 +1,15 @@ +Upstream release contains config.{guess,sub} from ten years ago that +don't handle Apple silicon. This patches minimally around it. + +--- a/config.sub 2014-06-10 20:03:11 ++++ b/config.sub 2024-07-23 19:48:49 +@@ -436,6 +436,9 @@ + | ymp-* \ + | z8k-* | z80-*) + ;; ++ arm64-apple) ++ basic_machine=aarch64-apple ++ ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown diff --git a/recipes/abyss/meta.yaml b/recipes/abyss/meta.yaml index c713a409e12e6..0d927ebfebd75 100644 --- a/recipes/abyss/meta.yaml +++ b/recipes/abyss/meta.yaml @@ -6,13 +6,15 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin="x") }} source: url: https://github.com/bcgsc/abyss/releases/download/{{ version }}/abyss-{{ version }}.tar.gz sha256: 3c262269043f619c79ec3dcd91f5595cb141229f9a13d1a76a952b9a0bfb0d84 + patches: + - config.patch requirements: build: @@ -46,6 +48,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 container: # openmpi needs ssh/rsh extended-base: true From ee4d0cdf4b34716038b89b601646f734d7007330 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 23 Jul 2024 16:26:19 -0400 Subject: [PATCH 0520/1589] Update pasty to 2.0.0 (#49502) * Update pasty to 2.0.0 * Update meta.yaml * Update build.sh * add run_exports * Update meta.yaml --------- Co-authored-by: Robert A. Petit III --- recipes/pasty/build.sh | 18 +++++++++--------- recipes/pasty/meta.yaml | 11 +++++------ 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/recipes/pasty/build.sh b/recipes/pasty/build.sh index 6c870165bf734..a64b3f4867aed 100644 --- a/recipes/pasty/build.sh +++ b/recipes/pasty/build.sh @@ -1,11 +1,11 @@ -#! /bin/bash +#!/bin/bash -# Set up defaults -PASTY_SHARE="share/${PKG_NAME}-${PKG_VERSION}" -mkdir -p ${PREFIX}/${PASTY_SHARE} -mkdir -p ${PREFIX}/bin +mkdir -p $PREFIX/bin ${PREFIX}/share/pasty -# Make Bioconda compatible -mv db/OSAdb.fasta ${PREFIX}/${PASTY_SHARE}/ -sed "s=db/OSAdb.fasta=$PASTY_SHARE/OSAdb.fasta=" bin/pasty > ${PREFIX}/bin/pasty -chmod 755 ${PREFIX}/bin/pasty +# Copy wrapper +chmod 755 bin/pasty-bioconda +cp -f bin/pasty-bioconda $PREFIX/bin/pasty + +# Copy schema (~100kb) +cp -f data/pa-osa.fasta ${PREFIX}/share/pasty +cp -f data/pa-osa.yaml ${PREFIX}/share/pasty diff --git a/recipes/pasty/meta.yaml b/recipes/pasty/meta.yaml index 8b2220b2bdfb3..c0ac5731107c1 100644 --- a/recipes/pasty/meta.yaml +++ b/recipes/pasty/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pasty" %} -{% set version = "1.0.3" %} +{% set version = "2.0.0" %} package: name: {{ name | lower }} @@ -7,18 +7,17 @@ package: source: url: https://github.com/rpetit3/pasty/archive/v{{ version }}.tar.gz - sha256: 96b43053e7411f8e071355d604cdda02fd6bf03ebec199fdbaa85afe251623b6 + sha256: f1d6d38c1a797b88249c896030192901ea1e399387a30cda0612537387619cc8 build: number: 0 noarch: generic + run_exports: + - {{ pin_subpackage(name, max_pin='x.x') }} requirements: run: - - blast - - executor - - python >=3.7 - - rich-click + - camlhmp >=0.2.2 test: commands: From ada7d5acd991d027553f905d22f2fdcbbd757364 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 23 Jul 2024 21:39:31 -0400 Subject: [PATCH 0521/1589] Update pangwes to 0.3.0_alpha (#49503) --- recipes/pangwes/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pangwes/meta.yaml b/recipes/pangwes/meta.yaml index d34abb3224eaa..44874495eafd5 100644 --- a/recipes/pangwes/meta.yaml +++ b/recipes/pangwes/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pangwes" %} -{% set version = "0.2.0_alpha" %} +{% set version = "0.3.0_alpha" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Sudaraka88/PAN-GWES/archive/refs/tags/v{{ version }}.tar.gz - sha256: 288e2c403b880d1a912525aa00a66b402889cb94df01ca87d99355b2d7287837 + sha256: d91f01f2a098cb8f7492c2208d0ae143d2b66f0d58b89b9c96dfb17ebca07c8e build: number: 0 From 59c25a32086fb01b5021e41bb2f6b39d7481d4e6 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 23 Jul 2024 21:47:22 -0500 Subject: [PATCH 0522/1589] Add recipe for ctxcore v0.2.0 (#49504) --- recipes/ctxcore/meta.yaml | 52 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 recipes/ctxcore/meta.yaml diff --git a/recipes/ctxcore/meta.yaml b/recipes/ctxcore/meta.yaml new file mode 100644 index 0000000000000..5610e87640ebb --- /dev/null +++ b/recipes/ctxcore/meta.yaml @@ -0,0 +1,52 @@ +{% set name = "ctxcore" %} +{% set version = "0.2.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/aertslab/ctxcore/archive/{{ version }}.tar.gz + sha256: a7ebf0f2625641b76a390993e12042e92fff7d0ac242c7fad5e3bff3ff3cd67a + +build: + number: 0 + noarch: python + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + script_env: + - SETUPTOOLS_SCM_PRETEND_VERSION={{ version }} + run_exports: + - {{ pin_subpackage('ctxcore', max_pin="x.x") }} + +requirements: + host: + - python + - setuptools-scm + - pip + run: + - python + - cytoolz + - frozendict + - numba >=0.51.2 + - numpy + - pandas >=0.24 + - pyarrow >=8.0.0 + - pyyaml + - tqdm + +test: + imports: + - ctxcore + +about: + home: "https://scenic.aertslab.org" + summary: "Core functions for pycisTarget and the SCENIC tool suite." + license: GPL-3.0-or-later + license_family: GPL3 + license_file: LICENSE.txt + dev_url: "https://github.com/aertslab/ctxcore" + doc_url: "https://ctxcore.readthedocs.io/en/latest" + +extra: + recipe-maintainers: + - mencian From 55d9c450e41dc33d83c37709b84ab71858e0aaa8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 23 Jul 2024 22:47:33 -0400 Subject: [PATCH 0523/1589] Update planemo to 0.75.24 (#47760) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update planemo to 0.75.23 * update dependencies * edit tests * Update planemo to 0.75.24 * Bump galaxy deps * edit tests --------- Co-authored-by: mencian Co-authored-by: Björn Grüning Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/planemo/meta.yaml | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/recipes/planemo/meta.yaml b/recipes/planemo/meta.yaml index 4d0b0f2dcb6c6..e37d7821ced54 100644 --- a/recipes/planemo/meta.yaml +++ b/recipes/planemo/meta.yaml @@ -1,6 +1,6 @@ {% set name = "planemo" %} -{% set version = "0.75.22" %} -{% set sha256 = "ad6b7b0eeb8d180004963b72bad5ec630d396a3ac0c36f9d1403927413158b8b" %} +{% set version = "0.75.24" %} +{% set sha256 = "a0ee1ace9b5e2a9bf17c735d3b95236e9756921eded7cd9847717dd0adff6e42" %} package: name: {{ name|lower }} @@ -13,11 +13,11 @@ source: build: number: 0 noarch: python - run_exports: - - {{ pin_subpackage('planemo', max_pin='x.x') }} - script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv entry_points: - planemo = planemo.cli:planemo + run_exports: + - {{ pin_subpackage('planemo', max_pin='x.x') }} requirements: host: @@ -26,15 +26,12 @@ requirements: run: - python >=3.7 - allure-python-commons - - beautifulsoup4 - bioblend >=1.0.0 - - click + - click !=8.0.2 - cwltool >=1.0.20191225192155 - - docutils - ephemeris >=0.10.3 - - galaxy-containers - - galaxy-tool-util >=23.1,<24.0 - - galaxy-util >=23.1,<24.0 + - galaxy-tool-util >=23.1,!=24.0.0,!=24.0.1,<24.2 + - galaxy-util >=23.1,<24.2 - glob2 - gxformat2 >=0.14.0 - h5py @@ -44,16 +41,16 @@ requirements: - pathvalidate - pyyaml - virtualenv + - stdlib-list # [py < 310] - tabulate - - six >=1.7.0 test: imports: - planemo - planemo.commands - - planemo.cwl + #- planemo.cwl - planemo.database - - planemo.engine + #- planemo.engine - planemo.galaxy - planemo.galaxy.test - planemo.linters @@ -64,10 +61,10 @@ test: - planemo.training - planemo.xml commands: - - planemo --help + #- planemo --help about: - home: 'https://pypi.org/project/planemo/' + home: 'https://github.com/galaxyproject/planemo' summary: 'Command-line utilities to assist in building tools for the Galaxy project (http://galaxyproject.org/).' license: MIT license_family: MIT From 7f855cd42e5fe127bf5c28e2e744f9f95ff014ab Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 24 Jul 2024 00:30:51 -0400 Subject: [PATCH 0524/1589] Update pygcap to 1.2.0 (#49506) --- recipes/pygcap/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pygcap/meta.yaml b/recipes/pygcap/meta.yaml index 6afd9f62cf3d7..cd6f274a87989 100644 --- a/recipes/pygcap/meta.yaml +++ b/recipes/pygcap/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pygcap" %} -{% set version = "1.1.6" %} +{% set version = "1.2.0" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pygcap-{{ version }}.tar.gz - sha256: 4a98ebe034da7e4440cd6874dc581a76a95e10ef91dfd3339c914bed780878af + sha256: 23a1bcd9caa18bd35a78c3bb8ea3a8811cff0d84b32eaef44850348bfe71399e build: number: 0 From 5eb595888d41b8ace5bcab6b4dfbdf196177364c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 24 Jul 2024 01:06:38 -0400 Subject: [PATCH 0525/1589] Update metav to 1.0.5 (#49505) * Update metav to 1.0.5 * edit license --------- Co-authored-by: mencian --- recipes/metav/build.sh | 4 ---- recipes/metav/meta.yaml | 19 ++++++++++--------- 2 files changed, 10 insertions(+), 13 deletions(-) delete mode 100644 recipes/metav/build.sh diff --git a/recipes/metav/build.sh b/recipes/metav/build.sh deleted file mode 100644 index c65b9bb44d4b1..0000000000000 --- a/recipes/metav/build.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -# build -$PYTHON setup.py install --single-version-externally-managed --record=record.txt \ No newline at end of file diff --git a/recipes/metav/meta.yaml b/recipes/metav/meta.yaml index 8d066718670c2..3423876580db3 100644 --- a/recipes/metav/meta.yaml +++ b/recipes/metav/meta.yaml @@ -1,5 +1,5 @@ {% set name = "metav" %} -{% set version = "1.0.4" %} +{% set version = "1.0.5" %} package: name: "{{ name }}" @@ -7,21 +7,21 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 5a1bd914c3c180f2c73c77bb093fa7706853e6f8b718425dc1667a9f44356c6f + sha256: f1cbf33630a26e9c34276244e08e2d56fa7128aca2553347700065f6536cdd65 build: - number: 1 + number: 0 noarch: python + entry_points: + - metav = metav.main:starts + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir run_exports: - {{ pin_subpackage('metav', max_pin="x") }} - requirements: host: - python >=3.5 - pip - - setuptools - run: - python >=3.5 - trimmomatic >=0.39 @@ -37,10 +37,11 @@ test: about: home: "https://github.com/ZhijianZhou01/metav" - license: "LGPL-2.1-or-later" - license_family: "LGPL" + license: "GPL-3.0-or-later" + license_family: "GPL3" license_file: LICENSE - summary: "rapid detection and classification of viruses in metagenomics sequencing." + summary: "Rapid detection and classification of viruses in metagenomics sequencing." + dev_url: "https://github.com/ZhijianZhou01/metav" extra: recipe-maintainers: From b0374b7af19f5e3a8f898440b915f3059a481682 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 24 Jul 2024 01:36:36 -0400 Subject: [PATCH 0526/1589] Update pygcap to 1.2.2 (#49508) --- recipes/pygcap/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pygcap/meta.yaml b/recipes/pygcap/meta.yaml index cd6f274a87989..eb274b6fc0600 100644 --- a/recipes/pygcap/meta.yaml +++ b/recipes/pygcap/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pygcap" %} -{% set version = "1.2.0" %} +{% set version = "1.2.2" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pygcap-{{ version }}.tar.gz - sha256: 23a1bcd9caa18bd35a78c3bb8ea3a8811cff0d84b32eaef44850348bfe71399e + sha256: ef1ee2187e2ba0c5a847b51ae2f15023e45faeb6bdec45de8358d9f9c37ccd13 build: number: 0 From 7fb639e282cb6356a40116d9e35cf339538e4935 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 24 Jul 2024 01:47:23 -0400 Subject: [PATCH 0527/1589] Update dnaapler to 0.8.0 (#49509) * Update dnaapler to 0.8.0 * add --no-cache-dir to attempt to decrease package size --------- Co-authored-by: mencian --- recipes/dnaapler/meta.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/recipes/dnaapler/meta.yaml b/recipes/dnaapler/meta.yaml index afdd8db8dc58a..ca0ab07f0d1c8 100644 --- a/recipes/dnaapler/meta.yaml +++ b/recipes/dnaapler/meta.yaml @@ -1,5 +1,5 @@ {% set name = "dnaapler" %} -{% set version = "0.7.0" %} +{% set version = "0.8.0" %} package: name: {{ name|lower }} @@ -7,16 +7,16 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 1ae921824055e8c4e9f7651ddd4d4011612f863f17cb95b496849de03560304f + sha256: 393c70dc355243200b7652810b3349e763de6bfcc07e168e51308c16cde045ea build: number: 0 noarch: python entry_points: - dnaapler = dnaapler:main - script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv" + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" run_exports: - - {{ pin_subpackage('dnaapler', max_pin='x') }} + - {{ pin_subpackage('dnaapler', max_pin='x.x') }} requirements: host: @@ -46,6 +46,7 @@ about: license_file: LICENSE summary: Reorients assembled microbial sequences doc_url: https://dnaapler.readthedocs.io/en/latest/ + dev_url: https://github.com/gbouras13/dnaapler extra: recipe-maintainers: From 61026e32d70293e478b7ef3cd0346d2f1d25a43a Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 24 Jul 2024 00:48:10 -0500 Subject: [PATCH 0528/1589] polypolish: add aarch64/arm64 build (#49510) --- recipes/polypolish/build.sh | 4 ---- recipes/polypolish/meta.yaml | 8 ++++++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/recipes/polypolish/build.sh b/recipes/polypolish/build.sh index d70db500fe871..cc6ea610520c3 100644 --- a/recipes/polypolish/build.sh +++ b/recipes/polypolish/build.sh @@ -1,9 +1,5 @@ #!/bin/bash -euo -# Add workaround for SSH-based Git connections from Rust/cargo. See https://github.com/rust-lang/cargo/issues/2078 for details. -# We set CARGO_HOME because we don't pass on HOME to conda-build, thus rendering the default "${HOME}/.cargo" defunct. -export CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_HOME="${BUILD_PREFIX}/.cargo" - # build statically linked binary with Rust RUST_BACKTRACE=1 cargo install --verbose --path . --root ${PREFIX} diff --git a/recipes/polypolish/meta.yaml b/recipes/polypolish/meta.yaml index 1fb18422206e1..f130383f9422d 100644 --- a/recipes/polypolish/meta.yaml +++ b/recipes/polypolish/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 99ea799352cecf6723b73fb4c5c64dd2091ff1cdab6eef10309e06c642e56855 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('polypolish', max_pin="x.x") }} @@ -17,7 +17,7 @@ requirements: build: - {{ compiler('c') }} - {{ compiler('cxx') }} - - rust >=1.39 + - {{ compiler('rust') }} - pkg-config - clangdev - make @@ -37,8 +37,12 @@ about: license_file: LICENSE summary: Polishing genome assemblies with short reads. doc_url: https://github.com/rrwick/Polypolish/wiki + dev_url: https://github.com/rrwick/Polypolish extra: identifiers: - doi:10.1371/journal.pcbi.1009802 - biotools:polypolish + additional-platforms: + - linux-aarch64 + - osx-arm64 From bf32ffe558dae7f08cec2a821357456ebd57848f Mon Sep 17 00:00:00 2001 From: Samuel Aroney <41124903+AroneyS@users.noreply.github.com> Date: Wed, 24 Jul 2024 16:29:32 +1000 Subject: [PATCH 0529/1589] Update binchicken to 0.12.0 (#49511) * update binchicken to v0.12.0 * clean up recipe --------- Co-authored-by: mencian --- recipes/binchicken/meta.yaml | 51 ++++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/recipes/binchicken/meta.yaml b/recipes/binchicken/meta.yaml index dc8ac18b55db2..9989b66e49e5f 100644 --- a/recipes/binchicken/meta.yaml +++ b/recipes/binchicken/meta.yaml @@ -1,38 +1,43 @@ -{% set version = "0.11.0" %} +{% set version = "0.12.0" %} {% set name = "binchicken" %} -{% set sha256 = "2494f388ac0634341ba6f844df5e35fb30808ad50695016165fc7f88228de179" %} +{% set sha256 = "3210e8ddcceeb77c18d04a16686d27b47018d229e5105c3d38af92a5f228f2d4" %} package: - name: binchicken + name: {{ name }} version: {{ version }} +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz + sha256: {{ sha256 }} + build: number: 0 noarch: python - script: "{{ PYTHON }} -m pip install . -vv" + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" + entry_points: + - binchicken = binchicken.binchicken:main + - ibis = binchicken.binchicken:main run_exports: - - {{ pin_subpackage('binchicken', max_pin="x") }} - -source: - url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: {{ sha256 }} + - {{ pin_subpackage('binchicken', max_pin="x.x") }} requirements: host: - - python >=3.8 + - python >=3.10 - pip run: - - python =3.10.* - - snakemake =7.32.* - - mamba =1.4.* - - networkx =3.1 - - bird_tool_utils_python =0.4.* - - extern =0.4.* - - ruamel.yaml =0.17.* - - polars =0.20.* - - pigz =2.3.* - - pyarrow =12.0.* - - parallel =20230522 + - python >=3.10 + - snakemake-minimal >=6.0.5,<8 + - mamba + - networkx + - bird_tool_utils_python + - extern + - ruamel.yaml >=0.15.99 + - polars + - pigz + - pyarrow + - parallel + - sourmash =4.8.* + - sourmash_plugin_branchwater =0.9.* - pyopenssl >22.1.0 test: @@ -41,7 +46,9 @@ test: about: home: https://github.com/aroneys/binchicken - license: GNU General Public v3 (GPLv3) + license: GPL-3.0-or-later license_family: GPL3 license_file: LICENSE summary: Targeted recovery of low abundance metagenome assembled genomes through intelligent coassembly + dev_url: https://github.com/aroneys/binchicken + doc_url: https://aroneys.github.io/binchicken From fd5953fc792070bfeb1835c6fa7fd2cc2cc9b8d3 Mon Sep 17 00:00:00 2001 From: Anton Kravchenko Date: Wed, 24 Jul 2024 02:16:04 -0700 Subject: [PATCH 0530/1589] kallisto dependency was reverted to 0.44 (#49512) --- recipes/arcas-hla/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/arcas-hla/meta.yaml b/recipes/arcas-hla/meta.yaml index c1508a625042b..b1d2fa23462d1 100644 --- a/recipes/arcas-hla/meta.yaml +++ b/recipes/arcas-hla/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 75bef1a5596a9dfabccb901420f5d852d6d8a15d9c676e4c94787b8d25dd708b build: - number: 1 + number: 2 noarch: generic run_exports: - {{ pin_subpackage("arcas-hla", max_pin="x.x") }} @@ -21,7 +21,7 @@ requirements: - coreutils - git - git-lfs - - kallisto ==0.50.1 + - kallisto ==0.44 - numpy - pandas - pigz From f8218b465339745434a31a35a97329c846c93a44 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Wed, 24 Jul 2024 15:30:39 +0200 Subject: [PATCH 0531/1589] Build iqtree2 with cmaple feature, reduce pkg size from 8MB to 3MB (#49360) --- recipes/iqtree/build.sh | 49 ++++++++++++++++++++++++++++------------ recipes/iqtree/meta.yaml | 36 ++++++++++++++++++++--------- recipes/iqtree/patch | 25 ++++++++++++++++++++ 3 files changed, 84 insertions(+), 26 deletions(-) create mode 100644 recipes/iqtree/patch diff --git a/recipes/iqtree/build.sh b/recipes/iqtree/build.sh index 775b3c1099a17..9fcec17dbde4a 100644 --- a/recipes/iqtree/build.sh +++ b/recipes/iqtree/build.sh @@ -4,29 +4,48 @@ set -ex export INCLUDES="-I${PREFIX}/include" export LIBPATH="-L${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" -export CFLAGS="${CFLAGS} -O3" -export CPPFLAGS="${CPPFLAGS} -I${PREFIX}/include" -export CXXFLAGS="${CXXFLAGS} -std=c++14" +export CFLAGS="${CFLAGS} -O3 -w" +export CPPFLAGS="${CPPFLAGS} -I${PREFIX}/include -w" +export CXXFLAGS="${CXXFLAGS} -w" if [ "$(uname)" == Darwin ]; then export CMAKE_C_COMPILER="clang" export CMAKE_CXX_COMPILER="clang++" + export CXXFLAGS="${CXXFLAGS} -mmacosx-version-min=11" + # `which` is required, as full paths needed + # see https://github.com/bioconda/bioconda-recipes/pull/49360#discussion_r1686187284 + CC=$(which "$CC") + CXX=$(which "$CXX") + AR=$(which "$AR") + RANLIB=$(which "$RANLIB") + DCMAKE_ARGS=(-DCMAKE_C_COMPILER="${CC}" -DCMAKE_CXX_COMPILER="${CXX}" + -DCMAKE_CXX_COMPILER_AR="${AR}" -DCMAKE_CXX_COMPILER_RANLIB="${RANLIB}") fi cmake -S . -B build -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DCMAKE_BUILD_TYPE=Release \ - -DUSE_LSD2=ON -DIQTREE_FLAGS=omp -DCMAKE_CXX_COMPILER="${CXX}" \ - -DCMAKE_CXX_FLAGS="${CXXFLAGS}" -Wno-dev -Wno-deprecated --no-warn-unused-cli + -GNinja \ + -DUSE_LSD2=ON -DIQTREE_FLAGS=omp -DUSE_CMAPLE=ON \ + -DCMAKE_CXX_FLAGS="${CXXFLAGS}" "${DCMAKE_ARGS[@]}" \ + -DBUILD_GMOCK=OFF -DINSTALL_GTEST=OFF \ + -Wno-dev -Wno-deprecated --no-warn-unused-cli -case $(uname -m) in - aarch64) - JOBS=1 # CircleCI's arm.medium VM runs out of memory with higher values - ;; - *) - JOBS=${CPU_COUNT} - ;; -esac +# Detect if we are running on CircleCI's arm.medium VM +# If CPU_COUNT is 4, we are on CircleCI's arm.large VM +JOBS=${CPU_COUNT} +if [[ "$(uname -m)" == "aarch64" ]] && [[ "${CPU_COUNT}" -lt 4 ]]; then + JOBS=1 # CircleCI's arm.medium VM runs out of memory with higher values +fi -cmake --build build --target install -j ${JOBS} +VERBOSE=1 cmake --build build --target install -j "${JOBS}" chmod 755 "${PREFIX}/bin/iqtree2" -cp -f "${PREFIX}"/bin/iqtree2 "${PREFIX}"/bin/iqtree + +# Use symlink to not duplicate the binary, saving space +ln -s "${PREFIX}"/bin/iqtree2 "${PREFIX}"/bin/iqtree + +# Remove example data files +for file in "${PREFIX}/example"* "${PREFIX}/models.nex" "${PREFIX}/bin/iqtree2-aa"; do + if [ -f "$file" ]; then + rm "$file" + fi +done diff --git a/recipes/iqtree/meta.yaml b/recipes/iqtree/meta.yaml index d973ad4ff8ea5..6c0b3e3a4795c 100644 --- a/recipes/iqtree/meta.yaml +++ b/recipes/iqtree/meta.yaml @@ -1,40 +1,47 @@ {% set name = "IQTREE" %} {% set version = "2.3.5" %} -{% set sha256 = "8e323e0b7c46e97901d3500f11e810703e0e5d25848188047eca9602d03fa6b1" %} package: name: {{ name|lower }} version: {{ version | replace("-", "_") }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('iqtree', max_pin="x") }} source: - - url: https://github.com/iqtree/iqtree2/archive/refs/tags/v{{ version }}.tar.gz - sha256: {{ sha256 }} - - url: https://github.com/tothuhien/lsd2/archive/refs/tags/v.2.4.1.tar.gz - sha256: 3d0921c96edb8f30498dc8a27878a76d785516043fbede4a72eefd84b5955458 - folder: lsd2 + # using git_url rather than tarball due to use of 2 submodules by iqtree (lsd2, cmaple) + # Previously, the submodules were specified as source tarballs themselves + # But the submodules weren't updated when iqtree was, hence switch to git_url + # see discussion https://github.com/bioconda/bioconda-recipes/pull/49360/files#r1686415630 + git_url: https://github.com/iqtree/iqtree2.git + git_rev: v{{ version }} + sha256: unused + patches: + - "patch" requirements: build: + - {{ compiler('c') }} - {{ compiler('cxx') }} - - make - cmake + - ninja host: - libgomp # [linux] - llvm-openmp # [osx] - - ld64 # [osx] - boost-cpp - eigen - - zlib - test: + source_files: + - cmaple/example/input.fa commands: - iqtree - iqtree2 + # Mulled builds don't work with source_files + - iqtree --pathogen-force -s cmaple/example/input.fa # [osx] + # Test that the CMAPLE submodule is working + - grep -v "not compiled with CMAPLE integrated" cmaple/example/input.fa.log # [osx] about: home: "http://www.iqtree.org" @@ -46,6 +53,9 @@ about: doc_url: "http://www.iqtree.org/doc" extra: + skip-lints: + # uses submodules + - uses_vcs_url additional-platforms: - linux-aarch64 - osx-arm64 @@ -55,4 +65,8 @@ extra: - doi:10.1038/nmeth.4285 - doi:10.1093/molbev/msx281 - doi:10.1093/sysbio/syae008 + # cmaple + - doi:10.1093/molbev/msae134 - usegalaxy-eu:{{ name|lower }} + recipe-maintainers: + - corneliusroemer diff --git a/recipes/iqtree/patch b/recipes/iqtree/patch new file mode 100644 index 0000000000000..d93fd391f1781 --- /dev/null +++ b/recipes/iqtree/patch @@ -0,0 +1,25 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ca5ebac7..f88c4410 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -204,16 +204,16 @@ if (WIN32) + elseif (APPLE) + message("Target OS : Mac OS X") + if(OSX_NATIVE_ARCHITECTURE STREQUAL "arm64") +- add_definitions("--target=arm64-apple-macos10.5") +- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --target=arm64-apple-macos12.0.1") ++ add_definitions("--target=arm64-apple-macos11") ++ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --target=arm64-apple-macos11") + else() + # to be compatible back to Mac OS X 10.7 + if (IQTREE_FLAGS MATCHES "oldmac") + add_definitions("-mmacosx-version-min=10.5") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -mmacosx-version-min=10.5") + else() +- add_definitions("--target=x86_64-apple-macos10.7") +- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --target=x86_64-apple-macos10.7") ++ add_definitions("--target=x86_64-apple-macos10.13") ++ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --target=x86_64-apple-macos10.13") + endif() + endif() + SET(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES}) From add58a8a407bcd184aa6a23058dadf991869090b Mon Sep 17 00:00:00 2001 From: Edmund Miller <20095261+edmundmiller@users.noreply.github.com> Date: Wed, 24 Jul 2024 09:21:13 -0500 Subject: [PATCH 0532/1589] Static link NARFMAP (#49518) * build: Add STATIC=1 * build: Add LD Library path * build: Lock down boost version to have static files * chore: Bump build number --- recipes/narfmap/build.sh | 2 ++ recipes/narfmap/meta.yaml | 12 +++++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/recipes/narfmap/build.sh b/recipes/narfmap/build.sh index 99c92de8a6f32..f48b3d6bd2db5 100644 --- a/recipes/narfmap/build.sh +++ b/recipes/narfmap/build.sh @@ -3,6 +3,8 @@ export BOOST_INCLUDE_DIR="${PREFIX}/include" export BOOST_LIBRARY_DIR="${PREFIX}/lib" export HAS_GTEST=0 +export LD_LIBRARY_PATH=${PREFIX}/lib +export STATIC=1 # fix build number in config sed -i.bak 's/VERSION_STRING.*/VERSION_STRING="${PKG_VERSION}"/' config.mk diff --git a/recipes/narfmap/meta.yaml b/recipes/narfmap/meta.yaml index ed77a73e4c577..5db049e65b13a 100644 --- a/recipes/narfmap/meta.yaml +++ b/recipes/narfmap/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 2 + number: 3 skip: True # [osx] run_exports: - {{ pin_subpackage("narfmap", max_pin="x") }} @@ -23,12 +23,14 @@ requirements: - {{ compiler('cxx') }} host: - zlib - - boost - - boost-cpp + # Last version of conda-forge::boost that included static files (.a) + - boost >=1.69, <=1.71 + - boost-cpp >=1.69, <=1.71 # last version to have static libs run: - zlib - - boost - - boost-cpp + # Last version of conda-forge::boost that included static files (.a) + - boost >=1.69, <=1.71 + - boost-cpp >=1.69, <=1.71 # last version to have static libs test: commands: From ee37e0efadf4a191c5cdb808614cb76c2345960b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 24 Jul 2024 10:35:51 -0400 Subject: [PATCH 0533/1589] Update elastic-blast to 1.3.1 (#49515) * Update elastic-blast to 1.3.1 * Get source distribution from pypi, removed version patch --------- Co-authored-by: Greg Boratyn --- recipes/elastic-blast/meta.yaml | 10 ++++------ recipes/elastic-blast/version.patch | 9 --------- 2 files changed, 4 insertions(+), 15 deletions(-) delete mode 100644 recipes/elastic-blast/version.patch diff --git a/recipes/elastic-blast/meta.yaml b/recipes/elastic-blast/meta.yaml index edd911e78d3f9..b573d8e789933 100644 --- a/recipes/elastic-blast/meta.yaml +++ b/recipes/elastic-blast/meta.yaml @@ -1,18 +1,16 @@ {% set name = "elastic-blast" %} -{% set version = "1.3.0" %} +{% set version = "1.3.1" %} package: name: {{ name }} version: {{ version }} source: - url: https://github.com/ncbi/elastic-blast/archive/refs/tags/{{ version }}.tar.gz - sha256: 1ac45f41430078de0fa89733079f5ba7147e7c97719ff6f856979b4b5661a52c - patches: - - version.patch + url: https://files.pythonhosted.org/packages/95/5e/00375acbe2a0c666c8643cbbf9c5c7d5ed6c74eea80767f7d4a3f05ffda9/elastic_blast-{{ version }}.tar.gz + sha256: ed64887dedfc1da109ea1ddb05e96c0e0268e6a372656f8412a7bac973e6e31c build: - number: 1 + number: 0 noarch: python script: {{ PYTHON }} -m pip install . -vvv run_exports: diff --git a/recipes/elastic-blast/version.patch b/recipes/elastic-blast/version.patch deleted file mode 100644 index d4b678a46142f..0000000000000 --- a/recipes/elastic-blast/version.patch +++ /dev/null @@ -1,9 +0,0 @@ ---- a/setup.cfg -+++ b/setup.cfg -@@ -50,4 +50,5 @@ data_files = - Makefile = Makefile - - [auto-version] --type = git-pep440 -+type = fixed -+value = 1.3.0 From 2ef334387bb7124cd91cd2f416da7f555b86931e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 24 Jul 2024 11:26:54 -0400 Subject: [PATCH 0534/1589] Update pybiolib to 1.1.2244 (#49519) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index d599c7b7c2c13..2ecfc649d42a0 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.1.2236" %} +{% set version = "1.1.2244" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: e4e87e11d48de73b311b099a4307c258e6e38c8901dd2d9d1a82d3c035ca5718 + sha256: af57cacff6cbf4c54c70b308d0c3a48757285795c5983f7e596437f9981ba62f build: noarch: python From 9f7a73bed633972689383cc74e620a6feea13dec Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 24 Jul 2024 11:27:01 -0400 Subject: [PATCH 0535/1589] Update taxmyphage to 0.3.0 (#49516) --- recipes/taxmyphage/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/taxmyphage/meta.yaml b/recipes/taxmyphage/meta.yaml index fac201dd375df..c0e805bc104fa 100644 --- a/recipes/taxmyphage/meta.yaml +++ b/recipes/taxmyphage/meta.yaml @@ -1,5 +1,5 @@ {% set name = "taxmyphage" %} -{% set version = "0.2.9" %} +{% set version = "0.3.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/taxmyphage-{{ version }}.tar.gz - sha256: 53208a3490d4c6ca0dab9b762ab0c9c609dcff2489926e3659277680fb4ef6b6 + sha256: 821cb48a758e1587401b1eb48029c68cb3411f6240e87723b8c5aff5f28e6212 build: entry_points: From da6b2fe5bfb22d5d55225922edbcc77c43c80503 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 24 Jul 2024 11:38:00 -0400 Subject: [PATCH 0536/1589] Update amdirt to 1.6.2 (#49524) --- recipes/amdirt/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/amdirt/meta.yaml b/recipes/amdirt/meta.yaml index 7969b929a6ad4..22f2028220053 100644 --- a/recipes/amdirt/meta.yaml +++ b/recipes/amdirt/meta.yaml @@ -1,5 +1,5 @@ {% set name = "amdirt" %} -{% set version = "1.6.1" %} +{% set version = "1.6.2" %} package: name: {{ name|lower }} @@ -7,14 +7,14 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/AMDirT-{{ version }}.tar.gz - sha256: dbeb4f50972ad2c01aeb3221d0a8bd35e1cb7bf45418dd913fa45fa1c2c9050c + sha256: 9e7ac732ac9faca5900b18c42d2fee9528081d97614f629ae81c7e1052aac46e build: entry_points: - AMDirT = AMDirT.cli:cli noarch: python script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv - number: 1 + number: 0 run_exports: - {{ pin_subpackage("amdirt", max_pin="x") }} From bbb17d8680329030919ff5154d15415b5310f231 Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Wed, 24 Jul 2024 11:57:07 -0400 Subject: [PATCH 0537/1589] khmer: fix build failure formatting (#49521) --- recipes/khmer/build_failure.linux-64.yaml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/recipes/khmer/build_failure.linux-64.yaml b/recipes/khmer/build_failure.linux-64.yaml index 9afdfa5776715..9faa1c70a56c4 100644 --- a/recipes/khmer/build_failure.linux-64.yaml +++ b/recipes/khmer/build_failure.linux-64.yaml @@ -1,17 +1,17 @@ recipe_sha: 27b4bbe98422ab7e905e27f1693fcc531b4fe44fc7ec6d8fd817fe958e90da78 # The hash of the recipe's meta.yaml at which this recipe failed to build. skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. log: |- -01:00:23 BIOCONDA INFO (OUT) /opt/conda/conda-bld/khmer_1721696148356/_build_env/bin/x86_64-conda-linux-gnu-cc -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include -fPIC -O2 -isystem /opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include -fdebug-prefix-map=/opt/conda/conda-bld/khmer_1721696148356/work=/usr/local/src/conda/khmer-3.0.0a3 -fdebug-prefix-map=/opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho=/usr/local/src/conda-prefix -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include -fPIC -DVERSION=3.0.0a3 -DSEQAN_HAS_BZIP2=1 -DSEQAN_HAS_ZLIB=1 -UNO_UNIQUE_RC -Iinclude -I. -Iinclude -Ithird-party/seqan/core/include -Ithird-party/smhasher -Ithird-party/cqf -Ithird-party/rollinghash -I/opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/python3.11 -c khmer/_oxli/graphs.cpp -o build/temp.linux-x86_64-cpython-311/khmer/_oxli/graphs.o -O3 -std=c++11 -fopenmp -01:00:23 BIOCONDA INFO (OUT) khmer/_oxli/graphs.cpp:196:12: fatal error: longintrepr.h: No such file or directory -01:00:23 BIOCONDA INFO (OUT) 196 | #include "longintrepr.h" -01:00:23 BIOCONDA INFO (OUT) | ^~~~~~~~~~~~~~~ -01:00:23 BIOCONDA INFO (OUT) compilation terminated. -01:00:23 BIOCONDA INFO (OUT) error: command '/opt/conda/conda-bld/khmer_1721696148356/_build_env/bin/x86_64-conda-linux-gnu-cc' failed with exit code 1 -01:00:24 BIOCONDA INFO (OUT) error: subprocess-exited-with-error -01:00:24 BIOCONDA INFO (OUT) -01:00:24 BIOCONDA INFO (OUT) × python setup.py bdist_wheel did not run successfully. -01:00:24 BIOCONDA INFO (OUT) │ exit code: 1 -01:00:24 BIOCONDA INFO (OUT) ╰─> See above for output. + 01:00:23 BIOCONDA INFO (OUT) /opt/conda/conda-bld/khmer_1721696148356/_build_env/bin/x86_64-conda-linux-gnu-cc -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include -fPIC -O2 -isystem /opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include -fdebug-prefix-map=/opt/conda/conda-bld/khmer_1721696148356/work=/usr/local/src/conda/khmer-3.0.0a3 -fdebug-prefix-map=/opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho=/usr/local/src/conda-prefix -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include -fPIC -DVERSION=3.0.0a3 -DSEQAN_HAS_BZIP2=1 -DSEQAN_HAS_ZLIB=1 -UNO_UNIQUE_RC -Iinclude -I. -Iinclude -Ithird-party/seqan/core/include -Ithird-party/smhasher -Ithird-party/cqf -Ithird-party/rollinghash -I/opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/python3.11 -c khmer/_oxli/graphs.cpp -o build/temp.linux-x86_64-cpython-311/khmer/_oxli/graphs.o -O3 -std=c++11 -fopenmp + 01:00:23 BIOCONDA INFO (OUT) khmer/_oxli/graphs.cpp:196:12: fatal error: longintrepr.h: No such file or directory + 01:00:23 BIOCONDA INFO (OUT) 196 | #include "longintrepr.h" + 01:00:23 BIOCONDA INFO (OUT) | ^~~~~~~~~~~~~~~ + 01:00:23 BIOCONDA INFO (OUT) compilation terminated. + 01:00:23 BIOCONDA INFO (OUT) error: command '/opt/conda/conda-bld/khmer_1721696148356/_build_env/bin/x86_64-conda-linux-gnu-cc' failed with exit code 1 + 01:00:24 BIOCONDA INFO (OUT) error: subprocess-exited-with-error + 01:00:24 BIOCONDA INFO (OUT) + 01:00:24 BIOCONDA INFO (OUT) python setup.py bdist_wheel did not run successfully. + 01:00:24 BIOCONDA INFO (OUT) │ exit code: 1 + 01:00:24 BIOCONDA INFO (OUT) ╰─> See above for output. reason: |- breaks in nightly build category: |- From b6800c49ce2413cefb81fc2688efa0044f38ec83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Plaza=20O=C3=B1ate?= <4588656+fplazaonate@users.noreply.github.com> Date: Wed, 24 Jul 2024 17:59:36 +0200 Subject: [PATCH 0538/1589] Add eskrim recipe (#49517) --- recipes/eskrim/meta.yaml | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 recipes/eskrim/meta.yaml diff --git a/recipes/eskrim/meta.yaml b/recipes/eskrim/meta.yaml new file mode 100644 index 0000000000000..6728087045e83 --- /dev/null +++ b/recipes/eskrim/meta.yaml @@ -0,0 +1,36 @@ +{% set name = "eskrim" %} +{% set version = "1.0.9" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/eskrim-{{ version }}.tar.gz + sha256: de2888bc281f4d2e7e66e1219cce0c1a193f82873ecb35e47e8882a31331b5dc + +build: + noarch: python + number: 0 + script: {{ PYTHON }} -m pip install . --no-deps -vv + run_exports: + - {{ pin_subpackage('eskrim', max_pin="x.x") }} + +requirements: + host: + - python >=3.12 + - poetry + run: + - python >=3.12 + - kmer-jellyfish >=2.3.1 +test: + commands: + - eskrim -h + +about: + home: https://forgemia.inra.fr/metagenopolis/eskrim + license: GPL-3.0-or-later + license_file: COPYING + summary: 'ESKRIM: EStimate with K-mers the RIchness in a Microbiome' + description: ESKRIM is a reference-free tool that compares microbial richness in shotgun metagenomic samples by counting k-mers + license_family: GPL3 From af09d1e7b861f6563944ddc40e6a885b87011adf Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 24 Jul 2024 12:29:03 -0400 Subject: [PATCH 0539/1589] Update hits to 0.4.3 (#49520) Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/hits/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/hits/meta.yaml b/recipes/hits/meta.yaml index 6012f79b190b9..76845592b805c 100644 --- a/recipes/hits/meta.yaml +++ b/recipes/hits/meta.yaml @@ -1,6 +1,6 @@ {% set name = "hits" %} -{% set version = "0.4.2" %} -{% set sha256 = "0e9bab5b353ca907b1c2c8d9d68724716210acc4d50fbaa4f20b6e25902f80dd" %} +{% set version = "0.4.3" %} +{% set sha256 = "a100289a2724f48ba1d95c430d56899d382208f6f5d35283488917b9d59b620a" %} package: name: {{ name|lower }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir --use-pep517 run_exports: - {{ pin_subpackage('hits', max_pin="x.x") }} From 12990abc095006f4f389208df2fb3e24e49a48a4 Mon Sep 17 00:00:00 2001 From: Cade Mirchandani Date: Wed, 24 Jul 2024 09:34:11 -0700 Subject: [PATCH 0540/1589] Update d4tools (#49499) * update d4tools to 3.10 * update url and shasum * clean up recipe * add gcc back * clean up recipe --------- Co-authored-by: mencian --- recipes/d4tools/build.sh | 14 ++++---------- recipes/d4tools/meta.yaml | 21 +++++++++++++-------- 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/recipes/d4tools/build.sh b/recipes/d4tools/build.sh index 3e230e2259342..aa736275faff8 100644 --- a/recipes/d4tools/build.sh +++ b/recipes/d4tools/build.sh @@ -1,11 +1,5 @@ -#!/bin/bash -e +#!/bin/bash -ex -set -x - -# TODO: Remove the following export when pinning is updated and we use -# {{ compiler('rust') }} in the recipe. -export \ - CARGO_NET_GIT_FETCH_WITH_CLI=true \ - CARGO_HOME="${BUILD_PREFIX}/.cargo" - -cargo install --verbose --path=d4tools --root ${PREFIX} +# build statically linked binary with Rust +RUST_BACKTRACE=1 +cargo install --verbose --path=d4tools --root "${PREFIX}" diff --git a/recipes/d4tools/meta.yaml b/recipes/d4tools/meta.yaml index 239cb6310566d..7fb61567b8afe 100644 --- a/recipes/d4tools/meta.yaml +++ b/recipes/d4tools/meta.yaml @@ -1,22 +1,24 @@ -{% set version = "0.3.8" %} +{% set version = "0.3.10" %} package: name: d4tools version: {{ version }} -build: - number: 1 - source: - url: https://github.com/38/d4-format/archive/refs/tags/d4tools-v{{ version }}.tar.gz - sha256: 2b1df781fd40e3e80b9e0871f2ebec53f1b57004baa96547e4d7912def011607 + url: https://github.com/38/d4-format/archive/refs/tags/v{{ version }}.tar.gz + sha256: d3fbe8f063ed1f89148ae0333abc1d5b955f499fc429254f83af464012678d33 + +build: + number: 0 + run_exports: + - {{ pin_subpackage('d4tools', max_pin="x.x") }} requirements: build: - {{ compiler('c') }} - {{ compiler('cxx') }} - - gcc #[not osx] - - rust >=1.30 + - {{ compiler('rust') }} + - gcc # [not osx] - clangdev - pkg-config - make @@ -31,8 +33,11 @@ test: about: home: https://github.com/38/d4-format license: MIT + license_family: MIT summary: | The D4 command line utility program + dev_url: https://github.com/38/d4-format + extra: recipe-maintainers: - haohou From 3d7c2373c799fa45516a3ee9f1d2b279cce2450c Mon Sep 17 00:00:00 2001 From: John Huddleston Date: Wed, 24 Jul 2024 11:05:22 -0700 Subject: [PATCH 0541/1589] Update augur to 25.2.0 (#49531) * Update augur to 25.2.0 * Add python-calamine to augur dependencies --------- Co-authored-by: BiocondaBot <47040946+BiocondaBot@users.noreply.github.com> --- recipes/augur/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/augur/meta.yaml b/recipes/augur/meta.yaml index 07fbe41c998c9..582384a73f4d2 100644 --- a/recipes/augur/meta.yaml +++ b/recipes/augur/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "25.1.1" %} +{% set version = "25.2.0" %} package: name: augur @@ -6,7 +6,7 @@ package: source: url: https://github.com/nextstrain/augur/releases/download/{{ version }}/nextstrain_augur-{{ version }}.tar.gz - sha256: 8374b0815ae4358cbb80892eb5205f6c7264ff5a9cd679f32edb3f3fcab682ef + sha256: 2869033bf551476859792e6fa442204dcd03c37e5a8a6239a19fe2da9e307248 build: number: 0 @@ -34,6 +34,7 @@ requirements: - packaging >=19.2 - pandas >=1.0.0,<2 - pyfastx >=1.0.0,<3 + - python-calamine >=0.2.0 - scipy >=1.0.0,<2 - treetime >=0.11.2,<0.12 - xopen[zstd] >=1.7.0,<3 From 5080fc581b0d65da37df698789b6e04c8846983b Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Wed, 24 Jul 2024 11:10:50 -0700 Subject: [PATCH 0542/1589] Bump ntsynt build - build for linux-aarch64 and osx-arm64 (#49525) --- recipes/ntsynt/meta.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/recipes/ntsynt/meta.yaml b/recipes/ntsynt/meta.yaml index 44809b03ae3c3..1229bf07bc8b3 100644 --- a/recipes/ntsynt/meta.yaml +++ b/recipes/ntsynt/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 71fa06c73481313518a504586b86a2a32cd49006ce6728b40eef0d455b9bb409 build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage("ntsynt", max_pin="x") }} @@ -47,3 +47,8 @@ about: license: GPL-3.0 license_file: LICENSE summary: 'Detecting multi-genome synteny blocks using minimizer graph mapping' + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From 009189ab6483b478f3c13e7d25731b61d9789477 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 24 Jul 2024 16:44:15 -0400 Subject: [PATCH 0543/1589] Update easypqp to 0.1.48 (#49537) --- recipes/easypqp/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/easypqp/meta.yaml b/recipes/easypqp/meta.yaml index 96d0824e74a1a..69f9dba6117d2 100644 --- a/recipes/easypqp/meta.yaml +++ b/recipes/easypqp/meta.yaml @@ -1,6 +1,6 @@ {% set name = "easypqp" %} -{% set version = "0.1.47" %} -{% set sha256 = "5018f2122e7d782c04e75bb48623069ec2be182e9fc477d909a1f98afc6f2b64" %} +{% set version = "0.1.48" %} +{% set sha256 = "417dd35c421d1d61cade8e6989777c6ef93823da6a53c1c2c540a0a2676a0db6" %} package: name: {{ name|lower }} From 0f4d4c7cbbfde822b5ce51fc3c24c8c5309036e9 Mon Sep 17 00:00:00 2001 From: Alan Collins <38288262+Alan-Collins@users.noreply.github.com> Date: Wed, 24 Jul 2024 16:45:42 -0400 Subject: [PATCH 0544/1589] Update el_gato to 1.18.0 (#49534) --- recipes/el_gato/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/el_gato/meta.yaml b/recipes/el_gato/meta.yaml index 7d299d85a9136..bdeb7c6eda601 100644 --- a/recipes/el_gato/meta.yaml +++ b/recipes/el_gato/meta.yaml @@ -1,6 +1,6 @@ {% set name = "el_gato" %} -{% set version = "1.15.2" %} -{% set hash = "ef930f7e0e2940f7d28820fbfc19b2262d1898c82d8699ca47dbc4c851eb11ad" %} +{% set version = "1.18.0" %} +{% set hash = "b00d812d047053823275e62d7f01ed88aaffa906471e073443bb18e85c905995" %} {% set user = "appliedbinf" %} package: @@ -30,6 +30,7 @@ requirements: - ispcr >=33.0 - nextflow - fpdf2 + - packaging test: commands: From df219c9f5390252d2a01b78764dc0630c5d029b8 Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Wed, 24 Jul 2024 13:46:41 -0700 Subject: [PATCH 0545/1589] Bump build for arcs - build for linux-aarch64 and osx-arm64 (#49533) --- recipes/arcs/build.sh | 3 ++- recipes/arcs/meta.yaml | 8 +++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/recipes/arcs/build.sh b/recipes/arcs/build.sh index fcbd111922e56..e79a8c1f15f2b 100644 --- a/recipes/arcs/build.sh +++ b/recipes/arcs/build.sh @@ -1,9 +1,10 @@ #!/bin/sh + if [[ ${target_platform} =~ osx.* ]]; then ./configure --prefix=${PREFIX} CXXFLAGS="${CXXFLAGS} -Wno-error=unused-result -Wno-error=unknown-warning-option" else - ./configure --prefix=${PREFIX} CXXFLAGS="${CXXFLAGS} -Wno-error=unused-result" + ./configure --prefix=${PREFIX} CXXFLAGS="${CXXFLAGS} -Wno-error=unused-result -fopenmp" fi make install diff --git a/recipes/arcs/meta.yaml b/recipes/arcs/meta.yaml index 957cdd792cc43..a9d5122b1c4c3 100644 --- a/recipes/arcs/meta.yaml +++ b/recipes/arcs/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('arcs', max_pin="x") }} @@ -22,6 +22,7 @@ requirements: - sparsehash - zlib - llvm-openmp # [osx] + - libgomp # [linux] - btllib run: - llvm-openmp # [osx] @@ -38,3 +39,8 @@ about: license_family: GPL3 license_file: '{{ environ["RECIPE_DIR"] }}/LICENSE' summary: Scaffolding genome sequence assemblies using linked or long reads + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 \ No newline at end of file From 29fce71040184bbd22838c7e4a9c9ee07f81ae61 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 24 Jul 2024 17:48:15 -0400 Subject: [PATCH 0546/1589] Update aletsch to 1.1.2 (#49539) --- recipes/aletsch/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/aletsch/meta.yaml b/recipes/aletsch/meta.yaml index b29140cf38271..4e9c236f55485 100644 --- a/recipes/aletsch/meta.yaml +++ b/recipes/aletsch/meta.yaml @@ -1,5 +1,5 @@ {% set name = "aletsch" %} -{% set version = "1.1.1" %} +{% set version = "1.1.2" %} package: name: "{{ name }}" @@ -7,10 +7,10 @@ package: source: url: "https://github.com/Shao-Group/aletsch/releases/download/v{{ version }}/aletsch-{{ version }}.tar.gz" - sha256: "3537e90213baa7ea132b1648f4687780537999f3796711cf7398f9168d72f027" + sha256: "b081cfcbd2f232dcddab4f9c6ce11f15f41e4319e1f977dd955cca240748d4b5" build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('aletsch', max_pin="x") }} From e566e586089de4664afc5535fdbd844ccbbb76f2 Mon Sep 17 00:00:00 2001 From: Samuel Aroney <41124903+AroneyS@users.noreply.github.com> Date: Thu, 25 Jul 2024 09:59:13 +1000 Subject: [PATCH 0547/1589] revert pin removal for binchicken (#49542) --- recipes/binchicken/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/binchicken/meta.yaml b/recipes/binchicken/meta.yaml index 9989b66e49e5f..ec608306bb9e9 100644 --- a/recipes/binchicken/meta.yaml +++ b/recipes/binchicken/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 noarch: python script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" entry_points: @@ -25,14 +25,14 @@ requirements: - python >=3.10 - pip run: - - python >=3.10 + - python =3.10.* - snakemake-minimal >=6.0.5,<8 - mamba - networkx - bird_tool_utils_python - extern - ruamel.yaml >=0.15.99 - - polars + - polars =0.20.31 - pigz - pyarrow - parallel From caa7c7f36f79b4088ef7734ab53717fd52118388 Mon Sep 17 00:00:00 2001 From: Samuel Aroney <41124903+AroneyS@users.noreply.github.com> Date: Thu, 25 Jul 2024 13:41:47 +1000 Subject: [PATCH 0548/1589] update binchicken to v0.12.1 (#49547) --- recipes/binchicken/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/binchicken/meta.yaml b/recipes/binchicken/meta.yaml index ec608306bb9e9..c19d5f3a24cf6 100644 --- a/recipes/binchicken/meta.yaml +++ b/recipes/binchicken/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "0.12.0" %} +{% set version = "0.12.1" %} {% set name = "binchicken" %} -{% set sha256 = "3210e8ddcceeb77c18d04a16686d27b47018d229e5105c3d38af92a5f228f2d4" %} +{% set sha256 = "99466aafa8037f683f02c5c68ffc689ba9137709e130cf434cd0d4b8a829a67f" %} package: name: {{ name }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 noarch: python script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" entry_points: From 14dbe65976f8aec596296d2c0df799d01c79495c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 25 Jul 2024 01:56:44 -0400 Subject: [PATCH 0549/1589] Update unicycler to 0.5.1 (#49551) --- recipes/unicycler/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/unicycler/meta.yaml b/recipes/unicycler/meta.yaml index 15496f2541cc7..4fbe7d2e5653e 100644 --- a/recipes/unicycler/meta.yaml +++ b/recipes/unicycler/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.5.0" %} -{% set sha256 = "84a8709c9f2e624225410af702d779ffb0cb06f7c22c20e1f01b989945e08a47" %} +{% set version = "0.5.1" %} +{% set sha256 = "c6b04923363719d7672c8c0b39a357712328ab8471175a2f172effbd9584448e" %} package: name: unicycler @@ -13,7 +13,7 @@ source: - misc.py.patch build: - number: 5 + number: 0 skip: True # [osx] run_exports: - {{ pin_subpackage('unicycler', max_pin='x.x') }} From 71669f6df89e75e58b69993a7d2942d6e927b173 Mon Sep 17 00:00:00 2001 From: Kristina Gomoryova Date: Thu, 25 Jul 2024 09:52:40 +0200 Subject: [PATCH 0550/1589] Add recipe for rcx-tk (#49514) * Initial commit of rcx-tk package * source url adjusted * home section updated * run_exports added * source url adjusted * revert url change * replaced openpyxl with pyxlsx * Helge Hecht added as recipe maintainer --- recipes/rcx-tk/meta.yaml | 52 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 recipes/rcx-tk/meta.yaml diff --git a/recipes/rcx-tk/meta.yaml b/recipes/rcx-tk/meta.yaml new file mode 100644 index 0000000000000..e185552856d94 --- /dev/null +++ b/recipes/rcx-tk/meta.yaml @@ -0,0 +1,52 @@ +{% set name = "rcx-tk" %} +{% set version = "0.1.0" %} + +package: + name: rcx-tk + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/rcx_tk-{{ version }}.tar.gz + sha256: 78eb18c1b90289b9e39d2451cb444ded39134fa9e56744cf692839e7835ddb04 + +build: + entry_points: + - rcx_tk = rcx_tk.__main__:main + run_exports: + - {{ pin_subpackage("rcx-tk", max_pin="x.x") }} + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + +requirements: + host: + - python >=3.11,<4.0 + - poetry-core + - pip + run: + - python >=3.11.0,<4.0.0 + - pandas >=2.2.2,<3.0.0 + - pyxlsx >=1.1.3,<2.0.0 + - pandas-stubs >=2.2.2,<3.0.0 + - mypy >=1.10.1,<2.0.0 + - click >=8.1.7,<9.0.0 + +test: + imports: + - rcx_tk + commands: + - pip check + - rcx_tk --help + requires: + - pip + +about: + home: https://github.com/RECETOX/rcx-tk + summary: This package adjusts and cleans the metadata file provided by a user. + license: MIT + license_file: LICENSE + +extra: + recipe-maintainers: + - KristinaGomoryova + - hechth From 223afa87493c1595dbdadacd2cf8c43ca561eaae Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 25 Jul 2024 08:56:14 -0400 Subject: [PATCH 0551/1589] Update locityper to 0.16.5 (#49555) --- recipes/locityper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/locityper/meta.yaml b/recipes/locityper/meta.yaml index c100e4f7eb39d..ffdfcf067f992 100644 --- a/recipes/locityper/meta.yaml +++ b/recipes/locityper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "locityper" %} -{% set version = "0.16.0" %} +{% set version = "0.16.5" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/tprodanov/locityper/archive/refs/tags/v{{ version }}.tar.gz - sha256: f5594bf0d361df7ea5736e882303f8ec78b77e3af734dd78d0b05e63dc2dca5f + sha256: 59324bd91546f199838e328eb1b9fdcb7f9bebc2125f8b018812fc90836b9bd0 build: number: 0 From d59edb63ef3924b749207429e214d3dc428bb690 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 25 Jul 2024 08:56:41 -0400 Subject: [PATCH 0552/1589] Update micom to 0.36.0 (#49552) --- recipes/micom/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/micom/meta.yaml b/recipes/micom/meta.yaml index 13e69607e3381..9f057b17a3d3b 100644 --- a/recipes/micom/meta.yaml +++ b/recipes/micom/meta.yaml @@ -1,5 +1,5 @@ {% set name = "micom" %} -{% set version = "0.35.0" %} +{% set version = "0.36.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 0df2fbb3282c10e1de6522bf104e39d9540c1b1a92c63cc6882bee9980e61ae3 + sha256: bde5f8ab886a9294e11ccb2be63d399e2baffadb9775ef96182e88966aa37e34 build: number: 0 From b4e3186a6a647f6a087440e4c40c9d750f7b6093 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 25 Jul 2024 08:57:13 -0400 Subject: [PATCH 0553/1589] Update mycotools to 0.31.44 (#49553) --- recipes/mycotools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mycotools/meta.yaml b/recipes/mycotools/meta.yaml index 9ba6be3cd58d1..76525f003da4e 100644 --- a/recipes/mycotools/meta.yaml +++ b/recipes/mycotools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mycotools" %} -{% set version = "0.31.43" %} +{% set version = "0.31.44" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mycotools-{{ version }}.tar.gz - sha256: 1df89c05a89cfc82fa1d94f3e3a2f82cc0c4b4f7373ab3063f0f804ad3413914 + sha256: 48eb2b467fffbf8e4c681378b3a17d2ca127e0ed122dc41d8f2ef9b52984cc29 build: entry_points: From 01215da3c6ec0942c10ef45de7afd454a313d410 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 25 Jul 2024 08:58:37 -0400 Subject: [PATCH 0554/1589] Update gencove to 2.18.2 (#49540) --- recipes/gencove/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gencove/meta.yaml b/recipes/gencove/meta.yaml index 820f2fee7f560..845f186c29776 100644 --- a/recipes/gencove/meta.yaml +++ b/recipes/gencove/meta.yaml @@ -1,6 +1,6 @@ {% set name = "gencove" %} -{% set version = "2.18.1" %} -{% set sha256 = "3e9cd5172ba7b72017685de0e6f141584177f74647746ab964f686f5c6470e8b" %} +{% set version = "2.18.2" %} +{% set sha256 = "80ef5a41a5c47ee14d5ee7296480491016bf9e55dc39b8c3f1eb7454ebc400e2" %} package: name: {{ name }} From 7c2ac7e38808ec94188c852294d4bb93e68915d1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 25 Jul 2024 08:59:22 -0400 Subject: [PATCH 0555/1589] Update morpheus to 290 (#49546) --- recipes/morpheus/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/morpheus/meta.yaml b/recipes/morpheus/meta.yaml index f4230238a4989..c71b01f970812 100644 --- a/recipes/morpheus/meta.yaml +++ b/recipes/morpheus/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "288" %} -{% set sha256 = "05f2f502e591d349006eabd23f4c6a3933608d8ad1a2cfa898a46afd3245268a" %} +{% set version = "290" %} +{% set sha256 = "ca138b718debdf131d8b48386c5873b4d3c03f8457179991f814cb5278577609" %} package: name: morpheus From 38adfc8e329d695115ebe7cba9431530458b6a7c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 25 Jul 2024 08:59:52 -0400 Subject: [PATCH 0556/1589] Update pygcap to 1.2.3 (#49548) --- recipes/pygcap/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pygcap/meta.yaml b/recipes/pygcap/meta.yaml index eb274b6fc0600..6a2c7eae82282 100644 --- a/recipes/pygcap/meta.yaml +++ b/recipes/pygcap/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pygcap" %} -{% set version = "1.2.2" %} +{% set version = "1.2.3" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pygcap-{{ version }}.tar.gz - sha256: ef1ee2187e2ba0c5a847b51ae2f15023e45faeb6bdec45de8358d9f9c37ccd13 + sha256: f9f96bff4cfa880746f9d549f58ac4c50758544c7f91fafffb680e654363d477 build: number: 0 From 1b4bb054198e559a939f82bb77e6f3470150d68c Mon Sep 17 00:00:00 2001 From: Vivek Bhardwaj Date: Thu, 25 Jul 2024 15:06:46 +0200 Subject: [PATCH 0557/1589] update sincei (#49535) * add torch * build bump * fix pytorch --- recipes/sincei/meta.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/recipes/sincei/meta.yaml b/recipes/sincei/meta.yaml index 046e0abc67dea..1c8dce08e2904 100644 --- a/recipes/sincei/meta.yaml +++ b/recipes/sincei/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 04d60233a9cfadc32601b5ef79b872bc6e08c51bd6909e62a22a9b37ecabd213 build: - number: 0 + number: 1 noarch: python entry_points: - sincei = sincei.sincei:main @@ -29,11 +29,14 @@ requirements: - pandas - deeptools - scanpy + - anndata - loompy - gensim - networkx - leidenalg - python-igraph + - session-info + - pytorch - importlib-metadata test: From 4d02567fc6a4464f5a2395551a4e30a547d04bf7 Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Thu, 25 Jul 2024 06:07:53 -0700 Subject: [PATCH 0558/1589] Bump build for links - builds for linux-aarch64 and osx-arm64 (#49538) * Bump build for links - builds for linux-aarch64 and osx-arm64 * Add run_exports section --- recipes/links/meta.yaml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/recipes/links/meta.yaml b/recipes/links/meta.yaml index 9474248425e4c..4401e28541db5 100644 --- a/recipes/links/meta.yaml +++ b/recipes/links/meta.yaml @@ -10,7 +10,9 @@ source: sha256: {{ sha256 }} build: - number: 4 + number: 5 + run_exports: + - {{ pin_subpackage("links", max_pin="x") }} requirements: build: @@ -29,3 +31,7 @@ about: license: GPLv3 license_file: '{{ environ["RECIPE_DIR"] }}/LICENSE' +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 \ No newline at end of file From 40c678d29a97aae41ef3ef01ac305dd281fe46f7 Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Thu, 25 Jul 2024 06:17:43 -0700 Subject: [PATCH 0559/1589] Update nthits build - build for linux-aarch64 and osx-arm64 (#49541) --- recipes/nthits/meta.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/recipes/nthits/meta.yaml b/recipes/nthits/meta.yaml index ef933a0b68fd5..2e1d256d54b0a 100644 --- a/recipes/nthits/meta.yaml +++ b/recipes/nthits/meta.yaml @@ -10,7 +10,7 @@ source: sha256: ee50e825f2c99f859031fa7e5bfe4cbbc71357108c32863e31b40b950cc077b2 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('nthits', max_pin="x") }} @@ -38,3 +38,8 @@ about: license_family: MIT license_file: LICENSE summary: ntHits is a tool for efficiently counting and filtering k-mers based on their frequencies + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 \ No newline at end of file From c94eaa3d4bf179e392f7f6263be6e6554a9b31cd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 25 Jul 2024 10:47:17 -0400 Subject: [PATCH 0560/1589] Update locityper to 0.16.6 (#49567) --- recipes/locityper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/locityper/meta.yaml b/recipes/locityper/meta.yaml index ffdfcf067f992..90326e88bd02d 100644 --- a/recipes/locityper/meta.yaml +++ b/recipes/locityper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "locityper" %} -{% set version = "0.16.5" %} +{% set version = "0.16.6" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/tprodanov/locityper/archive/refs/tags/v{{ version }}.tar.gz - sha256: 59324bd91546f199838e328eb1b9fdcb7f9bebc2125f8b018812fc90836b9bd0 + sha256: 3be692fd0799e26d6a1b17fadd415ea48d0a98df06df84a9a8184ea577645cfe build: number: 0 From 6fcaa32d840f35b9d6d02bd8a7085e46f99b4027 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 25 Jul 2024 10:55:12 -0400 Subject: [PATCH 0561/1589] Update seqnado to 0.5.3 (#49557) --- recipes/seqnado/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/seqnado/meta.yaml b/recipes/seqnado/meta.yaml index 1adccb88dc283..ec3b91250d2bc 100644 --- a/recipes/seqnado/meta.yaml +++ b/recipes/seqnado/meta.yaml @@ -1,5 +1,5 @@ {% set name = "seqnado" %} -{% set version = "0.5.2" %} +{% set version = "0.5.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/seqnado-{{ version }}.tar.gz - sha256: dde020e7856c521d0bbb5a7d291765ec30315dd4258228acb4e74f82efd3faa1 + sha256: a8614656b340450dd304517cd841a3366d20e65a7d91d601fb11b6f07ced1611 build: From f4ae4aa0891368080f69be3d64a454ebfd72367b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 25 Jul 2024 10:59:39 -0400 Subject: [PATCH 0562/1589] Update pychopper to 2.7.10 (#49558) --- recipes/pychopper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pychopper/meta.yaml b/recipes/pychopper/meta.yaml index d747c663fb446..197ddbe202370 100644 --- a/recipes/pychopper/meta.yaml +++ b/recipes/pychopper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pychopper" %} -{% set version = "2.7.9" %} +{% set version = "2.7.10" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://github.com/epi2me-labs/pychopper/archive/v{{ version }}.tar.gz - sha256: 630d644fbafc3199609e111c1522dc47864c1bfde5cc9682d796974acb97ac70 + sha256: 99be3fd0f3e051868b7fcfa1dd88a12470e2ed0c54c326af95eba83311966595 build: noarch: python From 5aa91b9761209b7e6938dfb27d224ded4968681b Mon Sep 17 00:00:00 2001 From: Pieter Moris <13552343+pmoris@users.noreply.github.com> Date: Thu, 25 Jul 2024 17:01:55 +0200 Subject: [PATCH 0563/1589] Add recipe for dapcy (#49564) --- recipes/dapcy/meta.yaml | 55 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 recipes/dapcy/meta.yaml diff --git a/recipes/dapcy/meta.yaml b/recipes/dapcy/meta.yaml new file mode 100644 index 0000000000000..42b3650aeadb4 --- /dev/null +++ b/recipes/dapcy/meta.yaml @@ -0,0 +1,55 @@ +{% set name = "dapcy" %} +{% set version = "0.1.1" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/dapcy-{{ version }}.tar.gz + sha256: b62440ea8523f05597cd0a889b9eafb68192bd4e481048e859b772ac654ccb93 + +build: + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + run_exports: + - {{ pin_subpackage('dapcy', max_pin="x.x") }} + +requirements: + host: + - python >=3.6 + - pip + run: + - python >=3.6 + - bed-reader + - joblib + - matplotlib-base + - numpy + - pandas + - scikit-learn + - scipy + - seaborn + - sgkit + - aiohttp + - cyvcf2 + - requests + - yarl + +test: + imports: + - dapcy + commands: + - pip check + requires: + - pip + +about: + home: https://gitlab.com/uhasselt-bioinfo/dapcy + summary: An sklearn implementation of discriminant analysis of principal components (DAPC) for population genetics + license: MIT + license_file: LICENSE + +extra: + recipe-maintainers: + - pmoris From 09f1d3f911629857f3c9ac4a92a4e07877ca671d Mon Sep 17 00:00:00 2001 From: Kristina Gomoryova Date: Thu, 25 Jul 2024 18:38:31 +0200 Subject: [PATCH 0564/1589] Add MFAssignR (#49568) * initial commit of the MFAssignR * run_exports added * pin_subpackage corrected * run_exports corrected * Update recipes/r-mfassignr/meta.yaml * Update recipes/r-mfassignr/meta.yaml --------- Co-authored-by: Helge Hecht --- recipes/r-mfassignr/meta.yaml | 56 +++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 recipes/r-mfassignr/meta.yaml diff --git a/recipes/r-mfassignr/meta.yaml b/recipes/r-mfassignr/meta.yaml new file mode 100644 index 0000000000000..c2d1902a1d541 --- /dev/null +++ b/recipes/r-mfassignr/meta.yaml @@ -0,0 +1,56 @@ +{% set name = "mfassignr" %} +{% set version = "1.0.3" %} +{% set github = "https://github.com/RECETOX" %} + +package: + name: "r-{{ name|lower }}" + version: "{{ version }}" + +source: + url: "{{ github }}/MFAssignR/archive/refs/tags/v{{ version }}.tar.gz" + sha256: facb0d53f39d25f7c8ea6a04d87d218a4bf3e72c4b0257f1c028f40f99962a22 + +build: + number: 0 + noarch: generic + rpaths: + - lib/R/lib/ + - lib/ + script: R CMD INSTALL --build . + run_exports: + - {{ pin_subpackage("r-mfassignr", max_pin="x.x") }} + +requirements: + host: + - r-base >=3.4.1 + - r-dplyr >=0.7.6 + - r-tidyr >=0.8.1 + - r-ggplot2 >=3.0.0 + - r-colorRamps >=2.3 + run: + - r-base >=3.4.1 + - r-dplyr >=0.7.6 + - r-tidyr >=0.8.1 + - r-ggplot2 >=3.0.0 + - r-colorRamps >=2.3 + +test: + commands: + - $R -e "library('MFAssignR')" + +about: + home: "{{ github }}/MFAssignR" + license: GPL-3.0-or-later + license_file: LICENSE.md + summary: | + The MFAssignR package was designed for multi-element molecular formula (MF) + assignment of ultrahigh resolution mass spectrometry measurements. + A number of tools for internal mass recalibration, MF assignment, signal-to-noise evaluation, + and unambiguous formula selections are provided. + +extra: + recipe-maintainers: + - hechth + - KristinaGomoryova + container: + extended-base: True From 681ca2f220701a510c6793ea7fa5429e76fca843 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 25 Jul 2024 12:56:09 -0400 Subject: [PATCH 0565/1589] Update lusstr to 0.10 (#49523) * Update lusstr to 0.10 * add streamlit * Add streamlit_option_menu dependency * Fix version pin --------- Co-authored-by: mencian Co-authored-by: Daniel Standage Co-authored-by: Alicia A. Evans <108547992+aliciaaevans@users.noreply.github.com> Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/lusstr/meta.yaml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/recipes/lusstr/meta.yaml b/recipes/lusstr/meta.yaml index 58fb667975528..ae7c92a256713 100644 --- a/recipes/lusstr/meta.yaml +++ b/recipes/lusstr/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.9" %} -{% set sha256 = "abb32bac6d4fd86fbbcd630ef2b254ff66a5658bb3ef6efeb014c7304118561e" %} +{% set version = "0.10" %} +{% set sha256 = "cd4006c8a54249feefb44d26799557d029a8e10f262bad887de11491cf572844" %} package: name: lusstr @@ -13,7 +13,7 @@ build: noarch: python entry_points: - lusstr = lusSTR.cli:main - script: {{ PYTHON }} -m pip install --no-deps --no-build-isolation . -vvv + script: {{ PYTHON }} -m pip install --no-deps --no-build-isolation --no-cache-dir . -vvv number: 0 run_exports: - {{ pin_subpackage('lusstr', max_pin="x.x") }} @@ -30,6 +30,9 @@ requirements: - snakemake-minimal >=7.22.0,<8.0 - pyyaml >=6.0 - matplotlib-base >=3.5.3 + - numpy ==1.26.4 + - streamlit >=1.31.0 + - streamlit_option_menu >=0.3.13 test: imports: From 6cf4f6708690a4cfa86a5f6671caf138dad89053 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 25 Jul 2024 21:54:33 +0300 Subject: [PATCH 0566/1589] centrosome: add linux-aarch64 support (#49562) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/centrosome/meta.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/recipes/centrosome/meta.yaml b/recipes/centrosome/meta.yaml index 5bc0f3c0dafd2..fadf6ee90961e 100644 --- a/recipes/centrosome/meta.yaml +++ b/recipes/centrosome/meta.yaml @@ -10,8 +10,7 @@ source: sha256: 889ce9f79857cdf1d0d04d8d19dd749dfae4a077915fadec223717d5ddcb47fc build: - number: 0 - skip: True # [py<30] + number: 1 script: CFLAGS="$CFLAGS -Wno-error=int-conversion" python -m pip install --no-deps --ignore-installed . -vv run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} @@ -44,3 +43,8 @@ about: license: BSD 3 license_file: LICENSE summary: 'An open source image processing library. Dependency for CellProfiler' + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 \ No newline at end of file From e7b38a6f3b16a7f57fc3ebfc8a7dcab354644f6d Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Thu, 25 Jul 2024 11:56:36 -0700 Subject: [PATCH 0567/1589] Update ntcard build - builds for linux-aarch64 and osx-arm64 (#49570) * Update ntcard build - builds for linux-aarch64 and osx-arm64 * Add run_exports * Add m4 * Ignore erroneous warning * Add to CXX flags --- recipes/ntcard/build.sh | 3 +++ recipes/ntcard/meta.yaml | 12 ++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/recipes/ntcard/build.sh b/recipes/ntcard/build.sh index c23c0bf12130c..5f60fef2b0369 100644 --- a/recipes/ntcard/build.sh +++ b/recipes/ntcard/build.sh @@ -3,6 +3,9 @@ export CFLAGS="-I$PREFIX/include" export LDFLAGS="-L$PREFIX/lib" export CPATH=${PREFIX}/include +export CXXFLAGS="$CXXFLAGS -Wno-array-bounds" + +export M4="$BUILD_PREFIX/bin/m4" sh autogen.sh ./configure --prefix=$PREFIX diff --git a/recipes/ntcard/meta.yaml b/recipes/ntcard/meta.yaml index d75ebcdcca625..06daf06500ea3 100644 --- a/recipes/ntcard/meta.yaml +++ b/recipes/ntcard/meta.yaml @@ -6,7 +6,9 @@ package: version: {{ version }} build: - number: 4 + number: 5 + run_exports: + - {{ pin_subpackage('ntcard', max_pin="x") }} source: url: https://github.com/bcgsc/ntCard/releases/download/{{ version }}/ntcard-{{ version }}.tar.gz @@ -19,12 +21,13 @@ requirements: - automake - autoconf - llvm-openmp # [osx] + - m4 host: - perl - zlib run: - zlib - - llvm-openmp + - llvm-openmp # [osx] test: commands: @@ -35,3 +38,8 @@ about: license: MIT license_file: LICENSE summary: 'Estimating k-mer coverage histogram of genomics data' + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 \ No newline at end of file From f4c74a420588b522fee50087e8d1de3ad1f6d1c5 Mon Sep 17 00:00:00 2001 From: xuxif <2623716586@qq.com> Date: Fri, 26 Jul 2024 12:31:47 +0800 Subject: [PATCH 0568/1589] Update DeepMEI (#49563) --- recipes/deepmei/build.sh | 5 ++++- recipes/deepmei/meta.yaml | 21 ++++++++++++--------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/recipes/deepmei/build.sh b/recipes/deepmei/build.sh index 1b8b9158061ef..b6799d5311c31 100644 --- a/recipes/deepmei/build.sh +++ b/recipes/deepmei/build.sh @@ -1,4 +1,7 @@ +#!/usr/bin/env bash + +set -xe + mkdir -p $PREFIX/bin -ls $PREFIX/bin/ cp -r * $PREFIX/bin/ chmod +x $PREFIX/bin/* diff --git a/recipes/deepmei/meta.yaml b/recipes/deepmei/meta.yaml index 5176e0a8ea618..1890bf99d6fc9 100644 --- a/recipes/deepmei/meta.yaml +++ b/recipes/deepmei/meta.yaml @@ -1,13 +1,15 @@ +{% set version = "1.6.24" %} + package: name: deepmei - version: 1.6.24 + version: {{ version }} source: - url: https://raw.githubusercontent.com/kanglu123/deepmei/deepmei-v1.6.24/deepmei_update_v1.6.24.2.tar.gz + url: https://raw.githubusercontent.com/kanglu123/deepmei/deepmei-v{{ version }}/deepmei_update_v{{ version }}.2.tar.gz sha256: 9a0fa0905776924969907cd71dfdf47e9e7afa8fc0ca277e30b2bf222efee3fd build: noarch: generic - number: 0 + number: 1 run_exports: - {{ pin_subpackage('deepmei', max_pin="x.x") }} @@ -16,20 +18,21 @@ requirements: # List dependencies here. e.g.: # ... any other dependencies - bedtools =2.30.0 - - bwa + - bwa =0.7.17 - pysam =0.17.0 - - repeatmasker - - tensorflow =2.7.0 + - repeatmasker =4.1.2.p1 + - tensorflow >=2.7.0,<=2.10.0 - python >=3.8,<=3.9 - perl =5.32.1 - - samtools + - samtools =1.18 test: commands: - deepmei about: - home: https://github.com/Kanglu123/deepmei/tree/deepmei-v1.6.24 - license: GPL-3.0 + home: https://github.com/Kanglu123/deepmei/tree/deepmei-v{{ version }} + license: GPL-3.0-only license_file: license.txt + license_family: GPL3 summary: A tool to detect mobile elements insertion From ac4ad9ba528564599152db97803cc7aebe8e5ed4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 00:34:20 -0400 Subject: [PATCH 0569/1589] Update savana to 1.2.0 (#49581) --- recipes/savana/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/savana/meta.yaml b/recipes/savana/meta.yaml index 346e21295480e..51c6b9be90c4c 100644 --- a/recipes/savana/meta.yaml +++ b/recipes/savana/meta.yaml @@ -1,5 +1,5 @@ {% set name = "savana" %} -{% set version = "1.0.5" %} +{% set version = "1.2.0" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: "https://github.com/cortes-ciriano-lab/{{ name }}/archive/{{ version }}.tar.gz" - sha256: 987cf91c355f98e45b29fbca32d7766284eea98d63333ed34f60885d8234510e + sha256: 25025d73628e282c7cd5fd6204befe9152d0d695ebd027b87831aa1338b83914 build: number: 0 From ee5d29533283de56ab03df17f61461adf7eb74f2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 00:35:12 -0400 Subject: [PATCH 0570/1589] Update dfast_qc to 1.0.2 (#49582) --- recipes/dfast_qc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/dfast_qc/meta.yaml b/recipes/dfast_qc/meta.yaml index 60cf4b8dc949e..5481d28e3c43b 100644 --- a/recipes/dfast_qc/meta.yaml +++ b/recipes/dfast_qc/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.0.1" %} +{% set version = "1.0.2" %} package: name: dfast_qc @@ -12,7 +12,7 @@ build: source: url: https://github.com/nigyta/dfast_qc/archive/{{ version }}.tar.gz - sha256: 9f8456e953add634cc5e1e2f7181df4836d9a239a86a21184bdcaa75fa89e90d + sha256: 60cc0badf7b2aa8a464b92db717b2853e343b09a18f2c4bf6eeced3c79b0ba7b requirements: From 00744da3de704bd18fd1a084a0201ce9fe2d6954 Mon Sep 17 00:00:00 2001 From: Rauf Salamzade Date: Thu, 25 Jul 2024 23:39:10 -0500 Subject: [PATCH 0571/1589] Upade zol recipe (#49550) --- recipes/zol/build.sh | 1 - recipes/zol/meta.yaml | 15 +++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/recipes/zol/build.sh b/recipes/zol/build.sh index 1060034d46bb1..048162828ed7d 100644 --- a/recipes/zol/build.sh +++ b/recipes/zol/build.sh @@ -1,6 +1,5 @@ #!/bin/bash -#$PYTHON setup.py install --single-version-externally-managed --record=record.txt $PYTHON -m pip install . --ignore-installed --no-deps -vv mkdir -p ${PREFIX}/bin diff --git a/recipes/zol/meta.yaml b/recipes/zol/meta.yaml index b4ffee8842b54..875f6748aaf0a 100644 --- a/recipes/zol/meta.yaml +++ b/recipes/zol/meta.yaml @@ -10,10 +10,10 @@ source: sha256: 5a147e00b400c09423f4739d6a5bae59d7d9007f4d56ad712ccf0c734147bc47 build: - number: 0 - skip: True # [py <= 311] + number: 1 + skip: True # [py != 310] run_exports: - - {{ pin_subpackage('zol', max_pin='x.x') }} + - {{ pin_subpackage('zol', max_pin='x') }} requirements: build: @@ -22,13 +22,11 @@ requirements: - python - setuptools - pip - - axel run: - python >=3.10 - r-base - biopython - muscle >=5.0 - - setuptools - mcl - pal2nal >=14.1 - hmmer >=3.0.0 @@ -61,9 +59,7 @@ requirements: test: commands: - - prepTG -v - - fai -v - - zol -v + - zol -h about: home: https://github.com/Kalan-Lab/zol @@ -73,3 +69,6 @@ about: summary: "zol (& fai): large-scale targeted detection and evolutionary investigation of gene clusters." dev_url: https://github.com/Kalan-Lab/zol +extra: + recipe-maintainers: + - raufs From 15b9eb5b87c9d03e233ebc1d01e075c3ddc960c5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 00:40:02 -0400 Subject: [PATCH 0572/1589] Update harpy to 1.3 (#49580) --- recipes/harpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index 5da755925429d..d93024ddac567 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.2.3" %} -{% set sha256 = "286ac2097d6113c7f683490b98e2c7f7b285a32271ef96046a6b18752b6a6025" %} +{% set version = "1.3" %} +{% set sha256 = "1e55b0d15853276afa6a3c3863766515e5d1ef20df7dc71a1560bb48226dabdf" %} package: name: harpy From 7b4d033dd217bf2761cdce010ac90af52bcd87d3 Mon Sep 17 00:00:00 2001 From: Benjamin Redelings Date: Fri, 26 Jul 2024 00:41:10 -0400 Subject: [PATCH 0573/1589] bali-phy: 4.0-beta15 (#49577) --- recipes/bali-phy/meta.yaml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/recipes/bali-phy/meta.yaml b/recipes/bali-phy/meta.yaml index b0e583d8e4050..09e5e5cc8ed04 100644 --- a/recipes/bali-phy/meta.yaml +++ b/recipes/bali-phy/meta.yaml @@ -1,10 +1,10 @@ package: name: bali-phy - version: '4.0beta14' + version: '4.0beta15' source: - url: https://github.com/bredelings/bali-phy/archive/4.0-beta14.tar.gz - sha256: b3a55d8e89589d5b46a621b1c9ee5bcbe576b6fb6ea22fe3782d10c9830c66f1 + url: https://github.com/bredelings/bali-phy/archive/4.0-beta15.tar.gz + sha256: 4d1b6f08dee5bb359a13a4e2913129fd1f6e0ddb36350c7f8851f583192b4a94 build: number: 0 @@ -40,7 +40,6 @@ about: license: GPL2 summary: 'Phylogenetics - Bayesian estimation of phylogenies and multiple sequence alignments.' - test: commands: - bali-phy help From a0f4b3c9f35d3bb58309eddc0b2cb1ea775cfb8f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 00:43:22 -0400 Subject: [PATCH 0574/1589] Update gencove to 2.18.3 (#49579) --- recipes/gencove/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gencove/meta.yaml b/recipes/gencove/meta.yaml index 845f186c29776..dd588c788987b 100644 --- a/recipes/gencove/meta.yaml +++ b/recipes/gencove/meta.yaml @@ -1,6 +1,6 @@ {% set name = "gencove" %} -{% set version = "2.18.2" %} -{% set sha256 = "80ef5a41a5c47ee14d5ee7296480491016bf9e55dc39b8c3f1eb7454ebc400e2" %} +{% set version = "2.18.3" %} +{% set sha256 = "e4762be0bc238bbe13c98daa1e4eead1a5a14d65b6651650238784adf8c093f2" %} package: name: {{ name }} From 3d1c253197087d7ef9f3ca4f94b24edb6994df92 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 00:46:41 -0400 Subject: [PATCH 0575/1589] Update jbrowse2 to 2.13.0 (#49576) --- recipes/jbrowse2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/jbrowse2/meta.yaml b/recipes/jbrowse2/meta.yaml index ea465f9b7f8c3..c2d22862f7b86 100644 --- a/recipes/jbrowse2/meta.yaml +++ b/recipes/jbrowse2/meta.yaml @@ -1,12 +1,12 @@ # When updating, check the @jbrowse/cli version in build.sh too -{% set version = "2.12.3" %} +{% set version = "2.13.0" %} package: name: jbrowse2 version: {{ version }} source: - sha256: 682235117961f69b1600366009c69290f74fffb2c337952e051a9536b6366914 + sha256: f543642573b53f40be9ca233641af1c9705614f85a7a1e901de989e86a76b1e7 url: https://github.com/GMOD/jbrowse-components/releases/download/v{{ version }}/jbrowse-web-v{{ version }}.zip build: From e4a50a196e1c849749f6cd4653a13eafdd8a883d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 00:47:06 -0400 Subject: [PATCH 0576/1589] Update ntroot to 1.1.3 (#49575) --- recipes/ntroot/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/ntroot/meta.yaml b/recipes/ntroot/meta.yaml index 82a7b533fd94e..ab1636a060e4c 100644 --- a/recipes/ntroot/meta.yaml +++ b/recipes/ntroot/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ntRoot" %} -{% set version = "1.1.2" %} +{% set version = "1.1.3" %} package: name: {{ name|lower }} @@ -7,10 +7,10 @@ package: source: url: https://github.com/bcgsc/ntRoot/releases/download/v{{ version }}/{{ name }}-{{ version }}.tar.gz - sha256: c91ba834bc221e7883dff864aed7a2230700a515f5475b1f2d331007d9db73a8 + sha256: 0b1cfb7008e1bb7efeea400fab9da4f73e297357ee83ae23904b21d9a91d5c81 build: - number: 1 + number: 0 noarch: generic run_exports: - {{ pin_subpackage("ntroot", max_pin="x") }} From 1f29069f42134a6ee0436d5ac2ec2b0a0d428cb0 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 00:49:13 -0400 Subject: [PATCH 0577/1589] Update parm to 0.0.6 (#49573) --- recipes/parm/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/parm/meta.yaml b/recipes/parm/meta.yaml index cc9d3f2ef73a6..cc2b6ed42e026 100644 --- a/recipes/parm/meta.yaml +++ b/recipes/parm/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.0.5" %} -{% set sha256 = "bdb609e7266b0d509ace8b6fd0a2405f6ba8cf68c3b44428ae83b672414e0c2a" %} +{% set version = "0.0.6" %} +{% set sha256 = "58853578e42e76ecb9e609cb9b292fa979ae5a999d28126f3c43ac0e986f44a5" %} package: name: parm From d3aa7fc1b634b480a4a6c3e7518a6e1f8873a2c7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 00:49:43 -0400 Subject: [PATCH 0578/1589] Update comparem2 to 2.10.1 (#49572) --- recipes/comparem2/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/comparem2/meta.yaml b/recipes/comparem2/meta.yaml index 3c6eaf6fd7358..60d0db2a6c5fa 100644 --- a/recipes/comparem2/meta.yaml +++ b/recipes/comparem2/meta.yaml @@ -1,6 +1,6 @@ {% set name = "comparem2" %} -{% set version = "2.9.1" %} -{% set sha256 = "d8dc87511cb213a8e25603bace700e83d91981effd90fae5d493cfc21e5f7281" %} +{% set version = "2.10.1" %} +{% set sha256 = "6689d7b7cd82fecf74a63a7f5cb014b5f3baac797445cce9957bc13e563f3cb8" %} package: name: {{ name }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 noarch: generic run_exports: - {{ pin_subpackage('comparem2', max_pin="x") }} From 0b4dafea7420c63127a2b149708115e863b686c2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 00:50:17 -0400 Subject: [PATCH 0579/1589] Update locityper to 0.16.7 (#49571) --- recipes/locityper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/locityper/meta.yaml b/recipes/locityper/meta.yaml index 90326e88bd02d..23a47de1dcea9 100644 --- a/recipes/locityper/meta.yaml +++ b/recipes/locityper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "locityper" %} -{% set version = "0.16.6" %} +{% set version = "0.16.7" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/tprodanov/locityper/archive/refs/tags/v{{ version }}.tar.gz - sha256: 3be692fd0799e26d6a1b17fadd415ea48d0a98df06df84a9a8184ea577645cfe + sha256: b75c5fea1047ae8f3c673454039d96c61733712e02cea8e7ae2d6d50089732d3 build: number: 0 From 976ca77e7783bdfb731a4dcce7d17f840e32cd6a Mon Sep 17 00:00:00 2001 From: Louis Kraft <61252748+LouisPwr@users.noreply.github.com> Date: Fri, 26 Jul 2024 06:53:51 +0200 Subject: [PATCH 0580/1589] Add carpedeam (#49522) --- recipes/carpedeam/build.sh | 19 ++++++++++++++ recipes/carpedeam/meta.yaml | 50 +++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 recipes/carpedeam/build.sh create mode 100644 recipes/carpedeam/meta.yaml diff --git a/recipes/carpedeam/build.sh b/recipes/carpedeam/build.sh new file mode 100644 index 0000000000000..3583663b92364 --- /dev/null +++ b/recipes/carpedeam/build.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +ARCH_BUILD="" +case $(uname -m) in + x86_64) ARCH_BUILD="-DHAVE_SSE4_1=1" ;; +esac + +if [ -z "${ARCH_BUILD}" ]; then + echo "Unsupported architecture" + exit 1 +fi + +mkdir build +cd build + +cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DHAVE_TESTS=0 -DHAVE_MPI=0 ${ARCH_BUILD} -DVERSION_OVERRIDE="${PKG_VERSION}" .. + +make -j${CPU_COUNT} ${VERBOSE_CM} +make install diff --git a/recipes/carpedeam/meta.yaml b/recipes/carpedeam/meta.yaml new file mode 100644 index 0000000000000..59691207623a8 --- /dev/null +++ b/recipes/carpedeam/meta.yaml @@ -0,0 +1,50 @@ +{% set version = "1.0.0" %} +{% set sha256 = "92deec3d670810f8433c0345758588b47fa460349e61ce8aa549374f5cf4a812" %} + +package: + name: carpedeam + version: {{ version|replace("-", ".") }} + +build: + number: 0 + run_exports: + - {{ pin_subpackage('carpedeam', max_pin="x.x") }} + +source: + url: https://github.com/LouisPwr/CarpeDeam/archive/refs/tags/v{{ version }}.tar.gz + sha256: {{ sha256 }} + +requirements: + build: + - {{ compiler('cxx') }} + - {{ compiler('c') }} + - cmake + - make + - llvm-openmp # [osx] + - libgomp # [linux] + host: + - perl + - gawk + - zlib + - bzip2 + run: + - gawk + - zlib + - bzip2 + +test: + commands: + - carpedeam --version | grep "Ancient Metagenome Assembler." + +about: + home: https://github.com/LouisPwr/CarpeDeam + license: GPL-3.0-only + license_family: GPL3 + summary: "CarpeDeam - A metagenomic assembler for heavily damaged ancient datasets" + +extra: + identifiers: + - biotools:carpedeam + recipe-maintainers: + - gabriel-renaud + - louis-kraft From baeb9886f316a4fcd02388756694cbfc09189a28 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 26 Jul 2024 09:33:48 +0300 Subject: [PATCH 0581/1589] d4tools: add aarch64 build (#49559) * d4tools: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * Do not build for osx-arm64. It fails because gcc is missing --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/d4tools/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/d4tools/meta.yaml b/recipes/d4tools/meta.yaml index 7fb61567b8afe..54a4335bead4b 100644 --- a/recipes/d4tools/meta.yaml +++ b/recipes/d4tools/meta.yaml @@ -9,7 +9,7 @@ source: sha256: d3fbe8f063ed1f89148ae0333abc1d5b955f499fc429254f83af464012678d33 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('d4tools', max_pin="x.x") }} @@ -39,6 +39,8 @@ about: dev_url: https://github.com/38/d4-format extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - haohou skip-lints: From 0b8305326cacfb6d2f62f9a4ddc0e5698a0cdc36 Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Fri, 26 Jul 2024 00:26:29 -0700 Subject: [PATCH 0582/1589] Update ntedit build - add builds for linux-aarch64 and osx-arm64 (#49574) --- recipes/ntedit/meta.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/recipes/ntedit/meta.yaml b/recipes/ntedit/meta.yaml index 9a067676b03f6..0c4fd19bd40e6 100644 --- a/recipes/ntedit/meta.yaml +++ b/recipes/ntedit/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage(name, max_pin="x") }} @@ -52,7 +52,10 @@ about: doc_url: https://github.com/bcgsc/ntEdit/blob/master/README.md dev_url: https://github.com/bcgsc/ntEdit -extra: +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 identifiers: - doi:10.1093/bioinformatics/btz400 - biotools:ntEdit From f6c323cfd88c41cf42798d20d51da31e79ba1252 Mon Sep 17 00:00:00 2001 From: BertBog Date: Fri, 26 Jul 2024 09:27:38 +0200 Subject: [PATCH 0583/1589] Add recipe for PACU snp (#49500) * Added recipe for pacu_snp * Added run_exports entry * added entry points * Added setuptools build dependency * Added test for module import * Updated installation for pacu * Use pypi.io url. It does not use hashes => easier for bot autoupdates --------- Co-authored-by: Bert Bogaerts Co-authored-by: Martin Grigorov --- recipes/pacu_snp/meta.yaml | 62 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 recipes/pacu_snp/meta.yaml diff --git a/recipes/pacu_snp/meta.yaml b/recipes/pacu_snp/meta.yaml new file mode 100644 index 0000000000000..02d1fa110b448 --- /dev/null +++ b/recipes/pacu_snp/meta.yaml @@ -0,0 +1,62 @@ +{% set version = "0.0.3" %} + +package: + name: pacu_snp + version: {{ version }} + +source: + url: https://pypi.io/packages/source/p/pacu_snp/pacu_snp-{{ version }}.tar.gz + sha256: a4e9934f6b218a48784389fdc3f2af4fe4fe7225f69a90278a83976bfa02fc78 + +build: + noarch: python + number: 0 + entry_points: + - PACU=pacu.run_pacu:main + - PACU_map=pacu.map_to_ref:main + run_exports: + - {{ pin_subpackage("pacu_snp", max_pin="x.x") }} + script: "{{ PYTHON }} -m pip install . --no-deps -vv" + +requirements: + host: + - python >=3.9 + - pip + - setuptools + - biopython >=1.84 + - pyyaml >=6.0.1 + run: + - bcftools >=1.17 + - beautifulsoup4 >=4.12.2 + - biopython >=1.84 + - bowtie2 >=2.5.1 + - figtree >=1.4.4 + - gubbins >=3.3.1 + - iqtree >=2.2.5 + - matplotlib-base >=3.8.0 + - minimap2 >=2.26 + - pandas >=2.1.0 + - pyvcf3 >=1.0.3 + - pyyaml >=6.0.1 + - samtools >=1.17 + - seqkit >=2.3.1 + - snakemake ==7.32.4 + - snp-dists >=0.8.2 + - trimmomatic >=0.39 + - upsetplot >=0.8.0 + - yattag >=1.15.1 + +about: + home: https://github.com/BioinformaticsPlatformWIV-ISP/PACU + license: GPL-3.0 + license_family: GPL + license_file: LICENSE + summary: PACU is a workflow for whole genome sequencing based phylogeny of Illumina and ONT R9/R10 data. + +test: + imports: + - pacu + commands: + - PACU -h + - PACU_map -h + From 6b4e0939b503f20f8424cd98f257b5e9f9916695 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 06:50:19 -0400 Subject: [PATCH 0584/1589] Update cmat to 3.2.2 (#49587) --- recipes/cmat/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/cmat/meta.yaml b/recipes/cmat/meta.yaml index ffcbd6088a86c..030383993adc5 100644 --- a/recipes/cmat/meta.yaml +++ b/recipes/cmat/meta.yaml @@ -1,5 +1,5 @@ {% set name = "cmat" %} -{% set version = "3.2.1" %} +{% set version = "3.2.2" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/EBIvariation/CMAT/archive/v{{version}}.tar.gz - sha256: f7368fe08422080f333b51c90f63b450b59300437169686b9729c21c1f142224 + sha256: 63b052052e6c3809e2d55835bfbe1dbd5ee312d6ef12906b25e5c67816fa6186 build: number: 0 From 7c81e6468946ba1831c4b5ed08c9dcfed4dc189f Mon Sep 17 00:00:00 2001 From: Kez Cleal <42997789+kcleal@users.noreply.github.com> Date: Fri, 26 Jul 2024 12:32:22 +0100 Subject: [PATCH 0585/1589] Gw v1.0.0 (#49589) * Delete recipes/gw/fix-version.patch * Update meta.yaml --- recipes/gw/fix-version.patch | 4 ---- recipes/gw/meta.yaml | 5 ++--- 2 files changed, 2 insertions(+), 7 deletions(-) delete mode 100644 recipes/gw/fix-version.patch diff --git a/recipes/gw/fix-version.patch b/recipes/gw/fix-version.patch deleted file mode 100644 index 963b5293eae99..0000000000000 --- a/recipes/gw/fix-version.patch +++ /dev/null @@ -1,4 +0,0 @@ -+++ b/src/term_out.cpp -@@ -1354,1 +1354,1 @@ -- const char* CURRENT_VERSION = "v0.10.0"; -+ const char* CURRENT_VERSION = "v0.10.1"; diff --git a/recipes/gw/meta.yaml b/recipes/gw/meta.yaml index 5346dd6421760..d3447048afbb5 100644 --- a/recipes/gw/meta.yaml +++ b/recipes/gw/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "0.10.1" %} -{% set sha256 = "a864010d9ba329feb9211d554ea9c410f5bcc1e1462369bef56a8f5b8914f3d2" %} +{% set version = "1.0.0" %} +{% set sha256 = "80a595adfcc230afcaf170b86252f4451f61b98e670bcb4c443ea72be9070cf1" %} package: @@ -13,7 +13,6 @@ source: sha256: {{ sha256 }} patches: - fix-linker-issues.patch # [linux] - - fix-version.patch build: From b3af857b960f3addc973bcadadf26cbef13380f0 Mon Sep 17 00:00:00 2001 From: KChigira <83323455+KChigira@users.noreply.github.com> Date: Fri, 26 Jul 2024 20:33:28 +0900 Subject: [PATCH 0586/1589] Add taseq (#49585) * Add taseq * Add taseq * Add taseq --- recipes/taseq/meta.yaml | 61 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 recipes/taseq/meta.yaml diff --git a/recipes/taseq/meta.yaml b/recipes/taseq/meta.yaml new file mode 100644 index 0000000000000..0d8d160a83ead --- /dev/null +++ b/recipes/taseq/meta.yaml @@ -0,0 +1,61 @@ +{% set name = "taseq" %} +{% set version = "1.0.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/taseq-{{ version }}.tar.gz + sha256: a5ace00224b7bfd7e95d7552c89fea996327799be03f490fea7c782e3c01abea + +build: + entry_points: + - taseq_hapcall = taseq.hapcall:main + - taseq_genotype = taseq.genotype:main + - taseq_filter = taseq.filter:main + - taseq_draw = taseq.draw:main + - taseq = taseq.default:main + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + run_exports: + - {{ pin_subpackage('taseq', max_pin="x") }} + +requirements: + host: + - python + - pip + run: + - python >=3.12,<4.0 + - pandas >=2.2.2,<3.0.0 + - matplotlib-base >=3.9.1,<4.0.0 + - samtools >=1.20,<2.0 + - gatk4 >=4.5.0.0,<4.6.0.0 + - picard-slim >=2.27.4,<3.0.0 + - bwa >=0.7.18,<0.8.0 + - trimmomatic >=0.39,<1.0 + + +test: + imports: + - taseq + commands: + - pip check + - taseq_hapcall --help + - taseq_genotype --help + - taseq_filter --help + - taseq_draw --help + - taseq --help + requires: + - pip + +about: + home: https://github.com/KChigira/taseq/ + summary: Downstream analysis for targetted amplicon sequencing. + license: MIT + license_file: LICENSE + +extra: + recipe-maintainers: + - KChigira From 449316b9e2b9492942687625e5a933aa2932e5a1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 08:58:40 -0400 Subject: [PATCH 0587/1589] Update virusrecom to 1.3.5 (#49592) --- recipes/virusrecom/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/virusrecom/meta.yaml b/recipes/virusrecom/meta.yaml index 9e95949b46f06..06585485b03b1 100644 --- a/recipes/virusrecom/meta.yaml +++ b/recipes/virusrecom/meta.yaml @@ -1,5 +1,5 @@ {% set name = "virusrecom" %} -{% set version = "1.3.2" %} +{% set version = "1.3.5" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 5ba74f015546c480e6628fcb4625019d98d181c1684fef7b1e29f92bef558141 + sha256: 0f5b1c8ce87c35bb152fefd2e90160b7088f157dfb1551d93455a67611e374bb build: number: 0 From 9d9771dc5474597a306f66415c0bfe5558160575 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 26 Jul 2024 16:11:12 +0300 Subject: [PATCH 0588/1589] aletsch: add aarch64/arm64 builds (#49560) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/aletsch/build.sh | 4 +++- recipes/aletsch/meta.yaml | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/recipes/aletsch/build.sh b/recipes/aletsch/build.sh index 7a0d70011ef7a..b74dbe117a440 100644 --- a/recipes/aletsch/build.sh +++ b/recipes/aletsch/build.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -xe + ./configure --prefix=$PREFIX -make LIBS+=-lhts +make -j ${CPU_COUNT} LIBS+=-lhts make install diff --git a/recipes/aletsch/meta.yaml b/recipes/aletsch/meta.yaml index 4e9c236f55485..d877735467abd 100644 --- a/recipes/aletsch/meta.yaml +++ b/recipes/aletsch/meta.yaml @@ -10,7 +10,7 @@ source: sha256: "b081cfcbd2f232dcddab4f9c6ce11f15f41e4319e1f977dd955cca240748d4b5" build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('aletsch', max_pin="x") }} @@ -37,5 +37,8 @@ about: summary: "Aletsch is an accurate, versatile assembler for multiple RNA-seq samples." extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - shaomingfu From 7a8e4d92ceb4b5c100720c2ba5cd417a17caaecd Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 26 Jul 2024 16:12:54 +0300 Subject: [PATCH 0589/1589] bali-phy: add aarch64/arm64 builds (#49586) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/bali-phy/meta.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/recipes/bali-phy/meta.yaml b/recipes/bali-phy/meta.yaml index 09e5e5cc8ed04..db1ab541968a6 100644 --- a/recipes/bali-phy/meta.yaml +++ b/recipes/bali-phy/meta.yaml @@ -7,7 +7,7 @@ source: sha256: 4d1b6f08dee5bb359a13a4e2913129fd1f6e0ddb36350c7f8851f583192b4a94 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('bali-phy', max_pin='x') }} @@ -45,6 +45,9 @@ test: - bali-phy help extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 identifiers: - doi:10.1093/bioinformatics/btab129 - biotools:bali-phy From 878470ebc9cfcca75cd42e09a015d1431afad231 Mon Sep 17 00:00:00 2001 From: Anna Zhukova Date: Fri, 26 Jul 2024 15:30:34 +0200 Subject: [PATCH 0590/1589] treesimulator recipe (#49590) --- recipes/treesimulator/meta.yaml | 59 +++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 recipes/treesimulator/meta.yaml diff --git a/recipes/treesimulator/meta.yaml b/recipes/treesimulator/meta.yaml new file mode 100644 index 0000000000000..247f0a7959257 --- /dev/null +++ b/recipes/treesimulator/meta.yaml @@ -0,0 +1,59 @@ +{% set name = "treesimulator" %} +{% set version = "0.1.22" %} + +package: + name: "{{ name|lower }}" + version: "{{ version }}" + +source: + url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" + sha256: 2ea8d07b1ef98590b1477c322d8a06efabf63f39ac7d9ff0f75f6063e48898c8 + +build: + number: 0 + noarch: python + entry_points: + - generate_bd = treesimulator.simulate_forest_bd:main + - generate_bdei = treesimulator.simulate_forest_bdei:main + - generate_bdss = treesimulator.simulate_forest_bdss:main + - generate_mtbd = treesimulator.simulate_forest:main + script: "{{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation" + run_exports: + - {{ pin_subpackage('treesimulator', max_pin="x") }} + +requirements: + host: + - pip + - python >=3.9 + run: + - six >=1.16.0 + - ete3 >=3.1.1 + - numpy >=1.22 + - python >=3.9 + - scipy >=1.5.0 + +test: + imports: + - treesimulator + commands: + - generate_bd --help + - generate_bdei --help + - generate_bdss --help + - generate_mtbd --help + +about: + home: "https://github.com/evolbioinfo/treesimulator" + summary: "Simulation of rooted phylogenetic trees under a given Multitype Birth–Death (MTBD) model." + description: | + Treesimulator provides fast methods for simulation of rooted phylogenetic trees under + Multitype Birth–Death (MTBD) models, in particular the classical BD model, + the BD Exposed-Infectious (BDEI) model, and BD with superspreading (BDSS). + license: GPL-3.0-or-later + license_family: GPL3 + license_file: LICENSE + doc_url: https://github.com/evolbioinfo/treesimulator + dev_url: https://github.com/evolbioinfo/treesimulator + +extra: + recipe-maintainers: + - annazhukova From 6e6c81b95fa583fe652c1a965783eb71415d610e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 12:06:09 -0400 Subject: [PATCH 0591/1589] Update querynator to 0.5.4 (#49594) --- recipes/querynator/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/querynator/meta.yaml b/recipes/querynator/meta.yaml index 9a66732b8e6eb..d6936b6ac72d9 100644 --- a/recipes/querynator/meta.yaml +++ b/recipes/querynator/meta.yaml @@ -1,5 +1,5 @@ {% set name = "querynator" %} -{% set version = "0.5.3" %} +{% set version = "0.5.4" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: a265fd68804a3b9b7ebf8b9fc1b8624c77a2ae44db1c060ae720d037a1c99bdb + sha256: 803aff3939b21ce35f92a1d39bd2c4db2f9a8cc1f96a409e939ef3bbeb1fbaf2 build: number: 0 From c20bc3c5902210ff1c834204aa4eaccb64d925a0 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 12:06:19 -0400 Subject: [PATCH 0592/1589] Update locityper to 0.16.8 (#49598) --- recipes/locityper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/locityper/meta.yaml b/recipes/locityper/meta.yaml index 23a47de1dcea9..444882115ee1a 100644 --- a/recipes/locityper/meta.yaml +++ b/recipes/locityper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "locityper" %} -{% set version = "0.16.7" %} +{% set version = "0.16.8" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/tprodanov/locityper/archive/refs/tags/v{{ version }}.tar.gz - sha256: b75c5fea1047ae8f3c673454039d96c61733712e02cea8e7ae2d6d50089732d3 + sha256: 45676912a3a7a8d164f0e6c0c71697d21878baa476cd45b8bf4a2c9d9e5f018f build: number: 0 From 529f69fbb93cc3ae3025fcdcedde22ade5df7dbf Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 12:06:26 -0400 Subject: [PATCH 0593/1589] Update dxpy to 0.380.0 (#49599) --- recipes/dxpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/dxpy/meta.yaml b/recipes/dxpy/meta.yaml index 51818f8006263..11e66e5ca8a77 100644 --- a/recipes/dxpy/meta.yaml +++ b/recipes/dxpy/meta.yaml @@ -1,5 +1,5 @@ {% set name = "dxpy" %} -{% set version = "0.379.0" %} +{% set version = "0.380.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 09cf1e418be0fc91dd23ee916e83eacd1f5f3baa8972484f713e1cd4ed081ff1 + sha256: e3fb70b283a9eda2f861d6b85322841d78b2655cd7de11f1e946643b58de3d4f build: number: 0 From 5f55e6a9f39f7ba6aad10e714b9019d1a5765c96 Mon Sep 17 00:00:00 2001 From: Jose Figueroa Date: Fri, 26 Jul 2024 12:38:50 -0400 Subject: [PATCH 0594/1589] Update MetaCerberus-lite (#49427) * Update MetaCerberus-lite * Update MetaCerberus-lite * Update MetaCerberus-lite * Update MetaCerberus-lite * Update recipes/metacerberus-lite/meta.yaml Co-authored-by: Alicia A. Evans <108547992+aliciaaevans@users.noreply.github.com> --------- Co-authored-by: Alicia A. Evans <108547992+aliciaaevans@users.noreply.github.com> --- recipes/metacerberus-lite/meta.yaml | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/recipes/metacerberus-lite/meta.yaml b/recipes/metacerberus-lite/meta.yaml index d9dff07348aef..3888274b58bec 100644 --- a/recipes/metacerberus-lite/meta.yaml +++ b/recipes/metacerberus-lite/meta.yaml @@ -1,20 +1,20 @@ {% set name = "MetaCerberus-lite" %} -{% set version = "1.3.1" %} +{% set version = "1.3.2" %} package: name: "{{ name|lower }}" version: "{{ version }}" source: - url: "https://files.pythonhosted.org/packages/source/m/MetaCerberus/MetaCerberus-{{ version }}.tar.gz" - sha256: 725be35a0e9b2a3867791e1cb8284ec95a09d3479516e9b265e3751659ce7935 + url: "https://github.com/raw-lab/MetaCerberus/archive/refs/tags/v{{version}}.tar.gz" + sha256: 678929f58b38fafc635dfb35e248b5c76b4cd682b9e2d3499fe953ee3b974d68 build: number: 0 noarch: python script: "{{ PYTHON }} -m pip install . -vv" run_exports: - - {{ pin_compatible('MetaCerberus', max_pin="x") }} + - {{ pin_subpackage('metacerberus-lite', max_pin="x") }} requirements: host: @@ -24,16 +24,11 @@ requirements: run: - python >=3.8 - setuptools <70.0.0 - - grpcio =1.43 - pandas - flash2 - pyrodigal - pyrodigal-gv - pyhmmer - - ray-default <=2.6.3 - - ray-core <=2.6.3 - - ray-tune <=2.6.3 - - ray-dashboard <=2.6.3 - plotly - scikit-learn - dominate From 7e8f76180e1cf7f83ca7bc1e86c45c4aa26d67d7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 12:43:55 -0400 Subject: [PATCH 0595/1589] Update nda-tools to 0.3.0 (#49601) --- recipes/nda-tools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/nda-tools/meta.yaml b/recipes/nda-tools/meta.yaml index 12325594827f1..3ef8411d3c9ad 100644 --- a/recipes/nda-tools/meta.yaml +++ b/recipes/nda-tools/meta.yaml @@ -1,6 +1,6 @@ {% set name = "nda-tools" %} -{% set version = "0.2.27" %} -{% set sha256 = "79cb91fe4265384287a833911b91747265449e1040a3e88c7c8566d0a561d8a4" %} +{% set version = "0.3.0" %} +{% set sha256 = "7315dcf21bf2597485e930f1199c259f1f82c9bc79ebcefb5ef3e8e02aff56f1" %} package: name: {{ name }} From b67bb9587b74522aeaba77fdacf464933645cf94 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 13:17:34 -0400 Subject: [PATCH 0596/1589] Update zol to 1.4.11 (#49600) --- recipes/zol/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/zol/meta.yaml b/recipes/zol/meta.yaml index 875f6748aaf0a..b07a6bcdc5338 100644 --- a/recipes/zol/meta.yaml +++ b/recipes/zol/meta.yaml @@ -1,5 +1,5 @@ {% set name = "zol" %} -{% set version = "1.4.10" %} +{% set version = "1.4.11" %} package: name: {{ name|lower }} @@ -7,10 +7,10 @@ package: source: url: https://github.com/Kalan-Lab/zol/archive/refs/tags/v{{ version }}.tar.gz - sha256: 5a147e00b400c09423f4739d6a5bae59d7d9007f4d56ad712ccf0c734147bc47 + sha256: 9e282d1255355e2c643d93f1748f028be862af6cc967de713ef61a4809cadca7 build: - number: 1 + number: 0 skip: True # [py != 310] run_exports: - {{ pin_subpackage('zol', max_pin='x') }} From cf15ad5b12c8c3837c97426f58bf92bda5127753 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 14:42:11 -0400 Subject: [PATCH 0597/1589] Update pango-designation to 1.29 (#49606) --- recipes/pango-designation/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pango-designation/meta.yaml b/recipes/pango-designation/meta.yaml index 220c076249b98..8f8eef806262b 100644 --- a/recipes/pango-designation/meta.yaml +++ b/recipes/pango-designation/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.28" %} +{% set version = "1.29" %} package: name: pango-designation @@ -6,7 +6,7 @@ package: source: url: https://github.com/cov-lineages/pango-designation/archive/refs/tags/v{{ version }}.tar.gz - sha256: cca1e265ae754d4fd3c8a6d47cb99ca997242abdf81e0ec55c3608cf9c3a3865 + sha256: 884b4de47169323f711d02f9801ddb31bb3e383ac1b4eab93aed9d435cb15c6a build: number: 0 From 6d6b49d02bf1f7ba51d33929ac4f583f5d132ebe Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Sat, 27 Jul 2024 12:55:43 -0500 Subject: [PATCH 0598/1589] Build Unicycler on macOS (#49602) --- recipes/unicycler/build.sh | 3 --- recipes/unicycler/meta.yaml | 21 +++++++++++++-------- 2 files changed, 13 insertions(+), 11 deletions(-) delete mode 100644 recipes/unicycler/build.sh diff --git a/recipes/unicycler/build.sh b/recipes/unicycler/build.sh deleted file mode 100644 index 650c36ed10929..0000000000000 --- a/recipes/unicycler/build.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -python -m pip install --no-deps --ignore-installed . diff --git a/recipes/unicycler/meta.yaml b/recipes/unicycler/meta.yaml index 4fbe7d2e5653e..8b0db344689bb 100644 --- a/recipes/unicycler/meta.yaml +++ b/recipes/unicycler/meta.yaml @@ -13,8 +13,11 @@ source: - misc.py.patch build: - number: 0 - skip: True # [osx] + number: 1 + skip: True # [py < 39] + entry_points: + - unicycler = unicycler.unicycler:main + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir run_exports: - {{ pin_subpackage('unicycler', max_pin='x.x') }} @@ -29,24 +32,26 @@ requirements: - zlib run: - python - - spades >=3.15.4,<4 + - spades >=3.15.4 - blast - racon - miniasm - test: commands: - - COLUMNS=80 unicycler -h + - "COLUMNS=80 unicycler -h" about: home: https://github.com/rrwick/Unicycler - license: GPL-3.0 - license_family: GPL + license: GPL-3.0-or-later + license_family: GPL3 license_file: LICENSE - summary: Hybrid assembly pipeline for bacterial genomes + summary: "Hybrid assembly pipeline for bacterial genomes." + dev_url: https://github.com/rrwick/Unicycler + doc_url: https://github.com/rrwick/Unicycler/wiki extra: identifiers: - biotools:unicycler - usegalaxy-eu:unicycler + - doi:10.1371/journal.pcbi.1005595 From cb6d6cd8883ad24a680c54dbcfc77b535748fa38 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 27 Jul 2024 13:56:03 -0400 Subject: [PATCH 0599/1589] Update cpstools to 1.0.13 (#49609) --- recipes/cpstools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/cpstools/meta.yaml b/recipes/cpstools/meta.yaml index 708dea0eb24f7..f8dbea9224cbb 100644 --- a/recipes/cpstools/meta.yaml +++ b/recipes/cpstools/meta.yaml @@ -1,6 +1,6 @@ {% set name = "cpstools" %} -{% set version = "1.0.12" %} -{% set sha256 = "299e324e30a3b45dcb2cffb354bf41f2698b6193699da0e2631db5e6b3616c07" %} +{% set version = "1.0.13" %} +{% set sha256 = "767f5739416f290726ed459bf82969b453ffd2c04aa9171e5dc7c842a8d6b81e" %} package: name: {{ name|lower }} From 5e4f0dada324b8f02368a43536cb382d5dc2c495 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Sat, 27 Jul 2024 12:56:10 -0500 Subject: [PATCH 0600/1589] flye: add arm64 build (#49468) * flye: add arm64 build * add pip * try adding six * revert addition of six * pin python to <3.12 --- recipes/flye/meta.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/recipes/flye/meta.yaml b/recipes/flye/meta.yaml index 3b75b43a8a8a5..4cc8f7c9eb91a 100644 --- a/recipes/flye/meta.yaml +++ b/recipes/flye/meta.yaml @@ -13,7 +13,8 @@ source: - 0001-Makefile-aarch64.patch build: - number: 1 + number: 2 + skip: True # [py > 311] entry_points: - flye = flye.main:main run_exports: @@ -25,6 +26,7 @@ requirements: - make host: - python + - pip - zlib run: - python @@ -45,6 +47,7 @@ about: extra: additional-platforms: + - osx-arm64 - linux-aarch64 identifiers: - biotools:Flye From 1c17633e8a72021bfb03ad72977a485ed9eea5cb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 27 Jul 2024 13:56:24 -0400 Subject: [PATCH 0601/1589] Update recentrifuge to 1.14.1 (#49608) --- recipes/recentrifuge/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/recentrifuge/meta.yaml b/recipes/recentrifuge/meta.yaml index 792c16374b7da..2efe7685617b8 100644 --- a/recipes/recentrifuge/meta.yaml +++ b/recipes/recentrifuge/meta.yaml @@ -1,5 +1,5 @@ {% set name = "recentrifuge" %} -{% set version = "1.14.0" %} +{% set version = "1.14.1" %} package: name: {{ name }} @@ -14,7 +14,7 @@ build: source: url: https://github.com/khyox/{{ name }}/archive/v{{ version }}.tar.gz - sha256: 8151fe3f7d6581f487eb10fab61ef211b132b0774128ed7d060b5fe389d69674 + sha256: b9ec5f04b256d24fc768818069838b44d576715b8093f2566fe70b129e659401 requirements: host: From 4c3cc329bcfb275244b3b259e61b688bba481815 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 27 Jul 2024 16:54:34 -0400 Subject: [PATCH 0602/1589] Update saccharis to 2.0.1 (#49536) * Update saccharis to 2.0.1 * Reset the build number and drop its variable Signed-off-by: Martin Tzvetanov Grigorov * edit sha256 * revert dbcan pin to <4 --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov Co-authored-by: mencian --- recipes/saccharis/meta.yaml | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/recipes/saccharis/meta.yaml b/recipes/saccharis/meta.yaml index e6ebf9c22151a..dacd35cfbd8fd 100644 --- a/recipes/saccharis/meta.yaml +++ b/recipes/saccharis/meta.yaml @@ -1,8 +1,6 @@ {% set name = "SACCHARIS" %} - {% set version = "2.0.0.dev21" %} - {% set build_no = 2 %} - {% set hash = "BA68CAB1070A11D5D4F2335CB770E1603ED54E1FB4B52A31DB4CA9A6CBBD6F7E" %} - +{% set version = "2.0.1" %} +{% set hash = "b2bce5fb1d2c959df571735634de5b68fd175148978613e6fc0daa24b3e25df9" %} package: name: "{{ name|lower }}" @@ -14,9 +12,9 @@ source: build: noarch: python - number: {{ build_no }} + number: 0 script: {{ PYTHON }} setup.py install --single-version-externally-managed --record=record.txt - preserve_egg_dir: True # added because the entry points below seem to be causing a build error + preserve_egg_dir: True # added because the entry points below seem to be causing a build error entry_points: - saccharis = saccharis.CLI:cli_main - saccharis.make_family_files = saccharis.utils.FamilyCategories:cli_main @@ -28,21 +26,18 @@ build: - saccharis-gui = saccharis.gui.PipelineGUI:main - saccharis.config = saccharis.utils.AdvancedConfig:cli_config - saccharis.update_db = saccharis.ExtractAndPruneCAZymes:update_hmms - run_exports: - {{ pin_subpackage("saccharis", max_pin="x.x") }} requirements: - build: - - python - - setuptools host: - python >=3.6 + - pip run: - beautifulsoup4 >=4.11.1 - biopython >=1.79 - blast >=2.* - - dbcan >=3.0.6, < 4 + - dbcan <4 - diamond >=2.0.15 # [not win] - fasttree >=2.1.11 # [not win] - hmmer >=3.3 # [not win] @@ -82,6 +77,7 @@ about: home: https://github.com/saccharis/SACCHARIS_2 dev_url: https://github.com/saccharis/SACCHARIS_2 description: Bioinformatics pipeline to automate phylogenetic analysis of CAZyme families in FASTA sequences via creation of phylogenetic trees. - license: GPL v3 + license: GPL-3.0-or-later + license_family: GPL3 license_file: LICENSE summary: A CAZyme discovery tool. Easily create phylogenetic trees from FASTA files and CAZyme families. From 23e4606468d7ae1ff9cb67bf482fd127e73b40bb Mon Sep 17 00:00:00 2001 From: Hillary Elrick <47190916+helrick@users.noreply.github.com> Date: Sun, 28 Jul 2024 08:15:10 +0100 Subject: [PATCH 0603/1589] Update savana to 1.2.0 - pin versions, cna subcommand test, LICENSE update (#49591) --- recipes/savana/meta.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/recipes/savana/meta.yaml b/recipes/savana/meta.yaml index 51c6b9be90c4c..8ba9b74b466b6 100644 --- a/recipes/savana/meta.yaml +++ b/recipes/savana/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 25025d73628e282c7cd5fd6204befe9152d0d695ebd027b87831aa1338b83914 build: - number: 0 + number: 1 noarch: python script: - "{{ PYTHON }} -m pip install . -vv" @@ -27,7 +27,7 @@ requirements: - pybedtools >=0.9.0 - pysam >=0.20.0 - cyvcf2 >=0.30.16 - - scikit-learn >=1.2.2,<1.3.0 + - scikit-learn 1.2.2 - pandas >=2.0.0 - matplotlib-base >=3.7.1 @@ -39,9 +39,10 @@ test: - savana classify --help - savana evaluate --help - savana train --help + - savana cna --help about: home: "https://github.com/cortes-ciriano-lab/{{ name }}" - license: Free for Academic Use + license: Apache-2.0 license_file: LICENSE.txt summary: "SAVANA: a somatic structural variant caller for long-read data" From 73748f2a27da6eb675fe116d8f5706538d3dfc82 Mon Sep 17 00:00:00 2001 From: Clint Valentine Date: Sun, 28 Jul 2024 03:16:17 -0400 Subject: [PATCH 0604/1589] Add neodisambiguate for multi-species read disambiguation (xenografts, etc.) (#49583) --- recipes/neodisambiguate/meta.yaml | 35 +++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 recipes/neodisambiguate/meta.yaml diff --git a/recipes/neodisambiguate/meta.yaml b/recipes/neodisambiguate/meta.yaml new file mode 100644 index 0000000000000..5665c96529ccf --- /dev/null +++ b/recipes/neodisambiguate/meta.yaml @@ -0,0 +1,35 @@ +{% set version="1.0.0" %} + +package: + name: neodisambiguate + version: {{ version }} + +source: + url: https://github.com/clintval/neodisambiguate/releases/download/{{ version }}/neodisambiguate + sha256: 175f80595162de99c9f0813da773d48cf9883eb2772d434ec61bb237968b1729 + +build: + noarch: generic + number: 0 + run_exports: + - {{ pin_subpackage('neodisambiguate', max_pin="x") }} + script: | + mkdir -p "${PREFIX}/bin" + cp neodisambiguate "${PREFIX}/bin/" + chmod +x "${PREFIX}/bin/neodisambiguate" + +requirements: + run: + - openjdk >=8 + +test: + commands: + - 'neodisambiguate --help 2>&1 | grep "neodisambiguate"' + - 'neodisambiguate --version 2>&1 | grep "neodisambiguate"' + +about: + home: https://github.com/clintval/neodisambiguate + license: MIT + license_family: MIT + summary: Disambiguate reads that were mapped to multiple references. + doc_url: https://github.com/clintval/neodisambiguate From ddba6940e429348c8fe24c15c0e6a036e83e32de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20P=C5=99=C3=ADhoda?= Date: Sun, 28 Jul 2024 09:22:18 +0200 Subject: [PATCH 0605/1589] Bump up abnumber to 0.3.6 (#49597) --- recipes/abnumber/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/abnumber/meta.yaml b/recipes/abnumber/meta.yaml index 2e69c0df6335f..bf1cba8ad94cf 100644 --- a/recipes/abnumber/meta.yaml +++ b/recipes/abnumber/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.3.5" %} # Remember to update sha256 below +{% set version = "0.3.6" %} # Remember to update sha256 below package: name: abnumber @@ -6,7 +6,7 @@ package: source: url: https://github.com/prihoda/abnumber/archive/v{{ version }}.tar.gz - sha256: '6fb14c90c071306b3d87484242bb5e8e89ba4c1bb45461d64a9b1b6bc415bbdb' + sha256: 'a3120224ca340c224085a8311ee9d5515fccdbadb156d769918bf86e06890d7d' build: noarch: python From a2124c2c911fef57918ce9d39c2099093bf43fcf Mon Sep 17 00:00:00 2001 From: zhenxian <920596906@qq.com> Date: Sun, 28 Jul 2024 23:05:59 +0800 Subject: [PATCH 0606/1589] Update meta.yaml (#49616) --- recipes/clair3/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/clair3/meta.yaml b/recipes/clair3/meta.yaml index 751c1c12e54fe..6fe7acdc26c4d 100644 --- a/recipes/clair3/meta.yaml +++ b/recipes/clair3/meta.yaml @@ -1,5 +1,5 @@ {% set name = "clair3" %} -{% set version = "1.0.8" %} +{% set version = "1.0.10" %} package: name: {{ name }} @@ -7,10 +7,10 @@ package: source: url: http://www.bio8.cs.hku.hk/clair3/bioconda/Clair3_v{{ version }}.zip - sha256: 3bc493269878af0d06c3fa006656d77ab01ae55d19c217fcf2ba1d68e2350a9d + sha256: b2de8180d3825f9e1ed4ee1710ce0988dd85eba79ab8bdaf2ad8dae7ac70e228 build: - number: 2 + number: 0 skip: True # [osx] run_exports: - {{ pin_subpackage(name, max_pin="x") }} From c98a520b776b0450c2bc2ca463a466afa839f7f6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 28 Jul 2024 11:41:58 -0400 Subject: [PATCH 0607/1589] Update cstag to 1.1.0 (#49617) --- recipes/cstag/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/cstag/meta.yaml b/recipes/cstag/meta.yaml index 056545dac83d6..8e0a6a0ca3761 100644 --- a/recipes/cstag/meta.yaml +++ b/recipes/cstag/meta.yaml @@ -1,5 +1,5 @@ {% set name = "cstag" %} -{% set version = "1.0.5" %} +{% set version = "1.1.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/cstag-{{ version }}.tar.gz - sha256: 69aeb279da6143a8f7b9b42a92ae1978f752890c8d475c953077c09ce918774b + sha256: cecde4b604c00114fadc2344f9fd9b19947ce56f04cabe7b184e621c9c6e3355 build: noarch: python From 483342433ae5d260cf0ce82b9687f9f9dd0ebcdd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 28 Jul 2024 11:44:30 -0400 Subject: [PATCH 0608/1589] Update clair3-illumina to 1.0.10 (#49618) --- recipes/clair3-illumina/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/clair3-illumina/meta.yaml b/recipes/clair3-illumina/meta.yaml index bd27a4dfbce85..22db4a4e6d969 100644 --- a/recipes/clair3-illumina/meta.yaml +++ b/recipes/clair3-illumina/meta.yaml @@ -1,5 +1,5 @@ {% set name = "clair3-illumina" %} -{% set version = "1.0.9" %} +{% set version = "1.0.10" %} package: name: {{ name }} @@ -7,10 +7,10 @@ package: source: url: https://github.com/HKU-BAL/Clair3/archive/refs/tags/v{{ version }}.zip - sha256: 79a697046c649daeb1df85a9d65c1a40f61816c4f0497d218192ed557b5d79b1 + sha256: e8114dec1ef768d5ecdbf3b0734f41c69c95fee543d999b841bd6bfb8be64ea8 build: - number: 1 + number: 0 skip: True # [osx] run_exports: - {{ pin_subpackage(name, max_pin="x") }} From 6e60e4926ee8839b903087671d0bf603a55bd785 Mon Sep 17 00:00:00 2001 From: "Tianyu (Sky) Lu" Date: Sun, 28 Jul 2024 18:22:09 -0500 Subject: [PATCH 0609/1589] Update TIR-Learner (#49611) * Update build.sh * Update meta.yaml --- recipes/tir-learner/build.sh | 6 +++--- recipes/tir-learner/meta.yaml | 13 ++++++------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/recipes/tir-learner/build.sh b/recipes/tir-learner/build.sh index 0855b1275d676..6c3cf59227f02 100644 --- a/recipes/tir-learner/build.sh +++ b/recipes/tir-learner/build.sh @@ -1,15 +1,15 @@ #!/bin/sh set -x -e -TIR_LEARNER_DIR=${PREFIX}/share/TIR-Learner3.0 +TIR_LEARNER_DIR=${PREFIX}/share/TIR-Learner3 mkdir -p ${PREFIX}/bin mkdir -p ${TIR_LEARNER_DIR} -cp -r TIR-Learner3.0/* ${TIR_LEARNER_DIR} +cp -r TIR-Learner3/* ${TIR_LEARNER_DIR} cat <>${PREFIX}/bin/TIR-Learner #!/bin/bash -python3 ${TIR_LEARNER_DIR}/TIR-Learner3.0.py \$@ +python3 ${TIR_LEARNER_DIR}/TIR-Learner.py \$@ END chmod a+x ${PREFIX}/bin/TIR-Learner diff --git a/recipes/tir-learner/meta.yaml b/recipes/tir-learner/meta.yaml index 71766ee41780e..4bf29c104fcc1 100644 --- a/recipes/tir-learner/meta.yaml +++ b/recipes/tir-learner/meta.yaml @@ -1,6 +1,6 @@ {% set name = "TIR-Learner" %} -{% set version = "3.0.2" %} -{% set sha256 = "71edc2633fd2d5a6306db83528291b21e9a50b7e08b02a3f1d2cdc13d04ff441" %} +{% set version = "3.0.3" %} +{% set sha256 = "cf91397cb693439857c34b358b68ee6d110324d926e9dda76b8af00faea85bf5" %} package: name: "{{ name|lower }}" @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 noarch: generic run_exports: - {{ pin_subpackage('tir-learner', max_pin='x') }} @@ -24,10 +24,9 @@ requirements: - biopython - scikit-learn >=1.3 - pandas - - glob2 - multiprocess - regex - - tensorflow >=2.11 + - pytorch - keras >=3.3.3 - swifter @@ -38,8 +37,8 @@ test: about: home: https://github.com/lutianyu2001/TIR-Learner - license: GPLv3 - license_family: GPL + license: GPL-3.0-or-later + license_family: GPL3 license_file: LICENSE summary: An ensemble pipeline for terminal inverted repeat (TIR) transposable elements annotation dev_url: https://github.com/lutianyu2001/TIR-Learner From 9a3867af89e6d7575e1a24d2ac5117384e12cff9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 28 Jul 2024 19:22:37 -0400 Subject: [PATCH 0610/1589] Update neodisambiguate to 1.1.0 (#49619) --- recipes/neodisambiguate/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/neodisambiguate/meta.yaml b/recipes/neodisambiguate/meta.yaml index 5665c96529ccf..4c36772865992 100644 --- a/recipes/neodisambiguate/meta.yaml +++ b/recipes/neodisambiguate/meta.yaml @@ -1,4 +1,4 @@ -{% set version="1.0.0" %} +{% set version="1.1.0" %} package: name: neodisambiguate @@ -6,7 +6,7 @@ package: source: url: https://github.com/clintval/neodisambiguate/releases/download/{{ version }}/neodisambiguate - sha256: 175f80595162de99c9f0813da773d48cf9883eb2772d434ec61bb237968b1729 + sha256: 000ca66f52cf18b2d1949749a3d672861480d0831ff86113f3e0e05d54c85e45 build: noarch: generic From d546cf78219083c1f80abeb81856293ca10c6dec Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 28 Jul 2024 19:23:26 -0400 Subject: [PATCH 0611/1589] Update mhcflurry to 2.1.2 (#49621) --- recipes/mhcflurry/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mhcflurry/meta.yaml b/recipes/mhcflurry/meta.yaml index e1fa36f02ca62..cf51e883c801f 100644 --- a/recipes/mhcflurry/meta.yaml +++ b/recipes/mhcflurry/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mhcflurry" %} -{% set version = "2.1.1" %} +{% set version = "2.1.2" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 5907a489ffe7e459295b08849428677fc738fcb19716628e4e3d06f247131ff8 + sha256: 95f7b23abde2838118190307096d84c795f373646d231ddf07969cdb4a5138de build: number: 0 From a1f50eeaf8736592a67a1177173ed1291b12fb03 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 28 Jul 2024 19:23:54 -0400 Subject: [PATCH 0612/1589] Update snakemake-storage-plugin-azure to 0.3.0 (#49620) --- recipes/snakemake-storage-plugin-azure/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-storage-plugin-azure/meta.yaml b/recipes/snakemake-storage-plugin-azure/meta.yaml index a66b6d1a88edc..f22cf394948c6 100644 --- a/recipes/snakemake-storage-plugin-azure/meta.yaml +++ b/recipes/snakemake-storage-plugin-azure/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-storage-plugin-azure" %} -{% set version = "0.2.2" %} +{% set version = "0.3.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_storage_plugin_azure-{{ version }}.tar.gz - sha256: df1f5740005dcdbe765f3f6c1b52b657dacaa5177a7a6e981a00aa5f5f2b0be7 + sha256: 95f58b2f355707a37fcf739a0e9172388acef8a1800242f2e0724154521a20e0 build: noarch: python From 9db0d81e71e92074b47abfd843639dd6c4f0eb89 Mon Sep 17 00:00:00 2001 From: Akihiro Kuno Date: Mon, 29 Jul 2024 12:49:42 +0900 Subject: [PATCH 0613/1589] Remove wasyprint in cstag (#49622) --- recipes/cstag/meta.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/recipes/cstag/meta.yaml b/recipes/cstag/meta.yaml index 8e0a6a0ca3761..f2ed2333e74a9 100644 --- a/recipes/cstag/meta.yaml +++ b/recipes/cstag/meta.yaml @@ -12,7 +12,7 @@ source: build: noarch: python script: {{ PYTHON }} -m pip install . -vv - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name|lower, max_pin='x.x') }} @@ -23,7 +23,6 @@ requirements: - pip run: - python >=3.7.0,<4.0.0 - - weasyprint >=52.5 test: imports: From d706ddc5e4f51d81de63a9bf00cacddb5fc33a21 Mon Sep 17 00:00:00 2001 From: Marc Sturm Date: Mon, 29 Jul 2024 12:10:17 +0200 Subject: [PATCH 0614/1589] Update of ngs-bits to version 2024_07 (#49623) --- recipes/ngs-bits/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/ngs-bits/meta.yaml b/recipes/ngs-bits/meta.yaml index 2cdff02b988a1..a0cfd0e03364c 100644 --- a/recipes/ngs-bits/meta.yaml +++ b/recipes/ngs-bits/meta.yaml @@ -1,18 +1,18 @@ -{% set version = "2024_06" %} +{% set version = "2024_07" %} package: name: ngs-bits version: {{ version }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage("ngs-bits", max_pin=None) }} source: url: https://github.com/imgag/ngs-bits/releases/download/{{ version }}/ngs-bits-{{ version }}.tgz - sha256: d338ed656e80a67dba4d1e7decdf40744f398e7559eb4daa2e6cac5b951ec157 + sha256: c1f78b59d87516c5fba44a1375da561b8b1577b4ef949ce63b9a042bbf7f1853 # Note: pinning of sysroot_linux-64 =2.17 enforces cos7 and is currently needed to prevent an memcpy@GLIBC2.14 error requirements: From 243afe64c60c7247398bcfb0d9cd03832a56ff8b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 29 Jul 2024 09:02:46 -0400 Subject: [PATCH 0615/1589] Update pgscatalog.match to 0.2.3 (#49632) --- recipes/pgscatalog.match/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pgscatalog.match/meta.yaml b/recipes/pgscatalog.match/meta.yaml index 239167ed3705d..9d5d74a74c3f0 100644 --- a/recipes/pgscatalog.match/meta.yaml +++ b/recipes/pgscatalog.match/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pgscatalog.match" %} -{% set version = "0.2.2" %} +{% set version = "0.2.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pgscatalog_match-{{ version }}.tar.gz - sha256: 29bd67377ea2f50b8fde7c8287d3498987395c5d3f92ac378cc0886791b549b8 + sha256: 7aa2e940a984d0e7610fe8c712b2730468757e54195880a251b4e250848e39e7 build: number: 0 From 470d1e6c5175fcc8d3371e71f3ce1292c2ac7db7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 29 Jul 2024 09:05:50 -0400 Subject: [PATCH 0616/1589] Update scmidas to 0.0.18 (#49626) --- recipes/scmidas/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/scmidas/meta.yaml b/recipes/scmidas/meta.yaml index c64513e680f91..2ddf1bb026882 100644 --- a/recipes/scmidas/meta.yaml +++ b/recipes/scmidas/meta.yaml @@ -1,5 +1,5 @@ {% set name = "scmidas" %} -{% set version = "0.0.17" %} +{% set version = "0.0.18" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/scmidas-{{ version }}.tar.gz - sha256: d048a28df31340c58fd656ff8918ddebad59eeaa931a7171e582c6d2f5625a79 + sha256: 62c953d679a7298a25882930098cda8c6f3055ec37b89e5306eb471edec10b3f build: number: 0 From d5e42833026857ed6de3b52c81efba5cb54311e5 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Mon, 29 Jul 2024 10:00:52 -0500 Subject: [PATCH 0617/1589] longshot: add arm64 build (#49642) --- recipes/longshot/build.sh | 4 ---- recipes/longshot/meta.yaml | 5 +++-- recipes/longshot/update-rust-htslib.patch | 2 +- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/recipes/longshot/build.sh b/recipes/longshot/build.sh index f7112e78ae4b7..c2ec39a96c873 100644 --- a/recipes/longshot/build.sh +++ b/recipes/longshot/build.sh @@ -1,10 +1,6 @@ #!/bin/bash set -ex -# Add workaround for SSH-based Git connections from Rust/cargo. See https://github.com/rust-lang/cargo/issues/2078 for details. -# We set CARGO_HOME because we don't pass on HOME to conda-build, thus rendering the default "${HOME}/.cargo" defunct. -export CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_HOME="${BUILD_PREFIX}/.cargo" - # build statically linked binary with Rust export LD="${CC}" C_INCLUDE_PATH="${PREFIX}/include" LIBRARY_PATH="${PREFIX}/lib" RUST_BACKTRACE=1 diff --git a/recipes/longshot/meta.yaml b/recipes/longshot/meta.yaml index 10c98313b10f1..b02c830a4eddd 100644 --- a/recipes/longshot/meta.yaml +++ b/recipes/longshot/meta.yaml @@ -12,8 +12,7 @@ source: - update-rust-htslib.patch build: - number: 1 - skip: True # [osx] + number: 2 run_exports: - {{ pin_subpackage('longshot', max_pin="x") }} @@ -43,10 +42,12 @@ about: license_file: LICENSE summary: "Diploid SNV caller for error-prone reads." dev_url: https://github.com/pjedge/longshot + doc_url: https://github.com/pjedge/longshot/blob/v(( version }}/README.md extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - doi:10.1038/s41467-019-12493-y - biotools:longshot diff --git a/recipes/longshot/update-rust-htslib.patch b/recipes/longshot/update-rust-htslib.patch index 1f2ec95d71d9f..80c03a76bc485 100644 --- a/recipes/longshot/update-rust-htslib.patch +++ b/recipes/longshot/update-rust-htslib.patch @@ -17,7 +17,7 @@ index c8592eb..e3a32db 100644 [dependencies] bio = "0.25.0" -rust-htslib = "0.38.2" -+rust-htslib = "0.46.0" ++rust-htslib = "0.47.0" clap = "2.26.2" chrono = "0.4" rand = { version = "0.8", features = ["std_rng"] } From ad1e4a899ca40a543f7b1e7a79ab499d5e74c862 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 29 Jul 2024 11:01:34 -0400 Subject: [PATCH 0618/1589] Update pgscatalog-utils to 1.2.0 (#49641) --- recipes/pgscatalog-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pgscatalog-utils/meta.yaml b/recipes/pgscatalog-utils/meta.yaml index f5b5d58027690..1a1f0bf5d31ba 100644 --- a/recipes/pgscatalog-utils/meta.yaml +++ b/recipes/pgscatalog-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pgscatalog-utils" %} -{% set version = "1.1.2" %} +{% set version = "1.2.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pgscatalog_utils-{{ version }}.tar.gz - sha256: f241285f4d316d69a7ca8aef6ccfa0a136431a79f78f390576ab0e92a0e9bdcc + sha256: 00c22d84306c671f909f09ee3cd1c4de223d02009b16c0162c76f9526d0d6efa build: noarch: python From 551bec49230c0d17b87f321ae32c708338defbad Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 29 Jul 2024 11:01:43 -0400 Subject: [PATCH 0619/1589] Update ebi-eva-common-pyutils to 0.6.9 (#49638) --- recipes/ebi-eva-common-pyutils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ebi-eva-common-pyutils/meta.yaml b/recipes/ebi-eva-common-pyutils/meta.yaml index b81c865455d4c..98e6fd2a8d6d6 100644 --- a/recipes/ebi-eva-common-pyutils/meta.yaml +++ b/recipes/ebi-eva-common-pyutils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ebi-eva-common-pyutils" %} -{% set version = "0.6.8" %} +{% set version = "0.6.9" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/ebi_eva_common_pyutils-{{ version }}.tar.gz - sha256: 91ec82a783ac8f5b3b9a2f3d998b99b0af02083bb3c7b8f7c56b37827d6631a5 + sha256: 073b60a4349d3ad540453ee1983bcbbe200cf744242f421bb4ba019cd60eb9a7 build: script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation From 186735e389a275c89f95ba010f2407cf7b1d9c9a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 29 Jul 2024 11:01:52 -0400 Subject: [PATCH 0620/1589] Update pgscatalog.calc to 0.2.2 (#49637) --- recipes/pgscatalog.calc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pgscatalog.calc/meta.yaml b/recipes/pgscatalog.calc/meta.yaml index 0665ea2148648..67c7c66cbacd7 100644 --- a/recipes/pgscatalog.calc/meta.yaml +++ b/recipes/pgscatalog.calc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pgscatalog.calc" %} -{% set version = "0.2.1" %} +{% set version = "0.2.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pgscatalog_calc-{{ version }}.tar.gz - sha256: 66c661a2b8a1b4c46db6f0377b31077053251123b46d31b3b51d54c8ea0dd4d8 + sha256: 3589cc8541e8c8f6e0a359ba163454da1cd4aef0baf6e11c8c23e3aff82c237f build: entry_points: From c8d86e47d3602634ec354b3e529cda7e0f2d5923 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 29 Jul 2024 11:02:26 -0400 Subject: [PATCH 0621/1589] Update pgscatalog.core to 0.2.2 (#49636) --- recipes/pgscatalog.core/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pgscatalog.core/meta.yaml b/recipes/pgscatalog.core/meta.yaml index 1592418bb8ef4..3e037ff67cd1e 100644 --- a/recipes/pgscatalog.core/meta.yaml +++ b/recipes/pgscatalog.core/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pgscatalog.core" %} -{% set version = "0.2.1" %} +{% set version = "0.2.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pgscatalog_core-{{ version }}.tar.gz - sha256: b4711156dfd0a0e4bcf4990e019071e51f97e8bda4eece2e31cf5dd6003d92ee + sha256: 1a716fdaa6972c86b7a8c2a8141a738cbd5f9e6a98941877631f4187415a0a7f build: entry_points: From bd11c6e2ae5cbcd00df270cd4497aa84fac5fedf Mon Sep 17 00:00:00 2001 From: BertBog Date: Mon, 29 Jul 2024 17:04:34 +0200 Subject: [PATCH 0622/1589] updated pacu_snp to v0.0.4 (#49640) --- recipes/pacu_snp/meta.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/pacu_snp/meta.yaml b/recipes/pacu_snp/meta.yaml index 02d1fa110b448..a25469c48a3fa 100644 --- a/recipes/pacu_snp/meta.yaml +++ b/recipes/pacu_snp/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.0.3" %} +{% set version = "0.0.4" %} package: name: pacu_snp @@ -6,7 +6,7 @@ package: source: url: https://pypi.io/packages/source/p/pacu_snp/pacu_snp-{{ version }}.tar.gz - sha256: a4e9934f6b218a48784389fdc3f2af4fe4fe7225f69a90278a83976bfa02fc78 + sha256: a00027a667bd502073f682e4ea72c0e31a1940345b19338cd2b67838ef925c2a build: noarch: python @@ -14,6 +14,7 @@ build: entry_points: - PACU=pacu.run_pacu:main - PACU_map=pacu.map_to_ref:main + - PACU_galaxy=pacu.galaxy:main run_exports: - {{ pin_subpackage("pacu_snp", max_pin="x.x") }} script: "{{ PYTHON }} -m pip install . --no-deps -vv" @@ -59,4 +60,5 @@ test: commands: - PACU -h - PACU_map -h + - PACU_galaxy -h From 257c08752202c31b051edc96c68e72cec07ed621 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 29 Jul 2024 15:43:57 -0400 Subject: [PATCH 0623/1589] Update pytximport to 0.7.0 (#49646) --- recipes/pytximport/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pytximport/meta.yaml b/recipes/pytximport/meta.yaml index 5f43ef5d5e436..698fc623fa95c 100644 --- a/recipes/pytximport/meta.yaml +++ b/recipes/pytximport/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pytximport" %} -{% set version = "0.6.0" %} +{% set version = "0.7.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pytximport-{{ version }}.tar.gz - sha256: 7a32d5cf5cd9582fe832661b81f0159896d69b7d52dd66ca55d74f1ec48f1606 + sha256: fa4992d4fe11246941b36eadc886d34d61d6682e5cf2ad266f9f96bb0da9290a build: noarch: python From 1cfab4ae8d15542a065cfa20a234ecbadb999565 Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Mon, 29 Jul 2024 12:44:30 -0700 Subject: [PATCH 0624/1589] Update btllib to 1.7.3 (#49643) --- recipes/btllib/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/btllib/meta.yaml b/recipes/btllib/meta.yaml index 7414af219a0f1..c106b65e155e0 100644 --- a/recipes/btllib/meta.yaml +++ b/recipes/btllib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "btllib" %} -{% set version = "1.7.2" %} +{% set version = "1.7.3" %} package: name: {{ name|lower }} @@ -7,10 +7,10 @@ package: source: url: https://github.com/bcgsc/btllib/releases/download/v{{ version }}/{{ name|lower }}-{{ version }}.tar.gz - sha256: 4c1bb29fdbd7d9a39f960360a5d4b224d22189862b948027a8e3ecd67c635926 + sha256: 31e7124e1cda9eea6f27b654258a7f8d3dea83c828f0b2e8e847faf1c5296aa3 build: - number: 3 + number: 0 run_exports: - {{ pin_subpackage('btllib', max_pin="x") }} From 84f37fc0e8e74d388e31e2783527bc295ee20e8e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 29 Jul 2024 15:45:20 -0400 Subject: [PATCH 0625/1589] Update perbase to 0.10.0 (#49644) --- recipes/perbase/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/perbase/meta.yaml b/recipes/perbase/meta.yaml index e97ff9b77b19d..ac6865b1435ff 100644 --- a/recipes/perbase/meta.yaml +++ b/recipes/perbase/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.9.0" %} -{% set sha256 = "8f3c4ef2475241e06636c9e2790da5258aac69722d6fbc8592b33a6bfeb49ddb" %} +{% set version = "0.10.0" %} +{% set sha256 = "357d2b24cf06875e177f9aa5165286709aec91ce84bef13602ae4c26274160f4" %} package: name: perbase @@ -12,7 +12,7 @@ source: - perbase-aarch64.patch build: - number: 2 + number: 0 run_exports: - {{ pin_subpackage('perbase', max_pin="x.x") }} From 392d15856bb2b192bdf007cac4e3bed406833177 Mon Sep 17 00:00:00 2001 From: Gioele Lazzari <56556415+lazzarigioele@users.noreply.github.com> Date: Mon, 29 Jul 2024 21:52:11 +0200 Subject: [PATCH 0626/1589] add gempipe recipe (#49639) --- recipes/gempipe/meta.yaml | 69 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100755 recipes/gempipe/meta.yaml diff --git a/recipes/gempipe/meta.yaml b/recipes/gempipe/meta.yaml new file mode 100755 index 0000000000000..163ceffad28ed --- /dev/null +++ b/recipes/gempipe/meta.yaml @@ -0,0 +1,69 @@ +{% set version = "1.33.0" %} + +package: + name: "gempipe" + version: {{ version }} + + +source: + url: https://github.com/lazzarigioele/gempipe/archive/v{{ version }}.tar.gz + sha256: 547e812764177ba1171740e1b4ea564784dee6c395618ae125ffb0f28fe196f3 + + +build: + number: 0 # Build number, increment this when making new builds of the same version + noarch: python + script: + - {{ PYTHON }} -m pip install . -vv --no-deps # Script to run for building the package + entry_points: + - gempipe = gempipe:main + run_exports: + - {{ pin_subpackage('gempipe', max_pin="x") }} + + +requirements: + host: + - python >=3.9 + - pip + - poetry >=1.7.1 + - poetry-core >=1.8.1 + - ipython >=8.7.0 + run: + - python >=3.9 + - ipython >=8.7.0 + - cobra >=0.29 + - pandas >=2.0.0 + - openpyxl >=3.1.0 + - ncbi-genome-download >=0.3.3 + - biopython >=1.80 + - pigz >=2.5 + - prodigal >=2.6.3 + - prokka >=1.14.6 + - busco >=5.4.0 + - seqkit >=2.2.0 + - cd-hit >=4.8.1 + - blast >=2.12.0 + - diamond >=2.0.15 + - eggnog-mapper >=2.1.7 + + +test: + imports: + - gempipe + commands: + - gempipe --help + + +about: + home: "https://github.com/lazzarigioele/gempipe" + summary: 'gempipe is a tool for the reconstruction of strain-specific genome-scale metabolic models.' + license: GPL-3.0-only + license_file: LICENSE.txt + doc_url: "https://gempipe.readthedocs.io/" + dev_url: "https://github.com/lazzarigioele/gempipe" + + +extra: + recipe-maintainers: + - lazzarigioele + From 6591dc0a033928af8de2d3961a8c5cbf994231b1 Mon Sep 17 00:00:00 2001 From: richard-burhans Date: Mon, 29 Jul 2024 16:50:35 -0400 Subject: [PATCH 0627/1589] adding missing requirement (#49647) Co-authored-by: Richard Burhans --- recipes/segalign-galaxy/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/segalign-galaxy/meta.yaml b/recipes/segalign-galaxy/meta.yaml index 4c89cace6e0b2..587bf1cacd24e 100644 --- a/recipes/segalign-galaxy/meta.yaml +++ b/recipes/segalign-galaxy/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 noarch: generic run_exports: - {{ pin_compatible('segalign-galaxy', max_pin='x.x') }} @@ -14,6 +14,7 @@ requirements: run: - segalign-full ={{ version }} - bashlex + - gzip - python =3.12 test: From 054aee05255a270f46989d344a080713592ef04a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 29 Jul 2024 21:18:07 -0400 Subject: [PATCH 0628/1589] Update oarfish to 0.5.0 (#49652) --- recipes/oarfish/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/oarfish/meta.yaml b/recipes/oarfish/meta.yaml index 633bcc960583e..566a540757180 100644 --- a/recipes/oarfish/meta.yaml +++ b/recipes/oarfish/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.4.0" %} +{% set version = "0.5.0" %} package: name: oarfish @@ -11,7 +11,7 @@ build: source: url: https://github.com/COMBINE-lab/oarfish/archive/v{{ version }}.tar.gz - sha256: 97e5d42d7797977a12790d9986a7e28c2ec264ca7a9637916178594e868080c8 + sha256: 2fcaeca31f7e1c9870dd200ce0fd4163b58e8e945015ad00d06e8a98cf4921f6 requirements: build: From da58087d74bff672c4cd6f8a27e59364113c1198 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 29 Jul 2024 21:20:02 -0400 Subject: [PATCH 0629/1589] Update pathogen-embed to 2.3.0 (#49650) --- recipes/pathogen-embed/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pathogen-embed/meta.yaml b/recipes/pathogen-embed/meta.yaml index 7adbedfad19a3..585b65b93e761 100644 --- a/recipes/pathogen-embed/meta.yaml +++ b/recipes/pathogen-embed/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.2.1" %} +{% set version = "2.3.0" %} {% set name = "pathogen-embed" %} package: @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pathogen_embed-{{ version }}.tar.gz - sha256: 50c18c45aa53aa469b26e9b18d903167e7bd52755de6b4a6a2acec9feff8f1dc + sha256: 47ef737b7609593c6de143c17f54bc1e526aaa615773aad73bb6464de67cbff1 build: number: 0 From 75ed8b019dac25432b8e3eca7bf67642c0c5db2b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 29 Jul 2024 21:52:56 -0400 Subject: [PATCH 0630/1589] Update pybiolib to 1.2.12 (#49645) * Update pybiolib to 1.1.2250 * Update pybiolib to 1.2.12 * add entry_points --------- Co-authored-by: mencian --- recipes/pybiolib/meta.yaml | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index 2ecfc649d42a0..5a7d5bf7ebabb 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.1.2244" %} +{% set version = "1.2.12" %} package: name: {{ name|lower }} @@ -7,25 +7,27 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: af57cacff6cbf4c54c70b308d0c3a48757285795c5983f7e596437f9981ba62f + sha256: dec5aa160f90cbbd0060975fc2cf5667cf8d44ce8936d6aef0886da336b66265 build: - noarch: python - script: {{ PYTHON }} -m pip install . -vv number: 0 + noarch: python + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv + entry_points: + - biolib = biolib:call_cli run_exports: - - {{ pin_subpackage('pybiolib', max_pin="x.x") }} + - {{ pin_subpackage('pybiolib', max_pin="x") }} requirements: host: - python >=3.6,<4.0 - - poetry >=0.12 + - poetry >=1.8.0 - poetry-core - pip run: - python >=3.6,<4.0 - appdirs >=1.4.3 - - click >=8.0.0,<8.1.0 + - click >=8.0.0 - docker-py >=5.0.3 - flask >=2.0.1 - flask-cors >=3.0.10 @@ -35,24 +37,23 @@ requirements: - pyjwt >=2.3.0 - pyyaml >=5.3.1 - requests >=2.25.1,<2.30.0 - - rich >=12.4.4,<13.0.0 - - typing_extensions >=3.10.0 # [py<38] - - typing_inspect >=0.5.0,<0.6.0 # [py<38] + - rich >=12.4.4 + - typing_extensions >=3.10.0 # [py < 38] + - typing_inspect >=0.5.0,<0.6.0 # [py < 38] test: imports: - biolib commands: - - pip check - biolib -h - requires: - - pip about: home: https://github.com/biolib - summary: BioLib Python Client + summary: "BioLib Python Client" license: MIT + license_family: MIT license_file: LICENSE + dev_url: https://github.com/biolib extra: recipe-maintainers: From 159d1b11214cc3820a572f7132567f4f3b8c86df Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Mon, 29 Jul 2024 21:56:44 -0500 Subject: [PATCH 0631/1589] Update cellprofiler-core to 4.2.7 (#49653) --- recipes/cellprofiler-core/meta.yaml | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/recipes/cellprofiler-core/meta.yaml b/recipes/cellprofiler-core/meta.yaml index eb03ea8eddc69..f439833bd2fb8 100644 --- a/recipes/cellprofiler-core/meta.yaml +++ b/recipes/cellprofiler-core/meta.yaml @@ -1,39 +1,39 @@ {% set name = "cellprofiler-core" %} -{% set version = "4.2.6" %} +{% set version = "4.2.7" %} package: name: {{ name|lower }} version: {{ version }} source: - url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/cellprofiler-core-{{ version }}.tar.gz - sha256: 91993485783bbab87d89a728260f10e57fda3f7335e6057393702cea774db2d7 + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/cellprofiler_core-{{ version }}.tar.gz + sha256: b1a4c232a7d6237726ec3f5a5d5b9c06b177d3b37020c14b2179b690aef1f772 build: number: 0 noarch: python - script: {{ PYTHON }} -m pip install . -vv + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv run_exports: - {{ pin_subpackage(name, max_pin='x') }} requirements: host: - pip - - python >=3.6 + - python >=3.8 run: - boto3 >=1.12.28 - - centrosome ==1.2.1 + - centrosome >=1.2.3,<1.3 - docutils ==0.15.2 - - h5py 3.6.0 + - h5py >=3.6.0,<3.7.dev0 - matplotlib-base >=3.1.3 - numpy >=1.18.2 - prokaryote ==2.4.4 - psutil >=5.7.0 - - python >=3.6 - - python-bioformats ==4.0.6 + - python >=3.8 + - python-bioformats ==4.0.7 - python-javabridge ==4.0.3 - - pyzmq 22.3 - - scikit-image >=0.16.2 + - pyzmq >=22.3,<23.dev0 + - scikit-image ==0.18.3 - scipy >=1.4.1 test: @@ -42,10 +42,13 @@ test: - cellprofiler_core.analysis about: - home: https://github.com/CellProfiler/core + home: "https://github.com/CellProfiler/core" license: BSD-3-Clause + license_family: BSD license_file: LICENSE - summary: Dependency for CellProfiler v4 + summary: "Dependency for CellProfiler v4." + dev_url: "https://github.com/CellProfiler/core" + doc_url: "https://github.com/CellProfiler/CellProfiler/wiki" extra: recipe-maintainers: From f744496006b6dd32954de6dc443a1b82c8c2af21 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 29 Jul 2024 22:57:28 -0400 Subject: [PATCH 0632/1589] Update r-recetox-aplcms to 0.13.0 (#49625) * Update r-recetox-aplcms to 0.13.0 * Update meta.yaml * add run_exports * fix URL --------- Co-authored-by: Helge Hecht Co-authored-by: mencian --- recipes/r-recetox-aplcms/meta.yaml | 48 +++++++++++++++--------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/recipes/r-recetox-aplcms/meta.yaml b/recipes/r-recetox-aplcms/meta.yaml index b28a820e83e71..066f8b6fa62e8 100644 --- a/recipes/r-recetox-aplcms/meta.yaml +++ b/recipes/r-recetox-aplcms/meta.yaml @@ -1,64 +1,62 @@ {% set name = "recetox-aplcms" %} -{% set version = "0.12.0" %} -{% set github = "https://github.com/RECETOX" %} +{% set version = "0.13.0" %} +{% set github = "https://github.com/RECETOX/recetox-aplcms" %} package: name: "r-{{ name|lower }}" version: "{{ version }}" source: - url: "{{ github }}/recetox-aplcms/archive/refs/tags/v{{ version }}.tar.gz" - sha256: c76715e50a442b45f46f79120af6f382965f9a8de63bf0f624eb132478b6ed2c + url: "https://github.com/RECETOX/recetox-aplcms/archive/refs/tags/v{{ version }}.tar.gz" + sha256: d08847e0846734c76f06d009f4449ba498da8ea955d5029ee4ce4a67ba8e82ea build: - number: 1 + number: 0 noarch: generic rpaths: - lib/R/lib/ - lib/ script_env: - - RGL_USE_NULL=TRUE # avoid warning at test-time - script: R CMD INSTALL --build . - + - RGL_USE_NULL=TRUE # avoid warning at test-time + script: ${R} CMD INSTALL --build . ${R_ARGS} + run_exports: + - {{ pin_subpackage('r-recetox-aplcms', max_pin="x.x") }} + requirements: host: - - r-base =4.2 + - r-base - r-mass - - bioconductor-mzr + - bioconductor-mzr ==2.36.0 - r-splines2 - r-doparallel - r-foreach - r-iterators - r-snow - r-rcpp - - r-arrow >=7.0.0,<10.0.0 + - r-arrow - r-dplyr - r-tidyr - r-stringr - # TODO work around bug in conda mambabuild that takes this from defaults instead of conda-forge - # can be removed once conda mambabuild properly respects strict priorities. - # See https://github.com/mamba-org/boa/issues/115 - - r-stringi >=1.7.12 + - r-stringi - r-tibble + - r-plyr run: - - r-base =4.2 + - r-base - r-mass - - bioconductor-mzr + - bioconductor-mzr ==2.36.0 - r-splines2 - r-doparallel - r-foreach - r-iterators - r-snow - r-rcpp - - r-arrow >=7.0.0,<10.0.0 + - r-arrow - r-dplyr - r-tidyr - r-stringr - # TODO work around bug in conda mambabuild that takes this from defaults instead of conda-forge - # can be removed once conda mambabuild properly respects strict priorities. - # See https://github.com/mamba-org/boa/issues/115 - - r-stringi >=1.7.12 + - r-stringi - r-tibble + - r-plyr test: commands: @@ -66,9 +64,11 @@ test: about: home: "{{ github }}" - license: GPL-2.0 + license: "GPL-2.0-or-later" license_file: LICENSE - summary: apLCMS is a software which generates a feature table from a batch of LC/MS spectra. A modified fork of the original apLCMS by Tianwei Yu. + summary: "apLCMS is a software which generates a feature table from a batch of LC/MS spectra. A modified fork of the original apLCMS by Tianwei Yu." + dev_url: "{{ github }}" + doc_url: "https://mypage.cuhk.edu.cn/academics/yutianwei/apLCMS" extra: recipe-maintainers: From edb5f0ecf5cf30d0cd73969d4fd11a7e95c39ce1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 29 Jul 2024 22:57:44 -0400 Subject: [PATCH 0633/1589] Update pygcap to 1.2.5 (#49654) --- recipes/pygcap/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pygcap/meta.yaml b/recipes/pygcap/meta.yaml index 6a2c7eae82282..abc14978799ed 100644 --- a/recipes/pygcap/meta.yaml +++ b/recipes/pygcap/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pygcap" %} -{% set version = "1.2.3" %} +{% set version = "1.2.5" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pygcap-{{ version }}.tar.gz - sha256: f9f96bff4cfa880746f9d549f58ac4c50758544c7f91fafffb680e654363d477 + sha256: caa4edf728b8cee811daf71e6fda4f3a088fcec3a6bd24a3fc37807c2ee01125 build: number: 0 From c7691c9e2154f64446d3e62f9113fe263f2fc886 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 29 Jul 2024 23:24:00 -0400 Subject: [PATCH 0634/1589] Update espresso to 1.5.0 (#49649) --- recipes/espresso/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/espresso/meta.yaml b/recipes/espresso/meta.yaml index 336ead6120ef1..6c4740057bb4e 100644 --- a/recipes/espresso/meta.yaml +++ b/recipes/espresso/meta.yaml @@ -1,11 +1,11 @@ -{% set version = "1.4.0" %} +{% set version = "1.5.0" %} package: name: espresso version: {{ version }} source: - sha256: 656a5ab152782e5bb195b25a3814a3b94c1ed9ae9c03a1692cf1bba0794d1295 + sha256: 7cc7dd73465f434c98e8c5a41c510bfc419edb32954f2736b20af3f05cc7e348 url: https://github.com/Xinglab/espresso/releases/download/v{{ version }}/espresso_v_{{ version|replace(".", "_") }}.tar.gz build: From 0a0206234b544662bf89aee7ea2ab5d3021c8c76 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Mon, 29 Jul 2024 22:52:31 -0500 Subject: [PATCH 0635/1589] wfa2-lib: add arm64 build (#49655) * wfa2-lib: add arm64 build * edit build.sh --- recipes/wfa2-lib/build.sh | 15 ++++++++------- recipes/wfa2-lib/meta.yaml | 7 ++++--- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/recipes/wfa2-lib/build.sh b/recipes/wfa2-lib/build.sh index 1c1d621252dc4..ae970ee6f6ad4 100644 --- a/recipes/wfa2-lib/build.sh +++ b/recipes/wfa2-lib/build.sh @@ -5,13 +5,14 @@ export C_INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" -ARCH=$(uname -m) - -if [ "${ARCH}" == "aarch64" ]; then - export EXTRA_FLAGS="-ftree-vectorize" -else - export EXTRA_FLAGS="-ftree-vectorize -msse2 -mfpmath=sse" -fi +case $(uname -m) in + aarch64 | arm64) + EXTRA_FLAGS="-ftree-vectorize" + ;; + *) + EXTRA_FLAGS="-ftree-vectorize -msse2 -mfpmath=sse" + ;; +esac cmake -S . -B build \ -DCMAKE_CXX_COMPILER="${CXX}" \ diff --git a/recipes/wfa2-lib/meta.yaml b/recipes/wfa2-lib/meta.yaml index dc5ce51a913f7..1ae790fdcb1e4 100644 --- a/recipes/wfa2-lib/meta.yaml +++ b/recipes/wfa2-lib/meta.yaml @@ -11,9 +11,9 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 run_exports: - - {{ pin_subpackage(name, max_pin="x.x") }} + - {{ pin_subpackage(name, max_pin="x") }} requirements: build: @@ -38,7 +38,7 @@ about: license_file: LICENSE summary: "Wavefront alignment algorithm library v2" dev_url: "https://github.com/smarco/WFA2-lib" - doc_url: "https://github.com/smarco/WFA2-lib/blob/main/README.md" + doc_url: "https://github.com/smarco/WFA2-lib/blob/v{{ version }}/README.md" extra: identifiers: @@ -46,3 +46,4 @@ extra: - doi:10.1101/2022.04.14.488380 additional-platforms: - linux-aarch64 + - osx-arm64 From a28f672d2cac19b5cdebc4410b02de263aa91670 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 00:05:01 -0400 Subject: [PATCH 0636/1589] Update cellprofiler to 4.2.7 (#49651) * Update cellprofiler to 4.2.7 * clean up recipe --------- Co-authored-by: mencian Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- .../cellprofiler/build_failure.osx-64.yaml | 104 ------------------ recipes/cellprofiler/meta.yaml | 46 ++++---- 2 files changed, 25 insertions(+), 125 deletions(-) delete mode 100644 recipes/cellprofiler/build_failure.osx-64.yaml diff --git a/recipes/cellprofiler/build_failure.osx-64.yaml b/recipes/cellprofiler/build_failure.osx-64.yaml deleted file mode 100644 index 8cc30b4cb724e..0000000000000 --- a/recipes/cellprofiler/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 3c02010a42e840b731d104e29ebd56082cedc1da36c80ba792045e1e2edefd71 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |- - Could not solve for environment specs - The following packages are incompatible - python-javabridge is installable with the potential options - python-javabridge 4.0.0 would require - python_abi 3.6.* *_cp36m, which can be installed; - python-javabridge 4.0.0 would require - python_abi 3.6 *_pypy36_pp73, which can be installed; - python-javabridge 4.0.0 would require - python_abi 3.7.* *_cp37m, which can be installed; - python-javabridge 4.0.0 would require - python_abi 3.7 *_pypy37_pp73, which can be installed; - python-javabridge 4.0.0 would require - python_abi 3.8.* *_cp38, which can be installed; - python-javabridge [4.0.0|4.0.3] would require - python_abi 3.9.* *_cp39, which can be installed; - python-javabridge 4.0.3 would require - python_abi 3.10.* *_cp310, which can be installed; - python 3.12.* *_cpython is not installable because there are no viable options - python [3.12.0|3.12.1|3.12.2|3.12.3] would require - python_abi 3.12.* *_cp312, which conflicts with any installable versions previously reported; - python 3.12.0rc3 would require - _python_rc, which does not exist (perhaps a missing channel). - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2308, in build - output_metas = expand_outputs([(m, need_source_download, need_reparse_in_env)]) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 916, in expand_outputs - for output_dict, m in deepcopy(_m).get_output_metadata_set( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/metadata.py", line 2737, in get_output_metadata_set - conda_packages = finalize_outputs_pass( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/metadata.py", line 1095, in finalize_outputs_pass - fm = finalize_metadata( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 650, in finalize_metadata - build_unsat, host_unsat = add_upstream_pins( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 491, in add_upstream_pins - host_deps, host_unsat, extra_run_specs_from_host = _read_upstream_pin_files( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 444, in _read_upstream_pin_files - deps, precs, unsat = get_env_dependencies( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 156, in get_env_dependencies - precs = environ.get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions - precs = _install_actions(prefix, index, specs)["LINK"] - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions - txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction - unlink_precs, link_precs = self.solve_for_diff( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff - final_precs = self.solve_final_state( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state - out_state = self._solving_loop(in_state, out_state, index) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop - solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt - new_conflicts = self._maybe_raise_for_problems( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("_python_rc"), MatchSpec("python==3.12.0rc3=rc3_h30d4d87_1_cpython")} - Encountered problems while solving: - - nothing provides _python_rc needed by python-3.12.0rc3-rc3_h30d4d87_1_cpython - - Could not solve for environment specs - The following packages are incompatible - python-javabridge is installable with the potential options - python-javabridge 4.0.0 would require - python_abi 3.6.* *_cp36m, which can be installed; - python-javabridge 4.0.0 would require - python_abi 3.6 *_pypy36_pp73, which can be installed; - python-javabridge 4.0.0 would require - python_abi 3.7.* *_cp37m, which can be installed; - python-javabridge 4.0.0 would require - python_abi 3.7 *_pypy37_pp73, which can be installed; - python-javabridge 4.0.0 would require - python_abi 3.8.* *_cp38, which can be installed; - python-javabridge [4.0.0|4.0.3] would require - python_abi 3.9.* *_cp39, which can be installed; - python-javabridge 4.0.3 would require - python_abi 3.10.* *_cp310, which can be installed; - python 3.12.* *_cpython is not installable because there are no viable options - python [3.12.0|3.12.1|3.12.2|3.12.3] would require - python_abi 3.12.* *_cp312, which conflicts with any installable versions previously reported; - python 3.12.0rc3 would require - _python_rc, which does not exist (perhaps a missing channel). -# Last 100 lines of the build log. diff --git a/recipes/cellprofiler/meta.yaml b/recipes/cellprofiler/meta.yaml index e920a91d10b0f..813f6bbada87d 100644 --- a/recipes/cellprofiler/meta.yaml +++ b/recipes/cellprofiler/meta.yaml @@ -1,5 +1,5 @@ {% set name = "CellProfiler" %} -{% set version = "4.2.6" %} +{% set version = "4.2.7" %} package: name: "{{ name|lower }}" @@ -7,30 +7,30 @@ package: source: url: https://github.com/CellProfiler/{{ name }}/archive/v{{ version }}.tar.gz - sha256: "fae14f97efc69f09d9074e53fcebbf50e1eafbf4ebaeb3a3de8699f44c9bccd9" + sha256: "8bc0819f1e2c215756e7eb5b7f0078949760d707397930eddf002b8bdd452ed3" build: - number: 1 - skip: True # [ py < 39 ] - script: "{{ PYTHON }} -m pip install --no-deps --ignore-installed . -vv" + number: 0 + noarch: python + script: "{{ PYTHON }} -m pip install --no-deps --no-build-isolation --no-cache-dir --use-pep517 . -vvv" + entry_points: + - cellprofiler=cellprofiler.__main__:main run_exports: - {{ pin_subpackage('cellprofiler', max_pin='x') }} requirements: - build: - - {{ compiler('c') }} host: - - python + - python >=3.8 - pip - - cython - - python-javabridge - pytest run: - - python + - python >=3.8 + - boto3 >=1.12.28 - centrosome - docutils - - cellprofiler-core {{ version }} - - h5py >=2.10 + - cellprofiler-core =={{ version }} + - h5py >=3.6.0,<3.7.dev0,<4 + - imageio >=2.5 - inflect - python-javabridge - joblib @@ -40,15 +40,17 @@ requirements: - matplotlib-base - mysqlclient - numpy + - pillow - prokaryote - python-bioformats + - pyzmq >=22.3,<23.dev0 - requests - - scikit-image >=0.17.2 - - scikit-learn >=0.20 - - scipy >=1.4.1 + - scikit-image ==0.18.3 + - scikit-learn >=0.20,<1 + - scipy ==1.9.0 - six + - tifffile <2022.4.22 - wxpython - - pillow test: imports: @@ -57,14 +59,16 @@ test: - cellprofiler --help about: - home: https://github.com/CellProfiler/CellProfiler - license: 3-clause BSD + home: "https://github.com/CellProfiler/CellProfiler" + license: "BSD-3-Clause" license_family: BSD license_file: LICENSE - summary: "CellProfiler is free, open-source software for quantitative analysis of biological images" + summary: "CellProfiler is free, open-source software for quantitative analysis of biological images." description: | CellProfiler is free, open-source software for quantitative analysis of biological images.No prior experience in programming or computer vision is required. + dev_url: "https://github.com/CellProfiler/CellProfiler" + doc_url: "https://cellprofiler-manual.s3.amazonaws.com/CellProfiler-{{ version }}/index.html" extra: container: - extended-base: true + extended-base: True From 33974b621438587075dbf5747b45c89fa7e3c6c3 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Mon, 29 Jul 2024 23:05:40 -0500 Subject: [PATCH 0637/1589] tabixpp: add arm64 build (#49657) --- recipes/tabixpp/meta.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/recipes/tabixpp/meta.yaml b/recipes/tabixpp/meta.yaml index b8f8488b7f72c..b15f3d0e790dd 100644 --- a/recipes/tabixpp/meta.yaml +++ b/recipes/tabixpp/meta.yaml @@ -12,12 +12,12 @@ source: patches: - shared_lib.patch - pkg-config.patch # [osx] -- url: https://github.com/samtools/htslib/releases/download/1.19.1/htslib-1.19.1.tar.bz2 - sha256: 222d74d3574fb67b158c6988c980eeaaba8a0656f5e4ffb76b5fa57f035933ec +- url: https://github.com/samtools/htslib/releases/download/1.20/htslib-1.20.tar.bz2 + sha256: e52d95b14da68e0cfd7d27faf56fef2f88c2eaf32a2be51c72e146e3aa928544 folder: htslib build: - number: 2 + number: 3 run_exports: # Observed ABI version increase from 1.1.0 to 1.1.2. # Hence, we pin to the patch version even. @@ -47,6 +47,7 @@ about: license_family: MIT license_file: LICENSE summary: "A C++ wrapper around the tabix project, a generic indexer for TAB-delimited genome position files." + dev_url: "https://github.com/vcflib/tabixpp" extra: identifiers: @@ -55,3 +56,4 @@ extra: - jpuritz additional-platforms: - linux-aarch64 + - osx-arm64 From 4c6e08b8447b6ab088f94cac89503bbcbe59bf38 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Mon, 29 Jul 2024 23:24:08 -0500 Subject: [PATCH 0638/1589] Add recipe for scspectra v0.2.0 (#49603) * Add recipe for scspectra v0.2.0 * edit tests --- recipes/scspectra/meta.yaml | 47 +++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 recipes/scspectra/meta.yaml diff --git a/recipes/scspectra/meta.yaml b/recipes/scspectra/meta.yaml new file mode 100644 index 0000000000000..89469914bc995 --- /dev/null +++ b/recipes/scspectra/meta.yaml @@ -0,0 +1,47 @@ +{% set name = "scspectra" %} +{% set version = "0.2.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/scspectra-{{ version }}.tar.gz + sha256: dd0d2ae2f0cef68d41a10ba2174e6e4e89e9d185958ef6f60a1798f27970206f + +build: + number: 0 + noarch: python + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + run_exports: + - {{ pin_subpackage('scspectra', max_pin="x.x") }} + +requirements: + host: + - python >=3.8 + - poetry-core >=1.0.0 + - pip + run: + - python >=3.8 + - numpy >=1.20.3 + - scipy >=1.7.3 + - scanpy >=1.8.2 + - pytorch >=1.10.1,<2.0.0 + - opt-einsum >=3.3.0 + - pandas >=1.3.5,<2.0.0 + - tqdm >=4.62.3 + - pyvis >=0.1.9,<0.2.0 + +test: + #imports: + #- scspectra + commands: + - pip check + +about: + home: https://github.com/dpeerlab/spectra + summary: "Supervised discovery of interpretable gene programs from single-cell data." + license: MIT + license_family: MIT + license_file: LICENSE.md + dev_url: https://github.com/dpeerlab/spectra From ee0b59f09009b95764cfe12d53d136087ed83b61 Mon Sep 17 00:00:00 2001 From: "UENO, M." Date: Tue, 30 Jul 2024 14:55:10 +0900 Subject: [PATCH 0639/1589] Add recipe for Reduce v4.14 (#49610) * Add recipe for reduce * Update build.sh * Modify build.sh and meta.yaml * Update mata.yaml * Update mata.yaml * Update build.sh * Update build.sh * Update meta.yaml * Update meta.yaml * Update meta.yaml * Fix meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update build.sh * Update build.sh * Update build.sh * Update build.sh * Revert parallel build * Fix build.sh * Update build.sh * Update build.sh * Update build.sh --------- Co-authored-by: Martin Grigorov --- recipes/reduce/build.sh | 7 ++++++ recipes/reduce/meta.yaml | 48 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 recipes/reduce/build.sh create mode 100644 recipes/reduce/meta.yaml diff --git a/recipes/reduce/build.sh b/recipes/reduce/build.sh new file mode 100644 index 0000000000000..7dc7f938e30cb --- /dev/null +++ b/recipes/reduce/build.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +mkdir -p build +cd build +cmake ${SRC_DIR} ${CMAKE_ARGS} +make +make install diff --git a/recipes/reduce/meta.yaml b/recipes/reduce/meta.yaml new file mode 100644 index 0000000000000..d9729ccdc437c --- /dev/null +++ b/recipes/reduce/meta.yaml @@ -0,0 +1,48 @@ +{% set name = "reduce" %} +{% set version = "4.14" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/rlabduke/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz + sha256: 62e61cce221fff76b5834031302d91fe703a19945a42e16620d4fb860604daf4 + +build: + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} + +requirements: + build: + - make + - cmake + - {{ compiler('c') }} + - {{ compiler('cxx') }} # [linux] + host: + - libboost-python-devel + - python + run: + - python + +test: + commands: + - reduce -version || if [ $? -eq 2 ]; then exit 0; else exit 1; fi + +about: + home: https://github.com/rlabduke/reduce + summary: Reduce - tool for adding and correcting hydrogens in PDB files + license: BSD-4-Clause-UC + license_family: BSD + license_file: LICENSE.txt + description: | + Reduce is a tool for adding and correcting hydrogens in PDB files. + It is often used in computational biology and molecular modeling to + prepare protein structures for further analysis or simulations. + doc_url: https://github.com/rlabduke/reduce#readme + dev_url: https://github.com/rlabduke/reduce + +extra: + recipe-maintainers: + - eunos-1128 From c6795b7b59155303ab98619211bb32861d11033b Mon Sep 17 00:00:00 2001 From: Konstantinn Bonnet <50845450+qwx9@users.noreply.github.com> Date: Tue, 30 Jul 2024 06:03:59 +0000 Subject: [PATCH 0640/1589] add strangepg package (#49612) --- recipes/strangepg/build.sh | 4 +++ recipes/strangepg/meta.yaml | 56 +++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 recipes/strangepg/build.sh create mode 100644 recipes/strangepg/meta.yaml diff --git a/recipes/strangepg/build.sh b/recipes/strangepg/build.sh new file mode 100644 index 0000000000000..08e12b16862ae --- /dev/null +++ b/recipes/strangepg/build.sh @@ -0,0 +1,4 @@ +#!/bin/bash +export CFLAGS="$CFLAGS -I${PREFIX}/include" +export LDFLAGS="$LDFLAGS -ldl -lpthread" +make -j install diff --git a/recipes/strangepg/meta.yaml b/recipes/strangepg/meta.yaml new file mode 100644 index 0000000000000..5305080d13612 --- /dev/null +++ b/recipes/strangepg/meta.yaml @@ -0,0 +1,56 @@ +{% set name = "strangepg" %} +{% set version = "0.8.0" %} +{% set ref = "55e8fba29e9e0259f5d950df477d1850eb4f3163" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/qwx9/{{ name }}/archive/{{ ref }}.tar.gz + sha256: a8210b50f6ceda7dc6edd05a771d8645523a05d43d01fc7d15bb36ad86d4ffc9 + +build: + number: 0 + skip: True # [not linux] + run_exports: + - {{ pin_subpackage('strangepg', max_pin=None) }} + +requirements: + build: + - {{ compiler('c') }} + - make + - {{ cdt('mesa-libgl-devel') }} + - {{ cdt('mesa-libegl-devel') }} + - {{ cdt('mesa-dri-drivers') }} + - {{ cdt('libdrm-devel') }} + - {{ cdt('libglvnd-glx') }} # [cdt_name != 'cos6'] + host: + - xorg-libx11 + - xorg-libxau + - xorg-libxcb + - xorg-libxcursor + - xorg-libxdmcp + - xorg-libxext + - xorg-libxfixes + - xorg-libxi + - xorg-libxrandr + run: + +test: + commands: + - which strpg + - which strawk + +about: + home: https://github.com/qwx9/{{ name }} + summary: 'Strange pangenome-scale interactive graph visualizer' + license: MIT + license_family: MIT + license_file: LICENSE + +extra: + recipe-maintainers: + - qwx9 + container: + extended-base: True From ed83a7d8d4447b37e2fa1e8dac48c60b6ee6e51d Mon Sep 17 00:00:00 2001 From: Stefan Janssen Date: Tue, 30 Jul 2024 08:44:25 +0200 Subject: [PATCH 0641/1589] Update pkiss (#49225) * using latest release of upstream * use recent gapc update with hopes to compile on OSX * revert to master * enforcing latest gapc version + support for OSX * don't change rnashapes in pkiss recipe! * update version + add pin_subpackage info * update * removed skip: False # [osx] * fix hash --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/pkiss/build.sh | 4 ++-- recipes/pkiss/meta.yaml | 26 ++++++++++++++++---------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/recipes/pkiss/build.sh b/recipes/pkiss/build.sh index 781e02b15ec3e..c981876f2b94b 100644 --- a/recipes/pkiss/build.sh +++ b/recipes/pkiss/build.sh @@ -1,5 +1,5 @@ -#!/bin/sh -make PREFIX=$PREFIX CC=$CC -C Misc/Applications/pKiss all +#!/bin/bash +make -j ${CPU_COUNT} PREFIX=$PREFIX CC=$CC -C Misc/Applications/pKiss all make PREFIX=$PREFIX CC=$CC -C Misc/Applications/pKiss install-program make PREFIX=$PREFIX CC=$CC -C Misc/Applications/lib install chmod +x $PREFIX/bin/pKiss* $PREFIX/bin/addRNA* diff --git a/recipes/pkiss/meta.yaml b/recipes/pkiss/meta.yaml index aca19bb29a981..88ca3d4c41c4a 100644 --- a/recipes/pkiss/meta.yaml +++ b/recipes/pkiss/meta.yaml @@ -1,36 +1,42 @@ -{% set version = "2.2.14" %} -{% set sha256 = "da7371378e32b2329da226be79a11974fdc4e66fe0b664757b5aafe29e2e12d6" %} +{% set version = "2.3.1" %} +{% set packagename = "pkiss" %} +{% set sha256 = "0c5b7d91893d0a23189f4af3602e18f110f030eac49a3658f7acede23596fde0" %} package: - name: pkiss - version: {{ version }} + name: {{ packagename }} + version: 2.3.0 source: sha256: {{ sha256 }} + # the repository "fold-grammars" contains sources for several programs, i.e. pKiss, RNAshapes, ... + # thus, the version number does not correspond to the {{ packagename }} version number url: https://github.com/jlab/fold-grammars/archive/{{ version }}.tar.gz build: - number: 3 - skip: False # [osx] + number: 0 + run_exports: + - {{ pin_subpackage('pkiss', max_pin="x") }} requirements: build: - make - {{ compiler('cxx') }} + - libcxx <17 # [osx] host: - perl - - bellmans-gapc >=2020.12.08 + - bellmans-gapc >=2024.01.12 + - libcxx <17 # [osx] run: - perl - - bellmans-gapc >=2020.12.08 + - bellmans-gapc >=2024.01.12 test: commands: - echo "UGGCCGGCAUGGUCCCAGCCUCCUCGCUGGCGCCGGCUGGGCAACAUUCC" | pKiss --mode=probs &> /dev/null about: - home: https://bibiserv.cebitec.uni-bielefeld.de/pkiss - license: 'GPLv3+' + home: https://bibiserv.cebitec.uni-bielefeld.de/{{ packagename }} + license: 'GPL-3.0-or-later' license_file: LICENSE summary: 'RNA secondary structure prediction including K-type and kissing hairpin- pseudoknots.' From a282932cb5d2a3d153ef18809f0bdf022818c7f8 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 30 Jul 2024 02:13:48 -0500 Subject: [PATCH 0642/1589] Add recipe for subset-bam v1.1.0 (#49395) * Add recipe for subset-bam v1.1.0 * add --locked * patch rust-htslib version * add make * try removing --locked * bump ring version * add make * add clang * add clangdev to build section * try without --locked * edit meta.yaml --- recipes/subset-bam/LICENSE | 21 ++++++++++++++++++++ recipes/subset-bam/build.sh | 6 ++++++ recipes/subset-bam/meta.yaml | 38 ++++++++++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+) create mode 100644 recipes/subset-bam/LICENSE create mode 100644 recipes/subset-bam/build.sh create mode 100644 recipes/subset-bam/meta.yaml diff --git a/recipes/subset-bam/LICENSE b/recipes/subset-bam/LICENSE new file mode 100644 index 0000000000000..3f2bdcc55d5bb --- /dev/null +++ b/recipes/subset-bam/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2020 10x Genomics, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/recipes/subset-bam/build.sh b/recipes/subset-bam/build.sh new file mode 100644 index 0000000000000..0ea5b92d1092e --- /dev/null +++ b/recipes/subset-bam/build.sh @@ -0,0 +1,6 @@ +#!/bin/bash -euo + +mkdir -p ${PREFIX}/bin + +mv subset-bam_* ${PREFIX}/bin/subset-bam +chmod 755 ${PREFIX}/bin/subset-bam diff --git a/recipes/subset-bam/meta.yaml b/recipes/subset-bam/meta.yaml new file mode 100644 index 0000000000000..664775c5b0687 --- /dev/null +++ b/recipes/subset-bam/meta.yaml @@ -0,0 +1,38 @@ +{% set name = "subset-bam" %} +{% set version = "1.1.0" %} +{% set url = "https://github.com/10XGenomics/subset-bam/releases/download/v1.1.0/subset-bam_linux" %} # [linux and x86_64] +{% set sha256 = "05496ea56d52becdb7972528af0a486be1d52c1749e35bea9ae4c41215ed0a1b" %} # [linux and x86_64] +{% set url = "https://github.com/10XGenomics/subset-bam/releases/download/v1.1.0/subset-bam_macos" %} # [osx and x86_64] +{% set sha256 = "756357b6dfe9bc7e757bdc4a084ca06d2a256f2b8855d35b47fd956afd97ebca" %} # [osx and x86_64] + +package: + name: {{ name }} + version: {{ version }} + +source: + url: {{ url }} + sha256: {{ sha256 }} + +build: + number: 0 + run_exports: + - {{ pin_subpackage('subset-bam', max_pin="x") }} + +requirements: + build: + - {{ compiler('rust') }} + - make + - clangdev + +test: + commands: + - subset-bam --help + +about: + home: "https://github.com/10XGenomics/subset-bam" + license: MIT + license_family: MIT + license_file: LICENSE + summary: "A tool to subset a 10x Genomics BAM file based on a tag, most commonly the cell barcode tag." + doc_url: "https://github.com/10XGenomics/subset-bam/blob/v{{ version }}/README.md" + dev_url: "https://github.com/10XGenomics/subset-bam" From 29ec422d3b92b8aa1e73a8e0540c91c9e74147cd Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 30 Jul 2024 02:29:33 -0500 Subject: [PATCH 0643/1589] Add recipe for bio v1.7.1 (#48808) * Add recipe for bio v1.7.1 * add summary * edit tests * edit tests * edit tests --- recipes/bio/meta.yaml | 48 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 recipes/bio/meta.yaml diff --git a/recipes/bio/meta.yaml b/recipes/bio/meta.yaml new file mode 100644 index 0000000000000..b835d98a124a7 --- /dev/null +++ b/recipes/bio/meta.yaml @@ -0,0 +1,48 @@ +{% set name = "bio" %} +{% set version = "1.7.1" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/bio-{{ version }}.tar.gz + sha256: df3252905b0b1e739eca3760c91fd519d5af07b09632df25c2bd4ecd20da2724 + +build: + number: 0 + noarch: python + entry_points: + - bio = biorun.__main__:run + - fasta_filter.py = biorun.scripts.fasta_filter:run + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + run_exports: + - {{ pin_subpackage('bio', max_pin="x") }} + +requirements: + host: + - python >=3.10 + - hatchling + - pip + run: + - python >=3.10 + - biopython >=1.80 + - requests + - tqdm + - mygene + - pandas + - pooch + - gprofiler-official + +test: + commands: + - pip check + #- bio --help + +about: + home: https://github.com/ialbert/bio + license: MIT + license_family: MIT + license_file: LICENSE + summary: "Command-line utilities to make bioinformatics explorations more enjoyable." + dev_url: https://github.com/ialbert/bio From 2d0636d96aceed797afa1f944bcbab681d4a16ab Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 30 Jul 2024 02:56:32 -0500 Subject: [PATCH 0644/1589] python-edlib: add arm64 build (#49659) --- recipes/python-edlib/meta.yaml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/recipes/python-edlib/meta.yaml b/recipes/python-edlib/meta.yaml index 902eb1dd7f5d0..aedfbb654230e 100644 --- a/recipes/python-edlib/meta.yaml +++ b/recipes/python-edlib/meta.yaml @@ -9,8 +9,8 @@ source: sha256: 64c3dfab3ebe3e759565a0cc71eb4df23cf3ce1713fd558af3c473dddc2a3766 build: - number: 7 - script: "EDLIB_USE_CYTHON=1 {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv" + number: 8 + script: "EDLIB_USE_CYTHON=1 {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" run_exports: - {{ pin_subpackage("python-edlib", max_pin="x") }} @@ -29,16 +29,17 @@ test: - edlib about: - home: https://github.com/Martinsos/edlib + home: "https://github.com/Martinsos/edlib" license: MIT summary: 'Lightweight, super fast C/C++ (& Python) library for sequence alignment using edit (Levenshtein) distance.' license_family: MIT license_file: LICENSE - dev_url: https://github.com/Martinsos/edlib - doc_url: https://martinsos.github.io/edlib/ + dev_url: "https://github.com/Martinsos/edlib" + doc_url: "https://martinsos.github.io/edlib" extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - doi:10.1093/bioinformatics/btw753 From abc636bbd37355b3c27c3a27c7d01cceb7429803 Mon Sep 17 00:00:00 2001 From: Stefan Janssen Date: Tue, 30 Jul 2024 11:08:25 +0200 Subject: [PATCH 0645/1589] Update rnashapes (#49224) * using latest release of upstream * use recent gapc update with hopes to compile on OSX * patch obsolete, bump version, use latest bellmans-gapc * moving files as suggested * added old versions back in * update version and add pin_subpackage * adapted like rnaalishapes * fix hashsum * use rnashapes_version Co-authored-by: Cornelius Roemer * use fold_grammars_version variable Co-authored-by: Cornelius Roemer * use fold_grammars_version variable Co-authored-by: Cornelius Roemer --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Co-authored-by: Cornelius Roemer --- recipes/rnashapes/build.sh | 4 ++-- recipes/rnashapes/meta.yaml | 30 +++++++++++++++++------------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/recipes/rnashapes/build.sh b/recipes/rnashapes/build.sh index f56990dd3f74e..493ed0cc387a1 100644 --- a/recipes/rnashapes/build.sh +++ b/recipes/rnashapes/build.sh @@ -1,5 +1,5 @@ -#!/bin/sh -make PREFIX=$PREFIX CC=$CC -C Misc/Applications/RNAshapes all +#!/bin/bash +make -j ${CPU_COUNT} PREFIX=$PREFIX CC=$CC -C Misc/Applications/RNAshapes all make PREFIX=$PREFIX CC=$CC -C Misc/Applications/RNAshapes install-program make PREFIX=$PREFIX CC=$CC -C Misc/Applications/lib install chmod +x $PREFIX/bin/RNA* diff --git a/recipes/rnashapes/meta.yaml b/recipes/rnashapes/meta.yaml index 59e8e9b425b5b..6d3ffafb2be5c 100644 --- a/recipes/rnashapes/meta.yaml +++ b/recipes/rnashapes/meta.yaml @@ -1,32 +1,36 @@ -{% set version = "3.3.2" %} -{% set sha256 = "da7371378e32b2329da226be79a11974fdc4e66fe0b664757b5aafe29e2e12d6" %} +{% set fold_grammars_version = "2.3.1" %} +{% set rnashapes_version = "3.4.0" %} +{% set packagename = "rnashapes" %} +{% set sha256 = "0c5b7d91893d0a23189f4af3602e18f110f030eac49a3658f7acede23596fde0" %} package: - name: rnashapes - version: 3.3.2 + name: {{ packagename }} + version: {{ rnashapes_version }} source: sha256: {{ sha256 }} # the repository "fold-grammars" contains sources for several programs, i.e. pKiss, RNAshapes, ... - # thus, the version number does not correspond to the RNAshapes version number - url: https://github.com/jlab/fold-grammars/archive/2.2.14.tar.gz + # thus, the version number does not correspond to the {{ packagename }} version number + url: https://github.com/jlab/fold-grammars/archive/{{ fold_grammars_version }}.tar.gz build: - number: 3 - skip: False # [osx] + number: 0 + run_exports: + - {{ pin_subpackage('rnashapes', max_pin="x") }} requirements: build: - make - {{ compiler('cxx') }} + - libcxx <17 # [osx] host: - perl - - bellmans-gapc >=2021.04.28 + - bellmans-gapc >=2024.01.12 - libopenblas + - libcxx <17 # [osx] run: - - {{ compiler('cxx') }} - perl - - bellmans-gapc >=2021.04.28 + - bellmans-gapc >=2024.01.12 - libopenblas test: @@ -35,8 +39,8 @@ test: - RNAshapes CGCAUGCUAGUCGCG about: - home: https://bibiserv.cebitec.uni-bielefeld.de/rnashapes - license: 'GPLv3+' + home: https://bibiserv.cebitec.uni-bielefeld.de/{{ packagename }} + license: 'GPL-3.0-or-later' license_file: LICENSE summary: "RNAshape abstraction maps structures to a tree-like domain of shapes, retaining adjacency and nesting of structural features, but disregarding helix From d3b645c55f90947889a1657cb0afc3e4039a580d Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 30 Jul 2024 04:08:41 -0500 Subject: [PATCH 0646/1589] pyabpoa: add arm64 build (#49661) --- recipes/pyabpoa/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/pyabpoa/meta.yaml b/recipes/pyabpoa/meta.yaml index aafc5a8df934e..a70e32f310f07 100644 --- a/recipes/pyabpoa/meta.yaml +++ b/recipes/pyabpoa/meta.yaml @@ -10,8 +10,8 @@ source: sha256: 706f0ca0110f4974ae7b93157db560bb9beda4273d8c883fa6a03ccb19958149 build: - number: 0 - script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --use-pep517 -vvv + number: 1 + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir --use-pep517 -vvv run_exports: - {{ pin_subpackage(name, max_pin="x") }} @@ -46,3 +46,4 @@ extra: - biotools:abpoa additional-platforms: - linux-aarch64 + - osx-arm64 From a10e76a8b52b8a25ad75820181dc39732b51937c Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 30 Jul 2024 04:08:52 -0500 Subject: [PATCH 0647/1589] pyspoa: add arm64 build (#49660) --- recipes/pyspoa/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/pyspoa/meta.yaml b/recipes/pyspoa/meta.yaml index 08c94cfd376ab..a8d2bdcf48d67 100644 --- a/recipes/pyspoa/meta.yaml +++ b/recipes/pyspoa/meta.yaml @@ -11,9 +11,9 @@ source: sha256: {{ sha256 }} build: - number: 2 + number: 3 skip: True # [py < 38] - script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir run_exports: - {{ pin_subpackage('pyspoa', max_pin="x.x") }} @@ -50,3 +50,4 @@ extra: - iiSeymour additional-platforms: - linux-aarch64 + - osx-arm64 From e6d4ae65f5ac01049bf31b3502200283711436d9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 06:41:44 -0400 Subject: [PATCH 0648/1589] Update pyteomics to 4.7.3 (#49662) --- recipes/pyteomics/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pyteomics/meta.yaml b/recipes/pyteomics/meta.yaml index cdc52d031adeb..2127906fd62dd 100644 --- a/recipes/pyteomics/meta.yaml +++ b/recipes/pyteomics/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "4.7.2" %} +{% set version = "4.7.3" %} package: name: pyteomics @@ -6,7 +6,7 @@ package: source: url: https://pypi.io/packages/source/p/pyteomics/pyteomics-{{ version }}.tar.gz - sha256: 9c2cc22f0e45574c62a8e8628a8412d7b5688ccdd679b2f6ddc6fbbee2abb26d + sha256: ae87f6ba02ee735b06ae56e1ac85a37051aa503e0c9dbfee650c8a7107d08f57 build: noarch: python From 7aa209d533fa0456bc8d63c138f81bb86f7e946c Mon Sep 17 00:00:00 2001 From: Gioele Lazzari <56556415+lazzarigioele@users.noreply.github.com> Date: Tue, 30 Jul 2024 12:54:06 +0200 Subject: [PATCH 0649/1589] update gempipe recipe (#49664) --- recipes/gempipe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gempipe/meta.yaml b/recipes/gempipe/meta.yaml index 163ceffad28ed..7a4210e4820f6 100755 --- a/recipes/gempipe/meta.yaml +++ b/recipes/gempipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.33.0" %} +{% set version = "1.33.1" %} package: name: "gempipe" @@ -7,7 +7,7 @@ package: source: url: https://github.com/lazzarigioele/gempipe/archive/v{{ version }}.tar.gz - sha256: 547e812764177ba1171740e1b4ea564784dee6c395618ae125ffb0f28fe196f3 + sha256: 84fb9cb2bb1963078bfdc61068ee869504c15e3f905a94afad3f8362776e8f6a build: From 67ba0f1e8e84ee8a0d1cd8c9b69273b31af5de92 Mon Sep 17 00:00:00 2001 From: Zhang Jun <37918894+zhangjuncsu@users.noreply.github.com> Date: Tue, 30 Jul 2024 20:05:41 +0800 Subject: [PATCH 0650/1589] add a new repo diphase (#49656) --- recipes/diphase/build.sh | 28 ++++++++++++++++++++++++ recipes/diphase/meta.yaml | 45 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 recipes/diphase/build.sh create mode 100644 recipes/diphase/meta.yaml diff --git a/recipes/diphase/build.sh b/recipes/diphase/build.sh new file mode 100644 index 0000000000000..e7acbd7f81c99 --- /dev/null +++ b/recipes/diphase/build.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +mkdir -p ${PREFIX}/bin + +export LIBRARY_PATH=${PREFIX}/lib +export LD_LIBRARY_PATH=${PREFIX}/lib +export CPATH=${PREFIX}/include +export C_INCLUDE_PATH=${PREFIX}/include +export CPLUS_INCLUDE_PATH=${PREFIX}/include +export CPP_INCLUDE_PATH=${PREFIX}/include +export CXX_INCLUDE_PATH=${PREFIX}/include +export PATH=$PATH:${PREFIX}/bin + +CC=${CC} +CXX=${CXX} + +mkdir -p ${PREFIX}/bin +ln -fs $CC ${PREFIX}/bin/gcc +ln -fs $CXX ${PREFIX}/bin/g++ + +make -C src + +cp -r bin/* ${PREFIX}/bin/ +cp -r script/* ${PREFIX}/bin/ +chmod +x ${PREFIX}/bin/pipeline.py + +unlink ${PREFIX}/bin/gcc +unlink ${PREFIX}/bin/g++ diff --git a/recipes/diphase/meta.yaml b/recipes/diphase/meta.yaml new file mode 100644 index 0000000000000..c7e671514d4ce --- /dev/null +++ b/recipes/diphase/meta.yaml @@ -0,0 +1,45 @@ +{% set name = "diphase" %} +{% set version = "1.0.0" %} +{% set sha256 = "bd6ae483fb7763eff44935d3a19c7d8df604805e84615ed65566161458b50e77" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/zhangjuncsu/Diphase/archive/refs/tags/v{{ version }}.tar.gz + sha256: {{ sha256 }} + +build: + number: 0 + skip: True # [osx] + run_exports: + - {{ pin_subpackage('diphase', max_pin="x") }} + +requirements: + build: + - make + - {{ compiler('c') }} + - {{ compiler('cxx') }} + host: + - zlib + - xz + - bzip2 + - libdeflate + - libcurl 7.87.0 + - openssl 1.1.1 + run: + - python 3.9.0 + - zlib + - samtools + - bwa + +test: + commands: + - phasing -h 2>&1 | grep 'Usage' + - pipeline.py -h 2>&1 | grep 'phase' + +about: + home: https://github.com/zhangjuncsu/Diphase + license: MIT + summary: A diploid genome phasing tool From b4f2e00690c69d9101df05ee1d5f6ac462287e9c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 08:06:20 -0400 Subject: [PATCH 0651/1589] Update taxmyphage to 0.3.1 (#49665) --- recipes/taxmyphage/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/taxmyphage/meta.yaml b/recipes/taxmyphage/meta.yaml index c0e805bc104fa..cad6b75921845 100644 --- a/recipes/taxmyphage/meta.yaml +++ b/recipes/taxmyphage/meta.yaml @@ -1,5 +1,5 @@ {% set name = "taxmyphage" %} -{% set version = "0.3.0" %} +{% set version = "0.3.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/taxmyphage-{{ version }}.tar.gz - sha256: 821cb48a758e1587401b1eb48029c68cb3411f6240e87723b8c5aff5f28e6212 + sha256: f3c6638ae347ecab7bef84fad71db1fecc922144a0bda8fe7d430d3bf628f00d build: entry_points: From 5301f80d3d9744c18696cde894a2c1ca2adafb8c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 08:06:38 -0400 Subject: [PATCH 0652/1589] Update sdrf-pipelines to 0.0.28 (#49666) --- recipes/sdrf-pipelines/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sdrf-pipelines/meta.yaml b/recipes/sdrf-pipelines/meta.yaml index cf5fb70753f7d..19d25a6692e31 100644 --- a/recipes/sdrf-pipelines/meta.yaml +++ b/recipes/sdrf-pipelines/meta.yaml @@ -1,6 +1,6 @@ {% set name = "sdrf-pipelines" %} {% set pypi_name = "sdrf_pipelines" %} -{% set version = "0.0.27" %} +{% set version = "0.0.28" %} package: name: "{{ name|lower }}" @@ -8,7 +8,7 @@ package: source: url: "https://pypi.io/packages/source/{{ pypi_name[0] }}/{{ pypi_name }}/{{ pypi_name }}-{{ version }}.tar.gz" - sha256: cb52e0c427e820aa28343b2ff58947e23244701798f038e53b5c0f6e36f98f33 + sha256: b9978c4599a0e04e157392a2adc35a8a613ce40d88f6b89eee592af667d088dd build: number: 0 From 457b74f8f7ece9280c2e1da273b674515279bc35 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 11:04:44 -0400 Subject: [PATCH 0653/1589] Update im2deep to 0.1.8 (#49667) --- recipes/im2deep/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/im2deep/meta.yaml b/recipes/im2deep/meta.yaml index 0c2453e8e7fe4..80ba742c8e0f8 100644 --- a/recipes/im2deep/meta.yaml +++ b/recipes/im2deep/meta.yaml @@ -1,6 +1,6 @@ {% set name = "im2deep" %} -{% set version = "0.1.7" %} -{% set sha256 = "5d5e255e551c2a9131c1a94b76cdbbb5064cc9a76bf8217cb71cc5909bd4a97c" %} +{% set version = "0.1.8" %} +{% set sha256 = "cd671e843c850f8deb8682872890f0555e9d250ef5351239e4f29f2b49d519ee" %} package: name: {{ name|lower }} From 44d8d0a499b9e19da920edd91a4bb0125081f384 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 11:04:59 -0400 Subject: [PATCH 0654/1589] Update pybiolib to 1.2.16 (#49668) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index 5a7d5bf7ebabb..1fc5590a325af 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.2.12" %} +{% set version = "1.2.16" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: dec5aa160f90cbbd0060975fc2cf5667cf8d44ce8936d6aef0886da336b66265 + sha256: fe6acc99bc6874bbb02246982545b7e355287bc22e3e82b16909d3e2237dad3d build: number: 0 From 98e7b135ac778beb179006c0a9476334c8791edb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 11:05:58 -0400 Subject: [PATCH 0655/1589] Update micom to 0.36.1 (#49670) --- recipes/micom/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/micom/meta.yaml b/recipes/micom/meta.yaml index 9f057b17a3d3b..d2cce5b00901c 100644 --- a/recipes/micom/meta.yaml +++ b/recipes/micom/meta.yaml @@ -1,5 +1,5 @@ {% set name = "micom" %} -{% set version = "0.36.0" %} +{% set version = "0.36.1" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: bde5f8ab886a9294e11ccb2be63d399e2baffadb9775ef96182e88966aa37e34 + sha256: 8b278dec56e04c2fbf2193a07ccce988a2fbf8408ce99fdb705c68e40ef28fb2 build: number: 0 From 47fb99238f3b79e9365c910378ce02e629ef8451 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 11:07:17 -0400 Subject: [PATCH 0656/1589] Update zdb to 1.3.2 (#49671) --- recipes/zdb/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/zdb/meta.yaml b/recipes/zdb/meta.yaml index b8864a209efab..007604596b270 100644 --- a/recipes/zdb/meta.yaml +++ b/recipes/zdb/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.3.1" %} +{% set version = "1.3.2" %} package: name: zdb @@ -6,13 +6,13 @@ package: build: noarch: generic - number: 1 + number: 0 run_exports: - {{ pin_subpackage('zdb', max_pin="x.x") }} source: - url: https://github.com/metagenlab/zDB/archive/refs/tags/v1.3.1.tar.gz - sha256: dec71cf53fd30f490fbbedd2bfa8488a3d2dfa67459d0c9b54f70a020ce8beb1 + url: https://github.com/metagenlab/zDB/archive/refs/tags/v1.3.2.tar.gz + sha256: bd2f4e132376f78e6fe0a28f9be003dd35a0b0d86d2880a39e5a25d9778e0d3e requirements: run: From 67daf7c0652b5e75bac4f4f0188b8caad92450f8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 11:07:40 -0400 Subject: [PATCH 0657/1589] Update el_gato to 1.18.1 (#49673) --- recipes/el_gato/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/el_gato/meta.yaml b/recipes/el_gato/meta.yaml index bdeb7c6eda601..633fcde6bb33b 100644 --- a/recipes/el_gato/meta.yaml +++ b/recipes/el_gato/meta.yaml @@ -1,6 +1,6 @@ {% set name = "el_gato" %} -{% set version = "1.18.0" %} -{% set hash = "b00d812d047053823275e62d7f01ed88aaffa906471e073443bb18e85c905995" %} +{% set version = "1.18.1" %} +{% set hash = "34f3d45be297c70e5abe3cc20ed50c7de479c7c0dba421fea6b4d703c33bb89d" %} {% set user = "appliedbinf" %} package: From aa50066b9db5cc26acd87e3400f9808a27901ea8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 11:07:56 -0400 Subject: [PATCH 0658/1589] Update r-recetox-aplcms to 0.13.2 (#49674) --- recipes/r-recetox-aplcms/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/r-recetox-aplcms/meta.yaml b/recipes/r-recetox-aplcms/meta.yaml index 066f8b6fa62e8..01bb61a31fb8b 100644 --- a/recipes/r-recetox-aplcms/meta.yaml +++ b/recipes/r-recetox-aplcms/meta.yaml @@ -1,5 +1,5 @@ {% set name = "recetox-aplcms" %} -{% set version = "0.13.0" %} +{% set version = "0.13.2" %} {% set github = "https://github.com/RECETOX/recetox-aplcms" %} package: @@ -8,7 +8,7 @@ package: source: url: "https://github.com/RECETOX/recetox-aplcms/archive/refs/tags/v{{ version }}.tar.gz" - sha256: d08847e0846734c76f06d009f4449ba498da8ea955d5029ee4ce4a67ba8e82ea + sha256: 070e1dc9df4e3bff0e55d1332ee0a738ed368a03dbd485a37b14120408be08b2 build: number: 0 From d2c3c55a15a42de48a1ba880594a5ef578a49729 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 12:07:27 -0400 Subject: [PATCH 0659/1589] Update gempipe to 1.33.2 (#49676) --- recipes/gempipe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gempipe/meta.yaml b/recipes/gempipe/meta.yaml index 7a4210e4820f6..c164ed6cea692 100755 --- a/recipes/gempipe/meta.yaml +++ b/recipes/gempipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.33.1" %} +{% set version = "1.33.2" %} package: name: "gempipe" @@ -7,7 +7,7 @@ package: source: url: https://github.com/lazzarigioele/gempipe/archive/v{{ version }}.tar.gz - sha256: 84fb9cb2bb1963078bfdc61068ee869504c15e3f905a94afad3f8362776e8f6a + sha256: 7486a7de14e975be052072abd1817a2a4bf54b0f585b5b05898f4d315d1bb7b4 build: From 7433db7ac9c8138b8222424500e95a4d5b1ee4f1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 12:59:10 -0400 Subject: [PATCH 0660/1589] Update bigtools to 0.5.1 (#49678) --- recipes/bigtools/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/bigtools/meta.yaml b/recipes/bigtools/meta.yaml index a53fbc5eb40d8..103e8822e7ec1 100644 --- a/recipes/bigtools/meta.yaml +++ b/recipes/bigtools/meta.yaml @@ -1,17 +1,17 @@ -{% set version = "0.5.0" %} +{% set version = "0.5.1" %} package: name: bigtools version: {{ version }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('bigtools', max_pin="x.x") }} source: url: https://github.com/jackh726/bigtools/archive/refs/tags/v{{ version }}.tar.gz - sha256: "f17f8129ea9bb3cdde5ce7ecc2465bd3a228409eb10620594911de22c86ba4ef" + sha256: "dc006ee7037420e9cd279b2aaaf3a2859c81c07eb08c3ce6b1598b1962f055a3" requirements: build: From b7b24b87b3a00afef72f5abeea53eabcdce274bc Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 13:02:32 -0400 Subject: [PATCH 0661/1589] Update el_gato to 1.18.2 (#49677) --- recipes/el_gato/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/el_gato/meta.yaml b/recipes/el_gato/meta.yaml index 633fcde6bb33b..7dc82c6beb55f 100644 --- a/recipes/el_gato/meta.yaml +++ b/recipes/el_gato/meta.yaml @@ -1,6 +1,6 @@ {% set name = "el_gato" %} -{% set version = "1.18.1" %} -{% set hash = "34f3d45be297c70e5abe3cc20ed50c7de479c7c0dba421fea6b4d703c33bb89d" %} +{% set version = "1.18.2" %} +{% set hash = "328a8399d01594a69a87c11357310efe54c00159949b396f1211d7ce2787040a" %} {% set user = "appliedbinf" %} package: From 3c4eeffff7fd5ba1873ad347fb7d37787f348061 Mon Sep 17 00:00:00 2001 From: Mariia Zelenskaia <102167492+mariia-zelenskaia@users.noreply.github.com> Date: Tue, 30 Jul 2024 19:40:05 +0200 Subject: [PATCH 0662/1589] update TransAnnot version (#49672) --- recipes/transannot/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/transannot/meta.yaml b/recipes/transannot/meta.yaml index 4b3e3f49ff2e1..12721ce0697f9 100644 --- a/recipes/transannot/meta.yaml +++ b/recipes/transannot/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "3-7f1c8e1" %} -{% set sha256 = "713d5c008886d81da80c6d6990d1bb9d7cf53c9a98dd37aa429cb341e8d2ae36" %} +{% set version = "3-70b2a60" %} +{% set sha256 = "3b1d2f28362004378528755b8b4e0b8dc45b51cc60562816258bdf16d9cda08d" %} package: name: transannot From 6d52a4efe352ef513bdebc64cce51778a5de23a4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 16:28:26 -0400 Subject: [PATCH 0663/1589] Update pbstarphase to 0.13.0 (#49683) --- recipes/pbstarphase/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pbstarphase/meta.yaml b/recipes/pbstarphase/meta.yaml index 08cd05ff96e91..4cff85620e07b 100644 --- a/recipes/pbstarphase/meta.yaml +++ b/recipes/pbstarphase/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pbstarphase" %} -{% set version = "0.12.0" %} -{% set sha256 = "a44a71aa786c8ad08860dcb542bb98cd5142f4c331c54e44533a0b62d6d51d7e" %} +{% set version = "0.13.0" %} +{% set sha256 = "d21c239440bbb90d96048b4d290c951baa2cb3dbc332c6ad7351e696eaba21ed" %} package: name: {{ name }} From cd47ae01e775b063fe2f37fad775e817606e3dd4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 16:51:59 -0400 Subject: [PATCH 0664/1589] Update pangolin-data to 1.29 (#49681) --- recipes/pangolin-data/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pangolin-data/meta.yaml b/recipes/pangolin-data/meta.yaml index 6fcedd8d0f4c4..d1b23dc48e60a 100644 --- a/recipes/pangolin-data/meta.yaml +++ b/recipes/pangolin-data/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.28.1" %} +{% set version = "1.29" %} package: name: pangolin-data @@ -6,7 +6,7 @@ package: source: url: https://github.com/cov-lineages/pangolin-data/archive/refs/tags/v{{ version }}.tar.gz - sha256: 1d24d1a3c702ce947fac9ba164079622d5b074624aa5104d236b85ab26a2361b + sha256: 9f0e8ebab54ff1933f9abffb60cbc577df79b0d0ebfa51b8265b7d72720802d6 build: number: 0 From bd78b9af24187dfafe42dd9eb37d688d19756976 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 23:13:57 -0400 Subject: [PATCH 0665/1589] Update codoff to 1.1.5 (#49685) --- recipes/codoff/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/codoff/meta.yaml b/recipes/codoff/meta.yaml index d16742c487629..36f3fab25d8a4 100644 --- a/recipes/codoff/meta.yaml +++ b/recipes/codoff/meta.yaml @@ -1,5 +1,5 @@ {% set name = "codoff" %} -{% set version = "1.1.0" %} +{% set version = "1.1.5" %} package: name: {{ name|lower }} @@ -7,10 +7,10 @@ package: source: url: https://github.com/Kalan-Lab/codoff/archive/refs/tags/v{{ version }}.tar.gz - sha256: ffa16c6f4fba96bfb6b0a4d9efda202bb6215d1aca558cac9d96761e02962237 + sha256: eb048616dabcae38a2476d7325e689e6499b2d1651c33a91502a1b82131a6bb3 build: - number: 2 + number: 0 noarch: python script: "{{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv" run_exports: From c757111ce111576aa42b03de4daeea3603a5ec08 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 23:14:32 -0400 Subject: [PATCH 0666/1589] Update seismic-rna to 0.20.0 (#49684) --- recipes/seismic-rna/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/seismic-rna/meta.yaml b/recipes/seismic-rna/meta.yaml index dd30945f9368b..2a1e20c694de2 100644 --- a/recipes/seismic-rna/meta.yaml +++ b/recipes/seismic-rna/meta.yaml @@ -2,7 +2,7 @@ package: name: seismic-rna - version: 0.19.2 + version: 0.20.0 about: home: https://github.com/rouskinlab/seismic-rna license: GPL-3.0-only @@ -11,8 +11,8 @@ about: license_url: https://www.gnu.org/licenses/gpl-3.0.html summary: SEISMIC-RNA software by the Rouskin Lab source: - url: https://github.com/rouskinlab/seismic-rna/archive/refs/tags/v0.19.2.tar.gz - sha256: ef2a7b6932cf3e6247bca25838dcacffca2a43523df5bf0eb455d3243b3f246f + url: https://github.com/rouskinlab/seismic-rna/archive/refs/tags/v0.20.0.tar.gz + sha256: 91ea9c7d23a85a0d9d035e41ee0782f892ea7e4f0df5af96317b7302a58c8de4 build: noarch: python number: 0 @@ -42,4 +42,4 @@ requirements: - scipy >=1.9 test: imports: - - seismicrna \ No newline at end of file + - seismicrna From 3273124be640961a9d56fa7129590da97559f7a5 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Wed, 31 Jul 2024 06:12:45 +0200 Subject: [PATCH 0667/1589] Disable avx for iqtree for x86-64 (#49682) * Disable avx for iqtree for x86-64 * Patch out `-mavx` to not use that instruction * fix --- recipes/iqtree/build.sh | 13 ++++++++++--- recipes/iqtree/meta.yaml | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/recipes/iqtree/build.sh b/recipes/iqtree/build.sh index 9fcec17dbde4a..3fffe3a1e8433 100644 --- a/recipes/iqtree/build.sh +++ b/recipes/iqtree/build.sh @@ -1,6 +1,12 @@ #!/bin/bash set -ex +# AVX might not be supported on all CPUs, in particular Rosetta2 on Apple Silicon +# -march=nocona and -mtune=haswell are the original conda-forge flags +# we're restoring them here by mentioning them explicitly +# .bak is required for sed -i on macOS +sed -i.bak 's/-mavx/-mno-avx -mno-avx2 -march=nocona -mtune=haswell/' cmaple/CMakeLists.txt + export INCLUDES="-I${PREFIX}/include" export LIBPATH="-L${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" @@ -12,8 +18,8 @@ if [ "$(uname)" == Darwin ]; then export CMAKE_C_COMPILER="clang" export CMAKE_CXX_COMPILER="clang++" export CXXFLAGS="${CXXFLAGS} -mmacosx-version-min=11" - # `which` is required, as full paths needed - # see https://github.com/bioconda/bioconda-recipes/pull/49360#discussion_r1686187284 + # `which` is required, as full paths needed + # see https://github.com/bioconda/bioconda-recipes/pull/49360#discussion_r1686187284 CC=$(which "$CC") CXX=$(which "$CXX") AR=$(which "$AR") @@ -25,7 +31,8 @@ fi cmake -S . -B build -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DCMAKE_BUILD_TYPE=Release \ -GNinja \ -DUSE_LSD2=ON -DIQTREE_FLAGS=omp -DUSE_CMAPLE=ON \ - -DCMAKE_CXX_FLAGS="${CXXFLAGS}" "${DCMAKE_ARGS[@]}" \ + -DCMAKE_C_FLAGS="${CFLAGS}" -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ + "${DCMAKE_ARGS[@]}" \ -DBUILD_GMOCK=OFF -DINSTALL_GTEST=OFF \ -Wno-dev -Wno-deprecated --no-warn-unused-cli diff --git a/recipes/iqtree/meta.yaml b/recipes/iqtree/meta.yaml index 6c0b3e3a4795c..78c3729b31380 100644 --- a/recipes/iqtree/meta.yaml +++ b/recipes/iqtree/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version | replace("-", "_") }} build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage('iqtree', max_pin="x") }} From e1b09f5165443154b1d299e0e243eff5c27f1a95 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Wed, 31 Jul 2024 06:13:17 +0200 Subject: [PATCH 0668/1589] Disable avx (#49679) Update meta.yaml line endings back to unix --- recipes/cmaple/build.sh | 12 +++++++++--- recipes/cmaple/meta.yaml | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/recipes/cmaple/build.sh b/recipes/cmaple/build.sh index 78f24d3e35d16..63ffed49625be 100644 --- a/recipes/cmaple/build.sh +++ b/recipes/cmaple/build.sh @@ -1,6 +1,12 @@ #!/bin/bash set -ex +# AVX is not supported on all CPUs, in particular Rosetta2 on Apple Silicon +# -march=nocona and -mtune=haswell are the original conda-forge flags +# we're restoring them here by mentioning them explicitly +# .bak is required for sed -i on macOS +sed -i.bak 's/-mavx/-mno-avx -mno-avx2 -march=nocona -mtune=haswell/' CMakeLists.txt + DCMAKE_ARGS="" if [ "$(uname)" == Darwin ]; then CC=$(which "$CC") @@ -31,7 +37,7 @@ VERBOSE=1 cmake --build build --target install -j ${JOBS} chmod 755 "${PREFIX}/bin/cmaple"* for file in "${PREFIX}/example.maple" "${PREFIX}/tree.nwk"; do - if [ -f "$file" ]; then - rm "$file" - fi + if [ -f "$file" ]; then + rm "$file" + fi done diff --git a/recipes/cmaple/meta.yaml b/recipes/cmaple/meta.yaml index bea9bb9ac3cb0..808b5f3f941ee 100644 --- a/recipes/cmaple/meta.yaml +++ b/recipes/cmaple/meta.yaml @@ -5,7 +5,7 @@ package: name: {{ name }} version: {{ version | replace("-", "_") }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin="x") }} source: From 25328a0fb33fbccd348781f60debf47e7d1659ae Mon Sep 17 00:00:00 2001 From: Thom Griffioen Date: Wed, 31 Jul 2024 06:14:19 +0200 Subject: [PATCH 0669/1589] Add ARM build to `perl-json-xz` (#49669) * Add ARM build to perl-json-xz * Update recipes/perl-json-xs/meta.yaml Co-authored-by: Martin Grigorov --------- Co-authored-by: Martin Grigorov --- recipes/perl-json-xs/meta.yaml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/recipes/perl-json-xs/meta.yaml b/recipes/perl-json-xs/meta.yaml index d9c7c94ae2741..871c1c95fef43 100644 --- a/recipes/perl-json-xs/meta.yaml +++ b/recipes/perl-json-xs/meta.yaml @@ -7,11 +7,13 @@ package: version: {{ version }} source: - url: https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN/JSON-XS-4.03.tar.gz + url: https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN/JSON-XS-{{ version }}.tar.gz sha256: {{ sha256 }} build: - number: 2 + number: 3 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} requirements: build: @@ -35,6 +37,12 @@ test: - JSON::XS about: - home: http://metacpan.org/pod/JSON::XS - license: unknown + home: https://metacpan.org/pod/JSON::XS + license_file: COPYING + license: GPL-1.0-or-later OR Artistic-1.0-Perl summary: 'JSON serialising/deserialising, done correctly and fast' + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From 0f8523abc8361569f2701e998ab90038db11c513 Mon Sep 17 00:00:00 2001 From: Thom Griffioen Date: Wed, 31 Jul 2024 06:15:36 +0200 Subject: [PATCH 0670/1589] Add RpsbProc (#49607) * Add `RpsbProc` recipe * Add LICENSE file * Skip ARM and only use 1 make job * Use 32bit GI * Apply config.sub patch * type-o * Remove compiler options already set by the toolkit * MacOS debugging run * Force stderr so it doesn't interleave with stdout stream * Retry Clang 16 * Build linux --- recipes/rpsbproc/LICENSE | 19 + recipes/rpsbproc/build.sh | 165 ++ recipes/rpsbproc/configurellvm.patch | 37 + recipes/rpsbproc/meta.yaml | 83 + recipes/rpsbproc/normbase.patch | 8 + recipes/rpsbproc/phonehome.patch | 11 + recipes/rpsbproc/update_configsub.patch | 3207 +++++++++++++++++++++++ 7 files changed, 3530 insertions(+) create mode 100644 recipes/rpsbproc/LICENSE create mode 100755 recipes/rpsbproc/build.sh create mode 100644 recipes/rpsbproc/configurellvm.patch create mode 100644 recipes/rpsbproc/meta.yaml create mode 100644 recipes/rpsbproc/normbase.patch create mode 100644 recipes/rpsbproc/phonehome.patch create mode 100644 recipes/rpsbproc/update_configsub.patch diff --git a/recipes/rpsbproc/LICENSE b/recipes/rpsbproc/LICENSE new file mode 100644 index 0000000000000..f31cbe98a9f46 --- /dev/null +++ b/recipes/rpsbproc/LICENSE @@ -0,0 +1,19 @@ + PUBLIC DOMAIN NOTICE + National Center for Biotechnology Information + +This software/database is a "United States Government Work" under the +terms of the United States Copyright Act. It was written as part of +the author's official duties as a United States Government employee and +thus cannot be copyrighted. This software/database is freely available +to the public for use. The National Library of Medicine and the U.S. +Government have not placed any restriction on its use or reproduction. + +Although all reasonable efforts have been taken to ensure the accuracy +and reliability of the software and data, the NLM and the U.S. +Government do not and cannot warrant the performance or results that +may be obtained by using this software or data. The NLM and the U.S. +Government disclaim all warranties, express or implied, including +warranties of performance, merchantability or fitness for any particular +purpose. + +Please cite the author in any work or product based on this material. diff --git a/recipes/rpsbproc/build.sh b/recipes/rpsbproc/build.sh new file mode 100755 index 0000000000000..dbaea1d1ac5e7 --- /dev/null +++ b/recipes/rpsbproc/build.sh @@ -0,0 +1,165 @@ +#!/bin/bash + +set -o xtrace +set -o errexit +set -o nounset +set -o pipefail + + +# For debugging ./configure +cat << EOF >&2 +ENVIRONMENT +----------- +uname -a $(uname -a) + KERNEL +uname -s $(uname -s) +uname -r $(uname -r) +uname -v $(uname -v) + ARCHITECTURE +uname -m $(uname -m) +EOF + + +# Source paths +NCBI_CXX_TOOLKIT="$SRC_DIR/ncbi_cxx/c++" +RPSBPROC_SRC="$SRC_DIR/rpsbproc" +# Work directory +RESULT_PATH="$NCBI_CXX_TOOLKIT/Release" + + +# C/C++ preprocessor header includes paths +export CPPFLAGS="$CPPFLAGS -I$PREFIX/include" +# Linker library paths +export LDFLAGS="$LDFLAGS -L$PREFIX/lib" +# C++ compiler flags +if [[ "$(uname)" = "Darwin" ]]; then + # See https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk for -D_LIBCPP_DISABLE_AVAILABILITY + export CXXFLAGS="$CXXFLAGS -D_LIBCPP_DISABLE_AVAILABILITY" +fi + + +# Embed RpsbProc into the NCBI C++ toolkit source tree +mkdir "$NCBI_CXX_TOOLKIT/src/app/RpsbProc" +cp -rf "$RPSBPROC_SRC/src/"* "$NCBI_CXX_TOOLKIT/src/app/RpsbProc/" + + +# Configuration synopsis: +# https://ncbi.github.io/cxx-toolkit/pages/ch_config.html#ch_config.ch_configget_synopsi +# Run `./configure --help` for all flags. +CONFIGURE_FLAGS="--with-build-root=$RESULT_PATH" + +# Platform-independent flags +## BUILD CHAIN OPTIONS +# --with(out)-bin-release: +# Build executables suitable for public release +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-bin-release" +# --with(out)-debug: +# Build non-debug versions of libs and apps. +# Strips -D_DEBUG and -g, engage -DNDEBUG and -O. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-debug" +# --with(out)-strip: +# Strip binaries at build time (remove debugging symbols) +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-strip" +# --with-experimental={ChaosMonkey,Int4GI,Int8GI,StrictGI,PSGLoader,BM64,C++20,C2X}: +# Enable named experimental feature (comma-separated list): +# - ChaosMonkey Enable "ChaosMonkey" failure testing. +# - Int4GI Use a simple 32-bit type for GI numbers. +# - Int8GI Use a simple 64-bit type for GI numbers. +# - StrictGI Use a strict 64-bit type for GI numbers. +# - PSGLoader Let the GenBank date loader use PubSeq Gateway (PSG). +# - BM64 Use 64-bit bitset indices. +# - C++20 Use '-std=gnu++20' compiler flag. +# - C2X Use '-std=gnu2x' compiler flag. +# See c++/src/build-system/configure.ac lines 1020:1068 for the named options. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-experimental=Int4GI" +# --with(out)-mt: +# Compile in a multi-threading safe manner. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-mt" +# --with(out)-autodep: +# Do not automatically generate dependencies (one time build). +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-autodep" +# --with(out)-makefile-auto-update: +# Do not auto-update generated makefiles (one time build). +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-makefile-auto-update" +# --with(out)-flat-makefile: +# Generate an all-encompassing flat makefile. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-flat-makefile" +# --with(out)-caution: +# Proceed configuration without asking when in doubt. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-caution" +# --with(out)-sse42 +# Disable SSE 4.2 when optimizing. +# Old CPU's (read: 10+ years) don't have this instruction set. +# We can consider removing this. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-sse42" + +## LIBRARIES +# --with(out)-lzo: +# Do not add lzo support (compression lib, req. lzo >2.x). +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-lzo" +# --with(out)-z: +# Set zlib path (compression lib). +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-z=$PREFIX" +# --with(out)-bz2: +# Set bzlib path (compression lib). +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-bz2=$PREFIX" +# --with(out)-sqlite3: +# Set sqlite3 path (local database lib). +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-sqlite3=$PREFIX" +# --with(out)-krb5: +# Do not use Kerberos 5 (needed on OSX). +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-krb5" +# --with(out)-gnutls: +# Do not use gnutls. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-gnutls" +# --with(out)-boost: +# Do not use Boost. +# It tries to search for it and prints some warnings, so might as well tell it beforehand. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-boost" +# --with(out)-pcre: +# Do not use pcre (Perl regex). +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-pcre" +# Static linking of libraries +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-dll --with-static-exe" + +# Platform-specific flags +if [[ "$(uname)" = "Linux" ]]; then + # --with(out)-64: + # Compile in 64-bit mode instead of 32-bit. + # Flag not available for osx build. + CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-64" + # --with(out)-openmp: + # Enable OpenMP extensions for all projects. + # Does not work without hacks for OSX + CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-openmp" +else + # --with(out)-openmp: + # Disable OpenMP extensions for all projects. + CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-openmp" + # --with(out)-gcrypt: + # Do not use gcrypt (needed on OSX). + CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-gcrypt" + # --with(out)-zstd: + # Do not use Zstandard. + CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-zstd" +fi + +# Fixes building on unix (linux and osx) +export AR="${AR} rcs" + +# Run configure script +cd "$NCBI_CXX_TOOLKIT" +./configure.orig $CONFIGURE_FLAGS >&2 + +# Run GNU Make +cd "$RESULT_PATH/build" +echo "RUNNING MAKE" >&2 +make -j1 -f Makefile.flat rpsbproc.exe >&2 + +# Copy compiled binaries to the Conda $PREFIX +mkdir -p "$PREFIX/bin" +chmod +x "$RESULT_PATH/bin/"* +cp "$RESULT_PATH/bin/rpsbproc"* "$PREFIX/bin/" + +# Extra log to check results +ls -lhAF "$PREFIX/bin/" diff --git a/recipes/rpsbproc/configurellvm.patch b/recipes/rpsbproc/configurellvm.patch new file mode 100644 index 0000000000000..83a44bc1372b2 --- /dev/null +++ b/recipes/rpsbproc/configurellvm.patch @@ -0,0 +1,37 @@ +# fix OSX build issue +# see issue #20874 for more info +diff -ruN c++/src/build-system/configure c++/src/build-system/configure +--- c++/src/build-system/configure 2023-05-03 08:56:44.398601956 +0200 ++++ c++/src/build-system/configure 2023-05-03 09:34:41.470127549 +0200 +@@ -9573,10 +9573,12 @@ + CONF_loadable_ext=".dylib" + fi + if test "$compiler" = AppleClang \ +- || ("$compiler" = GCC && $CXX -v 2>&1 | grep -q Apple) ; then ++ || test "$compiler" = LLVMClang \ ++ || (test "$compiler" = GCC && $CXX -v 2>&1 | grep -i -q Apple) ; then + CFLAGS="-fpascal-strings $CFLAGS" + CXXFLAGS="-fpascal-strings $CXXFLAGS" +- if test "$compiler" = AppleClang; then ++ if test "$compiler" = AppleClang \ ++ || test "$compiler" = LLVMClang; then + try_old_sdks=no + else + try_old_sdks=$with_ncbi_public +@@ -9983,7 +9985,7 @@ + else + ac_cv_header_stdc=no + fi +-rm -f conftest* ++rm -rf conftest* + + fi + +@@ -10000,7 +10002,7 @@ + else + ac_cv_header_stdc=no + fi +-rm -f conftest* ++rm -rf conftest* + + fi diff --git a/recipes/rpsbproc/meta.yaml b/recipes/rpsbproc/meta.yaml new file mode 100644 index 0000000000000..e6f28433383b3 --- /dev/null +++ b/recipes/rpsbproc/meta.yaml @@ -0,0 +1,83 @@ +{% set name = "rpsbproc" %} +{% set version = "0.5.0" %} +{% set sha256 = "8b29f7e7d0a0654d10943e362557ed2d8df9a16218a4c8441c4dea4e7dc9154f" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + - url: https://ftp.ncbi.nih.gov/pub/mmdb/cdd/rpsbproc/RpsbProc-src.tar.gz + sha256: {{ sha256 }} + folder: rpsbproc + patches: + - normbase.patch + + # Get the last supported BLAST version (contains a subset of the NCBI-CXX toolchain), + # required for building. + - url: https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/2.15.0/ncbi-blast-2.15.0+-src.tar.gz + sha256: 6918c370524c8d44e028bf491e8f245a895e07c66c77b261ce3b38d6058216e0 + folder: ncbi_cxx + patches: + - configurellvm.patch + - phonehome.patch + - update_configsub.patch + +build: + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x.x") }} + +requirements: + build: + - make + - {{ compiler('c') }} + - {{ compiler('cxx') }} + host: + - zlib + - bzip2 + # required as of blast-2.15.0 + - sqlite >=3.6.6 + # no runtime dependencies as it's statically linked (except standard libs) + run: + + +test: + commands: + - rpsbproc -version-full + +about: + home: https://ftp.ncbi.nih.gov/pub/mmdb/cdd/rpsbproc/README + license: Public Domain + license_file: LICENSE + summary: RpsbProc, the post-RPSBLAST Processing Utility. + description: | + The rpsbproc command line utility is an addition to the standalone version of + Reverse Position-Specific BLAST (RPS-BLAST), also known as CD-Search (Conserved + Domain Search). + + It post-processes the results of local RPS-BLAST searches in order to provide a + non-redundant view of the search results, and to provide additional annotation + on query sequences, such as domain superfamilies and functional sites, similar to + the annotation provided by the corresponding web services (e.g., the NCBI Batch + CD-Search web service at + http://www.ncbi.nlm.nih.gov/Structure/bwrpsb/bwrpsb.cgi). + + Specifically, the rpsbproc utility reads the output of rpsblast/rpstblastn, + fills in domain superfamily and functional site information for each region of + the sequence, re-sorts the hits by a different standard, and calculates a + set of non-redundent representative hits. In this way, it turns the + raw alignments into domain/site annotations on the query sequence at different + redundancy level, basically produce the same data as web-based Batch CD-Search + service does. The annotation data is presented in tab-delimited tables to be processed + either programatically or manually with a spreadsheet (see details below). + + See the CDD and CD-Search help document for additional details about + superfamilies, conserved sites, and more: + + http://www.ncbi.nlm.nih.gov/Structure/cdd/cdd_help.shtml + + +extra: + identifiers: + - doi:10.1002/cpbi.90 diff --git a/recipes/rpsbproc/normbase.patch b/recipes/rpsbproc/normbase.patch new file mode 100644 index 0000000000000..78183e1d88122 --- /dev/null +++ b/recipes/rpsbproc/normbase.patch @@ -0,0 +1,8 @@ +--- src/common/normbase.hpp ++++ src/common/normbase.hpp +@@ -142,7 +142,7 @@ private: + + std::ostream & operator << (std::ostream &os, const CSimpleException &e); + +-#define THROW_SIMPLE(a) throw CSimpleException(__FILE__, __LINE__, dynamic_cast (stringstream() << a)) ++#define THROW_SIMPLE(a) throw CSimpleException(__FILE__, __LINE__, static_cast (stringstream() << a)) diff --git a/recipes/rpsbproc/phonehome.patch b/recipes/rpsbproc/phonehome.patch new file mode 100644 index 0000000000000..a02e55a0ad186 --- /dev/null +++ b/recipes/rpsbproc/phonehome.patch @@ -0,0 +1,11 @@ +--- c++/include/connect/ncbi_usage_report.hpp 2020-09-25 19:21:05 +0200 ++++ c++/include/connect/ncbi_usage_report.hpp 2022-07-18 23:39:42 +0200 +@@ -39,7 +39,7 @@ + // API is available for MT builds only, + // for single thread builds all API is available but disabled. + #if defined(NCBI_THREADS) +-# define NCBI_USAGE_REPORT_SUPPORTED 1 ++// # define NCBI_USAGE_REPORT_SUPPORTED 1 + #endif + + #if defined(NCBI_USAGE_REPORT_SUPPORTED) diff --git a/recipes/rpsbproc/update_configsub.patch b/recipes/rpsbproc/update_configsub.patch new file mode 100644 index 0000000000000..d4dfa0bd35e7d --- /dev/null +++ b/recipes/rpsbproc/update_configsub.patch @@ -0,0 +1,3207 @@ +# Update config.sub to a modern version that recognises osx-arm64 +--- c++/src/build-system/config.sub ++++ c++/src/build-system/config.sub +@@ -1,12 +1,14 @@ + #! /bin/sh + # Configuration validation subroutine script. +-# Copyright 1992-2013 Free Software Foundation, Inc. ++# Copyright 1992-2024 Free Software Foundation, Inc. + +-timestamp='2013-02-12' ++# shellcheck disable=SC2006,SC2268 # see below for rationale ++ ++timestamp='2024-01-01' + + # This file is free software; you can redistribute it and/or modify it + # under the terms of the GNU General Public License as published by +-# the Free Software Foundation; either version 3 of the License, or ++# the Free Software Foundation, either version 3 of the License, or + # (at your option) any later version. + # + # This program is distributed in the hope that it will be useful, but +@@ -15,7 +17,7 @@ timestamp='2013-02-12' + # General Public License for more details. + # + # You should have received a copy of the GNU General Public License +-# along with this program; if not, see . ++# along with this program; if not, see . + # + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a +@@ -25,7 +27,7 @@ timestamp='2013-02-12' + # of the GNU General Public License, version 3 ("GPLv3"). + + +-# Please send patches with a ChangeLog entry to config-patches@gnu.org. ++# Please send patches to . + # + # Configuration subroutine to validate and canonicalize a configuration type. + # Supply the specified configuration type as an argument. +@@ -33,7 +35,7 @@ timestamp='2013-02-12' + # Otherwise, we print the canonical config type on stdout and succeed. + + # You can get the latest version of this script from: +-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD ++# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub + + # This file is supposed to be the same for all GNU packages + # and recognize all the CPU types, system types and aliases +@@ -50,15 +52,21 @@ timestamp='2013-02-12' + # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM + # It is wrong to echo any other type of specification. + ++# The "shellcheck disable" line above the timestamp inhibits complaints ++# about features and limitations of the classic Bourne shell that were ++# superseded or lifted in POSIX. However, this script identifies a wide ++# variety of pre-POSIX systems that do not have POSIX shells at all, and ++# even some reasonably current systems (Solaris 10 as case-in-point) still ++# have a pre-POSIX /bin/sh. ++ + me=`echo "$0" | sed -e 's,.*/,,'` + + usage="\ +-Usage: $0 [OPTION] CPU-MFR-OPSYS +- $0 [OPTION] ALIAS ++Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + + Canonicalize a configuration name. + +-Operation modes: ++Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit +@@ -68,13 +76,13 @@ Report bugs and patches to ." + version="\ + GNU config.sub ($timestamp) + +-Copyright 1992-2013 Free Software Foundation, Inc. ++Copyright 1992-2024 Free Software Foundation, Inc. + + This is free software; see the source for copying conditions. There is NO + warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + + help=" +-Try \`$me --help' for more information." ++Try '$me --help' for more information." + + # Parse command line + while test $# -gt 0 ; do +@@ -90,12 +98,12 @@ while test $# -gt 0 ; do + - ) # Use stdin as input. + break ;; + -* ) +- echo "$me: invalid option $1$help" ++ echo "$me: invalid option $1$help" >&2 + exit 1 ;; + + *local*) + # First pass through any local machine types. +- echo $1 ++ echo "$1" + exit ;; + + * ) +@@ -111,1209 +119,1167 @@ case $# in + exit 1;; + esac + +-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +-# Here we must recognize all the valid KERNEL-OS combinations. +-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +-case $maybe_os in +- nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ +- linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ +- knetbsd*-gnu* | netbsd*-gnu* | \ +- kopensolaris*-gnu* | \ +- storm-chaos* | os2-emx* | rtmk-nova*) +- os=-$maybe_os +- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` +- ;; +- android-linux) +- os=-linux-android +- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown +- ;; +- *) +- basic_machine=`echo $1 | sed 's/-[^-]*$//'` +- if [ $basic_machine != $1 ] +- then os=`echo $1 | sed 's/.*-/-/'` +- else os=; fi +- ;; +-esac ++# Split fields of configuration type ++# shellcheck disable=SC2162 ++saved_IFS=$IFS ++IFS="-" read field1 field2 field3 field4 <&2 ++ exit 1 + ;; +- -ptx*) +- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ++ *-*-*-*) ++ basic_machine=$field1-$field2 ++ basic_os=$field3-$field4 + ;; +- -windowsnt*) +- os=`echo $os | sed -e 's/windowsnt/winnt/'` ++ *-*-*) ++ # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two ++ # parts ++ maybe_os=$field2-$field3 ++ case $maybe_os in ++ nto-qnx* | linux-* | uclinux-uclibc* \ ++ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ ++ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ ++ | storm-chaos* | os2-emx* | rtmk-nova* | managarm-* \ ++ | windows-* ) ++ basic_machine=$field1 ++ basic_os=$maybe_os ++ ;; ++ android-linux) ++ basic_machine=$field1-unknown ++ basic_os=linux-android ++ ;; ++ *) ++ basic_machine=$field1-$field2 ++ basic_os=$field3 ++ ;; ++ esac + ;; +- -psos*) +- os=-psos ++ *-*) ++ # A lone config we happen to match not fitting any pattern ++ case $field1-$field2 in ++ decstation-3100) ++ basic_machine=mips-dec ++ basic_os= ++ ;; ++ *-*) ++ # Second component is usually, but not always the OS ++ case $field2 in ++ # Prevent following clause from handling this valid os ++ sun*os*) ++ basic_machine=$field1 ++ basic_os=$field2 ++ ;; ++ zephyr*) ++ basic_machine=$field1-unknown ++ basic_os=$field2 ++ ;; ++ # Manufacturers ++ dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ ++ | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ ++ | unicom* | ibm* | next | hp | isi* | apollo | altos* \ ++ | convergent* | ncr* | news | 32* | 3600* | 3100* \ ++ | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ ++ | ultra | tti* | harris | dolphin | highlevel | gould \ ++ | cbm | ns | masscomp | apple | axis | knuth | cray \ ++ | microblaze* | sim | cisco \ ++ | oki | wec | wrs | winbond) ++ basic_machine=$field1-$field2 ++ basic_os= ++ ;; ++ *) ++ basic_machine=$field1 ++ basic_os=$field2 ++ ;; ++ esac ++ ;; ++ esac + ;; +- -mint | -mint[0-9]*) +- basic_machine=m68k-atari +- os=-mint ++ *) ++ # Convert single-component short-hands not valid as part of ++ # multi-component configurations. ++ case $field1 in ++ 386bsd) ++ basic_machine=i386-pc ++ basic_os=bsd ++ ;; ++ a29khif) ++ basic_machine=a29k-amd ++ basic_os=udi ++ ;; ++ adobe68k) ++ basic_machine=m68010-adobe ++ basic_os=scout ++ ;; ++ alliant) ++ basic_machine=fx80-alliant ++ basic_os= ++ ;; ++ altos | altos3068) ++ basic_machine=m68k-altos ++ basic_os= ++ ;; ++ am29k) ++ basic_machine=a29k-none ++ basic_os=bsd ++ ;; ++ amdahl) ++ basic_machine=580-amdahl ++ basic_os=sysv ++ ;; ++ amiga) ++ basic_machine=m68k-unknown ++ basic_os= ++ ;; ++ amigaos | amigados) ++ basic_machine=m68k-unknown ++ basic_os=amigaos ++ ;; ++ amigaunix | amix) ++ basic_machine=m68k-unknown ++ basic_os=sysv4 ++ ;; ++ apollo68) ++ basic_machine=m68k-apollo ++ basic_os=sysv ++ ;; ++ apollo68bsd) ++ basic_machine=m68k-apollo ++ basic_os=bsd ++ ;; ++ aros) ++ basic_machine=i386-pc ++ basic_os=aros ++ ;; ++ aux) ++ basic_machine=m68k-apple ++ basic_os=aux ++ ;; ++ balance) ++ basic_machine=ns32k-sequent ++ basic_os=dynix ++ ;; ++ blackfin) ++ basic_machine=bfin-unknown ++ basic_os=linux ++ ;; ++ cegcc) ++ basic_machine=arm-unknown ++ basic_os=cegcc ++ ;; ++ convex-c1) ++ basic_machine=c1-convex ++ basic_os=bsd ++ ;; ++ convex-c2) ++ basic_machine=c2-convex ++ basic_os=bsd ++ ;; ++ convex-c32) ++ basic_machine=c32-convex ++ basic_os=bsd ++ ;; ++ convex-c34) ++ basic_machine=c34-convex ++ basic_os=bsd ++ ;; ++ convex-c38) ++ basic_machine=c38-convex ++ basic_os=bsd ++ ;; ++ cray) ++ basic_machine=j90-cray ++ basic_os=unicos ++ ;; ++ crds | unos) ++ basic_machine=m68k-crds ++ basic_os= ++ ;; ++ da30) ++ basic_machine=m68k-da30 ++ basic_os= ++ ;; ++ decstation | pmax | pmin | dec3100 | decstatn) ++ basic_machine=mips-dec ++ basic_os= ++ ;; ++ delta88) ++ basic_machine=m88k-motorola ++ basic_os=sysv3 ++ ;; ++ dicos) ++ basic_machine=i686-pc ++ basic_os=dicos ++ ;; ++ djgpp) ++ basic_machine=i586-pc ++ basic_os=msdosdjgpp ++ ;; ++ ebmon29k) ++ basic_machine=a29k-amd ++ basic_os=ebmon ++ ;; ++ es1800 | OSE68k | ose68k | ose | OSE) ++ basic_machine=m68k-ericsson ++ basic_os=ose ++ ;; ++ gmicro) ++ basic_machine=tron-gmicro ++ basic_os=sysv ++ ;; ++ go32) ++ basic_machine=i386-pc ++ basic_os=go32 ++ ;; ++ h8300hms) ++ basic_machine=h8300-hitachi ++ basic_os=hms ++ ;; ++ h8300xray) ++ basic_machine=h8300-hitachi ++ basic_os=xray ++ ;; ++ h8500hms) ++ basic_machine=h8500-hitachi ++ basic_os=hms ++ ;; ++ harris) ++ basic_machine=m88k-harris ++ basic_os=sysv3 ++ ;; ++ hp300 | hp300hpux) ++ basic_machine=m68k-hp ++ basic_os=hpux ++ ;; ++ hp300bsd) ++ basic_machine=m68k-hp ++ basic_os=bsd ++ ;; ++ hppaosf) ++ basic_machine=hppa1.1-hp ++ basic_os=osf ++ ;; ++ hppro) ++ basic_machine=hppa1.1-hp ++ basic_os=proelf ++ ;; ++ i386mach) ++ basic_machine=i386-mach ++ basic_os=mach ++ ;; ++ isi68 | isi) ++ basic_machine=m68k-isi ++ basic_os=sysv ++ ;; ++ m68knommu) ++ basic_machine=m68k-unknown ++ basic_os=linux ++ ;; ++ magnum | m3230) ++ basic_machine=mips-mips ++ basic_os=sysv ++ ;; ++ merlin) ++ basic_machine=ns32k-utek ++ basic_os=sysv ++ ;; ++ mingw64) ++ basic_machine=x86_64-pc ++ basic_os=mingw64 ++ ;; ++ mingw32) ++ basic_machine=i686-pc ++ basic_os=mingw32 ++ ;; ++ mingw32ce) ++ basic_machine=arm-unknown ++ basic_os=mingw32ce ++ ;; ++ monitor) ++ basic_machine=m68k-rom68k ++ basic_os=coff ++ ;; ++ morphos) ++ basic_machine=powerpc-unknown ++ basic_os=morphos ++ ;; ++ moxiebox) ++ basic_machine=moxie-unknown ++ basic_os=moxiebox ++ ;; ++ msdos) ++ basic_machine=i386-pc ++ basic_os=msdos ++ ;; ++ msys) ++ basic_machine=i686-pc ++ basic_os=msys ++ ;; ++ mvs) ++ basic_machine=i370-ibm ++ basic_os=mvs ++ ;; ++ nacl) ++ basic_machine=le32-unknown ++ basic_os=nacl ++ ;; ++ ncr3000) ++ basic_machine=i486-ncr ++ basic_os=sysv4 ++ ;; ++ netbsd386) ++ basic_machine=i386-pc ++ basic_os=netbsd ++ ;; ++ netwinder) ++ basic_machine=armv4l-rebel ++ basic_os=linux ++ ;; ++ news | news700 | news800 | news900) ++ basic_machine=m68k-sony ++ basic_os=newsos ++ ;; ++ news1000) ++ basic_machine=m68030-sony ++ basic_os=newsos ++ ;; ++ necv70) ++ basic_machine=v70-nec ++ basic_os=sysv ++ ;; ++ nh3000) ++ basic_machine=m68k-harris ++ basic_os=cxux ++ ;; ++ nh[45]000) ++ basic_machine=m88k-harris ++ basic_os=cxux ++ ;; ++ nindy960) ++ basic_machine=i960-intel ++ basic_os=nindy ++ ;; ++ mon960) ++ basic_machine=i960-intel ++ basic_os=mon960 ++ ;; ++ nonstopux) ++ basic_machine=mips-compaq ++ basic_os=nonstopux ++ ;; ++ os400) ++ basic_machine=powerpc-ibm ++ basic_os=os400 ++ ;; ++ OSE68000 | ose68000) ++ basic_machine=m68000-ericsson ++ basic_os=ose ++ ;; ++ os68k) ++ basic_machine=m68k-none ++ basic_os=os68k ++ ;; ++ paragon) ++ basic_machine=i860-intel ++ basic_os=osf ++ ;; ++ parisc) ++ basic_machine=hppa-unknown ++ basic_os=linux ++ ;; ++ psp) ++ basic_machine=mipsallegrexel-sony ++ basic_os=psp ++ ;; ++ pw32) ++ basic_machine=i586-unknown ++ basic_os=pw32 ++ ;; ++ rdos | rdos64) ++ basic_machine=x86_64-pc ++ basic_os=rdos ++ ;; ++ rdos32) ++ basic_machine=i386-pc ++ basic_os=rdos ++ ;; ++ rom68k) ++ basic_machine=m68k-rom68k ++ basic_os=coff ++ ;; ++ sa29200) ++ basic_machine=a29k-amd ++ basic_os=udi ++ ;; ++ sei) ++ basic_machine=mips-sei ++ basic_os=seiux ++ ;; ++ sequent) ++ basic_machine=i386-sequent ++ basic_os= ++ ;; ++ sps7) ++ basic_machine=m68k-bull ++ basic_os=sysv2 ++ ;; ++ st2000) ++ basic_machine=m68k-tandem ++ basic_os= ++ ;; ++ stratus) ++ basic_machine=i860-stratus ++ basic_os=sysv4 ++ ;; ++ sun2) ++ basic_machine=m68000-sun ++ basic_os= ++ ;; ++ sun2os3) ++ basic_machine=m68000-sun ++ basic_os=sunos3 ++ ;; ++ sun2os4) ++ basic_machine=m68000-sun ++ basic_os=sunos4 ++ ;; ++ sun3) ++ basic_machine=m68k-sun ++ basic_os= ++ ;; ++ sun3os3) ++ basic_machine=m68k-sun ++ basic_os=sunos3 ++ ;; ++ sun3os4) ++ basic_machine=m68k-sun ++ basic_os=sunos4 ++ ;; ++ sun4) ++ basic_machine=sparc-sun ++ basic_os= ++ ;; ++ sun4os3) ++ basic_machine=sparc-sun ++ basic_os=sunos3 ++ ;; ++ sun4os4) ++ basic_machine=sparc-sun ++ basic_os=sunos4 ++ ;; ++ sun4sol2) ++ basic_machine=sparc-sun ++ basic_os=solaris2 ++ ;; ++ sun386 | sun386i | roadrunner) ++ basic_machine=i386-sun ++ basic_os= ++ ;; ++ sv1) ++ basic_machine=sv1-cray ++ basic_os=unicos ++ ;; ++ symmetry) ++ basic_machine=i386-sequent ++ basic_os=dynix ++ ;; ++ t3e) ++ basic_machine=alphaev5-cray ++ basic_os=unicos ++ ;; ++ t90) ++ basic_machine=t90-cray ++ basic_os=unicos ++ ;; ++ toad1) ++ basic_machine=pdp10-xkl ++ basic_os=tops20 ++ ;; ++ tpf) ++ basic_machine=s390x-ibm ++ basic_os=tpf ++ ;; ++ udi29k) ++ basic_machine=a29k-amd ++ basic_os=udi ++ ;; ++ ultra3) ++ basic_machine=a29k-nyu ++ basic_os=sym1 ++ ;; ++ v810 | necv810) ++ basic_machine=v810-nec ++ basic_os=none ++ ;; ++ vaxv) ++ basic_machine=vax-dec ++ basic_os=sysv ++ ;; ++ vms) ++ basic_machine=vax-dec ++ basic_os=vms ++ ;; ++ vsta) ++ basic_machine=i386-pc ++ basic_os=vsta ++ ;; ++ vxworks960) ++ basic_machine=i960-wrs ++ basic_os=vxworks ++ ;; ++ vxworks68) ++ basic_machine=m68k-wrs ++ basic_os=vxworks ++ ;; ++ vxworks29k) ++ basic_machine=a29k-wrs ++ basic_os=vxworks ++ ;; ++ xbox) ++ basic_machine=i686-pc ++ basic_os=mingw32 ++ ;; ++ ymp) ++ basic_machine=ymp-cray ++ basic_os=unicos ++ ;; ++ *) ++ basic_machine=$1 ++ basic_os= ++ ;; ++ esac + ;; + esac + +-# Decode aliases for certain CPU-COMPANY combinations. ++# Decode 1-component or ad-hoc basic machines + case $basic_machine in +- # Recognize the basic CPU types without company name. +- # Some are omitted here because they have special meanings below. +- 1750a | 580 \ +- | a29k \ +- | aarch64 | aarch64_be \ +- | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ +- | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ +- | am33_2.0 \ +- | arc \ +- | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ +- | avr | avr32 \ +- | be32 | be64 \ +- | bfin \ +- | c4x | clipper \ +- | d10v | d30v | dlx | dsp16xx \ +- | epiphany \ +- | fido | fr30 | frv \ +- | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ +- | hexagon \ +- | i370 | i860 | i960 | ia64 \ +- | ip2k | iq2000 \ +- | le32 | le64 \ +- | lm32 \ +- | m32c | m32r | m32rle | m68000 | m68k | m88k \ +- | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ +- | mips | mipsbe | mipseb | mipsel | mipsle \ +- | mips16 \ +- | mips64 | mips64el \ +- | mips64octeon | mips64octeonel \ +- | mips64orion | mips64orionel \ +- | mips64r5900 | mips64r5900el \ +- | mips64vr | mips64vrel \ +- | mips64vr4100 | mips64vr4100el \ +- | mips64vr4300 | mips64vr4300el \ +- | mips64vr5000 | mips64vr5000el \ +- | mips64vr5900 | mips64vr5900el \ +- | mipsisa32 | mipsisa32el \ +- | mipsisa32r2 | mipsisa32r2el \ +- | mipsisa64 | mipsisa64el \ +- | mipsisa64r2 | mipsisa64r2el \ +- | mipsisa64sb1 | mipsisa64sb1el \ +- | mipsisa64sr71k | mipsisa64sr71kel \ +- | mipsr5900 | mipsr5900el \ +- | mipstx39 | mipstx39el \ +- | mn10200 | mn10300 \ +- | moxie \ +- | mt \ +- | msp430 \ +- | nds32 | nds32le | nds32be \ +- | nios | nios2 | nios2eb | nios2el \ +- | ns16k | ns32k \ +- | open8 \ +- | or1k | or32 \ +- | pdp10 | pdp11 | pj | pjl \ +- | powerpc | powerpc64 | powerpc64le | powerpcle \ +- | pyramid \ +- | rl78 | rx \ +- | score \ +- | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ +- | sh64 | sh64le \ +- | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ +- | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ +- | spu \ +- | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ +- | ubicom32 \ +- | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ +- | we32k \ +- | x86 | xc16x | xstormy16 | xtensa \ +- | z8k | z80) +- basic_machine=$basic_machine-unknown +- ;; +- c54x) +- basic_machine=tic54x-unknown +- ;; +- c55x) +- basic_machine=tic55x-unknown +- ;; +- c6x) +- basic_machine=tic6x-unknown +- ;; +- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) +- basic_machine=$basic_machine-unknown +- os=-none +- ;; +- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) +- ;; +- ms1) +- basic_machine=mt-unknown ++ # Here we handle the default manufacturer of certain CPU types. It is in ++ # some cases the only manufacturer, in others, it is the most popular. ++ w89k) ++ cpu=hppa1.1 ++ vendor=winbond + ;; +- +- strongarm | thumb | xscale) +- basic_machine=arm-unknown ++ op50n) ++ cpu=hppa1.1 ++ vendor=oki + ;; +- xgate) +- basic_machine=$basic_machine-unknown +- os=-none ++ op60c) ++ cpu=hppa1.1 ++ vendor=oki + ;; +- xscaleeb) +- basic_machine=armeb-unknown ++ ibm*) ++ cpu=i370 ++ vendor=ibm + ;; +- +- xscaleel) +- basic_machine=armel-unknown ++ orion105) ++ cpu=clipper ++ vendor=highlevel + ;; +- +- # We use `pc' rather than `unknown' +- # because (1) that's what they normally are, and +- # (2) the word "unknown" tends to confuse beginning users. +- i*86 | x86_64) +- basic_machine=$basic_machine-pc +- ;; +- # Object if more than one company name word. +- *-*-*) +- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 +- exit 1 ++ mac | mpw | mac-mpw) ++ cpu=m68k ++ vendor=apple + ;; +- # Recognize the basic CPU types with company name. +- 580-* \ +- | a29k-* \ +- | aarch64-* | aarch64_be-* \ +- | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ +- | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ +- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ +- | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ +- | avr-* | avr32-* \ +- | be32-* | be64-* \ +- | bfin-* | bs2000-* \ +- | c[123]* | c30-* | [cjt]90-* | c4x-* \ +- | clipper-* | craynv-* | cydra-* \ +- | d10v-* | d30v-* | dlx-* \ +- | elxsi-* \ +- | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ +- | h8300-* | h8500-* \ +- | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ +- | hexagon-* \ +- | i*86-* | i860-* | i960-* | ia64-* \ +- | ip2k-* | iq2000-* \ +- | le32-* | le64-* \ +- | lm32-* \ +- | m32c-* | m32r-* | m32rle-* \ +- | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ +- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ +- | microblaze-* | microblazeel-* \ +- | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ +- | mips16-* \ +- | mips64-* | mips64el-* \ +- | mips64octeon-* | mips64octeonel-* \ +- | mips64orion-* | mips64orionel-* \ +- | mips64r5900-* | mips64r5900el-* \ +- | mips64vr-* | mips64vrel-* \ +- | mips64vr4100-* | mips64vr4100el-* \ +- | mips64vr4300-* | mips64vr4300el-* \ +- | mips64vr5000-* | mips64vr5000el-* \ +- | mips64vr5900-* | mips64vr5900el-* \ +- | mipsisa32-* | mipsisa32el-* \ +- | mipsisa32r2-* | mipsisa32r2el-* \ +- | mipsisa64-* | mipsisa64el-* \ +- | mipsisa64r2-* | mipsisa64r2el-* \ +- | mipsisa64sb1-* | mipsisa64sb1el-* \ +- | mipsisa64sr71k-* | mipsisa64sr71kel-* \ +- | mipsr5900-* | mipsr5900el-* \ +- | mipstx39-* | mipstx39el-* \ +- | mmix-* \ +- | mt-* \ +- | msp430-* \ +- | nds32-* | nds32le-* | nds32be-* \ +- | nios-* | nios2-* | nios2eb-* | nios2el-* \ +- | none-* | np1-* | ns16k-* | ns32k-* \ +- | open8-* \ +- | orion-* \ +- | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ +- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ +- | pyramid-* \ +- | rl78-* | romp-* | rs6000-* | rx-* \ +- | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ +- | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ +- | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ +- | sparclite-* \ +- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ +- | tahoe-* \ +- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ +- | tile*-* \ +- | tron-* \ +- | ubicom32-* \ +- | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ +- | vax-* \ +- | we32k-* \ +- | x86-* | x86_64-* | xc16x-* | xps100-* \ +- | xstormy16-* | xtensa*-* \ +- | ymp-* \ +- | z8k-* | z80-*) +- ;; +- # Recognize the basic CPU types without company name, with glob match. +- xtensa*) +- basic_machine=$basic_machine-unknown ++ pmac | pmac-mpw) ++ cpu=powerpc ++ vendor=apple + ;; ++ + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. +- 386bsd) +- basic_machine=i386-unknown +- os=-bsd +- ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) +- basic_machine=m68000-att ++ cpu=m68000 ++ vendor=att + ;; + 3b*) +- basic_machine=we32k-att +- ;; +- a29khif) +- basic_machine=a29k-amd +- os=-udi +- ;; +- abacus) +- basic_machine=abacus-unknown +- ;; +- adobe68k) +- basic_machine=m68010-adobe +- os=-scout +- ;; +- alliant | fx80) +- basic_machine=fx80-alliant +- ;; +- altos | altos3068) +- basic_machine=m68k-altos +- ;; +- am29k) +- basic_machine=a29k-none +- os=-bsd +- ;; +- amd64) +- basic_machine=x86_64-pc +- ;; +- amd64-*) +- basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- amdahl) +- basic_machine=580-amdahl +- os=-sysv +- ;; +- amiga | amiga-*) +- basic_machine=m68k-unknown +- ;; +- amigaos | amigados) +- basic_machine=m68k-unknown +- os=-amigaos +- ;; +- amigaunix | amix) +- basic_machine=m68k-unknown +- os=-sysv4 +- ;; +- apollo68) +- basic_machine=m68k-apollo +- os=-sysv +- ;; +- apollo68bsd) +- basic_machine=m68k-apollo +- os=-bsd +- ;; +- aros) +- basic_machine=i386-pc +- os=-aros +- ;; +- aux) +- basic_machine=m68k-apple +- os=-aux +- ;; +- balance) +- basic_machine=ns32k-sequent +- os=-dynix +- ;; +- blackfin) +- basic_machine=bfin-unknown +- os=-linux +- ;; +- blackfin-*) +- basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` +- os=-linux ++ cpu=we32k ++ vendor=att + ;; + bluegene*) +- basic_machine=powerpc-ibm +- os=-cnk +- ;; +- c54x-*) +- basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- c55x-*) +- basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- c6x-*) +- basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- c90) +- basic_machine=c90-cray +- os=-unicos +- ;; +- cegcc) +- basic_machine=arm-unknown +- os=-cegcc +- ;; +- convex-c1) +- basic_machine=c1-convex +- os=-bsd +- ;; +- convex-c2) +- basic_machine=c2-convex +- os=-bsd +- ;; +- convex-c32) +- basic_machine=c32-convex +- os=-bsd +- ;; +- convex-c34) +- basic_machine=c34-convex +- os=-bsd +- ;; +- convex-c38) +- basic_machine=c38-convex +- os=-bsd +- ;; +- cray | j90) +- basic_machine=j90-cray +- os=-unicos +- ;; +- craynv) +- basic_machine=craynv-cray +- os=-unicosmp +- ;; +- cr16 | cr16-*) +- basic_machine=cr16-unknown +- os=-elf +- ;; +- crds | unos) +- basic_machine=m68k-crds +- ;; +- crisv32 | crisv32-* | etraxfs*) +- basic_machine=crisv32-axis +- ;; +- cris | cris-* | etrax*) +- basic_machine=cris-axis +- ;; +- crx) +- basic_machine=crx-unknown +- os=-elf +- ;; +- da30 | da30-*) +- basic_machine=m68k-da30 +- ;; +- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) +- basic_machine=mips-dec ++ cpu=powerpc ++ vendor=ibm ++ basic_os=cnk + ;; + decsystem10* | dec10*) +- basic_machine=pdp10-dec +- os=-tops10 ++ cpu=pdp10 ++ vendor=dec ++ basic_os=tops10 + ;; + decsystem20* | dec20*) +- basic_machine=pdp10-dec +- os=-tops20 ++ cpu=pdp10 ++ vendor=dec ++ basic_os=tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) +- basic_machine=m68k-motorola +- ;; +- delta88) +- basic_machine=m88k-motorola +- os=-sysv3 ++ cpu=m68k ++ vendor=motorola + ;; +- dicos) +- basic_machine=i686-pc +- os=-dicos +- ;; +- djgpp) +- basic_machine=i586-pc +- os=-msdosdjgpp +- ;; +- dpx20 | dpx20-*) +- basic_machine=rs6000-bull +- os=-bosx +- ;; +- dpx2* | dpx2*-bull) +- basic_machine=m68k-bull +- os=-sysv3 +- ;; +- ebmon29k) +- basic_machine=a29k-amd +- os=-ebmon +- ;; +- elxsi) +- basic_machine=elxsi-elxsi +- os=-bsd ++ dpx2*) ++ cpu=m68k ++ vendor=bull ++ basic_os=sysv3 + ;; + encore | umax | mmax) +- basic_machine=ns32k-encore ++ cpu=ns32k ++ vendor=encore + ;; +- es1800 | OSE68k | ose68k | ose | OSE) +- basic_machine=m68k-ericsson +- os=-ose ++ elxsi) ++ cpu=elxsi ++ vendor=elxsi ++ basic_os=${basic_os:-bsd} + ;; + fx2800) +- basic_machine=i860-alliant ++ cpu=i860 ++ vendor=alliant + ;; + genix) +- basic_machine=ns32k-ns +- ;; +- gmicro) +- basic_machine=tron-gmicro +- os=-sysv +- ;; +- go32) +- basic_machine=i386-pc +- os=-go32 ++ cpu=ns32k ++ vendor=ns + ;; + h3050r* | hiux*) +- basic_machine=hppa1.1-hitachi +- os=-hiuxwe2 +- ;; +- h8300hms) +- basic_machine=h8300-hitachi +- os=-hms +- ;; +- h8300xray) +- basic_machine=h8300-hitachi +- os=-xray +- ;; +- h8500hms) +- basic_machine=h8500-hitachi +- os=-hms +- ;; +- harris) +- basic_machine=m88k-harris +- os=-sysv3 +- ;; +- hp300-*) +- basic_machine=m68k-hp +- ;; +- hp300bsd) +- basic_machine=m68k-hp +- os=-bsd +- ;; +- hp300hpux) +- basic_machine=m68k-hp +- os=-hpux ++ cpu=hppa1.1 ++ vendor=hitachi ++ basic_os=hiuxwe2 + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) +- basic_machine=hppa1.0-hp ++ cpu=hppa1.0 ++ vendor=hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) +- basic_machine=m68000-hp ++ cpu=m68000 ++ vendor=hp + ;; + hp9k3[2-9][0-9]) +- basic_machine=m68k-hp ++ cpu=m68k ++ vendor=hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) +- basic_machine=hppa1.0-hp ++ cpu=hppa1.0 ++ vendor=hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) +- basic_machine=hppa1.1-hp ++ cpu=hppa1.1 ++ vendor=hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp +- basic_machine=hppa1.1-hp ++ cpu=hppa1.1 ++ vendor=hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp +- basic_machine=hppa1.1-hp ++ cpu=hppa1.1 ++ vendor=hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) +- basic_machine=hppa1.1-hp ++ cpu=hppa1.1 ++ vendor=hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) +- basic_machine=hppa1.0-hp +- ;; +- hppa-next) +- os=-nextstep3 +- ;; +- hppaosf) +- basic_machine=hppa1.1-hp +- os=-osf +- ;; +- hppro) +- basic_machine=hppa1.1-hp +- os=-proelf +- ;; +- i370-ibm* | ibm*) +- basic_machine=i370-ibm ++ cpu=hppa1.0 ++ vendor=hp + ;; + i*86v32) +- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` +- os=-sysv32 ++ cpu=`echo "$1" | sed -e 's/86.*/86/'` ++ vendor=pc ++ basic_os=sysv32 + ;; + i*86v4*) +- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` +- os=-sysv4 ++ cpu=`echo "$1" | sed -e 's/86.*/86/'` ++ vendor=pc ++ basic_os=sysv4 + ;; + i*86v) +- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` +- os=-sysv ++ cpu=`echo "$1" | sed -e 's/86.*/86/'` ++ vendor=pc ++ basic_os=sysv + ;; + i*86sol2) +- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` +- os=-solaris2 +- ;; +- i386mach) +- basic_machine=i386-mach +- os=-mach ++ cpu=`echo "$1" | sed -e 's/86.*/86/'` ++ vendor=pc ++ basic_os=solaris2 + ;; +- i386-vsta | vsta) +- basic_machine=i386-unknown +- os=-vsta ++ j90 | j90-cray) ++ cpu=j90 ++ vendor=cray ++ basic_os=${basic_os:-unicos} + ;; + iris | iris4d) +- basic_machine=mips-sgi +- case $os in +- -irix*) ++ cpu=mips ++ vendor=sgi ++ case $basic_os in ++ irix*) + ;; + *) +- os=-irix4 ++ basic_os=irix4 + ;; + esac + ;; +- isi68 | isi) +- basic_machine=m68k-isi +- os=-sysv +- ;; +- m68knommu) +- basic_machine=m68k-unknown +- os=-linux +- ;; +- m68knommu-*) +- basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` +- os=-linux +- ;; +- m88k-omron*) +- basic_machine=m88k-omron +- ;; +- magnum | m3230) +- basic_machine=mips-mips +- os=-sysv +- ;; +- merlin) +- basic_machine=ns32k-utek +- os=-sysv +- ;; +- microblaze*) +- basic_machine=microblaze-xilinx +- ;; +- mingw64) +- basic_machine=x86_64-pc +- os=-mingw64 +- ;; +- mingw32) +- basic_machine=i386-pc +- os=-mingw32 +- ;; +- mingw32ce) +- basic_machine=arm-unknown +- os=-mingw32ce +- ;; + miniframe) +- basic_machine=m68000-convergent +- ;; +- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) +- basic_machine=m68k-atari +- os=-mint +- ;; +- mips3*-*) +- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` +- ;; +- mips3*) +- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown +- ;; +- monitor) +- basic_machine=m68k-rom68k +- os=-coff +- ;; +- morphos) +- basic_machine=powerpc-unknown +- os=-morphos +- ;; +- msdos) +- basic_machine=i386-pc +- os=-msdos +- ;; +- ms1-*) +- basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` +- ;; +- msys) +- basic_machine=i386-pc +- os=-msys +- ;; +- mvs) +- basic_machine=i370-ibm +- os=-mvs +- ;; +- nacl) +- basic_machine=le32-unknown +- os=-nacl +- ;; +- ncr3000) +- basic_machine=i486-ncr +- os=-sysv4 ++ cpu=m68000 ++ vendor=convergent + ;; +- netbsd386) +- basic_machine=i386-unknown +- os=-netbsd +- ;; +- netwinder) +- basic_machine=armv4l-rebel +- os=-linux +- ;; +- news | news700 | news800 | news900) +- basic_machine=m68k-sony +- os=-newsos +- ;; +- news1000) +- basic_machine=m68030-sony +- os=-newsos ++ *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) ++ cpu=m68k ++ vendor=atari ++ basic_os=mint + ;; + news-3600 | risc-news) +- basic_machine=mips-sony +- os=-newsos +- ;; +- necv70) +- basic_machine=v70-nec +- os=-sysv +- ;; +- next | m*-next ) +- basic_machine=m68k-next +- case $os in +- -nextstep* ) ++ cpu=mips ++ vendor=sony ++ basic_os=newsos ++ ;; ++ next | m*-next) ++ cpu=m68k ++ vendor=next ++ case $basic_os in ++ openstep*) ++ ;; ++ nextstep*) + ;; +- -ns2*) +- os=-nextstep2 ++ ns2*) ++ basic_os=nextstep2 + ;; + *) +- os=-nextstep3 ++ basic_os=nextstep3 + ;; + esac + ;; +- nh3000) +- basic_machine=m68k-harris +- os=-cxux +- ;; +- nh[45]000) +- basic_machine=m88k-harris +- os=-cxux +- ;; +- nindy960) +- basic_machine=i960-intel +- os=-nindy +- ;; +- mon960) +- basic_machine=i960-intel +- os=-mon960 +- ;; +- nonstopux) +- basic_machine=mips-compaq +- os=-nonstopux +- ;; + np1) +- basic_machine=np1-gould +- ;; +- neo-tandem) +- basic_machine=neo-tandem +- ;; +- nse-tandem) +- basic_machine=nse-tandem +- ;; +- nsr-tandem) +- basic_machine=nsr-tandem ++ cpu=np1 ++ vendor=gould + ;; + op50n-* | op60c-*) +- basic_machine=hppa1.1-oki +- os=-proelf +- ;; +- openrisc | openrisc-*) +- basic_machine=or32-unknown +- ;; +- os400) +- basic_machine=powerpc-ibm +- os=-os400 +- ;; +- OSE68000 | ose68000) +- basic_machine=m68000-ericsson +- os=-ose +- ;; +- os68k) +- basic_machine=m68k-none +- os=-os68k ++ cpu=hppa1.1 ++ vendor=oki ++ basic_os=proelf + ;; + pa-hitachi) +- basic_machine=hppa1.1-hitachi +- os=-hiuxwe2 +- ;; +- paragon) +- basic_machine=i860-intel +- os=-osf +- ;; +- parisc) +- basic_machine=hppa-unknown +- os=-linux +- ;; +- parisc-*) +- basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` +- os=-linux ++ cpu=hppa1.1 ++ vendor=hitachi ++ basic_os=hiuxwe2 + ;; + pbd) +- basic_machine=sparc-tti ++ cpu=sparc ++ vendor=tti + ;; + pbb) +- basic_machine=m68k-tti +- ;; +- pc532 | pc532-*) +- basic_machine=ns32k-pc532 +- ;; +- pc98) +- basic_machine=i386-pc +- ;; +- pc98-*) +- basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- pentium | p5 | k5 | k6 | nexgen | viac3) +- basic_machine=i586-pc ++ cpu=m68k ++ vendor=tti + ;; +- pentiumpro | p6 | 6x86 | athlon | athlon_*) +- basic_machine=i686-pc +- ;; +- pentiumii | pentium2 | pentiumiii | pentium3) +- basic_machine=i686-pc +- ;; +- pentium4) +- basic_machine=i786-pc +- ;; +- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) +- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- pentiumpro-* | p6-* | 6x86-* | athlon-*) +- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) +- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- pentium4-*) +- basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ++ pc532) ++ cpu=ns32k ++ vendor=pc532 + ;; + pn) +- basic_machine=pn-gould +- ;; +- power) basic_machine=power-ibm +- ;; +- ppc | ppcbe) basic_machine=powerpc-unknown +- ;; +- ppc-* | ppcbe-*) +- basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- ppcle | powerpclittle | ppc-le | powerpc-little) +- basic_machine=powerpcle-unknown +- ;; +- ppcle-* | powerpclittle-*) +- basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- ppc64) basic_machine=powerpc64-unknown +- ;; +- ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- ppc64le | powerpc64little | ppc64-le | powerpc64-little) +- basic_machine=powerpc64le-unknown ++ cpu=pn ++ vendor=gould + ;; +- ppc64le-* | powerpc64little-*) +- basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ++ power) ++ cpu=power ++ vendor=ibm + ;; + ps2) +- basic_machine=i386-ibm +- ;; +- pw32) +- basic_machine=i586-unknown +- os=-pw32 +- ;; +- rdos | rdos64) +- basic_machine=x86_64-pc +- os=-rdos +- ;; +- rdos32) +- basic_machine=i386-pc +- os=-rdos +- ;; +- rom68k) +- basic_machine=m68k-rom68k +- os=-coff ++ cpu=i386 ++ vendor=ibm + ;; + rm[46]00) +- basic_machine=mips-siemens ++ cpu=mips ++ vendor=siemens + ;; + rtpc | rtpc-*) +- basic_machine=romp-ibm +- ;; +- s390 | s390-*) +- basic_machine=s390-ibm +- ;; +- s390x | s390x-*) +- basic_machine=s390x-ibm +- ;; +- sa29200) +- basic_machine=a29k-amd +- os=-udi ++ cpu=romp ++ vendor=ibm + ;; +- sb1) +- basic_machine=mipsisa64sb1-unknown ++ sde) ++ cpu=mipsisa32 ++ vendor=sde ++ basic_os=${basic_os:-elf} + ;; +- sb1el) +- basic_machine=mipsisa64sb1el-unknown ++ simso-wrs) ++ cpu=sparclite ++ vendor=wrs ++ basic_os=vxworks + ;; +- sde) +- basic_machine=mipsisa32-sde +- os=-elf ++ tower | tower-32) ++ cpu=m68k ++ vendor=ncr + ;; +- sei) +- basic_machine=mips-sei +- os=-seiux ++ vpp*|vx|vx-*) ++ cpu=f301 ++ vendor=fujitsu + ;; +- sequent) +- basic_machine=i386-sequent ++ w65) ++ cpu=w65 ++ vendor=wdc + ;; +- sh) +- basic_machine=sh-hitachi +- os=-hms ++ w89k-*) ++ cpu=hppa1.1 ++ vendor=winbond ++ basic_os=proelf + ;; +- sh5el) +- basic_machine=sh5le-unknown ++ none) ++ cpu=none ++ vendor=none + ;; +- sh64) +- basic_machine=sh64-unknown ++ leon|leon[3-9]) ++ cpu=sparc ++ vendor=$basic_machine + ;; +- sparclite-wrs | simso-wrs) +- basic_machine=sparclite-wrs +- os=-vxworks ++ leon-*|leon[3-9]-*) ++ cpu=sparc ++ vendor=`echo "$basic_machine" | sed 's/-.*//'` + ;; +- sps7) +- basic_machine=m68k-bull +- os=-sysv2 ++ ++ *-*) ++ # shellcheck disable=SC2162 ++ saved_IFS=$IFS ++ IFS="-" read cpu vendor <&2 +- exit 1 ++ # Recognize the canonical CPU types that are allowed with any ++ # company name. ++ case $cpu in ++ 1750a | 580 \ ++ | a29k \ ++ | aarch64 | aarch64_be | aarch64c | arm64ec \ ++ | abacus \ ++ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ ++ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ ++ | alphapca5[67] | alpha64pca5[67] \ ++ | am33_2.0 \ ++ | amdgcn \ ++ | arc | arceb | arc32 | arc64 \ ++ | arm | arm[lb]e | arme[lb] | armv* \ ++ | avr | avr32 \ ++ | asmjs \ ++ | ba \ ++ | be32 | be64 \ ++ | bfin | bpf | bs2000 \ ++ | c[123]* | c30 | [cjt]90 | c4x \ ++ | c8051 | clipper | craynv | csky | cydra \ ++ | d10v | d30v | dlx | dsp16xx \ ++ | e2k | elxsi | epiphany \ ++ | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ ++ | javascript \ ++ | h8300 | h8500 \ ++ | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ ++ | hexagon \ ++ | i370 | i*86 | i860 | i960 | ia16 | ia64 \ ++ | ip2k | iq2000 \ ++ | k1om \ ++ | kvx \ ++ | le32 | le64 \ ++ | lm32 \ ++ | loongarch32 | loongarch64 \ ++ | m32c | m32r | m32rle \ ++ | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ ++ | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ ++ | m88110 | m88k | maxq | mb | mcore | mep | metag \ ++ | microblaze | microblazeel \ ++ | mips* \ ++ | mmix \ ++ | mn10200 | mn10300 \ ++ | moxie \ ++ | mt \ ++ | msp430 \ ++ | nanomips* \ ++ | nds32 | nds32le | nds32be \ ++ | nfp \ ++ | nios | nios2 | nios2eb | nios2el \ ++ | none | np1 | ns16k | ns32k | nvptx \ ++ | open8 \ ++ | or1k* \ ++ | or32 \ ++ | orion \ ++ | picochip \ ++ | pdp10 | pdp11 | pj | pjl | pn | power \ ++ | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ ++ | pru \ ++ | pyramid \ ++ | riscv | riscv32 | riscv32be | riscv64 | riscv64be \ ++ | rl78 | romp | rs6000 | rx \ ++ | s390 | s390x \ ++ | score \ ++ | sh | shl \ ++ | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ ++ | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ ++ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ ++ | sparclite \ ++ | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ ++ | spu \ ++ | tahoe \ ++ | thumbv7* \ ++ | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ ++ | tron \ ++ | ubicom32 \ ++ | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ ++ | vax \ ++ | vc4 \ ++ | visium \ ++ | w65 \ ++ | wasm32 | wasm64 \ ++ | we32k \ ++ | x86 | x86_64 | xc16x | xgate | xps100 \ ++ | xstormy16 | xtensa* \ ++ | ymp \ ++ | z8k | z80) ++ ;; ++ ++ *) ++ echo "Invalid configuration '$1': machine '$cpu-$vendor' not recognized" 1>&2 ++ exit 1 ++ ;; ++ esac + ;; + esac + + # Here we canonicalize certain aliases for manufacturers. +-case $basic_machine in +- *-digital*) +- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ++case $vendor in ++ digital*) ++ vendor=dec + ;; +- *-commodore*) +- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ++ commodore*) ++ vendor=cbm + ;; + *) + ;; +@@ -1321,200 +1287,226 @@ esac + + # Decode manufacturer-specific aliases for certain operating systems. + +-if [ x"$os" != x"" ] ++if test x"$basic_os" != x + then ++ ++# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just ++# set os. ++obj= ++case $basic_os in ++ gnu/linux*) ++ kernel=linux ++ os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` ++ ;; ++ os2-emx) ++ kernel=os2 ++ os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` ++ ;; ++ nto-qnx*) ++ kernel=nto ++ os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` ++ ;; ++ *-*) ++ # shellcheck disable=SC2162 ++ saved_IFS=$IFS ++ IFS="-" read kernel os <&2 +- exit 1 ++ # No normalization, but not necessarily accepted, that comes below. + ;; + esac ++ + else + + # Here we handle the default operating systems that come with various machines. +@@ -1527,261 +1519,452 @@ else + # will signal an error saying that MANUFACTURER isn't an operating + # system, and we'll never get to this point. + +-case $basic_machine in ++kernel= ++obj= ++case $cpu-$vendor in + score-*) +- os=-elf ++ os= ++ obj=elf + ;; + spu-*) +- os=-elf ++ os= ++ obj=elf + ;; + *-acorn) +- os=-riscix1.2 ++ os=riscix1.2 + ;; + arm*-rebel) +- os=-linux ++ kernel=linux ++ os=gnu + ;; + arm*-semi) +- os=-aout ++ os= ++ obj=aout + ;; + c4x-* | tic4x-*) +- os=-coff ++ os= ++ obj=coff ++ ;; ++ c8051-*) ++ os= ++ obj=elf ++ ;; ++ clipper-intergraph) ++ os=clix + ;; + hexagon-*) +- os=-elf ++ os= ++ obj=elf + ;; + tic54x-*) +- os=-coff ++ os= ++ obj=coff + ;; + tic55x-*) +- os=-coff ++ os= ++ obj=coff + ;; + tic6x-*) +- os=-coff ++ os= ++ obj=coff + ;; + # This must come before the *-dec entry. + pdp10-*) +- os=-tops20 ++ os=tops20 + ;; + pdp11-*) +- os=-none ++ os=none + ;; + *-dec | vax-*) +- os=-ultrix4.2 ++ os=ultrix4.2 + ;; + m68*-apollo) +- os=-domain ++ os=domain + ;; + i386-sun) +- os=-sunos4.0.2 ++ os=sunos4.0.2 + ;; + m68000-sun) +- os=-sunos3 ++ os=sunos3 + ;; + m68*-cisco) +- os=-aout ++ os= ++ obj=aout + ;; + mep-*) +- os=-elf ++ os= ++ obj=elf + ;; + mips*-cisco) +- os=-elf +- ;; +- mips*-*) +- os=-elf ++ os= ++ obj=elf + ;; +- or1k-*) +- os=-elf ++ mips*-*|nanomips*-*) ++ os= ++ obj=elf + ;; + or32-*) +- os=-coff ++ os= ++ obj=coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. +- os=-sysv3 ++ os=sysv3 + ;; + sparc-* | *-sun) +- os=-sunos4.1.1 ++ os=sunos4.1.1 + ;; +- *-be) +- os=-beos ++ pru-*) ++ os= ++ obj=elf + ;; +- *-haiku) +- os=-haiku ++ *-be) ++ os=beos + ;; + *-ibm) +- os=-aix ++ os=aix + ;; + *-knuth) +- os=-mmixware ++ os=mmixware + ;; + *-wec) +- os=-proelf ++ os=proelf + ;; + *-winbond) +- os=-proelf ++ os=proelf + ;; + *-oki) +- os=-proelf ++ os=proelf + ;; + *-hp) +- os=-hpux ++ os=hpux + ;; + *-hitachi) +- os=-hiux ++ os=hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) +- os=-sysv ++ os=sysv + ;; + *-cbm) +- os=-amigaos ++ os=amigaos + ;; + *-dg) +- os=-dgux ++ os=dgux + ;; + *-dolphin) +- os=-sysv3 ++ os=sysv3 + ;; + m68k-ccur) +- os=-rtu ++ os=rtu + ;; + m88k-omron*) +- os=-luna ++ os=luna + ;; +- *-next ) +- os=-nextstep ++ *-next) ++ os=nextstep + ;; + *-sequent) +- os=-ptx ++ os=ptx + ;; + *-crds) +- os=-unos ++ os=unos + ;; + *-ns) +- os=-genix ++ os=genix + ;; + i370-*) +- os=-mvs +- ;; +- *-next) +- os=-nextstep3 ++ os=mvs + ;; + *-gould) +- os=-sysv ++ os=sysv + ;; + *-highlevel) +- os=-bsd ++ os=bsd + ;; + *-encore) +- os=-bsd ++ os=bsd + ;; + *-sgi) +- os=-irix ++ os=irix + ;; + *-siemens) +- os=-sysv4 ++ os=sysv4 + ;; + *-masscomp) +- os=-rtu ++ os=rtu + ;; + f30[01]-fujitsu | f700-fujitsu) +- os=-uxpv ++ os=uxpv + ;; + *-rom68k) +- os=-coff ++ os= ++ obj=coff + ;; + *-*bug) +- os=-coff ++ os= ++ obj=coff + ;; + *-apple) +- os=-macos ++ os=macos + ;; + *-atari*) +- os=-mint ++ os=mint ++ ;; ++ *-wrs) ++ os=vxworks + ;; + *) +- os=-none ++ os=none + ;; + esac ++ + fi + ++# Now, validate our (potentially fixed-up) individual pieces (OS, OBJ). ++ ++case $os in ++ # Sometimes we do "kernel-libc", so those need to count as OSes. ++ llvm* | musl* | newlib* | relibc* | uclibc*) ++ ;; ++ # Likewise for "kernel-abi" ++ eabi* | gnueabi*) ++ ;; ++ # VxWorks passes extra cpu info in the 4th filed. ++ simlinux | simwindows | spe) ++ ;; ++ # See `case $cpu-$os` validation below ++ ghcjs) ++ ;; ++ # Now accept the basic system types. ++ # The portable systems comes first. ++ # Each alternative MUST end in a * to match a version number. ++ gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ ++ | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \ ++ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ ++ | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ ++ | hiux* | abug | nacl* | netware* | windows* \ ++ | os9* | macos* | osx* | ios* | tvos* | watchos* \ ++ | mpw* | magic* | mmixware* | mon960* | lnews* \ ++ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ ++ | aos* | aros* | cloudabi* | sortix* | twizzler* \ ++ | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ ++ | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ ++ | mirbsd* | netbsd* | dicos* | openedition* | ose* \ ++ | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \ ++ | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \ ++ | bosx* | nextstep* | cxux* | oabi* \ ++ | ptx* | ecoff* | winnt* | domain* | vsta* \ ++ | udi* | lites* | ieee* | go32* | aux* | hcos* \ ++ | chorusrdb* | cegcc* | glidix* | serenity* \ ++ | cygwin* | msys* | moss* | proelf* | rtems* \ ++ | midipix* | mingw32* | mingw64* | mint* \ ++ | uxpv* | beos* | mpeix* | udk* | moxiebox* \ ++ | interix* | uwin* | mks* | rhapsody* | darwin* \ ++ | openstep* | oskit* | conix* | pw32* | nonstopux* \ ++ | storm-chaos* | tops10* | tenex* | tops20* | its* \ ++ | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ ++ | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ ++ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ ++ | skyos* | haiku* | rdos* | toppers* | drops* | es* \ ++ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ ++ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ ++ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \ ++ | fiwix* | mlibc* | cos* | mbr* | ironclad* ) ++ ;; ++ # This one is extra strict with allowed versions ++ sco3.2v2 | sco3.2v[4-9]* | sco5v6*) ++ # Don't forget version if it is 3.2v4 or newer. ++ ;; ++ # This refers to builds using the UEFI calling convention ++ # (which depends on the architecture) and PE file format. ++ # Note that this is both a different calling convention and ++ # different file format than that of GNU-EFI ++ # (x86_64-w64-mingw32). ++ uefi) ++ ;; ++ none) ++ ;; ++ kernel* | msvc* ) ++ # Restricted further below ++ ;; ++ '') ++ if test x"$obj" = x ++ then ++ echo "Invalid configuration '$1': Blank OS only allowed with explicit machine code file format" 1>&2 ++ fi ++ ;; ++ *) ++ echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2 ++ exit 1 ++ ;; ++esac ++ ++case $obj in ++ aout* | coff* | elf* | pe*) ++ ;; ++ '') ++ # empty is fine ++ ;; ++ *) ++ echo "Invalid configuration '$1': Machine code format '$obj' not recognized" 1>&2 ++ exit 1 ++ ;; ++esac ++ ++# Here we handle the constraint that a (synthetic) cpu and os are ++# valid only in combination with each other and nowhere else. ++case $cpu-$os in ++ # The "javascript-unknown-ghcjs" triple is used by GHC; we ++ # accept it here in order to tolerate that, but reject any ++ # variations. ++ javascript-ghcjs) ++ ;; ++ javascript-* | *-ghcjs) ++ echo "Invalid configuration '$1': cpu '$cpu' is not valid with os '$os$obj'" 1>&2 ++ exit 1 ++ ;; ++esac ++ ++# As a final step for OS-related things, validate the OS-kernel combination ++# (given a valid OS), if there is a kernel. ++case $kernel-$os-$obj in ++ linux-gnu*- | linux-android*- | linux-dietlibc*- | linux-llvm*- \ ++ | linux-mlibc*- | linux-musl*- | linux-newlib*- \ ++ | linux-relibc*- | linux-uclibc*- ) ++ ;; ++ uclinux-uclibc*- ) ++ ;; ++ managarm-mlibc*- | managarm-kernel*- ) ++ ;; ++ windows*-msvc*-) ++ ;; ++ -dietlibc*- | -llvm*- | -mlibc*- | -musl*- | -newlib*- | -relibc*- \ ++ | -uclibc*- ) ++ # These are just libc implementations, not actual OSes, and thus ++ # require a kernel. ++ echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2 ++ exit 1 ++ ;; ++ -kernel*- ) ++ echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2 ++ exit 1 ++ ;; ++ *-kernel*- ) ++ echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2 ++ exit 1 ++ ;; ++ *-msvc*- ) ++ echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2 ++ exit 1 ++ ;; ++ kfreebsd*-gnu*- | kopensolaris*-gnu*-) ++ ;; ++ vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-) ++ ;; ++ nto-qnx*-) ++ ;; ++ os2-emx-) ++ ;; ++ *-eabi*- | *-gnueabi*-) ++ ;; ++ none--*) ++ # None (no kernel, i.e. freestanding / bare metal), ++ # can be paired with an machine code file format ++ ;; ++ -*-) ++ # Blank kernel with real OS is always fine. ++ ;; ++ --*) ++ # Blank kernel and OS with real machine code file format is always fine. ++ ;; ++ *-*-*) ++ echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2 ++ exit 1 ++ ;; ++esac ++ + # Here we handle the case where we know the os, and the CPU type, but not the + # manufacturer. We pick the logical manufacturer. +-vendor=unknown +-case $basic_machine in +- *-unknown) +- case $os in +- -riscix*) ++case $vendor in ++ unknown) ++ case $cpu-$os in ++ *-riscix*) + vendor=acorn + ;; +- -sunos*) ++ *-sunos*) + vendor=sun + ;; +- -cnk*|-aix*) ++ *-cnk* | *-aix*) + vendor=ibm + ;; +- -beos*) ++ *-beos*) + vendor=be + ;; +- -hpux*) ++ *-hpux*) + vendor=hp + ;; +- -mpeix*) ++ *-mpeix*) + vendor=hp + ;; +- -hiux*) ++ *-hiux*) + vendor=hitachi + ;; +- -unos*) ++ *-unos*) + vendor=crds + ;; +- -dgux*) ++ *-dgux*) + vendor=dg + ;; +- -luna*) ++ *-luna*) + vendor=omron + ;; +- -genix*) ++ *-genix*) + vendor=ns + ;; +- -mvs* | -opened*) ++ *-clix*) ++ vendor=intergraph ++ ;; ++ *-mvs* | *-opened*) ++ vendor=ibm ++ ;; ++ *-os400*) + vendor=ibm + ;; +- -os400*) ++ s390-* | s390x-*) + vendor=ibm + ;; +- -ptx*) ++ *-ptx*) + vendor=sequent + ;; +- -tpf*) ++ *-tpf*) + vendor=ibm + ;; +- -vxsim* | -vxworks* | -windiss*) ++ *-vxsim* | *-vxworks* | *-windiss*) + vendor=wrs + ;; +- -aux*) ++ *-aux*) + vendor=apple + ;; +- -hms*) ++ *-hms*) + vendor=hitachi + ;; +- -mpw* | -macos*) ++ *-mpw* | *-macos*) + vendor=apple + ;; +- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) ++ *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) + vendor=atari + ;; +- -vos*) ++ *-vos*) + vendor=stratus + ;; + esac +- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; + esac + +-echo $basic_machine$os ++echo "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}" + exit + + # Local variables: +-# eval: (add-hook 'write-file-hooks 'time-stamp) ++# eval: (add-hook 'before-save-hook 'time-stamp) + # time-stamp-start: "timestamp='" + # time-stamp-format: "%:y-%02m-%02d" + # time-stamp-end: "'" From 813ed588d3a51ff73ccc81c31728597c858c6c89 Mon Sep 17 00:00:00 2001 From: BertBog Date: Wed, 31 Jul 2024 06:16:11 +0200 Subject: [PATCH 0671/1589] Added missing bedtools dependency, increased build number (#49680) --- recipes/pacu_snp/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/pacu_snp/meta.yaml b/recipes/pacu_snp/meta.yaml index a25469c48a3fa..54a5b5864e9ef 100644 --- a/recipes/pacu_snp/meta.yaml +++ b/recipes/pacu_snp/meta.yaml @@ -10,7 +10,7 @@ source: build: noarch: python - number: 0 + number: 1 entry_points: - PACU=pacu.run_pacu:main - PACU_map=pacu.map_to_ref:main @@ -29,6 +29,7 @@ requirements: run: - bcftools >=1.17 - beautifulsoup4 >=4.12.2 + - bedtools >=2.31.0 - biopython >=1.84 - bowtie2 >=2.5.1 - figtree >=1.4.4 From d54e9dc548f2a7e2d10c2e892495a9d45be83d26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Gudy=C5=9B?= Date: Wed, 31 Jul 2024 06:19:02 +0200 Subject: [PATCH 0672/1589] Add clusty (#49554) * Add clusty * fix * fix * fix * LEIDEN added * osx fix * fix * Include Leiden only in Linux package * fix * Attempt to make Leiden work under macOS. * Leiden disabled under macOS. --- recipes/clusty/build.sh | 10 ++++++++++ recipes/clusty/meta.yaml | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 recipes/clusty/build.sh create mode 100644 recipes/clusty/meta.yaml diff --git a/recipes/clusty/build.sh b/recipes/clusty/build.sh new file mode 100644 index 0000000000000..abc2ec7057f35 --- /dev/null +++ b/recipes/clusty/build.sh @@ -0,0 +1,10 @@ +#!/bin/bash +#ln -s ${CC} gcc +#ln -s ${CXX} g++ +#export PATH=$PATH:$(pwd) +uname_S=`uname -s 2>/dev/null || echo not` + +if [ "$uname_S" == "Darwin" ]; then make -j${CPU_COUNT}; else make -j${CPU_COUNT} LEIDEN=true; fi + +install -d "${PREFIX}/bin" +install clusty "${PREFIX}/bin" diff --git a/recipes/clusty/meta.yaml b/recipes/clusty/meta.yaml new file mode 100644 index 0000000000000..851f217e4673d --- /dev/null +++ b/recipes/clusty/meta.yaml @@ -0,0 +1,39 @@ +{% set version = "1.0.0" %} + +package: + name: clusty + version: {{ version }} + +build: + number: 0 + run_exports: + - {{ pin_subpackage('clusty', max_pin='x.x.x') }} + +source: + git_url: https://github.com/refresh-bio/clusty.git + git_rev: v{{ version }} + +requirements: + build: + - make + - {{ compiler('c') }} + - {{ compiler('cxx') }} + - cmake + - flex + - bison + +about: + home: https://github.com/refresh-bio/clusty + summary: "Clusty is a tool for large-scale data clustering." + license: GPL-3 + license_family: GPL + license_file: LICENSE + +test: + commands: + - clusty > /dev/null + +extra: + skip-lints: + - uses_vcs_url + - missing_hash \ No newline at end of file From d13e1c578be41077d24f0872d958c08ecd284272 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 31 Jul 2024 00:34:21 -0400 Subject: [PATCH 0673/1589] Update codoff to 1.1.8 (#49689) --- recipes/codoff/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/codoff/meta.yaml b/recipes/codoff/meta.yaml index 36f3fab25d8a4..ac722f131ce11 100644 --- a/recipes/codoff/meta.yaml +++ b/recipes/codoff/meta.yaml @@ -1,5 +1,5 @@ {% set name = "codoff" %} -{% set version = "1.1.5" %} +{% set version = "1.1.8" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Kalan-Lab/codoff/archive/refs/tags/v{{ version }}.tar.gz - sha256: eb048616dabcae38a2476d7325e689e6499b2d1651c33a91502a1b82131a6bb3 + sha256: 9f32c3f0a72df67a9951add4bcd0ecbe60fd48471321ba952bdb0c2867343cfd build: number: 0 From 0ccf0ed857278ed3c6f4e6dfda9ffc1ccf5e066f Mon Sep 17 00:00:00 2001 From: Marios Nikolaidis Date: Wed, 31 Jul 2024 08:08:42 +0300 Subject: [PATCH 0674/1589] Update meta.yaml: Added missing dependencies (#49593) * Update meta.yaml Added requests and pyhmmer as dependencies * clean up recipe --------- Co-authored-by: mencian --- recipes/dbcan/meta.yaml | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/recipes/dbcan/meta.yaml b/recipes/dbcan/meta.yaml index 4c247128ceb5f..c6e354daf60a3 100644 --- a/recipes/dbcan/meta.yaml +++ b/recipes/dbcan/meta.yaml @@ -6,16 +6,13 @@ package: version: {{ version }} source: - # the sha256 sum is generated by doing - # wget -0- [URL] | shasum -a 256 url: https://github.com/linnabrown/run_dbcan/releases/download/{{ version }}/dbcan-{{ version }}.tar.gz sha256: 12dc906b56c3b1bfea667aa617d46d3f292857fc360730e4fe1d35f5b5557215 - build: - number: 0 - script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv" + number: 1 noarch: python + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" entry_points: - run_dbcan = dbcan.cli.run_dbcan:cli_main - cgc_standard2json = dbcan.cli.cgc_process_json:main @@ -48,6 +45,8 @@ requirements: - matplotlib-base - session-info - blast + - requests + - pyhmmer test: imports: @@ -56,13 +55,13 @@ test: - run_dbcan --help about: - home: https://bcb.unl.edu/dbCAN2/ - dev_url: https://github.com/linnabrown/run_dbcan + home: "https://bcb.unl.edu/dbCAN2" + dev_url: "https://github.com/linnabrown/run_dbcan" license: GPL-3.0-or-later license_family: GPL3 license_file: LICENSE - summary: "Standalone version of dbCAN annotation tool for automated CAZyme annotation" - doc_url: https://dbcan.readthedocs.io/en/latest/ + summary: "Standalone version of dbCAN annotation tool for automated CAZyme annotation." + doc_url: "https://dbcan.readthedocs.io/en/latest" extra: recipe-maintainers: @@ -71,4 +70,4 @@ extra: - doi:10.1093/nar/gkx894 - doi:10.1093/nar/gky418 - doi:10.1093/nar/gkad328 - - biotools:dbcan2 \ No newline at end of file + - biotools:dbcan2 From 0a32d57b6f3fa0dc34a3964c60d99976e5b17226 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 31 Jul 2024 00:09:14 -0500 Subject: [PATCH 0675/1589] Update ucsc-blat to 468 (#49691) --- recipes/ucsc-blat/meta.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/recipes/ucsc-blat/meta.yaml b/recipes/ucsc-blat/meta.yaml index ec96d9d1c1285..089b3c02933a3 100644 --- a/recipes/ucsc-blat/meta.yaml +++ b/recipes/ucsc-blat/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-blat" %} {% set program = "blat" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "468" %} +{% set sha256 = "f57b49be7e4eeb0719ac9414ca8878f93916fc3eb8dd408c8f7e076a999d1ca8" %} package: name: {{ package }} @@ -14,7 +14,7 @@ source: - include.patch build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('ucsc-blat', max_pin=None) }} @@ -42,9 +42,9 @@ test: about: home: "https://hgdownload.cse.ucsc.edu/admin/exe/" license: "Varies; see https://genome.ucsc.edu/license" - summary: "Standalone BLAT v. 37x1 fast sequence search command line tool" + summary: "Standalone BLAT v. 39x1 fast sequence search command line tool" dev_url: "https://github.com/ucscGenomeBrowser/kent" - doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/v{{ version }}_base/README" extra: additional-platforms: From ecc0e875de2469d8629cc3ea07e1887a70c1f829 Mon Sep 17 00:00:00 2001 From: Mateus Bernabe Fiamenghi <35854519+Matt-BF@users.noreply.github.com> Date: Tue, 30 Jul 2024 22:50:34 -0700 Subject: [PATCH 0676/1589] Add bigslice (#49059) * add bigslice * Add noarch and run_exports * fix python version (removes noarch) * readd noarch, remove skip * add psutil due to pyhmmer * fix psutil * Fix tests * add pip to test requirements * clean up recipe --------- Co-authored-by: mencian --- recipes/bigslice/meta.yaml | 51 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 recipes/bigslice/meta.yaml diff --git a/recipes/bigslice/meta.yaml b/recipes/bigslice/meta.yaml new file mode 100644 index 0000000000000..c47fadef55aad --- /dev/null +++ b/recipes/bigslice/meta.yaml @@ -0,0 +1,51 @@ +{% set name = "bigslice" %} +{% set version = "2.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/bigslice-{{ version }}.tar.gz + sha256: cb4cafca05883827b00ff864e035d0cb34c2c7905a7722c6a255c2efb9797417 + +build: + number: 0 + noarch: python + run_exports: + - {{ pin_subpackage('bigslice', max_pin="x") }} + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + +requirements: + host: + - python >=3.7 + - pip + run: + - python >=3.7 + - pyhmmer + - biopython >=1.73,<=1.83 + - numpy + - pandas + - psutil <=5.8 + - scikit-learn + - tqdm + - pyarrow + +test: + commands: + - "bigslice --version ." + +about: + home: "https://github.com/satriaphd/bigslice" + summary: "A highly scalable, user-interactive tool for the large scale analysis of Biosynthetic Gene Clusters data." + license: "AGPL-3.0-or-later" + license_family: AGPL + license_file: LICENSE.txt + dev_url: "https://github.com/satriaphd/bigslice" + doc_url: "https://github.com/medema-group/bigslice/blob/v{{ version }}/README.md" + +extra: + recipe-maintainers: + - Matt-BF + identifiers: + - doi:10.1093/gigascience/giaa154 From 7671ae8d83f607b7af2433561d85f181a9195606 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 31 Jul 2024 01:03:07 -0500 Subject: [PATCH 0677/1589] pyrodigal: add arm64 build (#49693) --- recipes/pyrodigal/meta.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/recipes/pyrodigal/meta.yaml b/recipes/pyrodigal/meta.yaml index f314da8744a62..00f628aa03c5c 100644 --- a/recipes/pyrodigal/meta.yaml +++ b/recipes/pyrodigal/meta.yaml @@ -10,8 +10,7 @@ source: sha256: 20af59a6d968c88910b99d5f647bb7dd22d49e440ead95fe715cdd2c49f36e9f build: - number: 0 - skip: True # [py < 36] + number: 1 script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir --use-pep517 -vvv" entry_points: - pyrodigal = pyrodigal.cli:main @@ -37,13 +36,13 @@ test: - python -m unittest -vv {{ name }}.tests about: - home: https://github.com/althonos/pyrodigal - license: GPL-3.0-or-later + home: "https://github.com/althonos/pyrodigal" + license: "GPL-3.0-or-later" license_family: GPL3 license_file: COPYING - summary: Python bindings to Prodigal, an ORF finder for microbial sequences. - doc_url: https://pyrodigal.readthedocs.org/ - dev_url: https://github.com/althonos/pyrodigal + summary: "Python bindings to Prodigal, an ORF finder for microbial sequences." + doc_url: "https://pyrodigal.readthedocs.org" + dev_url: "https://github.com/althonos/pyrodigal" extra: recipe-maintainers: @@ -52,3 +51,4 @@ extra: - doi:10.21105/joss.04296 # JOSS paper additional-platforms: - linux-aarch64 + - osx-arm64 From 9e9ea559809607f151cf2f9aaef7cbda118f4e24 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 31 Jul 2024 01:09:45 -0500 Subject: [PATCH 0678/1589] pyhmmer: add arm64 build (#49692) --- recipes/pyhmmer/meta.yaml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/recipes/pyhmmer/meta.yaml b/recipes/pyhmmer/meta.yaml index 9d1d0fd182385..3966832072c6c 100644 --- a/recipes/pyhmmer/meta.yaml +++ b/recipes/pyhmmer/meta.yaml @@ -10,7 +10,7 @@ source: sha256: eb50bdfdf67a3b1fecfe877d7ca6d9bade9a9f3dea3ad60c959453bbb235573d build: - number: 0 + number: 1 skip: True # [py2k or win] script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir --use-pep517 -vvv" run_exports: @@ -23,7 +23,6 @@ requirements: - python - pip - cython - - psutil >=5.8 run: - python - psutil >=5.8 @@ -37,18 +36,20 @@ test: - python -m unittest -vv {{ name }}.tests about: - home: https://github.com/althonos/pyhmmer + home: "https://github.com/althonos/pyhmmer" license: MIT license_family: MIT license_file: COPYING - summary: Cython bindings and Python interface to HMMER3. - doc_url: https://pyhmmer.readthedocs.io - dev_url: https://github.com/althonos/pyhmmer + summary: "Cython bindings and Python interface to HMMER3." + doc_url: "https://pyhmmer.readthedocs.io" + dev_url: "https://github.com/althonos/pyhmmer" extra: recipe-maintainers: - althonos identifiers: - - DOI:10.1093/bioinformatics/btad214 + - doi:10.1093/bioinformatics/btad214 + - biotools:pyhmmer additional-platforms: - linux-aarch64 + - osx-arm64 From e803c2fed78f00719c1807e26bf9086e1d2c45a2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 31 Jul 2024 02:16:43 -0400 Subject: [PATCH 0679/1589] Update fibertools-rs to 0.5.3 (#49690) * Update fibertools-rs to 0.5.2 * Update meta.yaml * Update fibertools-rs to 0.5.3 * Update meta.yaml --------- Co-authored-by: Mitchell Robert Vollger --- recipes/fibertools-rs/meta.yaml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/recipes/fibertools-rs/meta.yaml b/recipes/fibertools-rs/meta.yaml index 160e43029b101..5166a33b6115a 100644 --- a/recipes/fibertools-rs/meta.yaml +++ b/recipes/fibertools-rs/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "0.4.2" %} +{% set version = "0.5.3" %} {% set name = "fibertools-rs" %} -{% set build_number = "1" %} +{% set build_number = "0" %} package: name: {{ name }} @@ -9,7 +9,7 @@ package: source: url: https://github.com/fiberseq/fibertools-rs/archive/v{{ version }}.tar.gz - sha256: 8d73b8160d93731435afbccad3f8f8ea33c291383783303e2f88a98815cc3425 + sha256: 62a38ab16a199d9d03a79f7ccf3543d10127635baa7898edc004e636383fadad build: @@ -57,4 +57,7 @@ about: extra: recipe-maintainers: - mrvollger + additional-platforms: + - osx-arm64 + # - linux-aarch64 # Dependency issue, see https://github.com/bioconda/bioconda-recipes/pull/48868 From 059a9170ec8b61fccc49962466e0f1890b7a8b3d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 31 Jul 2024 03:56:43 -0400 Subject: [PATCH 0680/1589] Update gempipe to 1.33.3 (#49694) --- recipes/gempipe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gempipe/meta.yaml b/recipes/gempipe/meta.yaml index c164ed6cea692..1c4e6675d3d80 100755 --- a/recipes/gempipe/meta.yaml +++ b/recipes/gempipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.33.2" %} +{% set version = "1.33.3" %} package: name: "gempipe" @@ -7,7 +7,7 @@ package: source: url: https://github.com/lazzarigioele/gempipe/archive/v{{ version }}.tar.gz - sha256: 7486a7de14e975be052072abd1817a2a4bf54b0f585b5b05898f4d315d1bb7b4 + sha256: 0d6770d064cc645147cd9c9f226696c106afbd5b9cf1c5989f1c85f31f8cb44e build: From 18257d7d7ce5c4a56452d5bcd8c6ba25c21c3547 Mon Sep 17 00:00:00 2001 From: Eric Kutschera Date: Wed, 31 Jul 2024 04:40:15 -0400 Subject: [PATCH 0681/1589] Update espresso to v1.5.0 (#49648) * Update espresso to v1.5.0 * Skip OSX build The build script assumes .so file names and gets this error: cp: ./parasail/build/libparasail.so: No such file or directory It looks like libparasail.dylib is created instead. Skip OSX until the script is updated --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/espresso/build.sh | 7 +++++++ recipes/espresso/meta.yaml | 13 +++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/recipes/espresso/build.sh b/recipes/espresso/build.sh index 9a4cfdcc48686..ab1ff68b92884 100644 --- a/recipes/espresso/build.sh +++ b/recipes/espresso/build.sh @@ -1,8 +1,15 @@ #!/bin/bash +./src/Parasail/build + mkdir -p $PREFIX/bin cp src/ESPRESSO_C.pl $PREFIX/bin/ cp src/ESPRESSO_Q.pl $PREFIX/bin/ cp src/ESPRESSO_Q_Thread.pm $PREFIX/bin/ cp src/ESPRESSO_S.pl $PREFIX/bin/ cp src/ESPRESSO_Version.pm $PREFIX/bin/ +cp src/Parasail.pm $PREFIX/bin/ +cp src/Parasail.so $PREFIX/bin/ + +mkdir -p $PREFIX/lib +cp src/libparasail.so $PREFIX/lib/ diff --git a/recipes/espresso/meta.yaml b/recipes/espresso/meta.yaml index 6c4740057bb4e..d2666bf00cc5b 100644 --- a/recipes/espresso/meta.yaml +++ b/recipes/espresso/meta.yaml @@ -9,12 +9,20 @@ source: url: https://github.com/Xinglab/espresso/releases/download/v{{ version }}/espresso_v_{{ version|replace(".", "_") }}.tar.gz build: - noarch: generic - number: 0 + number: 1 + skip: True # [osx] run_exports: - {{ pin_subpackage('espresso', max_pin="x") }} requirements: + build: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + - cmake + - make + host: + - perl >=5.8 + - zlib run: - blast >=2.8.1 - hmmer >=3.3.1 @@ -27,6 +35,7 @@ test: - perl $PREFIX/bin/ESPRESSO_S.pl --help > /dev/null - perl $PREFIX/bin/ESPRESSO_C.pl --help > /dev/null - perl $PREFIX/bin/ESPRESSO_Q.pl --help > /dev/null + - perl -I$PREFIX/bin -e 'use Parasail;' > /dev/null about: home: https://github.com/Xinglab/espresso From 3caf2f7cecf81ed47e84533f72d81b98aa7d556c Mon Sep 17 00:00:00 2001 From: Sebastian Gregoricchio <52447016+sebastian-gregoricchio@users.noreply.github.com> Date: Wed, 31 Jul 2024 10:41:33 +0200 Subject: [PATCH 0682/1589] Add recipe for snakeatac_env (#49615) * Add recipe for snakeatac_env * Update meta.yaml * Rename meta.yaml to meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml Remove channel predefinition * Update meta.yaml Update license and license_file --- recipes/snakeatac_env/meta.yaml | 93 +++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 recipes/snakeatac_env/meta.yaml diff --git a/recipes/snakeatac_env/meta.yaml b/recipes/snakeatac_env/meta.yaml new file mode 100644 index 0000000000000..9727e6f066356 --- /dev/null +++ b/recipes/snakeatac_env/meta.yaml @@ -0,0 +1,93 @@ +{% set version = "0.1.1" %} +{% set sha256 = "7d9c753aceadd0cdd2132f510375e191f1bd9de92e29e43d710433ca770e1f03" %} + +package: + name: snakeatac_env + version: {{ version }} + +source: + - url: https://github.com/sebastian-gregoricchio/snakeATAC/archive/refs/tags/v{{ version }}.tar.gz + sha256: {{ sha256 }} +build: + noarch: python + number: 0 + run_exports: + - {{ pin_subpackage('snakeatac_env', max_pin="x.x") }} + +requirements: + host: + - python + - pip + - numpy >=1.22 + - mpich + + run: + - bcftools + - bedtools + - bioconductor-copywriter + - bioconductor-shortread + - bioinfokit + - bwa-mem2 + - bzip2 + - cutadapt + - deeptools >=3.5.2 + - fastqc + - gatk4 + - macs3 + - matplotlib-base + - multiqc >=1.23 + - pdfcombine + - pip + - py-bgzip + - py2bit + - pybigwig + - pyfaidx + - pysam + - python + - r-colorspace + - r-data.table + - r-dplyr + - r-generics + - r-ggplot2 + - r-ggtext + - r-plyr + - r-rcolorbrewer + - r-reshape2 + - r-scales + - r-snow + - r-stringr + - r-viridis + - samtools + - scipy + - seaborn + - snakemake >=7.24.0 + - snpsift + - subread + - tobias + - ucsc-bedgraphtobigwig + - biopython + - docutils + - fastcluster + - logomaker + - numpydoc + - pandas + - pybedtools + + +test: + commands: + - deeptools --help + - samtools --help + + +about: + home: https://github.com/sebastian-gregoricchio/snakeATAC + license_file: LICENSE + license: GPL-3.0-or-later + summary: snakemake based ATACseq pipeline + doc_url: https://github.com/sebastian-gregoricchio/snakeATAC/wiki + + +extra: + recipe-maintainers: + - sebastian-gregoricchio From d2778e7cd67e744209a94cf452fad180122a32ff Mon Sep 17 00:00:00 2001 From: Thom Griffioen Date: Wed, 31 Jul 2024 11:13:26 +0200 Subject: [PATCH 0683/1589] Fix perl-json dependencies (#49695) * Unpin perl-json-xs * Set `license` to an SDPX-compatible format --- recipes/perl-json/meta.yaml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/recipes/perl-json/meta.yaml b/recipes/perl-json/meta.yaml index e6a372b79ac77..ac61b30a6bcdd 100644 --- a/recipes/perl-json/meta.yaml +++ b/recipes/perl-json/meta.yaml @@ -1,5 +1,6 @@ {% set name = "perl-json" %} {% set version = "4.10" %} +{% set sha256 = "df8b5143d9a7de99c47b55f1a170bd1f69f711935c186a6dc0ab56dd05758e35" %} package: name: {{ name }} @@ -7,21 +8,23 @@ package: source: url: https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI/JSON-{{ version }}.tar.gz - sha256: df8b5143d9a7de99c47b55f1a170bd1f69f711935c186a6dc0ab56dd05758e35 + sha256: {{ sha256 }} build: noarch: generic - number: 0 + number: 1 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} requirements: build: - make host: - perl - - perl-json-xs <3 + - perl-json-xs run: - perl - - perl-json-xs <3 + - perl-json-xs test: # Perl 'use' tests @@ -29,6 +32,7 @@ test: - JSON about: - home: http://metacpan.org/pod/JSON - license: perl_5 + home: https://metacpan.org/pod/JSON + dev_url: https://github.com/makamaka/JSON + license: GPL-1.0-or-later OR Artistic-1.0-Perl summary: 'JSON (JavaScript Object Notation) encoder/decoder' From 985dd95e41d4f716a6c70958b55a4a9540f3073f Mon Sep 17 00:00:00 2001 From: Mariia Zelenskaia <102167492+mariia-zelenskaia@users.noreply.github.com> Date: Wed, 31 Jul 2024 12:58:12 +0200 Subject: [PATCH 0684/1589] TransAnnot: add linux-aarch64 support (#49406) * Update TransAnnot version after a new release * transannot: Pass arch specific build options Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Grigorov --- recipes/transannot/build.sh | 13 ++++++++++++- recipes/transannot/meta.yaml | 3 ++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/recipes/transannot/build.sh b/recipes/transannot/build.sh index c01a11fd88807..ae429591a47eb 100644 --- a/recipes/transannot/build.sh +++ b/recipes/transannot/build.sh @@ -1,7 +1,18 @@ #!/bin/bash -e +set -xe + +case $(uname -m) in + aarch64) + ARCH_OPTS="-DHAVE_ARM8=1" + ;; + *) + ARCH_OPTS="-DHAVE_SSE4_1=1" + ;; +esac + mkdir build cd build -cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DHAVE_TESTS=0 -DHAVE_MPI=0 -DHAVE_SSE4_1=1 -DVERSION_OVERRIDE="${PKG_VERSION}" .. +cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DHAVE_TESTS=0 -DHAVE_MPI=0 "${ARCH_OPTS}" -DVERSION_OVERRIDE="${PKG_VERSION}" .. make -j${CPU_COUNT} ${VERBOSE_CM} make install diff --git a/recipes/transannot/meta.yaml b/recipes/transannot/meta.yaml index 12721ce0697f9..068bb67a93dbe 100644 --- a/recipes/transannot/meta.yaml +++ b/recipes/transannot/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version|replace("-", ".") }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('transannot', max_pin="x") }} @@ -51,4 +51,5 @@ extra: recipe-maintainers: - mariia-zelenskaia additional-platforms: + - linux-aarch64 - osx-arm64 From cf45a59d686200b0371a5737fe6d32f947b0ddfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20H=2E=20Franceschini-Santos?= Date: Wed, 31 Jul 2024 13:49:47 +0200 Subject: [PATCH 0685/1589] Update PARM to v0.0.6 (#49569) * Update meta.yaml * Update meta.yaml * update parm * Update meta.yaml * replace torch-cuda with cuda-toolkit * Update meta.yaml * Update meta.yaml * Remove channels from recipe * Update meta.yaml --------- Co-authored-by: vhfsantos --- recipes/parm/meta.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/recipes/parm/meta.yaml b/recipes/parm/meta.yaml index cc2b6ed42e026..43aa89fff9051 100644 --- a/recipes/parm/meta.yaml +++ b/recipes/parm/meta.yaml @@ -10,7 +10,7 @@ source: sha256: {{ sha256 }} build: noarch: python - number: 0 + number: 2 script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed --no-cache-dir -vvv" run_exports: - {{ pin_subpackage('parm', max_pin="x.x") }} @@ -19,9 +19,10 @@ requirements: host: - python - pip + - setuptools run: - - python >=3.10.8 + - python - pytorch - biopython - numpy >=1.26.0 @@ -37,7 +38,7 @@ requirements: test: commands: - - parm --help + - parm train --help about: home: https://github.com/vansteensellab/PARM From 0b49d7ab33999cd5378cc9855be5a7b374db8861 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 31 Jul 2024 08:32:12 -0400 Subject: [PATCH 0686/1589] Update perl-datetime-locale to 1.43 (#44098) * Update perl-datetime-locale to 1.40 * Update perl-datetime-locale to 1.41 * Update perl-datetime-locale to 1.42 * Update perl-datetime-locale to 1.43 * Add run_exports Signed-off-by: Martin Tzvetanov Grigorov * Fix the pin_subpackage value --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Grigorov --- recipes/perl-datetime-locale/meta.yaml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/recipes/perl-datetime-locale/meta.yaml b/recipes/perl-datetime-locale/meta.yaml index 081669f5ecf71..471c43e093dce 100644 --- a/recipes/perl-datetime-locale/meta.yaml +++ b/recipes/perl-datetime-locale/meta.yaml @@ -1,17 +1,20 @@ {% set name = "perl-datetime-locale" %} -{% set version = "1.39" %} -{% set sha256 = "10c145a6c7daf7118864e97482b4ae9f94f93b9414212eee8aa30b16a8135100" %} +{% set version = "1.43" %} +{% set sha256 = "6c859c17cf274749dfc2c6aaf6bf4b492b605fabdddd23712efbbd5caf601de1" %} package: name: {{ name }} version: {{ version }} source: - url: https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/DateTime-Locale-1.39.tar.gz + url: https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/DateTime-Locale-1.43.tar.gz sha256: {{ sha256 }} build: number: 0 + run_exports: + - {{ pin_subpackage("perl-datetime-locale", max_pin="x") }} + requirements: build: - make From 1f5cef23510755bf7a1b39cc86d72238607677dc Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 31 Jul 2024 16:21:39 +0300 Subject: [PATCH 0687/1589] oarfish: add aarch64/arm64 builds (#49700) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/oarfish/build.sh | 5 ++--- recipes/oarfish/meta.yaml | 7 ++++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/recipes/oarfish/build.sh b/recipes/oarfish/build.sh index 3c3929c054e07..580d388d2cf18 100644 --- a/recipes/oarfish/build.sh +++ b/recipes/oarfish/build.sh @@ -1,7 +1,6 @@ #!/bin/bash -euo -# Add workaround for SSH-based Git connections from Rust/cargo. See https://github.com/rust-lang/cargo/issues/2078 for details. -# We set CARGO_HOME because we don't pass on HOME to conda-build, thus rendering the default "${HOME}/.cargo" defunct. -export CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_HOME="$(pwd)/.cargo" + +set -xe # build statically linked binary with Rust RUST_BACKTRACE=1 cargo install --verbose --root $PREFIX --path . diff --git a/recipes/oarfish/meta.yaml b/recipes/oarfish/meta.yaml index 566a540757180..3cc1e8a8739a8 100644 --- a/recipes/oarfish/meta.yaml +++ b/recipes/oarfish/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("oarfish", max_pin="x.x") }} @@ -28,3 +28,8 @@ about: license: BSD-3-Clause license_file: LICENSE summary: oarfish is a tool for fast, accurate and versatile transcript quantification from long-read RNA-seq data + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 \ No newline at end of file From 1f92cb479ba837db990c8f16db4eeac074361946 Mon Sep 17 00:00:00 2001 From: Matty Allan <31744230+matthewfallan@users.noreply.github.com> Date: Wed, 31 Jul 2024 12:34:22 -0400 Subject: [PATCH 0688/1589] Update seismic-rna to v0.20.0 (#49686) * Initial commit of recipe for seismic-rna * Add run_exports to meta.yaml build section * Fix the problems causing linting errors * Apply suggestions from code review Co-authored-by: Martin Grigorov * Update meta.yaml Add Conda package brotli-python (equivalent of PyPI package brotli) to runtime dependencies * Update recipe generator; rebuild recipe files * seismic-rna v0.20.0 * bump build numer --------- Co-authored-by: Martin Grigorov Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/seismic-rna/meta.yaml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/recipes/seismic-rna/meta.yaml b/recipes/seismic-rna/meta.yaml index 2a1e20c694de2..408e717537b7e 100644 --- a/recipes/seismic-rna/meta.yaml +++ b/recipes/seismic-rna/meta.yaml @@ -3,6 +3,7 @@ package: name: seismic-rna version: 0.20.0 + about: home: https://github.com/rouskinlab/seismic-rna license: GPL-3.0-only @@ -10,17 +11,21 @@ about: license_file: LICENSE license_url: https://www.gnu.org/licenses/gpl-3.0.html summary: SEISMIC-RNA software by the Rouskin Lab + source: url: https://github.com/rouskinlab/seismic-rna/archive/refs/tags/v0.20.0.tar.gz sha256: 91ea9c7d23a85a0d9d035e41ee0782f892ea7e4f0df5af96317b7302a58c8de4 + build: noarch: python - number: 0 + number: 1 run_exports: - {{ pin_subpackage("seismic-rna", max_pin="x.x") }} + requirements: build: - python >=3.10 + - pip - hatch >=1.12 run: - python >=3.10 @@ -28,18 +33,18 @@ requirements: - fastqc >=0.12.1 - rnastructure >=6.3 - samtools >=1.17 + - matplotlib-base >=3.6 - brotli-python >=1.0 - - brotli >=1.0 - click >=8.1 - cutadapt >=4.4 - fastqsplitter >=1.2 - - matplotlib-base >=3.6 - numpy >=1.23,<1.27 - numba >=0.59 - pandas >=1.5 - plotly >=5.11 - pyyaml >=6.0 - scipy >=1.9 + test: imports: - seismicrna From 654ca4a0b04bb1c2d3beb62260cac1024ec1538b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 31 Jul 2024 13:34:33 -0400 Subject: [PATCH 0689/1589] Update gempipe to 1.33.4 (#49706) --- recipes/gempipe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gempipe/meta.yaml b/recipes/gempipe/meta.yaml index 1c4e6675d3d80..80aaf1acc33f4 100755 --- a/recipes/gempipe/meta.yaml +++ b/recipes/gempipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.33.3" %} +{% set version = "1.33.4" %} package: name: "gempipe" @@ -7,7 +7,7 @@ package: source: url: https://github.com/lazzarigioele/gempipe/archive/v{{ version }}.tar.gz - sha256: 0d6770d064cc645147cd9c9f226696c106afbd5b9cf1c5989f1c85f31f8cb44e + sha256: ff9a7f7ab4faa2ac1ed0e77d3e9051034f6f5a98dea347bebdb978727ccb73ea build: From 579a8f05703f7a680fc2ae94109adfdba6576869 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Gr=C3=BCning?= Date: Wed, 31 Jul 2024 20:06:40 +0200 Subject: [PATCH 0690/1589] genomescope2 update (#49709) * genomescope2 update * add run_exports --- recipes/genomescope2/meta.yaml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/recipes/genomescope2/meta.yaml b/recipes/genomescope2/meta.yaml index 7bf3abda345cc..b69e08b29ae95 100644 --- a/recipes/genomescope2/meta.yaml +++ b/recipes/genomescope2/meta.yaml @@ -1,13 +1,18 @@ +{% set version = "2.0.1" %} + package: name: genomescope2 - version: "2.0" + version: {{ version }} source: - git_url: https://github.com/tbenavi1/genomescope2.0.git + url: https://github.com/tbenavi1/genomescope2.0/archive/refs/tags/v{{ version }}.tar.gz + sha256: 55a6dc4006ac3573d011558d5ee49a0f3c85593a5db944a548c0e6f4e5019f75 build: - number: 7 + number: 0 noarch: generic + run_exports: + - {{ pin_subpackage('genomescope2', max_pin="x.x") }} requirements: host: @@ -27,12 +32,9 @@ test: about: home: https://github.com/tbenavi1/genomescope2.0 - license: "Apache License, Version 2.0 (Apache-2.0)" + license: Apache-2.0 summary: "Reference-free profiling of polyploid genomes" extra: - skip-lints: - - uses_vcs_url - - missing_hash container: extended-base: True From 0c9f241470bc65482fbd9f93de961b84f4a9aaff Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 31 Jul 2024 14:07:08 -0400 Subject: [PATCH 0691/1589] Update jbrowse2 to 2.13.1 (#49711) --- recipes/jbrowse2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/jbrowse2/meta.yaml b/recipes/jbrowse2/meta.yaml index c2d22862f7b86..761afe067f7c8 100644 --- a/recipes/jbrowse2/meta.yaml +++ b/recipes/jbrowse2/meta.yaml @@ -1,12 +1,12 @@ # When updating, check the @jbrowse/cli version in build.sh too -{% set version = "2.13.0" %} +{% set version = "2.13.1" %} package: name: jbrowse2 version: {{ version }} source: - sha256: f543642573b53f40be9ca233641af1c9705614f85a7a1e901de989e86a76b1e7 + sha256: 6b2ccd796ae6c0e09e8e02fc4b7173826994b1db81bad5961fde588c6fc6964e url: https://github.com/GMOD/jbrowse-components/releases/download/v{{ version }}/jbrowse-web-v{{ version }}.zip build: From 958a5a88179a9f64765c5574ecc89b177e9ba39b Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 31 Jul 2024 21:07:32 +0300 Subject: [PATCH 0692/1589] pkiss: add linux-aarch64 support (#49701) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/pkiss/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/pkiss/meta.yaml b/recipes/pkiss/meta.yaml index 88ca3d4c41c4a..6e05c89596ce9 100644 --- a/recipes/pkiss/meta.yaml +++ b/recipes/pkiss/meta.yaml @@ -13,7 +13,7 @@ source: url: https://github.com/jlab/fold-grammars/archive/{{ version }}.tar.gz build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('pkiss', max_pin="x") }} @@ -41,6 +41,8 @@ about: summary: 'RNA secondary structure prediction including K-type and kissing hairpin- pseudoknots.' extra: + additional-platforms: + - linux-aarch64 identifiers: - doi:10.1007/978-3-642-15294-8_5 - doi:10.1093/bioinformatics/btu649 From 6c0040ba8fbac0308ca40e19cc4a6da0c2ebc988 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 31 Jul 2024 21:07:52 +0300 Subject: [PATCH 0693/1589] clusty: add aarch64/arm64 builds (#49696) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/clusty/meta.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/recipes/clusty/meta.yaml b/recipes/clusty/meta.yaml index 851f217e4673d..07c17e3c10851 100644 --- a/recipes/clusty/meta.yaml +++ b/recipes/clusty/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('clusty', max_pin='x.x.x') }} @@ -34,6 +34,9 @@ test: - clusty > /dev/null extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 skip-lints: - uses_vcs_url - missing_hash \ No newline at end of file From c046390d65a82731b05092f1f4c2334e8c09ed97 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 31 Jul 2024 21:08:15 +0300 Subject: [PATCH 0694/1589] rnashapes: add linux-aarch64 support (#49697) * rnashapes: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * Remove osx-arm64 because there is no bellmans-gapc for it --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/rnashapes/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/rnashapes/meta.yaml b/recipes/rnashapes/meta.yaml index 6d3ffafb2be5c..0ba59f74cfb57 100644 --- a/recipes/rnashapes/meta.yaml +++ b/recipes/rnashapes/meta.yaml @@ -14,7 +14,7 @@ source: url: https://github.com/jlab/fold-grammars/archive/{{ fold_grammars_version }}.tar.gz build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('rnashapes', max_pin="x") }} @@ -50,5 +50,7 @@ about: account of properties of the molecule's folding space." extra: + additional-platforms: + - linux-aarch64 identifiers: - doi:10.1093/bioinformatics/btu649 From 061d5ccc79731c7a6bfd240a48eb6357d60ffcb7 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 31 Jul 2024 21:08:34 +0300 Subject: [PATCH 0695/1589] reduce: add aarch64/arm64 builds (#49698) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/reduce/meta.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/recipes/reduce/meta.yaml b/recipes/reduce/meta.yaml index d9729ccdc437c..08865f2e26638 100644 --- a/recipes/reduce/meta.yaml +++ b/recipes/reduce/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 62e61cce221fff76b5834031302d91fe703a19945a42e16620d4fb860604daf4 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin="x") }} @@ -44,5 +44,8 @@ about: dev_url: https://github.com/rlabduke/reduce extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - eunos-1128 From 4aa3a094dd414f7dbcfd9dba7530149239042d5d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 31 Jul 2024 14:57:44 -0400 Subject: [PATCH 0696/1589] Update gw to 1.0.1 (#49710) --- recipes/gw/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gw/meta.yaml b/recipes/gw/meta.yaml index d3447048afbb5..919a9ab11e2f2 100644 --- a/recipes/gw/meta.yaml +++ b/recipes/gw/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "1.0.0" %} -{% set sha256 = "80a595adfcc230afcaf170b86252f4451f61b98e670bcb4c443ea72be9070cf1" %} +{% set version = "1.0.1" %} +{% set sha256 = "aacd161bb7131d7874a75b2ed409ee22109be3f87dd062c5590c6d30d1503e68" %} package: From 1228686c08d33c75f49b8e9cb3e1bd964a4292ab Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 31 Jul 2024 16:26:58 -0400 Subject: [PATCH 0697/1589] Update sigprofilermatrixgenerator to 1.2.27 (#49714) --- recipes/sigprofilermatrixgenerator/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sigprofilermatrixgenerator/meta.yaml b/recipes/sigprofilermatrixgenerator/meta.yaml index e608211acf216..feea8811d72e4 100644 --- a/recipes/sigprofilermatrixgenerator/meta.yaml +++ b/recipes/sigprofilermatrixgenerator/meta.yaml @@ -1,5 +1,5 @@ {% set name = "SigProfilerMatrixGenerator" %} -{% set version = "1.2.26" %} +{% set version = "1.2.27" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/SigProfilerMatrixGenerator-{{ version }}.tar.gz - sha256: c405db79fbe5e42447e3ec2ae8b85519cc2ab8e94b23f66f50e8963345b2f797 + sha256: c25d3e4c3de14b7a758da8c5a54e53d591899938e71234b1ea44d66c4eec744b build: entry_points: From e77be95afa8330be6d2f96a3c67cd5042149b1c0 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 31 Jul 2024 21:25:53 -0400 Subject: [PATCH 0698/1589] Update sourmash to 4.8.11 (#49713) Co-authored-by: Luiz Irber --- recipes/sourmash/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sourmash/meta.yaml b/recipes/sourmash/meta.yaml index e756d099f72be..a18735e3ccd85 100644 --- a/recipes/sourmash/meta.yaml +++ b/recipes/sourmash/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "4.8.10" %} +{% set version = "4.8.11" %} package: name: sourmash @@ -6,7 +6,7 @@ package: source: url: https://pypi.io/packages/source/s/sourmash/sourmash-{{ version }}.tar.gz - sha256: e945120f932c976e84ca85c978e56db6b7782e33682ab126a1da9bfa0107b7c2 + sha256: 1a06a76df464b92685779aaaa6ed02a577bdd73a4ab32972e8134581034d34bf build: number: 0 From c255cb923fdd97efd7416b3c81cf29dded9c83e4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 31 Jul 2024 23:19:17 -0400 Subject: [PATCH 0699/1589] Update vamos to 2.1.4 (#49717) --- recipes/vamos/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/vamos/meta.yaml b/recipes/vamos/meta.yaml index c8358ec898074..ff0ba66ccc160 100644 --- a/recipes/vamos/meta.yaml +++ b/recipes/vamos/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.1.3" %} +{% set version = "2.1.4" %} {% set name = "vamos" %} package: @@ -7,13 +7,13 @@ package: source: url: https://github.com/ChaissonLab/vamos/archive/refs/tags/vamos-v{{ version }}.tar.gz - sha256: 7925787ae9cbe214b0eb94b494e393f7fc48c318a884ab106470d7034101b14f + sha256: a4eb6d535e03cfa97192c821f5c896796a8953b039dd24ea6645fe537cba8740 patches: - vamos-aarch64.patch # [linux and aarch64] build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage(name, max_pin='x') }} @@ -46,4 +46,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 From eb6254e8c05cdb2ad01b68bf2e47b34a08091279 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 31 Jul 2024 23:19:33 -0400 Subject: [PATCH 0700/1589] Update sphae to 1.4.3 (#49718) --- recipes/sphae/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sphae/meta.yaml b/recipes/sphae/meta.yaml index 79b5f36449510..ffd1cd3558f3d 100644 --- a/recipes/sphae/meta.yaml +++ b/recipes/sphae/meta.yaml @@ -1,5 +1,5 @@ {% set name = "sphae" %} -{% set version = "1.4.2" %} +{% set version = "1.4.3" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://github.com/linsalrob/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz" - sha256: b8a886f8068227dffdce574ab7f68eb7167ed03b1f174a9d40894fa6d0e7db5d + sha256: 30b92bebe5538b52694a73614a932b12f46575ea5c857961815bbb9cec4c5db9 build: number: 0 From 5a3c64aa3dff7b7f732eaff089c6b2d0d7046657 Mon Sep 17 00:00:00 2001 From: Hamdiye Uzuner Date: Thu, 1 Aug 2024 09:45:45 +0200 Subject: [PATCH 0701/1589] Update orthanq dependencies (#49716) * add minimap to as dependency * increment build number --- recipes/orthanq/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/orthanq/meta.yaml b/recipes/orthanq/meta.yaml index ce8c06a76c043..b7eb561444afc 100644 --- a/recipes/orthanq/meta.yaml +++ b/recipes/orthanq/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 skip: True # [osx] run_exports: - {{ pin_subpackage("orthanq", max_pin="x") }} @@ -39,6 +39,7 @@ requirements: - varlociraptor =8.4.7 - samtools =1.19 - vg =1.56 + - minimap2 run: - gsl - libcblas From 2fbbeb44f616ef4f80bddc6312df3196ae5b153c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 1 Aug 2024 03:48:01 -0400 Subject: [PATCH 0702/1589] Update nextstrain-cli to 8.5.1 (#49719) --- recipes/nextstrain-cli/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/nextstrain-cli/meta.yaml b/recipes/nextstrain-cli/meta.yaml index 09d58b61cae64..6d6f19923748b 100644 --- a/recipes/nextstrain-cli/meta.yaml +++ b/recipes/nextstrain-cli/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "8.5.0" %} +{% set version = "8.5.1" %} package: name: nextstrain-cli @@ -6,7 +6,7 @@ package: source: url: https://pypi.io/packages/source/n/nextstrain-cli/nextstrain_cli-{{ version }}.tar.gz - sha256: f5b41b5185560e77f35ce1498ed24dd5ce5561ebd7ca58f434935d8e79f22ac5 + sha256: 5318296512acc4e47fe7d0ffa11b0654ec47ad7822006be3b75864f17b94ea67 build: number: 0 From 5242620252ccceb575d5e2aac49391c2929cb6d6 Mon Sep 17 00:00:00 2001 From: "UENO, M." Date: Thu, 1 Aug 2024 16:58:10 +0900 Subject: [PATCH 0703/1589] Update Reduce v4.14 without libboost-python-devel (#49724) * Update meta.yaml * Update meta.yaml * Revert meta.yaml * Increment build number --- recipes/reduce/meta.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/recipes/reduce/meta.yaml b/recipes/reduce/meta.yaml index 08865f2e26638..f7b252312ff77 100644 --- a/recipes/reduce/meta.yaml +++ b/recipes/reduce/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 62e61cce221fff76b5834031302d91fe703a19945a42e16620d4fb860604daf4 build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage(name, max_pin="x") }} @@ -21,7 +21,6 @@ requirements: - {{ compiler('c') }} - {{ compiler('cxx') }} # [linux] host: - - libboost-python-devel - python run: - python @@ -48,4 +47,4 @@ extra: - linux-aarch64 - osx-arm64 recipe-maintainers: - - eunos-1128 + - eunos-1128 \ No newline at end of file From 5c14f3e63cdb490fb6fb63d86d32325126e43688 Mon Sep 17 00:00:00 2001 From: Stephan Schiffels Date: Thu, 1 Aug 2024 10:02:27 +0200 Subject: [PATCH 0704/1589] Update sequencetools to v1.5.4.0 (#49715) * updated version and hashs * updated executables * added arm64 build * updated version name * updated arch flags --- recipes/sequencetools/meta.yaml | 34 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/recipes/sequencetools/meta.yaml b/recipes/sequencetools/meta.yaml index bc3b6d6b88426..11d801d5246c7 100644 --- a/recipes/sequencetools/meta.yaml +++ b/recipes/sequencetools/meta.yaml @@ -1,28 +1,23 @@ -{% set version = "1.5.3.2" %} +{% set version = "1.5.4.0" %} package: name: sequencetools version: {{ version }} source: - - url: https://github.com/stschiff/sequenceTools/releases/download/v{{ version }}/genoStats-linux # [linux] - md5: 50fd1595be89c375e0c0d86353b68aab # [linux] - - url: https://github.com/stschiff/sequenceTools/releases/download/v{{ version }}/pileupCaller-linux # [linux] - md5: 7e9e44f223f3b23283b2e846ae3eff92 # [linux] - - url: https://github.com/stschiff/sequenceTools/releases/download/v{{ version }}/vcf2eigenstrat-linux # [linux] - md5: 88fe4a59b5a2df97794f67d7a4274e45 # [linux] - - url: https://github.com/stschiff/sequenceTools/releases/download/v{{ version }}/genoStats-macOS # [osx] - md5: d4ad978d5956b02ffac9d91aa7779cf8 # [osx] - - url: https://github.com/stschiff/sequenceTools/releases/download/v{{ version }}/pileupCaller-macOS # [osx] - md5: d1e10117bb7ef10c7f9bd43bd90c86af # [osx] - - url: https://github.com/stschiff/sequenceTools/releases/download/v{{ version }}/vcf2eigenstrat-macOS # [osx] - md5: 015ce6ca8b99405f626665d4e9246ae1 # [osx] - + - url: https://github.com/stschiff/sequenceTools/releases/download/v{{ version }}_more_binaries/pileupCaller-conda-linux # [linux] + md5: 559b74c033df69f179e405e8d65325df # [linux] + - url: https://github.com/stschiff/sequenceTools/releases/download/v{{ version }}_more_binaries/pileupCaller-macOS-X64 # [osx and x86_64] + md5: c99feed2be9f85bdc69da931673eacf0 # [osx and x86_64] + - url: https://github.com/stschiff/sequenceTools/releases/download/v{{ version }}_more_binaries/pileupCaller-macOS-ARM64 # [osx and arm64] + md5: 4f41008d654e683b7860fc0912376d4e # [osx and arm64] + build: number: 0 script: - "mkdir -p $PREFIX/bin" - - "for TOOL in genoStats pileupCaller vcf2eigenstrat; do mv $TOOL-* $PREFIX/bin/$TOOL; chmod u+x $PREFIX/bin/$TOOL; done" + - "mv pileupCaller* $PREFIX/bin/pileupCaller" + - "chmod u+x $PREFIX/bin/pileupCaller" run_exports: - {{ pin_subpackage("sequencetools", max_pin=None) }} @@ -31,20 +26,23 @@ requirements: build: # Precompiled binaries still link against libgcc - {{ compiler('c') }} + host: + - zlib + - gmp run: - zlib - - xz - gmp - samtools test: commands: - pileupCaller --version - - genoStats --version - - vcf2eigenstrat --version about: home: https://github.com/stschiff/sequenceTools license: MIT summary: Tools for population genetics on sequencing data +extra: + additional-platforms: + - osx-arm64 From 0c713361ed8bd05354866d978761d3ce5d84f3cf Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 1 Aug 2024 04:48:40 -0400 Subject: [PATCH 0705/1589] Update smof to 2.22.4 (#49722) * Update smof to 2.22.4 * Add run_exports --------- Co-authored-by: Martin Grigorov --- recipes/smof/meta.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/smof/meta.yaml b/recipes/smof/meta.yaml index d29ff98ce37ba..3db7c7540d71b 100644 --- a/recipes/smof/meta.yaml +++ b/recipes/smof/meta.yaml @@ -1,5 +1,5 @@ {% set name = "smof" %} -{% set version = "2.22.2" %} +{% set version = "2.22.4" %} package: name: "{{ name|lower }}" @@ -7,10 +7,12 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: "04364e72a93a0555fe19ab1ab9e74bac41cd8564b4ed71d62ac7ed6b3e66160e" + sha256: "0f5967ea73fd7031f0a0f0e36c30546d12090a0c35498d79dbf3a6c19a3bd717" build: noarch: python + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} number: 0 entry_points: - smof=smof.ui:main From d78680b259b4fe8f49ba49e7451efcd5fecb3b81 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 1 Aug 2024 06:18:24 -0400 Subject: [PATCH 0706/1589] Update nextflow to 24.04.4 (#49727) --- recipes/nextflow/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/nextflow/meta.yaml b/recipes/nextflow/meta.yaml index 68e2ac3b81319..923a54a387c81 100644 --- a/recipes/nextflow/meta.yaml +++ b/recipes/nextflow/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "24.04.3" %} -{% set sha256 = "e258f6395a38f044eb734cba6790af98b561aa521f63e2701fe95c050986e11c" %} +{% set version = "24.04.4" %} +{% set sha256 = "03bf3ad5018ce2eac7bf7836140475a1fda529d800503aa39565fc6c77a40bfd" %} package: name: nextflow From 53f85c6a9df6c8282eb5ce886adcdad0baec2830 Mon Sep 17 00:00:00 2001 From: Rauf Salamzade Date: Thu, 1 Aug 2024 07:19:22 -0500 Subject: [PATCH 0707/1589] Add lsaBGC (#49720) * create folder/add meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Create build.sh * Update meta.yaml * Update meta.yaml * Update build.sh * Update meta.yaml * Delete recipes/lsabgc/build.sh * Update meta.yaml --- recipes/lsabgc/meta.yaml | 65 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 recipes/lsabgc/meta.yaml diff --git a/recipes/lsabgc/meta.yaml b/recipes/lsabgc/meta.yaml new file mode 100644 index 0000000000000..24f9c2ea43c27 --- /dev/null +++ b/recipes/lsabgc/meta.yaml @@ -0,0 +1,65 @@ +{% set name = "lsabgc" %} +{% set version = "1.0.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/Kalan-Lab/lsaBGC-Pan/archive/refs/tags/v{{ version }}.tar.gz + sha256: 4030f51f1892be49908caf1814838384805eb5d37b7b9bc631f256cfae4d9bde + +build: + number: 0 + noarch: python + script: "{{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv" + run_exports: + - {{ pin_subpackage("lsabgc", max_pin="x") }} + +requirements: + host: + - python + - setuptools + - pip + run: + - python >=3.10 + - r-base + - axel + - zol >=1.4.11 + - orthofinder =2.5.5 + - pyseer >=1.3 + - gecco + - prodigal + - pyrodigal + - biopython + - tar + - pandas + - xlsxwriter >=3.0.3 + - scikit-learn + - numpy + - r-ggplot2 + - r-cowplot + - r-phytools + - r-ape + - r-dplyr + - r-gggenes + - bioconductor-ggtree + - r-data.table + - r-plyr + - r-gridextra + +test: + commands: + - lsaBGC-Pan -h + +about: + home: https://github.com/Kalan-Lab/lsaBGC-Pan + license: BSD-3-Clause license + license_file: LICENSE + license_family: BSD + summary: "lsaBGC-Pan - refined workflow for pan-BGC-omic evolutionary investigations." + dev_url: https://github.com/Kalan-Lab/lsaBGC-Pan + +extra: + recipe-maintainers: + - raufs From 87ada2e7fe896d6051bbaf7507e451f7be9cae71 Mon Sep 17 00:00:00 2001 From: Hamdiye Uzuner Date: Thu, 1 Aug 2024 15:17:55 +0200 Subject: [PATCH 0708/1589] Update orthanq dependencies (#49738) * add bwa to dependencies * increment build number --- recipes/orthanq/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/orthanq/meta.yaml b/recipes/orthanq/meta.yaml index b7eb561444afc..0b9d61c3201e0 100644 --- a/recipes/orthanq/meta.yaml +++ b/recipes/orthanq/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 1 + number: 2 skip: True # [osx] run_exports: - {{ pin_subpackage("orthanq", max_pin="x") }} @@ -40,6 +40,7 @@ requirements: - samtools =1.19 - vg =1.56 - minimap2 + - bwa run: - gsl - libcblas From fe43a823fce4f151cd2146bfbd2174f6645f9868 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 1 Aug 2024 09:18:22 -0400 Subject: [PATCH 0709/1589] Update jvarkit to 2024.08.01 (#49739) --- recipes/jvarkit/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/jvarkit/meta.yaml b/recipes/jvarkit/meta.yaml index 2df572a94b08a..b6f52cdbf9b3d 100644 --- a/recipes/jvarkit/meta.yaml +++ b/recipes/jvarkit/meta.yaml @@ -1,6 +1,6 @@ {% set name = "jvarkit" %} -{% set version = "2024.04.20" %} -{% set sha256 = "e4bb5ad1d8743cccc2a94af2ea6f17e883c3ec5e6674d9dcd3162a84b7de9d45" %} +{% set version = "2024.08.01" %} +{% set sha256 = "5c35258898ef0c65e118e01db663489565989792d949e6a5d93965c9680250cd" %} package: name: {{ name|lower }} From b410740e36f00c5c79887ef6c0e158a365db39ee Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 1 Aug 2024 09:37:42 -0400 Subject: [PATCH 0710/1589] Update methbat to 0.13.1 (#49742) --- recipes/methbat/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/methbat/meta.yaml b/recipes/methbat/meta.yaml index a9c3225d7a792..33388fb2c43a5 100644 --- a/recipes/methbat/meta.yaml +++ b/recipes/methbat/meta.yaml @@ -1,6 +1,6 @@ {% set name = "methbat" %} -{% set version = "0.13.0" %} -{% set sha256 = "3d3fc1ce531cea3c95ce21c9ecac42450766ea42e897767e6982599873ec7806" %} +{% set version = "0.13.1" %} +{% set sha256 = "79e3e48edda49d31601a58252a5e4b5a0d2d35900208df97f16de66712d6ba56" %} package: name: {{ name }} From 7426a1a7d221614421f2b0fabd46b5f7df5e1713 Mon Sep 17 00:00:00 2001 From: John Lees Date: Thu, 1 Aug 2024 14:38:49 +0100 Subject: [PATCH 0711/1589] Add recipe for plasnet (#49729) * Add recipe for plasnet * Change poetry command * Add noarch * python version spec in run * Add poetry as a build deo * Temporarily remove the import test * Back to pip install --- recipes/plasnet/meta.yaml | 45 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 recipes/plasnet/meta.yaml diff --git a/recipes/plasnet/meta.yaml b/recipes/plasnet/meta.yaml new file mode 100644 index 0000000000000..82a185e403c37 --- /dev/null +++ b/recipes/plasnet/meta.yaml @@ -0,0 +1,45 @@ +{% set version = "0.5.1" %} +{% set name = "plasnet" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/leoisl/{{ name|lower }}/archive/v{{ version }}.tar.gz + sha256: ca8d17649d59dbf0b5ce20d8c687a9f3a17804007b0fdb59654156b665149285 + +build: + number: 0 + noarch: generic + script: python -m pip install . --no-deps --ignore-installed -vvv + entry_points: + - plasnet = plasnet.plasnet_main:main + run_exports: + - {{ pin_subpackage("plasnet", max_pin="x") }} + +requirements: + host: + - python >=3.9 + - poetry-core >=1.0.0 + - pip + run: + - python >=3.9 + - networkx + - click + - pandas + +test: + imports: + - plasnet + + commands: + - plasnet --help + +about: + home: https://github.com/leoisl/plasnet + license_file: LICENSE + license: MIT + license_family: MIT + summary: 'Clustering, visualising and exploring plasmid networks' + From d41199c3369aac147af6f401270e13cb22773563 Mon Sep 17 00:00:00 2001 From: Stephen Watts Date: Thu, 1 Aug 2024 23:39:29 +1000 Subject: [PATCH 0712/1589] Update r-ichorcna to 0.5.1 (#49726) * Bump to 0.5.1 * Reset build number * Add run exports * Update deps according to GH repo DESCRIPTION file * Remove unnecessary build.sh commands * Correct sha256 checksum --- recipes/r-ichorcna/build.sh | 18 ++---------- recipes/r-ichorcna/meta.yaml | 53 ++++++++++++++++++------------------ 2 files changed, 29 insertions(+), 42 deletions(-) diff --git a/recipes/r-ichorcna/build.sh b/recipes/r-ichorcna/build.sh index 37756d8b9c8e1..4bc8e1853b492 100644 --- a/recipes/r-ichorcna/build.sh +++ b/recipes/r-ichorcna/build.sh @@ -1,17 +1,3 @@ -$R CMD INSTALL --build . - -outdir=$PREFIX/share/$PKG_NAME-$PKG_VERSION-$PKG_BUILDNUM -mkdir -p $outdir/scripts -mkdir -p $outdir/extdata -mkdir -p $PREFIX/bin - -perl -pi -e 'print "#!/opt/anaconda1anaconda2anaconda3/bin/Rscript\n" if $. == 1' scripts/runIchorCNA.R -perl -pi -e 'print "#!/opt/anaconda1anaconda2anaconda3/bin/Rscript\n" if $. == 1' scripts/createPanelOfNormals.R +#!/bin/bash -cp ./R/*.R $outdir/scripts/ - -chmod a+x $outdir/scripts/*.R -ln -s $outdir/scripts/runIchorCNA.R $PREFIX/bin -ln -s $outdir/scripts/createPanelOfNormals.R $PREFIX/bin - -cp inst/extdata/* $outdir/extdata +$R CMD INSTALL --build . diff --git a/recipes/r-ichorcna/meta.yaml b/recipes/r-ichorcna/meta.yaml index 2b36285104717..b7012aa8c3965 100644 --- a/recipes/r-ichorcna/meta.yaml +++ b/recipes/r-ichorcna/meta.yaml @@ -1,4 +1,4 @@ -{% set version="0.5.0" %} +{% set version="0.5.1" %} {% set name="ichorCNA" %} {% set org="GavinHaLab" %} @@ -9,43 +9,44 @@ package: source: url: https://github.com/{{ org|lower }}/{{ name|lower }}/archive/refs/tags/v{{ version }}.zip - sha256: c046af1978bd38b42b9fc71febfb20ff2657795ab0548ed2c60fe97244f3f207 + sha256: 9c28f86efaee172d80390091edcaf8414ec3ca23c4272300284a4c3fac3ac683 build: - number: 1 + number: 0 noarch: generic rpaths: - lib/R/lib/ - lib/ + run_exports: + - {{ pin_subpackage('r-ichorcna', max_pin="x.x") }} requirements: host: - - r-base - - 'r-foreach >=1.5.0' - - 'r-ggplot2 >=3.3.5' - - 'r-stringr >=1.4.0' - - 'r-domc >=1.3.6' - - perl # for adding in correct path references to scripts + - 'r-base >=4.2' - 'bioconductor-bsgenome.hsapiens.ucsc.hg19 >=1.4.3,<1.5.0' - - 'bioconductor-bsgenome.hsapiens.ucsc.hg38 >=1.4.4,<1.5.0' - - 'bioconductor-genomeinfodb >=1.26.7' - - 'bioconductor-hmmcopy >=1.32.0' - - 'bioconductor-genomicranges >=1.42.0' - - r-optparse - - r-plyr + - 'bioconductor-bsgenome.hsapiens.ucsc.hg38 >=1.4.5,<1.5.0' + - 'bioconductor-genomeinfodb >=1.34.9' + - 'bioconductor-genomicranges >=1.50.2' + - 'bioconductor-hmmcopy >=1.40' + - 'r-data.table >=1.14' + - 'r-domc >=1.3.8' + - 'r-foreach >=1.5.2' + - 'r-ggplot2 >=3.4.3' + - 'r-plyr >=1.8' + - 'r-stringr >=1.5.0' run: - - r-base - - 'r-foreach >=1.5.0' - - 'r-ggplot2 >=3.3.5' - - 'r-stringr >=1.4.0' - - 'r-domc >=1.3.6' + - 'r-base >=4.2' - 'bioconductor-bsgenome.hsapiens.ucsc.hg19 >=1.4.3,<1.5.0' - - 'bioconductor-bsgenome.hsapiens.ucsc.hg38 >=1.4.4,<1.5.0' - - 'bioconductor-genomeinfodb >=1.26.7' - - 'bioconductor-hmmcopy >=1.32.0' - - 'bioconductor-genomicranges >=1.42.0' - - r-optparse - - r-plyr + - 'bioconductor-bsgenome.hsapiens.ucsc.hg38 >=1.4.5,<1.5.0' + - 'bioconductor-genomeinfodb >=1.34.9' + - 'bioconductor-genomicranges >=1.50.2' + - 'bioconductor-hmmcopy >=1.40' + - 'r-data.table >=1.14' + - 'r-domc >=1.3.8' + - 'r-foreach >=1.5.2' + - 'r-ggplot2 >=3.4.3' + - 'r-plyr >=1.8' + - 'r-stringr >=1.5.0' test: commands: From 7cf6dd741bb6bbf2f72a5ba73750c21f7ab13eb5 Mon Sep 17 00:00:00 2001 From: Pablo Riesgo-Ferreiro Date: Thu, 1 Aug 2024 15:39:51 +0200 Subject: [PATCH 0713/1589] Update neofox to 1.2.2 (#49723) * create recipe for pyasyfuse * address comments from review * tentative update of NeoFox recipe * Update meta.yaml * added new hash * increase neofox version * update hash and version * delete an old not used yml file * remove pip-like dependency versions * remove another ~ from the dependencies * Add poetry to meta.yaml --------- Co-authored-by: lkress <35309241+LKress@users.noreply.github.com> --- recipes/neofox/meta.yaml | 59 +++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 34 deletions(-) diff --git a/recipes/neofox/meta.yaml b/recipes/neofox/meta.yaml index 1440752000709..0120691675a02 100644 --- a/recipes/neofox/meta.yaml +++ b/recipes/neofox/meta.yaml @@ -1,5 +1,5 @@ {% set name = "neofox" %} -{% set version = "1.1.0" %} +{% set version = "1.2.2" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: c09b8b3df49b290ee239301626edfd9057c354ab6e8bd344aa1cae2765f4b105 + sha256: 643689ff289bd689c3bf04382a26c89f7f7642ce9389761811a735727b9c7df1 build: number: 0 @@ -22,51 +22,41 @@ build: requirements: host: - - cython + - cython >3 - betterproto >=1.2.5,<1.3.0 - - biopython ==1.76 - - dask[complete] >=2022.2.0,<2023.0.0 - - distributed >=2022.2.0,<2023.0.0 + - biopython >1.80 + - dask[complete] >=2024.2.0,<=2024.6.3 + - distributed >=2024.2.0,<=2024.6.3 - faker >=13.13.0,<13.14.0 - logzero >=1.5.0 - - mock >=4.0.3,<5.0.0 - - numpy >=1.21,<1.22 - - orjson >=3.5.2,<4.0.0 - - pandas >=1.3.5,<1.4 + - mock >=4.0.3,<4.1.0 + - numpy >=1.24,<1.27 + - pandas >=2.1,<2.3 - pip - - pysam - - python >=3.7,<=3.8 + - pysam >0.20 + - python ==3.11 - python-dotenv >=0.12.0,<0.13.0 - - scikit-learn ==0.22.1 - - scipy >=1.7.3,<1.8 + - scipy >=1.10.0 - xmltodict >=0.12.0,<0.13.0 - blast + - poetry ==1.8.2 run: - betterproto >=1.2.5,<1.3.0 - - biopython ==1.76 - - dask[complete] >=2022.2.0,<2023.0.0 - - distributed >=2022.2.0,<2023.0.0 + - biopython >1.80 + - dask[complete] >=2024.0.0,<=2024.6.3 + - distributed >=2024.0.0,<=2024.6.2 - faker >=13.13.0,<13.14.0 - logzero >=1.5.0 - - mock >=4.0.3,<5.0.0 - - numpy >=1.21,<1.22 - - orjson >=3.5.2,<4.0.0 - - pandas >=1.3.5,<1.4 - - pysam - - python >=3.7,<=3.8 + - mock >=4.0.3,<4.1.0 + - numpy >=1.24,<1.27 + - pandas >=2.1,<2.3 + - pysam >0.20 + - python ==3.11 - python-dotenv >=0.12.0,<0.13.0 - - scikit-learn ==0.22.1 - - scipy >=1.7.3,<1.8 + - scipy >=1.10.0 - xmltodict >=0.12.0,<0.13.0 - blast - - r-base - - r-lattice - - r-ggplot2 - - r-caret - - r-peptides - - r-doparallel - - r-gbm - - bioconductor-biostrings + - poetry ==1.8.2 test: imports: @@ -76,11 +66,11 @@ test: - neofox.MHC_predictors.netmhcpan - neofox.annotation_resources - neofox.annotation_resources.uniprot + - neofox.annotator - neofox.expression_imputation - neofox.helpers - neofox.model - neofox.published_features - - neofox.published_features.Tcell_predictor - neofox.published_features.differential_binding - neofox.published_features.dissimilarity_garnish - neofox.published_features.hex @@ -111,6 +101,7 @@ extra: recipe-maintainers: - priesgo - franla23 + - lkress identifiers: - doi:10.1093/bioinformatics/btab344 notes: 'NeoFox has some required and optional third party dependencies that have a non commercial use license. From 2613c1543559c589963c6ccb47c7eefc897980ca Mon Sep 17 00:00:00 2001 From: Milot Mirdita Date: Fri, 2 Aug 2024 01:37:15 +0900 Subject: [PATCH 0714/1589] Add FoldMason (#49744) * Initial FoldMason release * Add biotools identifier --- recipes/foldmason/build.sh | 18 ++++++++++++ recipes/foldmason/meta.yaml | 58 +++++++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 recipes/foldmason/build.sh create mode 100644 recipes/foldmason/meta.yaml diff --git a/recipes/foldmason/build.sh b/recipes/foldmason/build.sh new file mode 100644 index 0000000000000..b06956020200b --- /dev/null +++ b/recipes/foldmason/build.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +ARCH_BUILD="" +case $(uname -m) in + x86_64) ARCH_BUILD="-DHAVE_SSE4_1=1" ;; + arm64|aarch64) ARCH_BUILD="-DHAVE_ARM8=1" ;; +esac + +if [ -z "${ARCH_BUILD}" ]; then + echo "Invalid architecture" + exit 1 +fi + +mkdir build +cd build +cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DHAVE_TESTS=0 -DHAVE_MPI=0 ${ARCH_BUILD} -DVERSION_OVERRIDE="${PKG_VERSION}" .. +make -j${CPU_COUNT} ${VERBOSE_CM} +make install diff --git a/recipes/foldmason/meta.yaml b/recipes/foldmason/meta.yaml new file mode 100644 index 0000000000000..1bcad68e907a3 --- /dev/null +++ b/recipes/foldmason/meta.yaml @@ -0,0 +1,58 @@ +{% set version = "1-763a428" %} +{% set sha256 = "5ecae4918bd2a555e760a3518342cea3fbba8efee17d0de021c68d823c57dc39" %} + +package: + name: foldmason + version: {{ version|replace("-", ".") }} + +build: + number: 0 + run_exports: + - {{ pin_subpackage('foldmason', max_pin="x") }} + +source: + url: https://github.com/steineggerlab/foldmason/archive/{{ version }}.tar.gz + sha256: {{ sha256 }} + +requirements: + build: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + - {{ compiler('rust') }} + - cmake + - make + - llvm-openmp # [osx] + - libgomp # [linux] + host: + - perl + - gawk + - zlib + - bzip2 + run: + - aria2 + - wget + - gawk + - zlib + - bzip2 + +test: + commands: + - foldmason > /dev/null + +about: + home: https://github.com/steineggerlab/foldmason + summary: "Multiple Protein Structure Alignment at Scale with FoldMason" + license: GPL-3 + license_family: GPL + license_file: LICENSE.md + +extra: + identifiers: + - biotools:foldmason + recipe-maintainers: + - gamcil + - milot-mirdita + - martin-steinegger + additional-platforms: + - linux-aarch64 + - osx-arm64 From 4be67192a3e665677f5e1ff04aa2544b76cbae7e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 1 Aug 2024 12:55:11 -0400 Subject: [PATCH 0715/1589] Update pbstarphase to 0.13.1 (#49745) --- recipes/pbstarphase/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pbstarphase/meta.yaml b/recipes/pbstarphase/meta.yaml index 4cff85620e07b..7eb2b16bcdfc7 100644 --- a/recipes/pbstarphase/meta.yaml +++ b/recipes/pbstarphase/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pbstarphase" %} -{% set version = "0.13.0" %} -{% set sha256 = "d21c239440bbb90d96048b4d290c951baa2cb3dbc332c6ad7351e696eaba21ed" %} +{% set version = "0.13.1" %} +{% set sha256 = "1808901a0c3c29093733046ec343122905980566423773e64e8df29060ae6721" %} package: name: {{ name }} From 4f9a6094f745742b9338c01d70e631af1def2f69 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 1 Aug 2024 20:39:52 +0300 Subject: [PATCH 0716/1589] ataqv: add aarch64/arm64 builds (#49734) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/ataqv/build.sh | 4 +- recipes/ataqv/build_failure.linux-64.yaml | 105 ---------------------- recipes/ataqv/build_failure.osx-64.yaml | 105 ---------------------- recipes/ataqv/meta.yaml | 11 ++- 4 files changed, 12 insertions(+), 213 deletions(-) delete mode 100644 recipes/ataqv/build_failure.linux-64.yaml delete mode 100644 recipes/ataqv/build_failure.osx-64.yaml diff --git a/recipes/ataqv/build.sh b/recipes/ataqv/build.sh index 609f92584efa8..9bcf0ed453914 100644 --- a/recipes/ataqv/build.sh +++ b/recipes/ataqv/build.sh @@ -1,9 +1,11 @@ #!/bin/bash +set -xe + ## SET APPROPRIATE ENVIRONMENT VARIABLES AND BUILD export LIBRARY_PATH="${PREFIX}/lib" export LD_LIBRARY_PATH="${PREFIX}/lib" -make CPPFLAGS="-I$PREFIX/include" LDFLAGS="-L$PREFIX/lib" +make -j ${CPU_COUNT} CPPFLAGS="-I$PREFIX/include" LDFLAGS="-L$PREFIX/lib" ## MAKE EXECUTABLES EXECUTABLE! chmod a+x ./build/ataqv diff --git a/recipes/ataqv/build_failure.linux-64.yaml b/recipes/ataqv/build_failure.linux-64.yaml deleted file mode 100644 index b60b345fdde29..0000000000000 --- a/recipes/ataqv/build_failure.linux-64.yaml +++ /dev/null @@ -1,105 +0,0 @@ -recipe_sha: 934f4350f8c8aa698bf252326779b98d5992f2e629709c8219626a161e504204 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -category: test failure -log: |2- - - - number of files: 24 - patchelf: section header table out of bounds - WARNING :: patchelf --print-rpath failed for /opt/conda/conda-bld/ataqv_1717788465623/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/bin/ataqv, will proceed with LIEF (was None) - Warning: rpath /opt/conda/conda-bld/ataqv_1717788465623/_build_env/lib is outside prefix /opt/conda/conda-bld/ataqv_1717788465623/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho (removing it) - INFO: sysroot: '/opt/conda/conda-bld/ataqv_1717788465623/_build_env/x86_64-conda-linux-gnu/sysroot/' files: '['usr/share/zoneinfo/zone.tab', 'usr/share/zoneinfo/tzdata.zi', 'usr/share/zoneinfo/right/Zulu', 'usr/share/zoneinfo/right/WET']' - WARNING (ataqv,bin/ataqv): Needed DSO lib/libboost_filesystem.so.1.85.0 found in ['conda-forge/linux-64::libboost==1.85.0=hba137d9_1'] - WARNING (ataqv,bin/ataqv): .. but ['conda-forge/linux-64::libboost==1.85.0=hba137d9_1'] not in reqs/run, (i.e. it is overlinking) (likely) or a missing dependency (less likely) - WARNING (ataqv,bin/ataqv): Needed DSO lib/libboost_iostreams.so.1.85.0 found in ['conda-forge/linux-64::libboost==1.85.0=hba137d9_1'] - WARNING (ataqv,bin/ataqv): .. but ['conda-forge/linux-64::libboost==1.85.0=hba137d9_1'] not in reqs/run, (i.e. it is overlinking) (likely) or a missing dependency (less likely) - WARNING (ataqv,bin/ataqv): Needed DSO lib/libboost_system.so.1.85.0 found in ['conda-forge/linux-64::libboost==1.85.0=hba137d9_1'] - WARNING (ataqv,bin/ataqv): .. but ['conda-forge/linux-64::libboost==1.85.0=hba137d9_1'] not in reqs/run, (i.e. it is overlinking) (likely) or a missing dependency (less likely) - WARNING (ataqv,bin/ataqv): Needed DSO lib/libboost_chrono.so.1.85.0 found in ['conda-forge/linux-64::libboost==1.85.0=hba137d9_1'] - WARNING (ataqv,bin/ataqv): .. but ['conda-forge/linux-64::libboost==1.85.0=hba137d9_1'] not in reqs/run, (i.e. it is overlinking) (likely) or a missing dependency (less likely) - INFO (ataqv,bin/ataqv): Needed DSO lib/libhts.so.3 found in bioconda/linux-64::htslib==1.20=h5efdd21_1 - INFO (ataqv,bin/ataqv): Needed DSO lib/libz.so.1 found in conda-forge/linux-64::libzlib==1.2.13=h4ab18f5_6 - INFO (ataqv,bin/ataqv): Needed DSO lib/libncurses.so.6 found in conda-forge/linux-64::ncurses==6.5=h59595ed_0 - INFO (ataqv,bin/ataqv): Needed DSO lib/libtinfo.so.6 found in conda-forge/linux-64::ncurses==6.5=h59595ed_0 - INFO (ataqv,bin/ataqv): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libpthread.so.0 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 - INFO (ataqv,bin/ataqv): Needed DSO lib/libstdc.so.6 found in conda-forge/linux-64::libstdcxx-ng==13.2.0=hc0a3c3a_7 - INFO (ataqv,bin/ataqv): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libm.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 - INFO (ataqv,bin/ataqv): Needed DSO lib/libgcc_s.so.1 found in conda-forge/linux-64::libgcc-ng==13.2.0=h77fa898_7 - INFO (ataqv,bin/ataqv): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libc.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 - WARNING (ataqv): run-exports library package conda-forge/linux-64::zlib==1.2.13=h4ab18f5_6 in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) - WARNING (ataqv): dso library package conda-forge/linux-64::coreutils==9.5=hd590300_0 in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) - WARNING (ataqv): interpreter (Python) package conda-forge/linux-64::python==3.8.19=hd12c33a_0_cpython in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) - Fixing permissions - Packaged license file/s. - INFO :: Time taken to mark (prefix) - 0 replacements in 0 files was 0.01 seconds - Files containing CONDA_PREFIX - ----------------------------- - bin/ataqv (binary): Patching - TEST START: /opt/conda/conda-bld/linux-64/ataqv-1.3.1-py38h40952c3_3.tar.bz2 - Renaming work directory '/opt/conda/conda-bld/ataqv_1717788465623/work' to '/opt/conda/conda-bld/ataqv_1717788465623/work_moved_ataqv-1.3.1-py38h40952c3_3_linux-64' - shutil.move(work)=/opt/conda/conda-bld/ataqv_1717788465623/work, dest=/opt/conda/conda-bld/ataqv_1717788465623/work_moved_ataqv-1.3.1-py38h40952c3_3_linux-64) - Reloading output folder (local, file:///opt/host-conda-bld): ...working... done - Solving environment (_test_env): ...working... done - - ## Package Plan ## - - environment location: /opt/conda/conda-bld/ataqv_1717788465623/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl - - - The following NEW packages will be INSTALLED: - - _libgcc_mutex: 0.1-conda_forge conda-forge - _openmp_mutex: 4.5-2_gnu conda-forge - ataqv: 1.3.1-py38h40952c3_3 local - boost-cpp: 1.85.0-h44aadfe_1 conda-forge - bzip2: 1.0.8-hd590300_5 conda-forge - c-ares: 1.28.1-hd590300_0 conda-forge - ca-certificates: 2024.6.2-hbcca054_0 conda-forge - coreutils: 9.5-hd590300_0 conda-forge - htslib: 1.20-h5efdd21_1 bioconda - icu: 73.2-h59595ed_0 conda-forge - keyutils: 1.6.1-h166bdaf_0 conda-forge - krb5: 1.21.2-h659d440_0 conda-forge - ld_impl_linux-64: 2.40-hf3520f5_2 conda-forge - libboost: 1.85.0-hba137d9_1 conda-forge - libboost-devel: 1.85.0-h00ab1b0_1 conda-forge - libboost-headers: 1.85.0-ha770c72_1 conda-forge - libcurl: 8.8.0-hca28451_0 conda-forge - libdeflate: 1.20-hd590300_0 conda-forge - libedit: 3.1.20191231-he28a2e2_2 conda-forge - libev: 4.33-hd590300_2 conda-forge - libffi: 3.4.2-h7f98852_5 conda-forge - libgcc-ng: 13.2.0-h77fa898_7 conda-forge - libgomp: 13.2.0-h77fa898_7 conda-forge - libnghttp2: 1.58.0-h47da74e_1 conda-forge - libnsl: 2.0.1-hd590300_0 conda-forge - libsqlite: 3.45.3-h2797004_0 conda-forge - libssh2: 1.11.0-h0841786_0 conda-forge - libstdcxx-ng: 13.2.0-hc0a3c3a_7 conda-forge - libuuid: 2.38.1-h0b41bf4_0 conda-forge - libxcrypt: 4.4.36-hd590300_1 conda-forge - libzlib: 1.3.1-h4ab18f5_1 conda-forge - ncurses: 6.5-h59595ed_0 conda-forge - openssl: 3.3.1-h4ab18f5_0 conda-forge - pip: 24.0-pyhd8ed1ab_0 conda-forge - python: 3.8.19-hd12c33a_0_cpython conda-forge - python_abi: 3.8-4_cp38 conda-forge - readline: 8.2-h8228510_1 conda-forge - setuptools: 70.0.0-pyhd8ed1ab_0 conda-forge - tk: 8.6.13-noxft_h4845f30_101 conda-forge - wheel: 0.43.0-pyhd8ed1ab_1 conda-forge - xz: 5.2.6-h166bdaf_0 conda-forge - zlib: 1.3.1-h4ab18f5_1 conda-forge - zstd: 1.5.6-ha6fb4c9_0 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - export PREFIX=/opt/conda/conda-bld/ataqv_1717788465623/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl - export SRC_DIR=/opt/conda/conda-bld/ataqv_1717788465623/test_tmp - ataqv --version - grep 1.3.1 - WARNING: Tests failed for ataqv-1.3.1-py38h40952c3_3.tar.bz2 - moving package to /opt/conda/conda-bld/broken - TESTS FAILED: ataqv-1.3.1-py38h40952c3_3.tar.bz2 -# Last 100 lines of the build log. diff --git a/recipes/ataqv/build_failure.osx-64.yaml b/recipes/ataqv/build_failure.osx-64.yaml deleted file mode 100644 index ff5345e9a2467..0000000000000 --- a/recipes/ataqv/build_failure.osx-64.yaml +++ /dev/null @@ -1,105 +0,0 @@ -recipe_sha: 934f4350f8c8aa698bf252326779b98d5992f2e629709c8219626a161e504204 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -category: compiler error -log: |2- - make: 4.3-h22f3db7_1 conda-forge - openssl: 3.3.1-h87427d6_0 conda-forge - sigtool: 0.1.3-h88f4db0_0 conda-forge - tapi: 1100.0.11-h9ce4665_0 conda-forge - xz: 5.2.6-h775f41a_0 conda-forge - zstd: 1.5.6-h915ae27_0 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - /opt/mambaforge/envs/bioconda/conda-bld/ataqv_1718297740259/work/src/cpp/Metrics.cpp:998:57: warning: taking the max of a value and unsigned zero is always equal to the other value [-Wmax-unsigned-zero] - query << tss_region.reference << ":" << std::max(tss_region.start - extension * 2, 0ULL) << "-" << (tss_region.end extension * 2); - ^~~~~~~~ ~~~~ - /opt/mambaforge/envs/bioconda/conda-bld/ataqv_1718297740259/work/src/cpp/Metrics.cpp:998:57: note: remove call to max function and unsigned zero argument - query << tss_region.reference << ":" << std::max(tss_region.start - extension * 2, 0ULL) << "-" << (tss_region.end extension * 2); - ^~~~~~~~ ~~~~~~ - 1 warning generated. - dyld[74759]: Library not loaded: @rpath/libtapi.dylib - Referenced from: <7F8D8CA0-6698-329D-8085-2D0F07C40248> /opt/mambaforge/envs/bioconda/pkgs/ld64_osx-64-711-ha20a434_0/bin/x86_64-apple-darwin13.4.0-ld - Reason: tried: '/opt/mambaforge/envs/bioconda/pkgs/ld64_osx-64-711-ha20a434_0/bin/../lib/libtapi.dylib' (no such file), '/opt/mambaforge/envs/bioconda/pkgs/ld64_osx-64-711-ha20a434_0/bin/../lib/libtapi.dylib' (no such file), '/usr/local/lib/libtapi.dylib' (no such file), '/usr/lib/libtapi.dylib' (no such file, not in dyld cache) - clang-16: error: unable to execute command: Abort trap: 6 - clang-16: error: linker command failed due to signal (use -v to see invocation) - make: *** [Makefile:168: build/ataqv] Error 1 - Extracting download - source tree in: /opt/mambaforge/envs/bioconda/conda-bld/ataqv_1718297740259/work - export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/ataqv_1718297740259/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol - export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/ataqv_1718297740259/_build_env - export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/ataqv_1718297740259/work - INFO: activate_clang_osx-64.sh made the following environmental changes: - AR=x86_64-apple-darwin13.4.0-ar - AS=x86_64-apple-darwin13.4.0-as - CC=x86_64-apple-darwin13.4.0-clang - CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ataqv-1.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms - CLANG=x86_64-apple-darwin13.4.0-clang - Traceback (most recent call last): - CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin - CMAKE_PREFIX_PATH=:$PREFIX - CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 - CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 - CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 - DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ataqv-1.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - HOST=x86_64-apple-darwin13.4.0 - INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool - LD=x86_64-apple-darwin13.4.0-ld - LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib - LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib - LIBTOOL=x86_64-apple-darwin13.4.0-libtool - LIPO=x86_64-apple-darwin13.4.0-lipo - MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib - NM=x86_64-apple-darwin13.4.0-nm - NMEDIT=x86_64-apple-darwin13.4.0-nmedit - OBJC=x86_64-apple-darwin13.4.0-clang - OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - OTOOL=x86_64-apple-darwin13.4.0-otool - PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff - RANLIB=x86_64-apple-darwin13.4.0-ranlib - File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding - SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk - SEGEDIT=x86_64-apple-darwin13.4.0-segedit - SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table - SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - utils.check_call_env( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - SIZE=x86_64-apple-darwin13.4.0-size - STRINGS=x86_64-apple-darwin13.4.0-strings - STRIP=x86_64-apple-darwin13.4.0-strip - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 - ac_cv_func_malloc_0_nonnull=yes - ac_cv_func_realloc_0_nonnull=yes - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/ataqv_1718297740259/work/conda_build.sh']' returned non-zero exit status 2. - build_alias=x86_64-apple-darwin13.4.0 - host_alias=x86_64-apple-darwin13.4.0 - INFO: activate_clangxx_osx-64.sh made the following environmental changes: - CLANGXX=x86_64-apple-darwin13.4.0-clang - CXX=x86_64-apple-darwin13.4.0-clang - CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ataqv-1.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ataqv-1.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - x86_64-apple-darwin13.4.0-clang -std=c11 -pthread -O3 -g -I$PREFIX/include -o build/ataqv.o -c $SRC_DIR/src/cpp/ataqv.cpp - x86_64-apple-darwin13.4.0-clang -std=c11 -pthread -O3 -g -I$PREFIX/include -o build/Features.o -c $SRC_DIR/src/cpp/Features.cpp - x86_64-apple-darwin13.4.0-clang -std=c11 -pthread -O3 -g -I$PREFIX/include -o build/HTS.o -c $SRC_DIR/src/cpp/HTS.cpp - x86_64-apple-darwin13.4.0-clang -std=c11 -pthread -O3 -g -I$PREFIX/include -o build/IO.o -c $SRC_DIR/src/cpp/IO.cpp - x86_64-apple-darwin13.4.0-clang -std=c11 -pthread -O3 -g -I$PREFIX/include -o build/Metrics.o -c $SRC_DIR/src/cpp/Metrics.cpp - x86_64-apple-darwin13.4.0-clang -std=c11 -pthread -O3 -g -I$PREFIX/include -o build/Peaks.o -c $SRC_DIR/src/cpp/Peaks.cpp - x86_64-apple-darwin13.4.0-clang -std=c11 -pthread -O3 -g -I$PREFIX/include -o build/Utils.o -c $SRC_DIR/src/cpp/Utils.cpp - x86_64-apple-darwin13.4.0-clang -o build/ataqv build/ataqv.o build/Features.o build/HTS.o build/IO.o build/Metrics.o build/Peaks.o build/Utils.o -L$PREFIX/lib -lboost_filesystem -lboost_iostreams -lboost_system -lboost_chrono -lhts -lz -lncurses -lpthread -# Last 100 lines of the build log. diff --git a/recipes/ataqv/meta.yaml b/recipes/ataqv/meta.yaml index 6d2a096b8eb34..58f8c7bb4ecaf 100644 --- a/recipes/ataqv/meta.yaml +++ b/recipes/ataqv/meta.yaml @@ -7,7 +7,9 @@ package: version: {{ version }} build: - number: 3 + number: 4 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} source: url: https://github.com/ParkerLab/ataqv/archive/{{ version }}.tar.gz @@ -41,8 +43,13 @@ test: about: home: https://parkerlab.github.io/ataqv/ - license: GPL3 + license: GPL-3.0-only license_file: LICENSE summary: ataqv is a toolkit for measuring and comparing ATAC-seq results. It was written to help understand how well ATAC-seq assays have worked, and to make it easier to spot differences that might be caused by library prep or sequencing. dev_url: https://github.com/ParkerLab/ataqv doc_url: https://github.com/ParkerLab/ataqv/blob/master/README.rst + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 \ No newline at end of file From ddfc548bf43be2e38bf1490d80d9234fa170d3db Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 1 Aug 2024 20:40:06 +0300 Subject: [PATCH 0717/1589] filtlong: add aarch64/arm64 builds (#49735) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/filtlong/build.sh | 4 +++- recipes/filtlong/meta.yaml | 9 ++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/recipes/filtlong/build.sh b/recipes/filtlong/build.sh index c16833531c8c5..a8e4c057d2c03 100644 --- a/recipes/filtlong/build.sh +++ b/recipes/filtlong/build.sh @@ -1,5 +1,7 @@ #!/bin/bash -make -j CXXFLAGS="${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}" +set -xe + +make -j ${CPU_COUNT} CXXFLAGS="${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}" install -d "${PREFIX}/bin" install bin/filtlong "${PREFIX}/bin/" diff --git a/recipes/filtlong/meta.yaml b/recipes/filtlong/meta.yaml index 2860ded47c62a..d6169fac82ae5 100644 --- a/recipes/filtlong/meta.yaml +++ b/recipes/filtlong/meta.yaml @@ -11,7 +11,9 @@ source: sha256: {{ sha256 }} build: - number: 3 + number: 4 + run_exports: + - {{ pin_subpackage(name, max_pin="x.x") }} requirements: build: @@ -30,3 +32,8 @@ about: home: https://github.com/rrwick/Filtlong license: GPL-3.0 summary: 'Filtlong is a tool for filtering long reads. It can take a set of long reads and produce a smaller, better subset. It uses both read length (longer is better) and read identity (higher is better) when choosing which reads pass the filter.' + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 \ No newline at end of file From 9b0896673f86cec52d8e0dcdb54a3837089d4bdb Mon Sep 17 00:00:00 2001 From: Guilherme Bonotti Coppini <25513836+Coppini@users.noreply.github.com> Date: Thu, 1 Aug 2024 18:24:39 +0000 Subject: [PATCH 0718/1589] Update bam-readcount to v1.0.1 (#47911) * feat: updates bam-readcount to version v1.0.1 * fix: removed -j2 flag from make as it caused errors in the build * feat: adds sha256 of the tar.gz * fix: removes from blacklist * clean up recipe * edit build.sh * clean up recipe * edit patch * edit patch * edit patch * edit build.sh * clean up recipe * add macos target * edit build.sh * edit build.sh * unfortunately have to skip OSX build --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Co-authored-by: mencian --- build-fail-blacklist | 1 - recipes/bam-readcount/build.sh | 39 +++++++++++++++++++++++++--- recipes/bam-readcount/meta.yaml | 45 +++++++++++++++++++++------------ 3 files changed, 64 insertions(+), 21 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 6ee7994adc790..f9e833ba2f1ce 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -309,7 +309,6 @@ recipes/biolite recipes/pauda recipes/hicbrowser recipes/vqsr_cnn -recipes/bam-readcount recipes/mqc recipes/roprofile recipes/chanjo diff --git a/recipes/bam-readcount/build.sh b/recipes/bam-readcount/build.sh index f08dfb30e8ad1..ea36511e1ccc5 100644 --- a/recipes/bam-readcount/build.sh +++ b/recipes/bam-readcount/build.sh @@ -1,5 +1,36 @@ -#!/bin/bash +#!/bin/bash -euo -cd $PREFIX -cmake $SRC_DIR -make -j 2 +wget https://github.com/boostorg/boost/releases/download/boost-1.85.0/boost-1.85.0-cmake.tar.gz + +mv boost-1.85.0-cmake.tar.gz vendor/boost-1.55-bamrc.tar.gz + +mkdir -p "${PREFIX}/bin" + +# Needed for building utils dependency +export INCLUDES="-I{PREFIX}/include" +export LIBPATH="-L${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -pthread -L${PREFIX}/lib" +export CXXFLAGS="${CXXFLAGS} -O3 -I${PREFIX}/include" + +if [ `uname` == Darwin ]; then + export LDFLAGS="${LDFLAGS} -Wl,-rpath,${PREFIX}/lib -lz -lbz2" + export MACOSX_DEPLOYMENT_TARGET=10.13 + # See https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk for -D_LIBCPP_DISABLE_AVAILABILITY + # export CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY" +fi + +mkdir -p build +pushd build +cmake -S .. -B . -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_CXX_COMPILER="${CXX}" \ + -DCMAKE_C_COMPILER="${CC}" \ + -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ + -Wno-dev -Wno-deprecated --no-warn-unused-cli + +make clean +make CXX="${CXX} ${LDFLAGS}" CC="${CC}" CXXFLAGS="${CXXFLAGS}" + +chmod 755 bin/bam-readcount +cp -f bin/bam-readcount "${PREFIX}/bin" +popd diff --git a/recipes/bam-readcount/meta.yaml b/recipes/bam-readcount/meta.yaml index b46fce1142718..81a6922eeaf7c 100644 --- a/recipes/bam-readcount/meta.yaml +++ b/recipes/bam-readcount/meta.yaml @@ -1,36 +1,49 @@ +{% set name = "bam-readcount" %} +{% set version = "1.0.1" %} + package: - name: bam-readcount - version: "0.8" + name: {{ name }} + version: {{ version }} source: - url: https://github.com/genome/bam-readcount/archive/v0.8.0.tar.gz - md5: 58d72588866f16f658ce4f40a3809af9 + url: https://github.com/genome/{{ name }}/archive/v{{ version }}.tar.gz + sha256: 8ebf84d9efee0f2d3b43f0452dbf16b27337c960e25128f6a7173119e62588b8 build: - number: 5 + number: 0 + skip: True # [osx] + run_exports: + - {{ pin_subpackage('bam-readcount', max_pin="x") }} requirements: build: - make - - cmake >=2.8.3 - - {{ compiler('c') }} + - cmake - {{ compiler('cxx') }} + - {{ compiler('c') }} host: - zlib - - ncurses - - perl - - python + - pthread-stubs + - wget + - clangdev run: - python - - zlib - - ncurses - - perl + - pthread-stubs test: commands: - - bam-readcount 2>&1 | grep bam-readcount > /dev/null + - "bam-readcount 2>&1 | grep bam-readcount > /dev/null" about: - home: https://github.com/genome/bam-readcount + home: "https://github.com/genome/bam-readcount" license: MIT - summary: bam-readcount generates metrics at single nucleotide positions. + license_family: MIT + license_file: LICENSE + summary: "bam-readcount generates metrics at single nucleotide positions." + dev_url: "https://github.com/genome/bam-readcount" + doc_url: "https://github.com/genome/bam-readcount/blob/master/README.md" + +extra: + identifiers: + - doi:10.21105/joss.03722 + - biotools:bam-readcount From 4d18498c8505a3020fa219a16d23053d9d1ef045 Mon Sep 17 00:00:00 2001 From: richard-burhans Date: Thu, 1 Aug 2024 15:04:04 -0400 Subject: [PATCH 0719/1589] Reviving no_static.patch (#49747) Co-authored-by: Richard Burhans --- recipes/ncbi-fcs-gx/meta.yaml | 5 +++-- recipes/ncbi-fcs-gx/no_static.patch | 10 ++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 recipes/ncbi-fcs-gx/no_static.patch diff --git a/recipes/ncbi-fcs-gx/meta.yaml b/recipes/ncbi-fcs-gx/meta.yaml index 44f122e158877..863e298cf163b 100644 --- a/recipes/ncbi-fcs-gx/meta.yaml +++ b/recipes/ncbi-fcs-gx/meta.yaml @@ -5,7 +5,8 @@ package: source: url: https://github.com/ncbi/fcs-gx/archive/refs/tags/v0.5.4.zip sha256: 4398f935f5f5053a9a47d46416e28e8e7df34942bc72f6b5ac266de8ee365cf0 - + patches: + - no_static.patch requirements: build: @@ -23,7 +24,7 @@ requirements: - grep >=3.4 build: - number: 0 + number: 1 skip: True # [not linux or not x86_64] run_exports: - {{ pin_compatible('ncbi-fcs-gx', max_pin="x.x") }} diff --git a/recipes/ncbi-fcs-gx/no_static.patch b/recipes/ncbi-fcs-gx/no_static.patch new file mode 100644 index 0000000000000..9ec777df07d1e --- /dev/null +++ b/recipes/ncbi-fcs-gx/no_static.patch @@ -0,0 +1,10 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -5,6 +5,6 @@ + set(gx_VERSION_MINOR 0) + + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -O0 -ggdb3 -DDEBUG") +-set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -static -O2 -DNDEBUG") # TODO: investigate whether can/should enable -march=x86-64-v4 ++set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -O2 -DNDEBUG") # TODO: investigate whether can/should enable -march=x86-64-v4 + + add_subdirectory(src) From 4553a2941b2ac5feef50f5c9cddd1d21a866a17a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 1 Aug 2024 21:26:13 -0400 Subject: [PATCH 0720/1589] Update lsabgc to 1.0.3 (#49749) * Update lsabgc to 1.0.3 * Update meta.yaml --------- Co-authored-by: Rauf Salamzade --- recipes/lsabgc/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/lsabgc/meta.yaml b/recipes/lsabgc/meta.yaml index 24f9c2ea43c27..5b3bb14d85ef2 100644 --- a/recipes/lsabgc/meta.yaml +++ b/recipes/lsabgc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "lsabgc" %} -{% set version = "1.0.0" %} +{% set version = "1.0.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Kalan-Lab/lsaBGC-Pan/archive/refs/tags/v{{ version }}.tar.gz - sha256: 4030f51f1892be49908caf1814838384805eb5d37b7b9bc631f256cfae4d9bde + sha256: a7e68e3d5b69183e86d3026c95a6a177768d953bfccac18b3beabbb9450594ee build: number: 0 @@ -28,7 +28,7 @@ requirements: - zol >=1.4.11 - orthofinder =2.5.5 - pyseer >=1.3 - - gecco + - gecco =0.9.6 - prodigal - pyrodigal - biopython From b40f5923631ea4ed0e3979b645659a97a2b3d1cf Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 1 Aug 2024 21:43:28 -0400 Subject: [PATCH 0721/1589] Update nanomotif to 0.4.10 (#49704) * Update nanomotif to 0.4.10 * add setuptools --------- Co-authored-by: mencian --- recipes/nanomotif/meta.yaml | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/recipes/nanomotif/meta.yaml b/recipes/nanomotif/meta.yaml index 208bbdd95ceaf..dc25d63a2db8a 100644 --- a/recipes/nanomotif/meta.yaml +++ b/recipes/nanomotif/meta.yaml @@ -1,6 +1,5 @@ {% set name = "nanomotif" %} -{% set version = "0.4.9" %} - +{% set version = "0.4.10" %} package: name: {{ name|lower }} @@ -8,13 +7,13 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/nanomotif-{{ version }}.tar.gz - sha256: 2d958ff07a35bf20c4db9e1a5bb033efd530e5ff21e16bc88796d70e09566589 + sha256: f5b573e9462f8043dd6f7e905461e4c7d804db612806180f1482002793653056 build: entry_points: - nanomotif = nanomotif.main:main noarch: python - script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir number: 0 run_exports: - {{ pin_subpackage('nanomotif', max_pin="x.x") }} @@ -23,21 +22,22 @@ requirements: host: - python - pip + - setuptools run: - python - wheel + - bio >=1.6.2 - requests - numpy >=1.24.4 - pandas >=2.0.2 - polars >=0.19 - - seaborn >=0.12.2 + - seaborn-base >=0.12.2 - scipy >=1.10.1 - networkx >=3.1 - progressbar2 >=3.53.1 - biopython >=1.6.2 - pyarrow >=15.0.2 - - snakemake >=7.32.4 - + - snakemake-minimal >=7.32.4 test: imports: @@ -46,11 +46,13 @@ test: - nanomotif --help about: - home: https://pypi.org/project/nanomotif/ - summary: Identifying methlyation motifs in nanopore data + home: "https://github.com/MicrobialDarkMatter/nanomotif" + summary: "Identifying methlyation motifs in nanopore data" license: MIT license_family: MIT license_file: LICENSE + doc_url: "https://nanomotif.readthedocs.io/en/latest" + dev_url: "https://github.com/MicrobialDarkMatter/nanomotif" extra: recipe-maintainers: From 6107c6957586dd1250fa78e87481aac1e20f8f59 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 1 Aug 2024 21:43:38 -0400 Subject: [PATCH 0722/1589] Update reframed to 1.5.3 (#49705) * Update reframed to 1.5.3 * add setuptools --------- Co-authored-by: mencian --- recipes/reframed/meta.yaml | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/recipes/reframed/meta.yaml b/recipes/reframed/meta.yaml index 003f90d2ef333..cbcb3673cd42a 100644 --- a/recipes/reframed/meta.yaml +++ b/recipes/reframed/meta.yaml @@ -1,5 +1,5 @@ {% set name = "reframed" %} -{% set version = "1.5.2" %} +{% set version = "1.5.3" %} package: name: {{ name|lower }} @@ -7,14 +7,14 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/reframed-{{ version }}.tar.gz - sha256: cb4ec30364e0f50cd5a47933668d371024deac56255b10bb0d676ae453a51315 + sha256: e84a73a94a2ec1cdbe5a56dad796260b38dbaa662fecc12c4d6092ef223334d9 build: noarch: python - script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir number: 0 run_exports: - - {{ pin_subpackage('reframed', max_pin="x.x.x") }} + - {{ pin_subpackage('reframed', max_pin="x") }} requirements: host: @@ -32,16 +32,14 @@ requirements: test: imports: - reframed - commands: - - pip check - requires: - - pip about: home: https://github.com/cdanielmachado/reframed - summary: metabolic modeling package + summary: "Metabolic modeling package." license: Apache-2.0 + license_family: APACHE license_file: LICENSE + dev_url: https://github.com/cdanielmachado/reframed extra: recipe-maintainers: From 22a949b2b25e94f35929b56fb9b39002faf1fa5c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 1 Aug 2024 21:43:49 -0400 Subject: [PATCH 0723/1589] Update carveme to 1.6.2 (#49707) * Update carveme to 1.6.2 * add setuptools --------- Co-authored-by: mencian --- recipes/carveme/meta.yaml | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/recipes/carveme/meta.yaml b/recipes/carveme/meta.yaml index 3a9692325ff17..a2cbfff5631e5 100644 --- a/recipes/carveme/meta.yaml +++ b/recipes/carveme/meta.yaml @@ -1,5 +1,5 @@ {% set name = "carveme" %} -{% set version = "1.6.1" %} +{% set version = "1.6.2" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 3f58e2519af378b15b7e0d175aefa94566793503e32856d690720213a1a9d478 + sha256: cd0ac30fff347c180d76083c96f85705ed1a426f69aa43ca47bb964df7d22ac3 build: number: 0 @@ -18,25 +18,26 @@ build: - gapfill=carveme.cli.gapfill:main - merge_community=carveme.cli.merge_community:main - benchmark=carveme.cli.benchmark:main - script: "{{ PYTHON }} -m pip install --use-pep517 . -vv" + script: "{{ PYTHON }} -m pip install --use-pep517 --no-deps --no-build-isolation --no-cache-dir . -vvv" noarch: python - build: run_exports: - - {{ pin_subpackage('carveme', max_pin="x.x.x") }} + - {{ pin_subpackage('carveme', max_pin="x") }} requirements: host: - python >=3.8 - pip + - setuptools run: - - pandas + - pandas - python >=3.8 - reframed >=1.5.1 - diamond - pyscipopt - scip - numpy - - requests + - requests + test: imports: - carveme @@ -58,6 +59,8 @@ about: license_family: APACHE license_file: LICENSE.txt summary: "CarveMe: automated genome-scale metabolic model reconstruction" + dev_url: "https://github.com/cdanielmachado/carveme" + doc_url: "https://carveme.readthedocs.io/en/latest" extra: recipe-maintainers: From 36657db94217fc85228d63382d3718020b40ea85 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 1 Aug 2024 21:44:03 -0400 Subject: [PATCH 0724/1589] Update truvari to 4.3.0 (#49708) * Update truvari to 4.3.0 * add setuptools --------- Co-authored-by: mencian --- recipes/truvari/meta.yaml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/recipes/truvari/meta.yaml b/recipes/truvari/meta.yaml index b27d82385cd1e..a87cbf94c0803 100644 --- a/recipes/truvari/meta.yaml +++ b/recipes/truvari/meta.yaml @@ -1,6 +1,6 @@ {% set name = "truvari" %} -{% set version = "4.2.2" %} -{% set sha256 = "4e7e504e8221b99c321d0825e32299954ef324f382b16fa09c97135aa1e4f872" %} +{% set version = "4.3.0" %} +{% set sha256 = "cb25b3e8163584b51dec06356b89f193674e4388891e29b56c7e5b6f4bb63779" %} package: name: {{ name|lower }} @@ -13,7 +13,7 @@ source: build: number: 0 noarch: python - script: {{ PYTHON }} -m pip install . -vvv + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv entry_points: - truvari = truvari.__main__:main run_exports: @@ -23,6 +23,7 @@ requirements: host: - python >=3.8 - pip + - setuptools run: - python >=3.8 - pywfa >=0.5.1 @@ -49,3 +50,5 @@ about: license: MIT license_family: MIT license_file: LICENSE + dev_url: https://github.com/ACEnglish/truvari + doc_url: https://github.com/acenglish/truvari/wiki From ec8d706b345f19ffb3d339cc33c10bf14f37ec5e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 1 Aug 2024 21:44:19 -0400 Subject: [PATCH 0725/1589] Update pacu_snp to 0.0.5 (#49728) * Update pacu_snp to 0.0.5 * add LICENSE file --------- Co-authored-by: mencian --- recipes/pacu_snp/LICENSE | 674 +++++++++++++++++++++++++++++++++++++ recipes/pacu_snp/meta.yaml | 13 +- 2 files changed, 681 insertions(+), 6 deletions(-) create mode 100644 recipes/pacu_snp/LICENSE diff --git a/recipes/pacu_snp/LICENSE b/recipes/pacu_snp/LICENSE new file mode 100644 index 0000000000000..20d40b6bceca3 --- /dev/null +++ b/recipes/pacu_snp/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. \ No newline at end of file diff --git a/recipes/pacu_snp/meta.yaml b/recipes/pacu_snp/meta.yaml index 54a5b5864e9ef..6798465c0519a 100644 --- a/recipes/pacu_snp/meta.yaml +++ b/recipes/pacu_snp/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.0.4" %} +{% set version = "0.0.5" %} package: name: pacu_snp @@ -6,18 +6,18 @@ package: source: url: https://pypi.io/packages/source/p/pacu_snp/pacu_snp-{{ version }}.tar.gz - sha256: a00027a667bd502073f682e4ea72c0e31a1940345b19338cd2b67838ef925c2a + sha256: 68979d53d8a591351a3de4edcde38bb508a8fcf8a4b1878999c9e63c932ffeb6 build: noarch: python - number: 1 + number: 0 entry_points: - PACU=pacu.run_pacu:main - PACU_map=pacu.map_to_ref:main - PACU_galaxy=pacu.galaxy:main run_exports: - {{ pin_subpackage("pacu_snp", max_pin="x.x") }} - script: "{{ PYTHON }} -m pip install . --no-deps -vv" + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" requirements: host: @@ -42,7 +42,7 @@ requirements: - pyyaml >=6.0.1 - samtools >=1.17 - seqkit >=2.3.1 - - snakemake ==7.32.4 + - snakemake-minimal ==7.32.4 - snp-dists >=0.8.2 - trimmomatic >=0.39 - upsetplot >=0.8.0 @@ -50,10 +50,11 @@ requirements: about: home: https://github.com/BioinformaticsPlatformWIV-ISP/PACU - license: GPL-3.0 + license: GPL-3.0-or-later license_family: GPL license_file: LICENSE summary: PACU is a workflow for whole genome sequencing based phylogeny of Illumina and ONT R9/R10 data. + dev_url: https://github.com/BioinformaticsPlatformWIV-ISP/PACU test: imports: From 42a4fa28f956fac4fec4fdac05a1a759037e85fb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 1 Aug 2024 21:44:34 -0400 Subject: [PATCH 0726/1589] Update harpy to 1.4 (#49750) --- recipes/harpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index d93024ddac567..c9c0604b6892d 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.3" %} -{% set sha256 = "1e55b0d15853276afa6a3c3863766515e5d1ef20df7dc71a1560bb48226dabdf" %} +{% set version = "1.4" %} +{% set sha256 = "810af5d7625d853610c74149d9de0a3a38a92986cc276cbc4c15c4ba8f6664ab" %} package: name: harpy From bc446f7262f44bf97ccafbefee599c05b34913c5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 1 Aug 2024 21:46:10 -0400 Subject: [PATCH 0727/1589] Update genewalk to 1.6.3 (#49751) --- recipes/genewalk/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/genewalk/meta.yaml b/recipes/genewalk/meta.yaml index 969b33e9b8222..2335055b20893 100644 --- a/recipes/genewalk/meta.yaml +++ b/recipes/genewalk/meta.yaml @@ -1,5 +1,5 @@ {% set name = "genewalk" %} -{% set version = "1.6.2" %} +{% set version = "1.6.3" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: "e989c20ef9c5ef5a6de0b495cc6f8ee4490ab9ebbdd2634e03cf77dfdec44b10" + sha256: "41fc63a6a3d2637ffea60b7256374852b92f70889a3a0ac823508b44fce3f347" build: number: 0 From 03f18a7bca1fb09be6903f706a53a151f94403ed Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 2 Aug 2024 04:47:42 +0300 Subject: [PATCH 0728/1589] quicksect: add aarch64/arm64 builds (#49743) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/quicksect/meta.yaml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/recipes/quicksect/meta.yaml b/recipes/quicksect/meta.yaml index 397ed3e780b91..d697f65359be5 100644 --- a/recipes/quicksect/meta.yaml +++ b/recipes/quicksect/meta.yaml @@ -10,8 +10,10 @@ source: sha256: "d3e65b55b7f48e6105b11b1e1d6f37ccbf8caecfc7d7db7aba73dfaf6d732a9c" build: - number: 9 + number: 10 script: rm -f src/*.c ; {{ PYTHON }} -m pip install --no-deps --ignore-installed . + run_exports: + - {{ pin_subpackage(name, max_pin="x.x") }} requirements: build: @@ -35,3 +37,7 @@ about: license_file: LICENSE summary: "A cythonized, extended version of the interval search tree in bx" +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 \ No newline at end of file From f9a5675ce61f638f409719ee0034a4f1bd3282a1 Mon Sep 17 00:00:00 2001 From: Lucas Czech Date: Thu, 1 Aug 2024 23:12:05 -0700 Subject: [PATCH 0729/1589] Add recipe for grenedalf (#49390) * Add recipe for grenedalf * Fix license to use SPDX identifier * Try to fix the build on Mac OSX * Fix pinning syntax * Attempt grenedalf MacOS build with Clang <16 * Try building grenedalf on MacOS with Clang 15 * Fix Clang vs libcxx version compatibility * Fix Clang vs libcxx version compatibility pt 2 * Fix Clang vs libcxx version compatibility pt 3 * Fix Clang vs libcxx version compatibility pt 4 * Fix Clang vs libcxx version compatibility pt 5 * Exclude macOS build for now See https://github.com/bioconda/bioconda-recipes/pull/49390#issuecomment-2250342057 * Remove linux-aarch64 build This otherwise fails with Error: Failed to render jinja template in /home/circleci/project/recipes/grenedalf/meta.yaml: 'os._Environ object' has no attribute 'TRAVIS_OS_NAME' See https://app.circleci.com/pipelines/github/bioconda/bioconda-recipes/124268/workflows/75eb13df-d5d5-4dad-a806-dd6406e2d58d/jobs/200360?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-checks-link&utm_content=summary * Fix OS name check for bioconda * Add platform env var * Fix os selection mechanism for osx https://github.com/bioconda/bioconda-recipes/pull/49390#pullrequestreview-2213888968 --------- Co-authored-by: Martin Grigorov --- recipes/grenedalf/build.sh | 8 ++++++ recipes/grenedalf/meta.yaml | 52 +++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 recipes/grenedalf/build.sh create mode 100644 recipes/grenedalf/meta.yaml diff --git a/recipes/grenedalf/build.sh b/recipes/grenedalf/build.sh new file mode 100644 index 0000000000000..1fa785763c3b6 --- /dev/null +++ b/recipes/grenedalf/build.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +make -j ${CPU_COUNT} + +mkdir -p $PREFIX/bin + +cp bin/grenedalf $PREFIX/bin + diff --git a/recipes/grenedalf/meta.yaml b/recipes/grenedalf/meta.yaml new file mode 100644 index 0000000000000..83e5c1ee29eeb --- /dev/null +++ b/recipes/grenedalf/meta.yaml @@ -0,0 +1,52 @@ +package: + name: grenedalf + version: "0.5.2" + +build: + number: 0 + skip: true # [osx] + run_exports: + - {{ pin_subpackage('grenedalf', max_pin='x.x') }} + +source: + url: https://github.com/lczech/grenedalf/archive/refs/tags/v0.5.2.tar.gz + sha256: 03d5391be83532f67b4aaedeeb7275cdf1de19070096a23c48367b7cea902b4e + +requirements: + build: + - make + - cmake + - autoconf + - automake + - {{ compiler('cxx') }} + host: + - bzip2 + - xz + - zlib + run: + - bzip2 + - xz + - zlib + +test: + commands: + - grenedalf --help + +about: + home: https://github.com/lczech/grenedalf + license: GPL-3.0-only + license_file: LICENSE + summary: Toolkit for Population Genetic Statistics from Pool-Sequenced Samples, e.g., in Evolve and Resequence experiments + description: | + grenedalf is a collection of commands for working with population genetic data, in particular from pool sequencing. + Its main focus are statistical analyses such as Tajima's D and Fst. The statistics follow the approaches of PoPoolation + and PoPoolation2, as well as poolfstat and npstat. However, compared to those, grenedalf is significantly more scalable, + more user friendly, and offers more settings and input file formats. + dev_url: https://github.com/lczech/grenedalf + doc_url: https://github.com/lczech/grenedalf/wiki + +extra: + additional-platforms: + - linux-aarch64 + identifiers: + - arXiv:2306.11622 From 9227584c635138040aea465d393607accd9ea1bf Mon Sep 17 00:00:00 2001 From: Rob Patro Date: Fri, 2 Aug 2024 03:38:39 -0400 Subject: [PATCH 0730/1589] Add radtk (#49752) * add radtk * add rad-tk add build.sh * Use SPDX value for the license --------- Co-authored-by: Martin Grigorov --- recipes/radtk/build.sh | 2 ++ recipes/radtk/meta.yaml | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 recipes/radtk/build.sh create mode 100644 recipes/radtk/meta.yaml diff --git a/recipes/radtk/build.sh b/recipes/radtk/build.sh new file mode 100644 index 0000000000000..ec42da7d92de0 --- /dev/null +++ b/recipes/radtk/build.sh @@ -0,0 +1,2 @@ +# build statically linked binary with Rust +RUST_BACKTRACE=1 cargo install --locked --verbose --root $PREFIX --path . diff --git a/recipes/radtk/meta.yaml b/recipes/radtk/meta.yaml new file mode 100644 index 0000000000000..b3355c9314349 --- /dev/null +++ b/recipes/radtk/meta.yaml @@ -0,0 +1,39 @@ +{% set version = "0.2.0" %} + +package: + name: radtk + version: {{ version }} + +build: + number: 0 + run_exports: + - {{ pin_subpackage("radtk", max_pin="x.x") }} + +source: + url: https://github.com/COMBINE-lab/radtk/archive/v{{ version }}.tar.gz + sha256: 116c9b05576de3e9708d2d7817d7b4f4858f9edf44d2a9bb0548159f0ccff6fb + +requirements: + build: + - autoconf + - make + - {{ compiler('cxx') }} + - {{ compiler('rust') }} + - pkg-config + host: + run: + +test: + commands: + - radtk --help || test $? -eq 1 + +about: + home: https://github.com/COMBINE-lab/radtk + license: BSD-3-Clause + license_file: LICENSE + summary: A collection of tools for working with RAD files. + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From 227c0c8b1ebeb1aa5194907a1244b0c40123e818 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 03:44:56 -0400 Subject: [PATCH 0731/1589] Update grenedalf to 0.6.0 (#49755) --- recipes/grenedalf/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/grenedalf/meta.yaml b/recipes/grenedalf/meta.yaml index 83e5c1ee29eeb..63645f633c571 100644 --- a/recipes/grenedalf/meta.yaml +++ b/recipes/grenedalf/meta.yaml @@ -1,6 +1,6 @@ package: name: grenedalf - version: "0.5.2" + version: "0.6.0" build: number: 0 @@ -9,8 +9,8 @@ build: - {{ pin_subpackage('grenedalf', max_pin='x.x') }} source: - url: https://github.com/lczech/grenedalf/archive/refs/tags/v0.5.2.tar.gz - sha256: 03d5391be83532f67b4aaedeeb7275cdf1de19070096a23c48367b7cea902b4e + url: https://github.com/lczech/grenedalf/archive/refs/tags/v0.6.0.tar.gz + sha256: 43f7654d9b67fdce0b65096e0b1a4ac6160d838664a65151d44ea382d2489a3f requirements: build: From 36fdd349b9b269a9eb912bbc65adbf43396bad5c Mon Sep 17 00:00:00 2001 From: SantiagoSanchezF <42723108+SantiagoSanchezF@users.noreply.github.com> Date: Fri, 2 Aug 2024 09:51:30 +0100 Subject: [PATCH 0732/1589] Update SanntiS to ensure compatibility with scipy version (#49756) * Fix: Update SciPy version to 1.7.3 to resolve compatibility issues * Fix: Update SciPy version to 1.7.3 to resolve compatibility issues --- recipes/sanntis/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/sanntis/meta.yaml b/recipes/sanntis/meta.yaml index 72516e12f2345..b6732c54e0ef3 100644 --- a/recipes/sanntis/meta.yaml +++ b/recipes/sanntis/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 noarch: python entry_points: - sanntis = sanntis._cli:main @@ -25,6 +25,7 @@ requirements: - pip run: - python >=3.9 + - scipy >=1.7.3,<1.8.0 - perl >=5 - biopython - numpy >=1.16,<1.20 From 2484314f8f25ae972cd38ea5a535b23816fa81f9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 08:34:25 -0400 Subject: [PATCH 0733/1589] Update pgscatalog.match to 0.3.0 (#49762) --- recipes/pgscatalog.match/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pgscatalog.match/meta.yaml b/recipes/pgscatalog.match/meta.yaml index 9d5d74a74c3f0..fbf8c49332f44 100644 --- a/recipes/pgscatalog.match/meta.yaml +++ b/recipes/pgscatalog.match/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pgscatalog.match" %} -{% set version = "0.2.3" %} +{% set version = "0.3.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pgscatalog_match-{{ version }}.tar.gz - sha256: 7aa2e940a984d0e7610fe8c712b2730468757e54195880a251b4e250848e39e7 + sha256: ebebc432448559f7bc9a543acc029e3aa6944eef98f5d735f6750ef3aeb79e6f build: number: 0 From dafd26ad0715e69766a9611130e01e1c40d5bff9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 08:34:47 -0400 Subject: [PATCH 0734/1589] Update pybiolib to 1.2.31 (#49761) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index 1fc5590a325af..4b79d5057b32c 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.2.16" %} +{% set version = "1.2.31" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: fe6acc99bc6874bbb02246982545b7e355287bc22e3e82b16909d3e2237dad3d + sha256: 39abd33afc379d9624ff7da4f0eb38acaf7a14f5c48aa0bbce6d761ca3632e6b build: number: 0 From faa4bc17b4bbc0cc296b1f07f50f88466357c92c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 08:35:19 -0400 Subject: [PATCH 0735/1589] Update nanomotif to 0.4.11 (#49760) --- recipes/nanomotif/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/nanomotif/meta.yaml b/recipes/nanomotif/meta.yaml index dc25d63a2db8a..aa336929dc77c 100644 --- a/recipes/nanomotif/meta.yaml +++ b/recipes/nanomotif/meta.yaml @@ -1,5 +1,5 @@ {% set name = "nanomotif" %} -{% set version = "0.4.10" %} +{% set version = "0.4.11" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/nanomotif-{{ version }}.tar.gz - sha256: f5b573e9462f8043dd6f7e905461e4c7d804db612806180f1482002793653056 + sha256: 822a74f70748cdb0539dd990955adeceb76c8e4e858ecee5e0097a31fac34ceb build: entry_points: From d8e73a5ce3bc7f43fac04112ea4795f9f14709ea Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 11:43:04 -0400 Subject: [PATCH 0736/1589] Update pmultiqc to 0.0.25 (#49764) * Update pmultiqc to 0.0.25 * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml --------- Co-authored-by: Yasset Perez-Riverol --- recipes/pmultiqc/meta.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/recipes/pmultiqc/meta.yaml b/recipes/pmultiqc/meta.yaml index b8c4ab6027c61..6f8e33c2d2bd4 100644 --- a/recipes/pmultiqc/meta.yaml +++ b/recipes/pmultiqc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pmultiqc" %} -{% set version = "0.0.24" %} +{% set version = "0.0.25" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: e3d617cdfc4eab4fa8905dab1f4e575db038471659840bf1431b535d610ae136 + sha256: 463a09960e75a45b8af43c57896be1244fe487e35dcb53071cefcc34612f6e89 build: number: 0 @@ -24,11 +24,12 @@ requirements: - python >=3.6 - pytest - lxml - - multiqc ==1.19.0 + - multiqc ==1.23 - pandas - - sdrf-pipelines >=0.0.18 + - sdrf-pipelines >=0.0.28 - pyteomics - pyopenms >2.7 + - numpy >=1.23 test: imports: From ca5291ddde14583259ebd4b5ec33d5aef2f897c2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 11:53:01 -0400 Subject: [PATCH 0737/1589] Update seqnado to 0.5.4 (#49766) --- recipes/seqnado/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/seqnado/meta.yaml b/recipes/seqnado/meta.yaml index ec3b91250d2bc..1a30cf4a2b5bf 100644 --- a/recipes/seqnado/meta.yaml +++ b/recipes/seqnado/meta.yaml @@ -1,5 +1,5 @@ {% set name = "seqnado" %} -{% set version = "0.5.3" %} +{% set version = "0.5.4" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/seqnado-{{ version }}.tar.gz - sha256: a8614656b340450dd304517cd841a3366d20e65a7d91d601fb11b6f07ced1611 + sha256: d0b281f06d2c8d2c55d99529c785549fe7aaed00f487b10fd609cef2baec76f8 build: From d2cfbaeaf5ca7d1bfcacf728069fecdac6285604 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 11:53:29 -0400 Subject: [PATCH 0738/1589] Update micom to 0.36.2 (#49765) --- recipes/micom/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/micom/meta.yaml b/recipes/micom/meta.yaml index d2cce5b00901c..19788fb22ba0a 100644 --- a/recipes/micom/meta.yaml +++ b/recipes/micom/meta.yaml @@ -1,5 +1,5 @@ {% set name = "micom" %} -{% set version = "0.36.1" %} +{% set version = "0.36.2" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 8b278dec56e04c2fbf2193a07ccce988a2fbf8408ce99fdb705c68e40ef28fb2 + sha256: 0d046c51eb73c86d1f694853f99e7f4c86f1f3938af2932871412fea01fc9613 build: number: 0 From 3d00e06bd2b514a51a00ce2b5988042de46911e0 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 11:53:55 -0400 Subject: [PATCH 0739/1589] Update pgscatalog-utils to 1.3.0 (#49763) --- recipes/pgscatalog-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pgscatalog-utils/meta.yaml b/recipes/pgscatalog-utils/meta.yaml index 1a1f0bf5d31ba..6208f5eea7eac 100644 --- a/recipes/pgscatalog-utils/meta.yaml +++ b/recipes/pgscatalog-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pgscatalog-utils" %} -{% set version = "1.2.0" %} +{% set version = "1.3.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pgscatalog_utils-{{ version }}.tar.gz - sha256: 00c22d84306c671f909f09ee3cd1c4de223d02009b16c0162c76f9526d0d6efa + sha256: ec6a397a81891860256707d3b25d6615ddee705dd744822f886fbadf16419ab3 build: noarch: python From f6a9d6f4c6428736845aa31c25895f61037c1d80 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 2 Aug 2024 20:39:01 +0300 Subject: [PATCH 0740/1589] bam-readcount: add linux-aarch64 support (#49754) * bam-readcount: add linux-aarch64 support Signed-off-by: Martin Tzvetanov Grigorov * Do not use parallelism for the build. It fails on linux x86_64 --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/bam-readcount/build.sh | 2 ++ recipes/bam-readcount/meta.yaml | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/recipes/bam-readcount/build.sh b/recipes/bam-readcount/build.sh index ea36511e1ccc5..7d754621bbd4d 100644 --- a/recipes/bam-readcount/build.sh +++ b/recipes/bam-readcount/build.sh @@ -1,5 +1,7 @@ #!/bin/bash -euo +set -x + wget https://github.com/boostorg/boost/releases/download/boost-1.85.0/boost-1.85.0-cmake.tar.gz mv boost-1.85.0-cmake.tar.gz vendor/boost-1.55-bamrc.tar.gz diff --git a/recipes/bam-readcount/meta.yaml b/recipes/bam-readcount/meta.yaml index 81a6922eeaf7c..5e80b8f2b7fd7 100644 --- a/recipes/bam-readcount/meta.yaml +++ b/recipes/bam-readcount/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 8ebf84d9efee0f2d3b43f0452dbf16b27337c960e25128f6a7173119e62588b8 build: - number: 0 + number: 1 skip: True # [osx] run_exports: - {{ pin_subpackage('bam-readcount', max_pin="x") }} @@ -44,6 +44,8 @@ about: doc_url: "https://github.com/genome/bam-readcount/blob/master/README.md" extra: + additional-platforms: + - linux-aarch64 identifiers: - doi:10.21105/joss.03722 - biotools:bam-readcount From 4627f73f3b477409711a19b5676ef8416c0a8d47 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 13:52:23 -0400 Subject: [PATCH 0741/1589] Update sdm to 2.18 (#49769) --- recipes/sdm/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/sdm/meta.yaml b/recipes/sdm/meta.yaml index a518392945668..53a9f3e6b6a51 100644 --- a/recipes/sdm/meta.yaml +++ b/recipes/sdm/meta.yaml @@ -1,5 +1,5 @@ {% set name = "sdm" %} -{% set version = "2.17" %} +{% set version = "2.18" %} package: name: {{ name }} @@ -7,12 +7,12 @@ package: source: url: https://github.com/hildebra/{{ name }}/archive/v{{ version }}.tar.gz - sha256: d1655719b232b6c474c132be850c7a2633df4ef46b497935152f68b94f5f166f + sha256: 4ae8d1b2be6c3571e9c2db964421e5065255dff209f8e060d43b843be0f04e82 patches: - sdm_1.83.patch build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage(name|lower, max_pin="x.x") }} @@ -38,4 +38,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 From 2b9c406ee17e26dc7a1eafc638164db134b47acb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 13:52:31 -0400 Subject: [PATCH 0742/1589] Update fgpyo to 0.5.0 (#49768) --- recipes/fgpyo/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/fgpyo/meta.yaml b/recipes/fgpyo/meta.yaml index 17701e4fdb277..63a3a10fe4ea2 100644 --- a/recipes/fgpyo/meta.yaml +++ b/recipes/fgpyo/meta.yaml @@ -1,5 +1,5 @@ {% set name = "fgpyo" %} -{% set version = "0.4.0" %} +{% set version = "0.5.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/fulcrumgenomics/{{ name }}/archive/refs/tags/{{ version }}.tar.gz - sha256: fd92a8417fb93f494667f49ef9540e379884180fe8867fea6eb06f56be5937f2 + sha256: 875a189a0db739bd150b677a3b1c5a48489c83bc7da2cc405aee02a137ab7a04 build: noarch: python From a3f84f956c237eec07d72725ad2230da21130ef5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 13:52:40 -0400 Subject: [PATCH 0743/1589] Update harpy to 1.4.1 (#49767) --- recipes/harpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index c9c0604b6892d..6d9987bb12a93 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.4" %} -{% set sha256 = "810af5d7625d853610c74149d9de0a3a38a92986cc276cbc4c15c4ba8f6664ab" %} +{% set version = "1.4.1" %} +{% set sha256 = "389f391f1510e4fbaf582f8be32fe762fe792ea65f8c83cca4cf1e7237e442ef" %} package: name: harpy From c6284588e6d315267be60f24f2c5eba8616724f6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 13:59:33 -0400 Subject: [PATCH 0744/1589] Update pybedlite to 1.0.0 (#49771) --- recipes/pybedlite/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pybedlite/meta.yaml b/recipes/pybedlite/meta.yaml index 11f13450da28d..16e6de9deda68 100644 --- a/recipes/pybedlite/meta.yaml +++ b/recipes/pybedlite/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybedlite" %} -{% set version = "0.1.0" %} +{% set version = "1.0.0" %} package: name: {{ name|lower }} @@ -7,11 +7,11 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybedlite-{{ version }}.tar.gz - sha256: d7296b876d2093e7b877bea0e5d347353282c5d6cd110dcd03d5851f5eeda7dc + sha256: c87a246a673f69b929103176b744b6ad6978b63fae45f1ca6becc315a72d671c build: skip: True # [py < 38] - number: 1 + number: 0 script: {{ PYTHON }} -m pip install . -vvv --no-deps run_exports: - {{ pin_subpackage('pybedlite', max_pin="x") }} From 5521a2d9948750f78efb7876723dc38bca3f1caf Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 14:21:51 -0400 Subject: [PATCH 0745/1589] Update snapgene-reader to 0.1.21 (#49758) * Update snapgene-reader to 0.1.21 * add run_exports --------- Co-authored-by: mencian --- recipes/snapgene-reader/meta.yaml | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/recipes/snapgene-reader/meta.yaml b/recipes/snapgene-reader/meta.yaml index e843f58ee99a9..1cb425a9fe59f 100644 --- a/recipes/snapgene-reader/meta.yaml +++ b/recipes/snapgene-reader/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snapgene-reader" %} -{% set version = "0.1.20" %} +{% set version = "0.1.21" %} package: name: {{ name|lower }} @@ -7,36 +7,37 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snapgene_reader-{{ version }}.tar.gz - sha256: 5fbae3e8624a9578f584f840733328eecbf17ac837b021add56a560fce2f107f + sha256: b786cb8f9f6d8a0961057882ebcb68e318c185091a2ed36f552a2954df887a26 build: noarch: python - script: {{ PYTHON }} -m pip install . -vv + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv number: 0 + run_exports: + - {{ pin_subpackage('snapgene-reader', max_pin="x.x") }} requirements: host: - pip - - python + - python >=3 run: - biopython - html2text - - python + - python >=3 - xmltodict test: imports: - snapgene_reader - commands: - - pip check - requires: - - pip about: - home: https://pypi.org/project/snapgene-reader/ - summary: Convert Snapgene *.dna files dict/json/biopython. + home: "https://github.com/Edinburgh-Genome-Foundry/SnapGeneReader" + summary: "Convert Snapgene *.dna files dict/json/biopython." license: MIT - license_file: LICENCE.txt + license_family: MIT + license_file: "LICENCE.txt" + dev_url: "https://github.com/Edinburgh-Genome-Foundry/SnapGeneReader" + doc_url: "https://github.com/Edinburgh-Genome-Foundry/SnapGeneReader/blob/v{{ version }}/README.rst" extra: recipe-maintainers: From e8918711b9cb915f1450d0b58509ac4a6e6f2705 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 15:17:57 -0400 Subject: [PATCH 0746/1589] Update parascopy to 1.16.2 (#48778) * Update parascopy to 1.16.1 * add clang to host deps * Update parascopy to 1.16.2 * add setuptools --------- Co-authored-by: mencian --- recipes/parascopy/meta.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/recipes/parascopy/meta.yaml b/recipes/parascopy/meta.yaml index 0f24f33fe767f..5bc435f33fb96 100644 --- a/recipes/parascopy/meta.yaml +++ b/recipes/parascopy/meta.yaml @@ -1,5 +1,5 @@ {% set name = "parascopy" %} -{% set version = "1.16.0" %} +{% set version = "1.16.2" %} package: name: {{ name|lower }} @@ -14,7 +14,7 @@ build: source: url: https://github.com/tprodanov/{{ name }}/archive/v{{ version }}.tar.gz - sha256: 72b4874990d19a85fe98dafc74808bb9d9357148d8dda6ed3aa80bf943de6167 + sha256: f1fa85349f49a504cc49afa93a2f8aab6600f6edaea3bdf7be21adca973ebe50 requirements: build: @@ -26,13 +26,14 @@ requirements: host: - python - pip + - setuptools - bzip2 - zlib - htslib - tabixpp + - clangdev # [osx] run: - python - - zlib - numpy >=1.15 - scipy >=1.5 - pysam >=0.17 @@ -66,3 +67,4 @@ about: license_family: MIT license_file: LICENSE summary: Calling paralog-specific copy number and sequence variants in duplicated genes using short-read whole-genome sequencing. + dev_url: https://github.com/tprodanov/parascopy From 3fdab15f873db2a7364a0fd193356545434727ff Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Fri, 2 Aug 2024 14:46:12 -0500 Subject: [PATCH 0747/1589] Update last to 1550 (#49772) --- recipes/last/build.sh | 4 +--- recipes/last/meta.yaml | 5 +++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/recipes/last/build.sh b/recipes/last/build.sh index 1387c3d3d6a6b..cdda4074d43e1 100644 --- a/recipes/last/build.sh +++ b/recipes/last/build.sh @@ -1,6 +1,4 @@ -#!/usr/bin/env bash - -set -xe +#!/bin/bash -xe ARCH=$(uname -m) case ${ARCH} in diff --git a/recipes/last/meta.yaml b/recipes/last/meta.yaml index 621a10a4deea4..fa4b3bc69aad2 100644 --- a/recipes/last/meta.yaml +++ b/recipes/last/meta.yaml @@ -1,5 +1,5 @@ {% set name = "LAST" %} -{% set version = "1548" %} +{% set version = "1550" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: "https://gitlab.com/mcfrith/last/-/archive/{{ version }}/last-{{ version }}.tar.gz" - sha256: bb1cab9586e7fed1dad6c101f1e0a44e053c52b7db417aa37769f1f8d0cba237 + sha256: 34a2d62bba74e6f2dad593b1c3997151617fb86a89a7d689e47a3a5e9377a07d build: number: 0 @@ -62,6 +62,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 container: extended-base: True identifiers: From 2b8718fbf734b0710c4039be10d877cdfb74a95f Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Fri, 2 Aug 2024 16:04:02 -0500 Subject: [PATCH 0748/1589] Update tantan to 50 (#49773) --- recipes/tantan/build.sh | 9 +++++++++ recipes/tantan/meta.yaml | 19 +++++++++++-------- 2 files changed, 20 insertions(+), 8 deletions(-) create mode 100644 recipes/tantan/build.sh diff --git a/recipes/tantan/build.sh b/recipes/tantan/build.sh new file mode 100644 index 0000000000000..550f4924bf485 --- /dev/null +++ b/recipes/tantan/build.sh @@ -0,0 +1,9 @@ +#!/bin/bash -euo + +ARCH=$(uname -m) +case ${ARCH} in + x86_64) ARCH_FLAGS="-msse4" ;; + *) ARCH_FLAGS="" ;; +esac + +make install CXXFLAGS="${CXXFLAGS} -O3 ${ARCH_FLAGS} -pthread -I${PREFIX}/include" prefix=${PREFIX} diff --git a/recipes/tantan/meta.yaml b/recipes/tantan/meta.yaml index 26e07ef7347b1..4f30f88e14745 100644 --- a/recipes/tantan/meta.yaml +++ b/recipes/tantan/meta.yaml @@ -1,16 +1,16 @@ -{% set version = "49" %} +{% set name = "tantan" %} +{% set version = "50" %} package: - name: tantan + name: {{ name }} version: {{ version }} source: url: https://gitlab.com/mcfrith/tantan/-/archive/{{ version }}/tantan-{{ version }}.tar.gz - sha256: 851eb8f1c0f169107cebe16cb9e973c49a54d0f00413063b514ea0edfa3a5238 + sha256: a239e9fb3c059ed9eb4c25a29b3c44a2ef1c1b492a9780874f429de7ae8b5407 build: number: 0 - script: make install prefix=$PREFIX run_exports: - {{ pin_subpackage('tantan', max_pin="None") }} @@ -21,8 +21,6 @@ requirements: - make host: - zlib - run: - - zlib test: commands: @@ -30,11 +28,16 @@ test: about: home: https://gitlab.com/mcfrith/tantan - license: GPL-3.0-or-later + license: "GPL-3.0-or-later" license_family: GPL3 - license_file: COPYING.txt + license_file: "COPYING.txt" summary: "tantan masks simple regions (low complexity & short-period tandem repeats) in biological sequences." + dev_url: https://gitlab.com/mcfrith/tantan + doc_url: https://gitlab.com/mcfrith/tantan/-/blob/main/README.rst extra: identifiers: - doi:10.1093/nar/gkq1212 + additional-platforms: + - linux-aarch64 + - osx-arm64 From ec283bd48e7ebd2d91a7df1abdddf37893975d5d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 22:07:00 -0400 Subject: [PATCH 0749/1589] Update lsabgc to 1.0.4 (#49775) --- recipes/lsabgc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/lsabgc/meta.yaml b/recipes/lsabgc/meta.yaml index 5b3bb14d85ef2..8752b995ee828 100644 --- a/recipes/lsabgc/meta.yaml +++ b/recipes/lsabgc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "lsabgc" %} -{% set version = "1.0.3" %} +{% set version = "1.0.4" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Kalan-Lab/lsaBGC-Pan/archive/refs/tags/v{{ version }}.tar.gz - sha256: a7e68e3d5b69183e86d3026c95a6a177768d953bfccac18b3beabbb9450594ee + sha256: d04c6a3a9a562c6fb97e778032ae7148bc90dfa982a8cac3d6e4eb2269995b66 build: number: 0 From bb1ad275d58f79143adf79cfd257cc21961ce8b2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 3 Aug 2024 02:12:04 -0400 Subject: [PATCH 0750/1589] Update trust4 to 1.1.3 (#49774) --- recipes/trust4/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/trust4/meta.yaml b/recipes/trust4/meta.yaml index d71466e7da114..65f568b349e3e 100644 --- a/recipes/trust4/meta.yaml +++ b/recipes/trust4/meta.yaml @@ -1,17 +1,17 @@ -{% set version = "1.1.2" %} +{% set version = "1.1.3" %} package: name: trust4 version: '{{ version }}' build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('trust4', max_pin="x") }} source: url: https://github.com/liulab-dfci/TRUST4/archive/v{{ version }}.tar.gz - sha256: 9321775c9636e31e4448952a9338c78736b652d46f219c0aef28386a0ca3d5a0 + sha256: 99bfd50a742598e6a5fbf6318b0fadeec811f635bc1d7f5f49315b64a708c378 requirements: build: From 8290b4e5b258f38b67033a45b78b14466b18de12 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 3 Aug 2024 02:51:25 -0400 Subject: [PATCH 0751/1589] Update taxopy to 0.13.0 (#49776) --- recipes/taxopy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/taxopy/meta.yaml b/recipes/taxopy/meta.yaml index fe5b571c1e819..1e2b85a9a93e8 100644 --- a/recipes/taxopy/meta.yaml +++ b/recipes/taxopy/meta.yaml @@ -1,5 +1,5 @@ {% set name = "taxopy" %} -{% set version = "0.12.0" %} +{% set version = "0.13.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 589e0d600a03535f1689d4be27c90af44b0552f26bdd7b27b31799cc098da828 + sha256: 0f56b8470864bc8c44cda1edb00dd210a0105e5aec25dfb9f6bb725b0f753f5c build: number: 0 From bca0ac48a339b562399c4eb474fb657d9e560ff9 Mon Sep 17 00:00:00 2001 From: Andrey Prjibelski Date: Sat, 3 Aug 2024 21:39:08 +0300 Subject: [PATCH 0752/1589] Update isoquant to 3.5.0 (#49780) --- recipes/isoquant/meta.yaml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/recipes/isoquant/meta.yaml b/recipes/isoquant/meta.yaml index e112ee8533140..bbc7fbd26d950 100644 --- a/recipes/isoquant/meta.yaml +++ b/recipes/isoquant/meta.yaml @@ -1,6 +1,6 @@ {% set name = "IsoQuant" %} -{% set version = "3.4.2" %} -{% set sha256 = "7cff391e0d9e9d61d4fce6a1218270cf72e8dd034d7cfdd154b4c5b4055e17b4" %} +{% set version = "3.5.0" %} +{% set sha256 = "80771cc4fbe8d222b5dfa45be392942b2fdd356ebbb1d99e26d251c37bba085d" %} package: name: {{ name | lower }} @@ -24,6 +24,7 @@ requirements: - biopython >=1.76 - gffutils >=0.10.1 - minimap2 >=2.18 + - numpy >=1.18.1 - packaging - pandas >=1.0.1 - pybedtools >=0.8.1 @@ -31,6 +32,8 @@ requirements: - pysam >=0.15 - pyyaml >=5.4 - samtools >=1.14 + - scipy >=1.4.1 + - seaborn >=0.10.0 - simplejson >=3.17.0 - six >=1.14.0 @@ -48,7 +51,7 @@ about: license_family: GPL2 license_file: LICENSE dev_url: "https://github.com/ablab/IsoQuant" - doc_url: "https://github.com/ablab/IsoQuant/blob/master/README.md" + doc_url: "https://ablab.github.io/IsoQuant" extra: identifiers: From 3cafdf23b4aa8ebb1ca7ae44ed1d7284e3138360 Mon Sep 17 00:00:00 2001 From: Li Song Date: Sat, 3 Aug 2024 14:40:20 -0400 Subject: [PATCH 0753/1589] Add osx-arm64 support for TRUST4 (#49782) --- recipes/trust4/LICENSE | 695 ++------------------------------------- recipes/trust4/meta.yaml | 6 +- 2 files changed, 24 insertions(+), 677 deletions(-) diff --git a/recipes/trust4/LICENSE b/recipes/trust4/LICENSE index 94a9ed024d385..fb405d128dc60 100644 --- a/recipes/trust4/LICENSE +++ b/recipes/trust4/LICENSE @@ -1,674 +1,21 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. +MIT License + +Copyright (c) 2018- Li Song, X. Shirley Liu + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/recipes/trust4/meta.yaml b/recipes/trust4/meta.yaml index 65f568b349e3e..9781bf90f5806 100644 --- a/recipes/trust4/meta.yaml +++ b/recipes/trust4/meta.yaml @@ -5,7 +5,7 @@ package: version: '{{ version }}' build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('trust4', max_pin="x") }} @@ -41,10 +41,10 @@ test: about: home: https://github.com/liulab-dfci/TRUST4 summary: TCR and BCR assembly from bulk or single-cell RNA-seq data - license: GPL-3.0-only - license_family: GPL3 + license: MIT license_file: LICENSE.txt extra: additional-platforms: - linux-aarch64 + - osx-arm64 From 3ee87788568d99645dbed1397e68d49af74f4995 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 3 Aug 2024 21:51:14 -0400 Subject: [PATCH 0754/1589] Update zol to 1.4.12 (#49784) --- recipes/zol/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/zol/meta.yaml b/recipes/zol/meta.yaml index b07a6bcdc5338..ac3066121d731 100644 --- a/recipes/zol/meta.yaml +++ b/recipes/zol/meta.yaml @@ -1,5 +1,5 @@ {% set name = "zol" %} -{% set version = "1.4.11" %} +{% set version = "1.4.12" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Kalan-Lab/zol/archive/refs/tags/v{{ version }}.tar.gz - sha256: 9e282d1255355e2c643d93f1748f028be862af6cc967de713ef61a4809cadca7 + sha256: cb02a98c7257a9d7ef089bc585637aa9ee5671c6b3a65dbaed6c0dd2331b651b build: number: 0 From b363d4144c5b39aa8c320b94f7b155c502b68033 Mon Sep 17 00:00:00 2001 From: Thom Griffioen Date: Sun, 4 Aug 2024 04:52:18 +0200 Subject: [PATCH 0755/1589] Update blast OSX and add ARM builds (#49443) * add ARM builds * [ci skip] add build failure record for recipe recipes/blast * Revert "[ci skip] add build failure record for recipe recipes/blast" This reverts commit bf11ecee7caac25a531d21ad3287bdfe4ecfcafd. * Disable all builds except osx-64 (for speedy testing) * Remove `epruesse` from maintainers, as requested See: https://github.com/bioconda/bioconda-recipes/pull/49338#issuecomment-2239731757 * Reformat ./configure flags * Remove C/C++ compiler version pin * Re-pin Clang to version 14 * Formatting and comments updates * Give make more jobs * Clang v15? * Drop `RspbProc` build due to Clang version incompatibility * Retry dynlibs for osx + reformatting * Re-enable linux * Remove `pcre` library * Comment updates * Preparation for osx-arm64 (not recognised otherwise) * Update patches get_species_taxids.sh patch was fixed in blast-2.11.0. Moved the build.sh patching to the patch file instead * Add rpsbproc to prevent downstream regression bugs * Metadata updates * Fix incorrectly removed run dep. * Re-add static linking for osx * Them pesky GNU vs BSD options --- recipes/blast/build.sh | 333 +-- recipes/blast/conda_build_config.yaml | 7 - recipes/blast/configurellvm.patch | 10 +- recipes/blast/get_species_taxids.patch | 21 +- recipes/blast/meta.yaml | 46 +- recipes/blast/normbase.patch | 8 - recipes/blast/phonehome.patch | 1 + recipes/blast/update_configsub.patch | 3207 ++++++++++++++++++++++++ 8 files changed, 3441 insertions(+), 192 deletions(-) delete mode 100644 recipes/blast/conda_build_config.yaml delete mode 100644 recipes/blast/normbase.patch create mode 100644 recipes/blast/update_configsub.patch diff --git a/recipes/blast/build.sh b/recipes/blast/build.sh index e15801465e2e3..b9e8a95bcc91f 100644 --- a/recipes/blast/build.sh +++ b/recipes/blast/build.sh @@ -1,167 +1,220 @@ -#!/bin/bash -set -euxo pipefail +#!/usr/bin/env bash -export BLAST_SRC_DIR="${SRC_DIR}/blast" -cd $BLAST_SRC_DIR/c++/ +set -o xtrace +set -o errexit +set -o nounset +set -o pipefail -export CFLAGS="$CFLAGS -O2" -export CXXFLAGS="$CXXFLAGS -O2" -export CPPFLAGS="$CPPFLAGS -I$PREFIX/include" -export LDFLAGS="$LDFLAGS -L$PREFIX/lib" -export CC_FOR_BUILD=$CC -if test x"`uname`" = x"Linux"; then - # only add things needed; not supported by OSX ld - LDFLAGS="$LDFLAGS -Wl,-as-needed" -fi +# Source path +BLAST_SRC_DIR="$SRC_DIR/c++" +# Work directory +RESULT_PATH="$BLAST_SRC_DIR/Release" -if [ `uname` == Darwin ]; then - export LDFLAGS="${LDFLAGS} -Wl,-rpath,$PREFIX/lib -lz -lbz2" - # See https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk for -D_LIBCPP_DISABLE_AVAILABILITY - export CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY" -else - export CPP_FOR_BUILD=$CPP +# C/C++ preprocessor header includes paths +export CPPFLAGS="$CPPFLAGS -I$PREFIX/include" +# Linker library paths +export LDFLAGS="$LDFLAGS -L$PREFIX/lib" +# C++ compiler flags +if [[ "$(uname)" = "Darwin" ]]; then + # See https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk for -D_LIBCPP_DISABLE_AVAILABILITY + export CXXFLAGS="$CXXFLAGS -D_LIBCPP_DISABLE_AVAILABILITY" fi -LIB_INSTALL_DIR=$PREFIX/lib/ncbi-blast+ - -# Get optional RpsbProc -# The rpsbproc command line utility is an addition to the standalone version of -# Reverse Position-Specific BLAST (RPS-BLAST), also known as CD-Search (Conserved -# Domain Search). -mkdir -p src/app/RpsbProc -cp -rf "${SRC_DIR}/RpsbProc/src/"* src/app/RpsbProc/ +LIB_INSTALL_DIR="$PREFIX/lib/ncbi-blast+" # Configuration synopsis: # https://ncbi.github.io/cxx-toolkit/pages/ch_config.html#ch_config.ch_configget_synopsi -# -# Description of used options (from ./configure --help): -# bin-release: +# Run `./configure --help` for all flags. +CONFIGURE_FLAGS="--with-build-root=$RESULT_PATH" + +# platform-independent flags +## BUILD CHAIN OPTIONS +# --with(out)-bin-release: # Build executables suitable for public release -# 64: -# Compile in 64-bit mode instead of 32-bit. -# mt: +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-bin-release" +# --with(out)-debug: +# Build non-debug versions of libs and apps. +# Strips -D_DEBUG and -g, engage -DNDEBUG and -O. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-debug" +# --with(out)-strip: +# Strip binaries at build time (remove debugging symbols) +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-strip" +# --with-experimental={ChaosMonkey,Int4GI,Int8GI,StrictGI,PSGLoader,BM64,C++20,C2X}: +# Enable named experimental feature (comma-separated list): +# - ChaosMonkey Enable "ChaosMonkey" failure testing. +# - Int4GI Use a simple 32-bit type for GI numbers. +# - Int8GI Use a simple 64-bit type for GI numbers. +# - StrictGI Use a strict 64-bit type for GI numbers. +# - PSGLoader Let the GenBank data loader use PubSeq Gateway (PSG). +# - BM64 Use 64-bit bitset indices. +# - C++20 Use '-std=gnu++20' compiler flag. +# - C2X Use '-std=gnu2x' compiler flag. +# See c++/src/build-system/configure.ac lines 1020:1068 for the named options. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-experimental=Int8GI" +# --with(out)-mt: # Compile in a multi-threading safe manner. -# dll: -# Use dynamic instead of static linking. -# openmp: -# Enable OpenMP extensions for all projects. -# autodep: -# No automatic dependency build (one time build). -# makefile-auto-update: -# No rebuild of makefile (one time build). -# flat-makefile: -# Use single makefile. -# caution: +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-mt" +# --with(out)-autodep: +# Do not automatically generate dependencies (one time build). +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-autodep" +# --with(out)-makefile-auto-update: +# Do not auto-update generated makefiles (one time build). +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-makefile-auto-update" +# --with(out)-flat-makefile: +# Generate an all-encompassing flat makefile. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-flat-makefile" +# --with(out)-caution: # Proceed configuration without asking when in doubt. -# lzo: -# Don't add lzo support (compression lib, req. lzo >2.x). -# runpath: -# Set runpath for installed $PREFIX location. -# hard-runpath: -# Hard-code runtime path, ignoring LD_LIBRARY_PATH (disallow LD_LIBRARY_PATH override on Linux). -# debug: -# Strip -D_DEBUG and -g, engage -DNDEBUG and -O. -# with-experimental=Int8GI: -# Enable named experimental feature: Int8GI (Use a simple 64-bit type for GI numbers). -# See c++/src/build-system/configure.ac lines 1020:1068 for the named options. -# strip: -# Strip binaries at build time (remove debugging symbols) -# vdb: -# Disable VDB/SRA toolkit. -# z: +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-caution" +# --with(out)-sse42 +# Disable SSE 4.2 when optimizing. +# Old CPU's (read: released befor 2012) may not have this instruction set. +# We can consider removing this, considering the NCBI builds enable this now. +# See: https://github.com/bioconda/bioconda-recipes/pull/17677 +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-sse42" + +## LIBRARIES +# --with(out)-pcre: +# Do not use pcre (Perl regex). +# The NCBI release builds also pass this. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-pcre" +# --with(out)-lzo: +# Do not add lzo support (compression lib, req. lzo >2.x). +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-lzo" +# --with(out)-vdb: +# Enable VDB/SRA toolkit. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-vdb=$PREFIX" +# --with(out)-z: # Set zlib path (compression lib). -# bz2: +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-z=$PREFIX" +# --with(out)-bz2: # Set bzlib path (compression lib). -# krb5: -# Disable kerberos (needed on OSX). -# gnutls: -# Disable gnutls. -# gcrypt: -# Disable gcrypt (needed on OSX). -# sse42 -# Don't enable SSE 4.2 when optimizing. -# pcre: -# Disable pcre (Perl regex). +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-bz2=$PREFIX" +# --with(out)-sqlite3: +# Set sqlite3 path (local database lib). +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-sqlite3=$PREFIX" +# --with(out)-krb5: +# Do not use Kerberos 5. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-krb5" +# --with(out)-gnutls: +# Do not use gnutls. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-gnutls" +# --with(out)-boost: +# Do not use Boost. +# It tries to search for it and prints some warnings, so might as well tell it beforehand. +# See: https://github.com/bioconda/bioconda-recipes/pull/15754 +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-boost" + +# platform-specific flags +if [[ "$(uname)" = "Linux" ]]; then + # --with(out)-64: + # Compile in 64-bit mode instead of 32-bit. + # Flag not available for osx build. + CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-64" + # --with(out)-openmp: + # Enable OpenMP extensions for all projects. + CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-openmp" + + ## LINKING + # Dynamically link libraries + # --with(out)-dll: + # Use dynamic instead of static library linking. + CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-dll" + # --with(out)-runpath: + # Set runpath for installed $PREFIX location. + # Needed for --with-dll. + CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-runpath=$LIB_INSTALL_DIR" + # --with(out)-hard-runpath: + # Hard-code runtime path, ignoring LD_LIBRARY_PATH + # (disallow LD_LIBRARY_PATH override on Linux). + CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-hard-runpath" +else + # --with(out)-openmp: + # Disable OpenMP extensions for all projects. + # Does not work without hacks for OSX + # See: https://github.com/bioconda/bioconda-recipes/pull/40555 + CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-openmp" + # --with(out)-gcrypt: + # Do not use gcrypt (needed on OSX). + CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-gcrypt" + # --with(out)-zstd: + # Do not use Zstandard. + CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-zstd" + + ## LINKING + # Build statically linked programs. For some reason it raises segfaults during compilation on + # osx-64 when trying a dynamically linked build. + # --with-static --with(out)-dll: + # Use static instead of dynamic library linking. + CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-static --without-dll" +fi # Fixes building on unix (linux and osx) export AR="${AR} rcs" -if [[ $(uname) = Linux ]] ; then - ./configure \ - --with-bin-release \ - --with-64 \ - --with-mt \ - --with-dll \ - --with-openmp \ - --without-autodep \ - --without-makefile-auto-update \ - --with-flat-makefile \ - --without-caution \ - --without-lzo \ - --with-hard-runpath \ - --with-runpath=$LIB_INSTALL_DIR \ - --without-debug \ - --with-experimental=Int8GI \ - --with-strip \ - --with-vdb=$PREFIX \ - --with-z=$PREFIX \ - --with-bz2=$PREFIX \ - --without-krb5 \ - --without-gnutls \ - --without-sse42 -else - ./configure \ - --with-bin-release \ - --with-mt \ - --without-openmp \ - --with-flat-makefile \ - --without-lzo \ - --without-zstd \ - --without-debug \ - --with-experimental=Int8GI \ - --with-strip \ - --with-vdb=$PREFIX \ - --with-z=$PREFIX \ - --with-bz2=$PREFIX \ - --without-krb5 \ - --without-gnutls \ - --without-sse42 \ - --without-gcrypt \ - --without-pcre -fi - -#list apps to build -apps="blastp.exe blastn.exe blastx.exe tblastn.exe tblastx.exe psiblast.exe" -apps="$apps rpsblast.exe rpstblastn.exe makembindex.exe segmasker.exe" -apps="$apps dustmasker.exe windowmasker.exe deltablast.exe makeblastdb.exe" -apps="$apps blastdbcmd.exe blastdb_aliastool.exe convert2blastmask.exe" -apps="$apps blastdbcheck.exe makeprofiledb.exe blast_formatter.exe rpsbproc.exe" -apps="$apps blastn_vdb.exe tblastn_vdb.exe" -cd ReleaseMT +# Run configure script +cd "$BLAST_SRC_DIR" +./configure.orig $CONFIGURE_FLAGS >&2 + + +# Run GNU Make +# List of apps to build +apps="\ +blast_formatter.exe \ +blastdb_aliastool.exe \ +blastdbcheck.exe \ +blastdbcmd.exe \ +blastn_vdb.exe \ +blastn.exe \ +blastp.exe \ +blastx.exe \ +convert2blastmask.exe \ +deltablast.exe \ +dustmasker.exe \ +makeblastdb.exe \ +makembindex.exe \ +makeprofiledb.exe \ +psiblast.exe \ +rpsblast.exe \ +rpstblastn.exe \ +segmasker.exe \ +tblastn_vdb.exe \ +tblastn.exe \ +tblastx.exe \ +windowmasker.exe \ +" # The "datatool" binary needs the libs at build time, create # link from final install path to lib build dir: -ln -s $BLAST_SRC_DIR/c++/ReleaseMT/lib $LIB_INSTALL_DIR +ln -s "$RESULT_PATH/lib" "$LIB_INSTALL_DIR" -cd build -echo "RUNNING MAKE" -#make -j${CPU_COUNT} -f Makefile.flat $apps -make -j1 -f Makefile.flat $apps +cd "$RESULT_PATH/build" +echo "RUNNING MAKE" >&2 +make -j1 -f Makefile.flat $apps >&2 # remove temporary link -rm $LIB_INSTALL_DIR - -mkdir -p $PREFIX/bin $LIB_INSTALL_DIR -chmod +x $BLAST_SRC_DIR/c++/ReleaseMT/bin/* -cp $BLAST_SRC_DIR/c++/ReleaseMT/bin/* $PREFIX/bin/ -cp $BLAST_SRC_DIR/c++/ReleaseMT/lib/* $LIB_INSTALL_DIR +rm "$LIB_INSTALL_DIR" + +# Copy compiled binaries to the Conda $PREFIX +mkdir -p "$PREFIX/bin" +chmod +x "$RESULT_PATH/bin/"* +cp "$RESULT_PATH/bin/"* "$PREFIX/bin/" +# Copy compiled libraries to the Conda $PREFIX +if [[ "$(uname)" = "Linux" ]]; then + # Not necessary for osx as that is statically linked + mkdir -p "$LIB_INSTALL_DIR" + cp "$RESULT_PATH/lib/"* "$LIB_INSTALL_DIR" +fi -#chmod +x $PREFIX/bin/* -sed -i.bak '1 s|^.*$|#!/usr/bin/env perl|g' $PREFIX/bin/update_blastdb.pl -# Patches to enable this script to work better in bioconda -sed -i.bak 's/mktemp.*/mktemp`/; s/exit 1/exit 0/; s/^export PATH=\/bin:\/usr\/bin:/\#export PATH=\/bin:\/usr\/bin:/g' $PREFIX/bin/get_species_taxids.sh +# Patch Perl shebangs +sed -i.bak '1 s|^.*$|#!/usr/bin/env perl|g' "$PREFIX/bin/update_blastdb.pl" +sed -i.bak '1 s|^.*$|#!/usr/bin/env perl|g' "$PREFIX/bin/legacy_blast.pl" +# Patch Python2 shebangs +sed -i.bak '1 s|^.*$|#!/usr/bin/env python|g' "$PREFIX/bin/windowmasker_2.2.22_adapter.py" +# remove the sed backup files +rm -f -v "$PREFIX/bin/"*.bak -#extra log to check all exe are present -ls -s $PREFIX/bin/ +# Extra log to check results +ls -lhAF "$PREFIX/bin/" diff --git a/recipes/blast/conda_build_config.yaml b/recipes/blast/conda_build_config.yaml deleted file mode 100644 index 1271f9dfbd295..0000000000000 --- a/recipes/blast/conda_build_config.yaml +++ /dev/null @@ -1,7 +0,0 @@ -# current version does not build with newer compilers -cxx_compiler_version: - - 10 # [linux] - - 14 # [osx] -c_compiler_version: - - 10 # [linux] - - 14 # [osx] diff --git a/recipes/blast/configurellvm.patch b/recipes/blast/configurellvm.patch index 83a44bc1372b2..4c84df2bc1e22 100644 --- a/recipes/blast/configurellvm.patch +++ b/recipes/blast/configurellvm.patch @@ -1,5 +1,5 @@ -# fix OSX build issue -# see issue #20874 for more info +# Fix OSX build issue. +# See: https://github.com/bioconda/bioconda-recipes/pull/20874 diff -ruN c++/src/build-system/configure c++/src/build-system/configure --- c++/src/build-system/configure 2023-05-03 08:56:44.398601956 +0200 +++ c++/src/build-system/configure 2023-05-03 09:34:41.470127549 +0200 @@ -24,14 +24,14 @@ diff -ruN c++/src/build-system/configure c++/src/build-system/configure fi -rm -f conftest* +rm -rf conftest* - + fi - + @@ -10000,7 +10002,7 @@ else ac_cv_header_stdc=no fi -rm -f conftest* +rm -rf conftest* - + fi diff --git a/recipes/blast/get_species_taxids.patch b/recipes/blast/get_species_taxids.patch index 1ec9d347aa21a..1da3879cd2470 100644 --- a/recipes/blast/get_species_taxids.patch +++ b/recipes/blast/get_species_taxids.patch @@ -1,14 +1,11 @@ -# fix single line json output of esummary which makes -# subsequent calls fail (grep -v will just remove everything) -diff -ruN c++/src/app/blast/get_species_taxids.sh c++/src/app/blast/get_species_taxids.sh ---- c++/src/app/blast/get_species_taxids.sh 2021-05-19 15:54:06.000000000 +0200 -+++ c++/src/app/blast/get_species_taxids.sh 2021-07-13 10:23:40.000000000 +0200 -@@ -135,7 +135,7 @@ - fi - fi +# The PATH override will do more harm than good +--- c++/src/app/blast/get_species_taxids.sh ++++ c++/src/app/blast/get_species_taxids.sh +@@ -34,7 +34,6 @@ + # + # =========================================================================== -- esummary -mode json < $OUTPUT > $TMP -+ esummary -mode json < $OUTPUT | sed 's/{/{\n/g; s/,/,\n/g; s/}/}\n/g' > $TMP +-export PATH=/bin:/usr/bin:/am/ncbiapdata/bin:$HOME/edirect:$PATH + set -uo pipefail - if [ $? -ne 0 ]; then - error_exit "esummary error" $? + TOO_MANY_MATCHES=500 diff --git a/recipes/blast/meta.yaml b/recipes/blast/meta.yaml index 69232e668d399..a637fdd91d09e 100644 --- a/recipes/blast/meta.yaml +++ b/recipes/blast/meta.yaml @@ -9,24 +9,14 @@ package: source: - url: https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/{{ version }}/ncbi-blast-{{ version }}+-src.tar.gz sha256: {{ sha256 }} - folder: blast patches: - configurellvm.patch - get_species_taxids.patch - phonehome.patch - # Get optional RpsbProc - # The rpsbproc command line utility is an addition to the standalone version of - # Reverse Position-Specific BLAST (RPS-BLAST), also known as CD-Search (Conserved - # Domain Search). - - url: https://ftp.ncbi.nih.gov/pub/mmdb/cdd/rpsbproc/RpsbProc-src.tar.gz - sha256: 8b29f7e7d0a0654d10943e362557ed2d8df9a16218a4c8441c4dea4e7dc9154f - folder: RpsbProc - patches: - - normbase.patch + - update_configsub.patch build: - skip: True # [osx] - number: 0 + number: 1 run_exports: # Now, the point releases seem to be only bugfixes at least (but this definitely was not the # case up to v2.2.31) @@ -40,7 +30,6 @@ requirements: host: - zlib - bzip2 - - pcre - entrez-direct - ncbi-vdb - curl @@ -48,7 +37,6 @@ requirements: run: - zlib - bzip2 - - pcre - perl - perl-list-moreutils - perl-archive-tar @@ -56,6 +44,9 @@ requirements: - entrez-direct - ncbi-vdb - curl + # Added to prevent regression bugs within 2.16.0. + # Remove on next release + - rpsbproc test: files: @@ -63,9 +54,6 @@ test: - testdatabase.fa commands: # (see run_test.sh for remainder of tests) - - blastn -help - - blastp -help - - makeblastdb -help - blastdb_aliastool -version > /dev/null - blastdbcheck -version > /dev/null - blastdbcmd -version > /dev/null @@ -80,7 +68,6 @@ test: - psiblast -version > /dev/null - rpsblast -version > /dev/null - rpstblastn -version > /dev/null - - rpsbproc -version > /dev/null - segmasker -version > /dev/null - tblastn -version > /dev/null - tblastn_vdb -version > /dev/null @@ -91,10 +78,30 @@ test: about: home: https://blast.ncbi.nlm.nih.gov/doc/blast-help/ - license: Public Domain + # SPDX license ID for NCBI Public Domain + license: NCBI-PD + license_file: c++/scripts/projects/blast/LICENSE summary: BLAST+ is a new suite of BLAST tools that utilizes the NCBI C++ Toolkit. + description: | + BLAST Command Line Applications. + + The NCBI Basic Local Alignment Search Tool (BLAST) finds regions of + local similarity between sequences. The program compares nucleotide or + protein sequences to sequence databases and calculates the statistical + significance of matches. BLAST can be used to infer functional and + evolutionary relationships between sequences as well as help identify + members of gene families. + + For more information, visit https://blast.ncbi.nlm.nih.gov + extra: + # this can be enabled once: + # perl-list-moreutils-xs, perl-io-compress + # have ARM builds available + #additional-platforms: + # - linux-aarch64 + # - osx-arm64 identifiers: - biotools:blast - doi:10.1016/S0022-2836(05)80360-2 @@ -102,4 +109,3 @@ extra: recipe-maintainers: - christiam - ebete - - epruesse diff --git a/recipes/blast/normbase.patch b/recipes/blast/normbase.patch deleted file mode 100644 index 78183e1d88122..0000000000000 --- a/recipes/blast/normbase.patch +++ /dev/null @@ -1,8 +0,0 @@ ---- src/common/normbase.hpp -+++ src/common/normbase.hpp -@@ -142,7 +142,7 @@ private: - - std::ostream & operator << (std::ostream &os, const CSimpleException &e); - --#define THROW_SIMPLE(a) throw CSimpleException(__FILE__, __LINE__, dynamic_cast (stringstream() << a)) -+#define THROW_SIMPLE(a) throw CSimpleException(__FILE__, __LINE__, static_cast (stringstream() << a)) diff --git a/recipes/blast/phonehome.patch b/recipes/blast/phonehome.patch index a02e55a0ad186..6fbf6e0326150 100644 --- a/recipes/blast/phonehome.patch +++ b/recipes/blast/phonehome.patch @@ -1,3 +1,4 @@ +# See: https://github.com/bioconda/bioconda-recipes/pull/32791 --- c++/include/connect/ncbi_usage_report.hpp 2020-09-25 19:21:05 +0200 +++ c++/include/connect/ncbi_usage_report.hpp 2022-07-18 23:39:42 +0200 @@ -39,7 +39,7 @@ diff --git a/recipes/blast/update_configsub.patch b/recipes/blast/update_configsub.patch new file mode 100644 index 0000000000000..d4dfa0bd35e7d --- /dev/null +++ b/recipes/blast/update_configsub.patch @@ -0,0 +1,3207 @@ +# Update config.sub to a modern version that recognises osx-arm64 +--- c++/src/build-system/config.sub ++++ c++/src/build-system/config.sub +@@ -1,12 +1,14 @@ + #! /bin/sh + # Configuration validation subroutine script. +-# Copyright 1992-2013 Free Software Foundation, Inc. ++# Copyright 1992-2024 Free Software Foundation, Inc. + +-timestamp='2013-02-12' ++# shellcheck disable=SC2006,SC2268 # see below for rationale ++ ++timestamp='2024-01-01' + + # This file is free software; you can redistribute it and/or modify it + # under the terms of the GNU General Public License as published by +-# the Free Software Foundation; either version 3 of the License, or ++# the Free Software Foundation, either version 3 of the License, or + # (at your option) any later version. + # + # This program is distributed in the hope that it will be useful, but +@@ -15,7 +17,7 @@ timestamp='2013-02-12' + # General Public License for more details. + # + # You should have received a copy of the GNU General Public License +-# along with this program; if not, see . ++# along with this program; if not, see . + # + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a +@@ -25,7 +27,7 @@ timestamp='2013-02-12' + # of the GNU General Public License, version 3 ("GPLv3"). + + +-# Please send patches with a ChangeLog entry to config-patches@gnu.org. ++# Please send patches to . + # + # Configuration subroutine to validate and canonicalize a configuration type. + # Supply the specified configuration type as an argument. +@@ -33,7 +35,7 @@ timestamp='2013-02-12' + # Otherwise, we print the canonical config type on stdout and succeed. + + # You can get the latest version of this script from: +-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD ++# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub + + # This file is supposed to be the same for all GNU packages + # and recognize all the CPU types, system types and aliases +@@ -50,15 +52,21 @@ timestamp='2013-02-12' + # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM + # It is wrong to echo any other type of specification. + ++# The "shellcheck disable" line above the timestamp inhibits complaints ++# about features and limitations of the classic Bourne shell that were ++# superseded or lifted in POSIX. However, this script identifies a wide ++# variety of pre-POSIX systems that do not have POSIX shells at all, and ++# even some reasonably current systems (Solaris 10 as case-in-point) still ++# have a pre-POSIX /bin/sh. ++ + me=`echo "$0" | sed -e 's,.*/,,'` + + usage="\ +-Usage: $0 [OPTION] CPU-MFR-OPSYS +- $0 [OPTION] ALIAS ++Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + + Canonicalize a configuration name. + +-Operation modes: ++Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit +@@ -68,13 +76,13 @@ Report bugs and patches to ." + version="\ + GNU config.sub ($timestamp) + +-Copyright 1992-2013 Free Software Foundation, Inc. ++Copyright 1992-2024 Free Software Foundation, Inc. + + This is free software; see the source for copying conditions. There is NO + warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + + help=" +-Try \`$me --help' for more information." ++Try '$me --help' for more information." + + # Parse command line + while test $# -gt 0 ; do +@@ -90,12 +98,12 @@ while test $# -gt 0 ; do + - ) # Use stdin as input. + break ;; + -* ) +- echo "$me: invalid option $1$help" ++ echo "$me: invalid option $1$help" >&2 + exit 1 ;; + + *local*) + # First pass through any local machine types. +- echo $1 ++ echo "$1" + exit ;; + + * ) +@@ -111,1209 +119,1167 @@ case $# in + exit 1;; + esac + +-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +-# Here we must recognize all the valid KERNEL-OS combinations. +-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +-case $maybe_os in +- nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ +- linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ +- knetbsd*-gnu* | netbsd*-gnu* | \ +- kopensolaris*-gnu* | \ +- storm-chaos* | os2-emx* | rtmk-nova*) +- os=-$maybe_os +- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` +- ;; +- android-linux) +- os=-linux-android +- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown +- ;; +- *) +- basic_machine=`echo $1 | sed 's/-[^-]*$//'` +- if [ $basic_machine != $1 ] +- then os=`echo $1 | sed 's/.*-/-/'` +- else os=; fi +- ;; +-esac ++# Split fields of configuration type ++# shellcheck disable=SC2162 ++saved_IFS=$IFS ++IFS="-" read field1 field2 field3 field4 <&2 ++ exit 1 + ;; +- -ptx*) +- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ++ *-*-*-*) ++ basic_machine=$field1-$field2 ++ basic_os=$field3-$field4 + ;; +- -windowsnt*) +- os=`echo $os | sed -e 's/windowsnt/winnt/'` ++ *-*-*) ++ # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two ++ # parts ++ maybe_os=$field2-$field3 ++ case $maybe_os in ++ nto-qnx* | linux-* | uclinux-uclibc* \ ++ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ ++ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ ++ | storm-chaos* | os2-emx* | rtmk-nova* | managarm-* \ ++ | windows-* ) ++ basic_machine=$field1 ++ basic_os=$maybe_os ++ ;; ++ android-linux) ++ basic_machine=$field1-unknown ++ basic_os=linux-android ++ ;; ++ *) ++ basic_machine=$field1-$field2 ++ basic_os=$field3 ++ ;; ++ esac + ;; +- -psos*) +- os=-psos ++ *-*) ++ # A lone config we happen to match not fitting any pattern ++ case $field1-$field2 in ++ decstation-3100) ++ basic_machine=mips-dec ++ basic_os= ++ ;; ++ *-*) ++ # Second component is usually, but not always the OS ++ case $field2 in ++ # Prevent following clause from handling this valid os ++ sun*os*) ++ basic_machine=$field1 ++ basic_os=$field2 ++ ;; ++ zephyr*) ++ basic_machine=$field1-unknown ++ basic_os=$field2 ++ ;; ++ # Manufacturers ++ dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ ++ | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ ++ | unicom* | ibm* | next | hp | isi* | apollo | altos* \ ++ | convergent* | ncr* | news | 32* | 3600* | 3100* \ ++ | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ ++ | ultra | tti* | harris | dolphin | highlevel | gould \ ++ | cbm | ns | masscomp | apple | axis | knuth | cray \ ++ | microblaze* | sim | cisco \ ++ | oki | wec | wrs | winbond) ++ basic_machine=$field1-$field2 ++ basic_os= ++ ;; ++ *) ++ basic_machine=$field1 ++ basic_os=$field2 ++ ;; ++ esac ++ ;; ++ esac + ;; +- -mint | -mint[0-9]*) +- basic_machine=m68k-atari +- os=-mint ++ *) ++ # Convert single-component short-hands not valid as part of ++ # multi-component configurations. ++ case $field1 in ++ 386bsd) ++ basic_machine=i386-pc ++ basic_os=bsd ++ ;; ++ a29khif) ++ basic_machine=a29k-amd ++ basic_os=udi ++ ;; ++ adobe68k) ++ basic_machine=m68010-adobe ++ basic_os=scout ++ ;; ++ alliant) ++ basic_machine=fx80-alliant ++ basic_os= ++ ;; ++ altos | altos3068) ++ basic_machine=m68k-altos ++ basic_os= ++ ;; ++ am29k) ++ basic_machine=a29k-none ++ basic_os=bsd ++ ;; ++ amdahl) ++ basic_machine=580-amdahl ++ basic_os=sysv ++ ;; ++ amiga) ++ basic_machine=m68k-unknown ++ basic_os= ++ ;; ++ amigaos | amigados) ++ basic_machine=m68k-unknown ++ basic_os=amigaos ++ ;; ++ amigaunix | amix) ++ basic_machine=m68k-unknown ++ basic_os=sysv4 ++ ;; ++ apollo68) ++ basic_machine=m68k-apollo ++ basic_os=sysv ++ ;; ++ apollo68bsd) ++ basic_machine=m68k-apollo ++ basic_os=bsd ++ ;; ++ aros) ++ basic_machine=i386-pc ++ basic_os=aros ++ ;; ++ aux) ++ basic_machine=m68k-apple ++ basic_os=aux ++ ;; ++ balance) ++ basic_machine=ns32k-sequent ++ basic_os=dynix ++ ;; ++ blackfin) ++ basic_machine=bfin-unknown ++ basic_os=linux ++ ;; ++ cegcc) ++ basic_machine=arm-unknown ++ basic_os=cegcc ++ ;; ++ convex-c1) ++ basic_machine=c1-convex ++ basic_os=bsd ++ ;; ++ convex-c2) ++ basic_machine=c2-convex ++ basic_os=bsd ++ ;; ++ convex-c32) ++ basic_machine=c32-convex ++ basic_os=bsd ++ ;; ++ convex-c34) ++ basic_machine=c34-convex ++ basic_os=bsd ++ ;; ++ convex-c38) ++ basic_machine=c38-convex ++ basic_os=bsd ++ ;; ++ cray) ++ basic_machine=j90-cray ++ basic_os=unicos ++ ;; ++ crds | unos) ++ basic_machine=m68k-crds ++ basic_os= ++ ;; ++ da30) ++ basic_machine=m68k-da30 ++ basic_os= ++ ;; ++ decstation | pmax | pmin | dec3100 | decstatn) ++ basic_machine=mips-dec ++ basic_os= ++ ;; ++ delta88) ++ basic_machine=m88k-motorola ++ basic_os=sysv3 ++ ;; ++ dicos) ++ basic_machine=i686-pc ++ basic_os=dicos ++ ;; ++ djgpp) ++ basic_machine=i586-pc ++ basic_os=msdosdjgpp ++ ;; ++ ebmon29k) ++ basic_machine=a29k-amd ++ basic_os=ebmon ++ ;; ++ es1800 | OSE68k | ose68k | ose | OSE) ++ basic_machine=m68k-ericsson ++ basic_os=ose ++ ;; ++ gmicro) ++ basic_machine=tron-gmicro ++ basic_os=sysv ++ ;; ++ go32) ++ basic_machine=i386-pc ++ basic_os=go32 ++ ;; ++ h8300hms) ++ basic_machine=h8300-hitachi ++ basic_os=hms ++ ;; ++ h8300xray) ++ basic_machine=h8300-hitachi ++ basic_os=xray ++ ;; ++ h8500hms) ++ basic_machine=h8500-hitachi ++ basic_os=hms ++ ;; ++ harris) ++ basic_machine=m88k-harris ++ basic_os=sysv3 ++ ;; ++ hp300 | hp300hpux) ++ basic_machine=m68k-hp ++ basic_os=hpux ++ ;; ++ hp300bsd) ++ basic_machine=m68k-hp ++ basic_os=bsd ++ ;; ++ hppaosf) ++ basic_machine=hppa1.1-hp ++ basic_os=osf ++ ;; ++ hppro) ++ basic_machine=hppa1.1-hp ++ basic_os=proelf ++ ;; ++ i386mach) ++ basic_machine=i386-mach ++ basic_os=mach ++ ;; ++ isi68 | isi) ++ basic_machine=m68k-isi ++ basic_os=sysv ++ ;; ++ m68knommu) ++ basic_machine=m68k-unknown ++ basic_os=linux ++ ;; ++ magnum | m3230) ++ basic_machine=mips-mips ++ basic_os=sysv ++ ;; ++ merlin) ++ basic_machine=ns32k-utek ++ basic_os=sysv ++ ;; ++ mingw64) ++ basic_machine=x86_64-pc ++ basic_os=mingw64 ++ ;; ++ mingw32) ++ basic_machine=i686-pc ++ basic_os=mingw32 ++ ;; ++ mingw32ce) ++ basic_machine=arm-unknown ++ basic_os=mingw32ce ++ ;; ++ monitor) ++ basic_machine=m68k-rom68k ++ basic_os=coff ++ ;; ++ morphos) ++ basic_machine=powerpc-unknown ++ basic_os=morphos ++ ;; ++ moxiebox) ++ basic_machine=moxie-unknown ++ basic_os=moxiebox ++ ;; ++ msdos) ++ basic_machine=i386-pc ++ basic_os=msdos ++ ;; ++ msys) ++ basic_machine=i686-pc ++ basic_os=msys ++ ;; ++ mvs) ++ basic_machine=i370-ibm ++ basic_os=mvs ++ ;; ++ nacl) ++ basic_machine=le32-unknown ++ basic_os=nacl ++ ;; ++ ncr3000) ++ basic_machine=i486-ncr ++ basic_os=sysv4 ++ ;; ++ netbsd386) ++ basic_machine=i386-pc ++ basic_os=netbsd ++ ;; ++ netwinder) ++ basic_machine=armv4l-rebel ++ basic_os=linux ++ ;; ++ news | news700 | news800 | news900) ++ basic_machine=m68k-sony ++ basic_os=newsos ++ ;; ++ news1000) ++ basic_machine=m68030-sony ++ basic_os=newsos ++ ;; ++ necv70) ++ basic_machine=v70-nec ++ basic_os=sysv ++ ;; ++ nh3000) ++ basic_machine=m68k-harris ++ basic_os=cxux ++ ;; ++ nh[45]000) ++ basic_machine=m88k-harris ++ basic_os=cxux ++ ;; ++ nindy960) ++ basic_machine=i960-intel ++ basic_os=nindy ++ ;; ++ mon960) ++ basic_machine=i960-intel ++ basic_os=mon960 ++ ;; ++ nonstopux) ++ basic_machine=mips-compaq ++ basic_os=nonstopux ++ ;; ++ os400) ++ basic_machine=powerpc-ibm ++ basic_os=os400 ++ ;; ++ OSE68000 | ose68000) ++ basic_machine=m68000-ericsson ++ basic_os=ose ++ ;; ++ os68k) ++ basic_machine=m68k-none ++ basic_os=os68k ++ ;; ++ paragon) ++ basic_machine=i860-intel ++ basic_os=osf ++ ;; ++ parisc) ++ basic_machine=hppa-unknown ++ basic_os=linux ++ ;; ++ psp) ++ basic_machine=mipsallegrexel-sony ++ basic_os=psp ++ ;; ++ pw32) ++ basic_machine=i586-unknown ++ basic_os=pw32 ++ ;; ++ rdos | rdos64) ++ basic_machine=x86_64-pc ++ basic_os=rdos ++ ;; ++ rdos32) ++ basic_machine=i386-pc ++ basic_os=rdos ++ ;; ++ rom68k) ++ basic_machine=m68k-rom68k ++ basic_os=coff ++ ;; ++ sa29200) ++ basic_machine=a29k-amd ++ basic_os=udi ++ ;; ++ sei) ++ basic_machine=mips-sei ++ basic_os=seiux ++ ;; ++ sequent) ++ basic_machine=i386-sequent ++ basic_os= ++ ;; ++ sps7) ++ basic_machine=m68k-bull ++ basic_os=sysv2 ++ ;; ++ st2000) ++ basic_machine=m68k-tandem ++ basic_os= ++ ;; ++ stratus) ++ basic_machine=i860-stratus ++ basic_os=sysv4 ++ ;; ++ sun2) ++ basic_machine=m68000-sun ++ basic_os= ++ ;; ++ sun2os3) ++ basic_machine=m68000-sun ++ basic_os=sunos3 ++ ;; ++ sun2os4) ++ basic_machine=m68000-sun ++ basic_os=sunos4 ++ ;; ++ sun3) ++ basic_machine=m68k-sun ++ basic_os= ++ ;; ++ sun3os3) ++ basic_machine=m68k-sun ++ basic_os=sunos3 ++ ;; ++ sun3os4) ++ basic_machine=m68k-sun ++ basic_os=sunos4 ++ ;; ++ sun4) ++ basic_machine=sparc-sun ++ basic_os= ++ ;; ++ sun4os3) ++ basic_machine=sparc-sun ++ basic_os=sunos3 ++ ;; ++ sun4os4) ++ basic_machine=sparc-sun ++ basic_os=sunos4 ++ ;; ++ sun4sol2) ++ basic_machine=sparc-sun ++ basic_os=solaris2 ++ ;; ++ sun386 | sun386i | roadrunner) ++ basic_machine=i386-sun ++ basic_os= ++ ;; ++ sv1) ++ basic_machine=sv1-cray ++ basic_os=unicos ++ ;; ++ symmetry) ++ basic_machine=i386-sequent ++ basic_os=dynix ++ ;; ++ t3e) ++ basic_machine=alphaev5-cray ++ basic_os=unicos ++ ;; ++ t90) ++ basic_machine=t90-cray ++ basic_os=unicos ++ ;; ++ toad1) ++ basic_machine=pdp10-xkl ++ basic_os=tops20 ++ ;; ++ tpf) ++ basic_machine=s390x-ibm ++ basic_os=tpf ++ ;; ++ udi29k) ++ basic_machine=a29k-amd ++ basic_os=udi ++ ;; ++ ultra3) ++ basic_machine=a29k-nyu ++ basic_os=sym1 ++ ;; ++ v810 | necv810) ++ basic_machine=v810-nec ++ basic_os=none ++ ;; ++ vaxv) ++ basic_machine=vax-dec ++ basic_os=sysv ++ ;; ++ vms) ++ basic_machine=vax-dec ++ basic_os=vms ++ ;; ++ vsta) ++ basic_machine=i386-pc ++ basic_os=vsta ++ ;; ++ vxworks960) ++ basic_machine=i960-wrs ++ basic_os=vxworks ++ ;; ++ vxworks68) ++ basic_machine=m68k-wrs ++ basic_os=vxworks ++ ;; ++ vxworks29k) ++ basic_machine=a29k-wrs ++ basic_os=vxworks ++ ;; ++ xbox) ++ basic_machine=i686-pc ++ basic_os=mingw32 ++ ;; ++ ymp) ++ basic_machine=ymp-cray ++ basic_os=unicos ++ ;; ++ *) ++ basic_machine=$1 ++ basic_os= ++ ;; ++ esac + ;; + esac + +-# Decode aliases for certain CPU-COMPANY combinations. ++# Decode 1-component or ad-hoc basic machines + case $basic_machine in +- # Recognize the basic CPU types without company name. +- # Some are omitted here because they have special meanings below. +- 1750a | 580 \ +- | a29k \ +- | aarch64 | aarch64_be \ +- | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ +- | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ +- | am33_2.0 \ +- | arc \ +- | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ +- | avr | avr32 \ +- | be32 | be64 \ +- | bfin \ +- | c4x | clipper \ +- | d10v | d30v | dlx | dsp16xx \ +- | epiphany \ +- | fido | fr30 | frv \ +- | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ +- | hexagon \ +- | i370 | i860 | i960 | ia64 \ +- | ip2k | iq2000 \ +- | le32 | le64 \ +- | lm32 \ +- | m32c | m32r | m32rle | m68000 | m68k | m88k \ +- | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ +- | mips | mipsbe | mipseb | mipsel | mipsle \ +- | mips16 \ +- | mips64 | mips64el \ +- | mips64octeon | mips64octeonel \ +- | mips64orion | mips64orionel \ +- | mips64r5900 | mips64r5900el \ +- | mips64vr | mips64vrel \ +- | mips64vr4100 | mips64vr4100el \ +- | mips64vr4300 | mips64vr4300el \ +- | mips64vr5000 | mips64vr5000el \ +- | mips64vr5900 | mips64vr5900el \ +- | mipsisa32 | mipsisa32el \ +- | mipsisa32r2 | mipsisa32r2el \ +- | mipsisa64 | mipsisa64el \ +- | mipsisa64r2 | mipsisa64r2el \ +- | mipsisa64sb1 | mipsisa64sb1el \ +- | mipsisa64sr71k | mipsisa64sr71kel \ +- | mipsr5900 | mipsr5900el \ +- | mipstx39 | mipstx39el \ +- | mn10200 | mn10300 \ +- | moxie \ +- | mt \ +- | msp430 \ +- | nds32 | nds32le | nds32be \ +- | nios | nios2 | nios2eb | nios2el \ +- | ns16k | ns32k \ +- | open8 \ +- | or1k | or32 \ +- | pdp10 | pdp11 | pj | pjl \ +- | powerpc | powerpc64 | powerpc64le | powerpcle \ +- | pyramid \ +- | rl78 | rx \ +- | score \ +- | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ +- | sh64 | sh64le \ +- | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ +- | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ +- | spu \ +- | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ +- | ubicom32 \ +- | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ +- | we32k \ +- | x86 | xc16x | xstormy16 | xtensa \ +- | z8k | z80) +- basic_machine=$basic_machine-unknown +- ;; +- c54x) +- basic_machine=tic54x-unknown +- ;; +- c55x) +- basic_machine=tic55x-unknown +- ;; +- c6x) +- basic_machine=tic6x-unknown +- ;; +- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) +- basic_machine=$basic_machine-unknown +- os=-none +- ;; +- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) +- ;; +- ms1) +- basic_machine=mt-unknown ++ # Here we handle the default manufacturer of certain CPU types. It is in ++ # some cases the only manufacturer, in others, it is the most popular. ++ w89k) ++ cpu=hppa1.1 ++ vendor=winbond + ;; +- +- strongarm | thumb | xscale) +- basic_machine=arm-unknown ++ op50n) ++ cpu=hppa1.1 ++ vendor=oki + ;; +- xgate) +- basic_machine=$basic_machine-unknown +- os=-none ++ op60c) ++ cpu=hppa1.1 ++ vendor=oki + ;; +- xscaleeb) +- basic_machine=armeb-unknown ++ ibm*) ++ cpu=i370 ++ vendor=ibm + ;; +- +- xscaleel) +- basic_machine=armel-unknown ++ orion105) ++ cpu=clipper ++ vendor=highlevel + ;; +- +- # We use `pc' rather than `unknown' +- # because (1) that's what they normally are, and +- # (2) the word "unknown" tends to confuse beginning users. +- i*86 | x86_64) +- basic_machine=$basic_machine-pc +- ;; +- # Object if more than one company name word. +- *-*-*) +- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 +- exit 1 ++ mac | mpw | mac-mpw) ++ cpu=m68k ++ vendor=apple + ;; +- # Recognize the basic CPU types with company name. +- 580-* \ +- | a29k-* \ +- | aarch64-* | aarch64_be-* \ +- | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ +- | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ +- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ +- | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ +- | avr-* | avr32-* \ +- | be32-* | be64-* \ +- | bfin-* | bs2000-* \ +- | c[123]* | c30-* | [cjt]90-* | c4x-* \ +- | clipper-* | craynv-* | cydra-* \ +- | d10v-* | d30v-* | dlx-* \ +- | elxsi-* \ +- | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ +- | h8300-* | h8500-* \ +- | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ +- | hexagon-* \ +- | i*86-* | i860-* | i960-* | ia64-* \ +- | ip2k-* | iq2000-* \ +- | le32-* | le64-* \ +- | lm32-* \ +- | m32c-* | m32r-* | m32rle-* \ +- | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ +- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ +- | microblaze-* | microblazeel-* \ +- | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ +- | mips16-* \ +- | mips64-* | mips64el-* \ +- | mips64octeon-* | mips64octeonel-* \ +- | mips64orion-* | mips64orionel-* \ +- | mips64r5900-* | mips64r5900el-* \ +- | mips64vr-* | mips64vrel-* \ +- | mips64vr4100-* | mips64vr4100el-* \ +- | mips64vr4300-* | mips64vr4300el-* \ +- | mips64vr5000-* | mips64vr5000el-* \ +- | mips64vr5900-* | mips64vr5900el-* \ +- | mipsisa32-* | mipsisa32el-* \ +- | mipsisa32r2-* | mipsisa32r2el-* \ +- | mipsisa64-* | mipsisa64el-* \ +- | mipsisa64r2-* | mipsisa64r2el-* \ +- | mipsisa64sb1-* | mipsisa64sb1el-* \ +- | mipsisa64sr71k-* | mipsisa64sr71kel-* \ +- | mipsr5900-* | mipsr5900el-* \ +- | mipstx39-* | mipstx39el-* \ +- | mmix-* \ +- | mt-* \ +- | msp430-* \ +- | nds32-* | nds32le-* | nds32be-* \ +- | nios-* | nios2-* | nios2eb-* | nios2el-* \ +- | none-* | np1-* | ns16k-* | ns32k-* \ +- | open8-* \ +- | orion-* \ +- | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ +- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ +- | pyramid-* \ +- | rl78-* | romp-* | rs6000-* | rx-* \ +- | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ +- | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ +- | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ +- | sparclite-* \ +- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ +- | tahoe-* \ +- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ +- | tile*-* \ +- | tron-* \ +- | ubicom32-* \ +- | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ +- | vax-* \ +- | we32k-* \ +- | x86-* | x86_64-* | xc16x-* | xps100-* \ +- | xstormy16-* | xtensa*-* \ +- | ymp-* \ +- | z8k-* | z80-*) +- ;; +- # Recognize the basic CPU types without company name, with glob match. +- xtensa*) +- basic_machine=$basic_machine-unknown ++ pmac | pmac-mpw) ++ cpu=powerpc ++ vendor=apple + ;; ++ + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. +- 386bsd) +- basic_machine=i386-unknown +- os=-bsd +- ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) +- basic_machine=m68000-att ++ cpu=m68000 ++ vendor=att + ;; + 3b*) +- basic_machine=we32k-att +- ;; +- a29khif) +- basic_machine=a29k-amd +- os=-udi +- ;; +- abacus) +- basic_machine=abacus-unknown +- ;; +- adobe68k) +- basic_machine=m68010-adobe +- os=-scout +- ;; +- alliant | fx80) +- basic_machine=fx80-alliant +- ;; +- altos | altos3068) +- basic_machine=m68k-altos +- ;; +- am29k) +- basic_machine=a29k-none +- os=-bsd +- ;; +- amd64) +- basic_machine=x86_64-pc +- ;; +- amd64-*) +- basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- amdahl) +- basic_machine=580-amdahl +- os=-sysv +- ;; +- amiga | amiga-*) +- basic_machine=m68k-unknown +- ;; +- amigaos | amigados) +- basic_machine=m68k-unknown +- os=-amigaos +- ;; +- amigaunix | amix) +- basic_machine=m68k-unknown +- os=-sysv4 +- ;; +- apollo68) +- basic_machine=m68k-apollo +- os=-sysv +- ;; +- apollo68bsd) +- basic_machine=m68k-apollo +- os=-bsd +- ;; +- aros) +- basic_machine=i386-pc +- os=-aros +- ;; +- aux) +- basic_machine=m68k-apple +- os=-aux +- ;; +- balance) +- basic_machine=ns32k-sequent +- os=-dynix +- ;; +- blackfin) +- basic_machine=bfin-unknown +- os=-linux +- ;; +- blackfin-*) +- basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` +- os=-linux ++ cpu=we32k ++ vendor=att + ;; + bluegene*) +- basic_machine=powerpc-ibm +- os=-cnk +- ;; +- c54x-*) +- basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- c55x-*) +- basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- c6x-*) +- basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- c90) +- basic_machine=c90-cray +- os=-unicos +- ;; +- cegcc) +- basic_machine=arm-unknown +- os=-cegcc +- ;; +- convex-c1) +- basic_machine=c1-convex +- os=-bsd +- ;; +- convex-c2) +- basic_machine=c2-convex +- os=-bsd +- ;; +- convex-c32) +- basic_machine=c32-convex +- os=-bsd +- ;; +- convex-c34) +- basic_machine=c34-convex +- os=-bsd +- ;; +- convex-c38) +- basic_machine=c38-convex +- os=-bsd +- ;; +- cray | j90) +- basic_machine=j90-cray +- os=-unicos +- ;; +- craynv) +- basic_machine=craynv-cray +- os=-unicosmp +- ;; +- cr16 | cr16-*) +- basic_machine=cr16-unknown +- os=-elf +- ;; +- crds | unos) +- basic_machine=m68k-crds +- ;; +- crisv32 | crisv32-* | etraxfs*) +- basic_machine=crisv32-axis +- ;; +- cris | cris-* | etrax*) +- basic_machine=cris-axis +- ;; +- crx) +- basic_machine=crx-unknown +- os=-elf +- ;; +- da30 | da30-*) +- basic_machine=m68k-da30 +- ;; +- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) +- basic_machine=mips-dec ++ cpu=powerpc ++ vendor=ibm ++ basic_os=cnk + ;; + decsystem10* | dec10*) +- basic_machine=pdp10-dec +- os=-tops10 ++ cpu=pdp10 ++ vendor=dec ++ basic_os=tops10 + ;; + decsystem20* | dec20*) +- basic_machine=pdp10-dec +- os=-tops20 ++ cpu=pdp10 ++ vendor=dec ++ basic_os=tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) +- basic_machine=m68k-motorola +- ;; +- delta88) +- basic_machine=m88k-motorola +- os=-sysv3 ++ cpu=m68k ++ vendor=motorola + ;; +- dicos) +- basic_machine=i686-pc +- os=-dicos +- ;; +- djgpp) +- basic_machine=i586-pc +- os=-msdosdjgpp +- ;; +- dpx20 | dpx20-*) +- basic_machine=rs6000-bull +- os=-bosx +- ;; +- dpx2* | dpx2*-bull) +- basic_machine=m68k-bull +- os=-sysv3 +- ;; +- ebmon29k) +- basic_machine=a29k-amd +- os=-ebmon +- ;; +- elxsi) +- basic_machine=elxsi-elxsi +- os=-bsd ++ dpx2*) ++ cpu=m68k ++ vendor=bull ++ basic_os=sysv3 + ;; + encore | umax | mmax) +- basic_machine=ns32k-encore ++ cpu=ns32k ++ vendor=encore + ;; +- es1800 | OSE68k | ose68k | ose | OSE) +- basic_machine=m68k-ericsson +- os=-ose ++ elxsi) ++ cpu=elxsi ++ vendor=elxsi ++ basic_os=${basic_os:-bsd} + ;; + fx2800) +- basic_machine=i860-alliant ++ cpu=i860 ++ vendor=alliant + ;; + genix) +- basic_machine=ns32k-ns +- ;; +- gmicro) +- basic_machine=tron-gmicro +- os=-sysv +- ;; +- go32) +- basic_machine=i386-pc +- os=-go32 ++ cpu=ns32k ++ vendor=ns + ;; + h3050r* | hiux*) +- basic_machine=hppa1.1-hitachi +- os=-hiuxwe2 +- ;; +- h8300hms) +- basic_machine=h8300-hitachi +- os=-hms +- ;; +- h8300xray) +- basic_machine=h8300-hitachi +- os=-xray +- ;; +- h8500hms) +- basic_machine=h8500-hitachi +- os=-hms +- ;; +- harris) +- basic_machine=m88k-harris +- os=-sysv3 +- ;; +- hp300-*) +- basic_machine=m68k-hp +- ;; +- hp300bsd) +- basic_machine=m68k-hp +- os=-bsd +- ;; +- hp300hpux) +- basic_machine=m68k-hp +- os=-hpux ++ cpu=hppa1.1 ++ vendor=hitachi ++ basic_os=hiuxwe2 + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) +- basic_machine=hppa1.0-hp ++ cpu=hppa1.0 ++ vendor=hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) +- basic_machine=m68000-hp ++ cpu=m68000 ++ vendor=hp + ;; + hp9k3[2-9][0-9]) +- basic_machine=m68k-hp ++ cpu=m68k ++ vendor=hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) +- basic_machine=hppa1.0-hp ++ cpu=hppa1.0 ++ vendor=hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) +- basic_machine=hppa1.1-hp ++ cpu=hppa1.1 ++ vendor=hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp +- basic_machine=hppa1.1-hp ++ cpu=hppa1.1 ++ vendor=hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp +- basic_machine=hppa1.1-hp ++ cpu=hppa1.1 ++ vendor=hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) +- basic_machine=hppa1.1-hp ++ cpu=hppa1.1 ++ vendor=hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) +- basic_machine=hppa1.0-hp +- ;; +- hppa-next) +- os=-nextstep3 +- ;; +- hppaosf) +- basic_machine=hppa1.1-hp +- os=-osf +- ;; +- hppro) +- basic_machine=hppa1.1-hp +- os=-proelf +- ;; +- i370-ibm* | ibm*) +- basic_machine=i370-ibm ++ cpu=hppa1.0 ++ vendor=hp + ;; + i*86v32) +- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` +- os=-sysv32 ++ cpu=`echo "$1" | sed -e 's/86.*/86/'` ++ vendor=pc ++ basic_os=sysv32 + ;; + i*86v4*) +- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` +- os=-sysv4 ++ cpu=`echo "$1" | sed -e 's/86.*/86/'` ++ vendor=pc ++ basic_os=sysv4 + ;; + i*86v) +- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` +- os=-sysv ++ cpu=`echo "$1" | sed -e 's/86.*/86/'` ++ vendor=pc ++ basic_os=sysv + ;; + i*86sol2) +- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` +- os=-solaris2 +- ;; +- i386mach) +- basic_machine=i386-mach +- os=-mach ++ cpu=`echo "$1" | sed -e 's/86.*/86/'` ++ vendor=pc ++ basic_os=solaris2 + ;; +- i386-vsta | vsta) +- basic_machine=i386-unknown +- os=-vsta ++ j90 | j90-cray) ++ cpu=j90 ++ vendor=cray ++ basic_os=${basic_os:-unicos} + ;; + iris | iris4d) +- basic_machine=mips-sgi +- case $os in +- -irix*) ++ cpu=mips ++ vendor=sgi ++ case $basic_os in ++ irix*) + ;; + *) +- os=-irix4 ++ basic_os=irix4 + ;; + esac + ;; +- isi68 | isi) +- basic_machine=m68k-isi +- os=-sysv +- ;; +- m68knommu) +- basic_machine=m68k-unknown +- os=-linux +- ;; +- m68knommu-*) +- basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` +- os=-linux +- ;; +- m88k-omron*) +- basic_machine=m88k-omron +- ;; +- magnum | m3230) +- basic_machine=mips-mips +- os=-sysv +- ;; +- merlin) +- basic_machine=ns32k-utek +- os=-sysv +- ;; +- microblaze*) +- basic_machine=microblaze-xilinx +- ;; +- mingw64) +- basic_machine=x86_64-pc +- os=-mingw64 +- ;; +- mingw32) +- basic_machine=i386-pc +- os=-mingw32 +- ;; +- mingw32ce) +- basic_machine=arm-unknown +- os=-mingw32ce +- ;; + miniframe) +- basic_machine=m68000-convergent +- ;; +- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) +- basic_machine=m68k-atari +- os=-mint +- ;; +- mips3*-*) +- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` +- ;; +- mips3*) +- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown +- ;; +- monitor) +- basic_machine=m68k-rom68k +- os=-coff +- ;; +- morphos) +- basic_machine=powerpc-unknown +- os=-morphos +- ;; +- msdos) +- basic_machine=i386-pc +- os=-msdos +- ;; +- ms1-*) +- basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` +- ;; +- msys) +- basic_machine=i386-pc +- os=-msys +- ;; +- mvs) +- basic_machine=i370-ibm +- os=-mvs +- ;; +- nacl) +- basic_machine=le32-unknown +- os=-nacl +- ;; +- ncr3000) +- basic_machine=i486-ncr +- os=-sysv4 ++ cpu=m68000 ++ vendor=convergent + ;; +- netbsd386) +- basic_machine=i386-unknown +- os=-netbsd +- ;; +- netwinder) +- basic_machine=armv4l-rebel +- os=-linux +- ;; +- news | news700 | news800 | news900) +- basic_machine=m68k-sony +- os=-newsos +- ;; +- news1000) +- basic_machine=m68030-sony +- os=-newsos ++ *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) ++ cpu=m68k ++ vendor=atari ++ basic_os=mint + ;; + news-3600 | risc-news) +- basic_machine=mips-sony +- os=-newsos +- ;; +- necv70) +- basic_machine=v70-nec +- os=-sysv +- ;; +- next | m*-next ) +- basic_machine=m68k-next +- case $os in +- -nextstep* ) ++ cpu=mips ++ vendor=sony ++ basic_os=newsos ++ ;; ++ next | m*-next) ++ cpu=m68k ++ vendor=next ++ case $basic_os in ++ openstep*) ++ ;; ++ nextstep*) + ;; +- -ns2*) +- os=-nextstep2 ++ ns2*) ++ basic_os=nextstep2 + ;; + *) +- os=-nextstep3 ++ basic_os=nextstep3 + ;; + esac + ;; +- nh3000) +- basic_machine=m68k-harris +- os=-cxux +- ;; +- nh[45]000) +- basic_machine=m88k-harris +- os=-cxux +- ;; +- nindy960) +- basic_machine=i960-intel +- os=-nindy +- ;; +- mon960) +- basic_machine=i960-intel +- os=-mon960 +- ;; +- nonstopux) +- basic_machine=mips-compaq +- os=-nonstopux +- ;; + np1) +- basic_machine=np1-gould +- ;; +- neo-tandem) +- basic_machine=neo-tandem +- ;; +- nse-tandem) +- basic_machine=nse-tandem +- ;; +- nsr-tandem) +- basic_machine=nsr-tandem ++ cpu=np1 ++ vendor=gould + ;; + op50n-* | op60c-*) +- basic_machine=hppa1.1-oki +- os=-proelf +- ;; +- openrisc | openrisc-*) +- basic_machine=or32-unknown +- ;; +- os400) +- basic_machine=powerpc-ibm +- os=-os400 +- ;; +- OSE68000 | ose68000) +- basic_machine=m68000-ericsson +- os=-ose +- ;; +- os68k) +- basic_machine=m68k-none +- os=-os68k ++ cpu=hppa1.1 ++ vendor=oki ++ basic_os=proelf + ;; + pa-hitachi) +- basic_machine=hppa1.1-hitachi +- os=-hiuxwe2 +- ;; +- paragon) +- basic_machine=i860-intel +- os=-osf +- ;; +- parisc) +- basic_machine=hppa-unknown +- os=-linux +- ;; +- parisc-*) +- basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` +- os=-linux ++ cpu=hppa1.1 ++ vendor=hitachi ++ basic_os=hiuxwe2 + ;; + pbd) +- basic_machine=sparc-tti ++ cpu=sparc ++ vendor=tti + ;; + pbb) +- basic_machine=m68k-tti +- ;; +- pc532 | pc532-*) +- basic_machine=ns32k-pc532 +- ;; +- pc98) +- basic_machine=i386-pc +- ;; +- pc98-*) +- basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- pentium | p5 | k5 | k6 | nexgen | viac3) +- basic_machine=i586-pc ++ cpu=m68k ++ vendor=tti + ;; +- pentiumpro | p6 | 6x86 | athlon | athlon_*) +- basic_machine=i686-pc +- ;; +- pentiumii | pentium2 | pentiumiii | pentium3) +- basic_machine=i686-pc +- ;; +- pentium4) +- basic_machine=i786-pc +- ;; +- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) +- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- pentiumpro-* | p6-* | 6x86-* | athlon-*) +- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) +- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- pentium4-*) +- basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ++ pc532) ++ cpu=ns32k ++ vendor=pc532 + ;; + pn) +- basic_machine=pn-gould +- ;; +- power) basic_machine=power-ibm +- ;; +- ppc | ppcbe) basic_machine=powerpc-unknown +- ;; +- ppc-* | ppcbe-*) +- basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- ppcle | powerpclittle | ppc-le | powerpc-little) +- basic_machine=powerpcle-unknown +- ;; +- ppcle-* | powerpclittle-*) +- basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- ppc64) basic_machine=powerpc64-unknown +- ;; +- ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- ppc64le | powerpc64little | ppc64-le | powerpc64-little) +- basic_machine=powerpc64le-unknown ++ cpu=pn ++ vendor=gould + ;; +- ppc64le-* | powerpc64little-*) +- basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ++ power) ++ cpu=power ++ vendor=ibm + ;; + ps2) +- basic_machine=i386-ibm +- ;; +- pw32) +- basic_machine=i586-unknown +- os=-pw32 +- ;; +- rdos | rdos64) +- basic_machine=x86_64-pc +- os=-rdos +- ;; +- rdos32) +- basic_machine=i386-pc +- os=-rdos +- ;; +- rom68k) +- basic_machine=m68k-rom68k +- os=-coff ++ cpu=i386 ++ vendor=ibm + ;; + rm[46]00) +- basic_machine=mips-siemens ++ cpu=mips ++ vendor=siemens + ;; + rtpc | rtpc-*) +- basic_machine=romp-ibm +- ;; +- s390 | s390-*) +- basic_machine=s390-ibm +- ;; +- s390x | s390x-*) +- basic_machine=s390x-ibm +- ;; +- sa29200) +- basic_machine=a29k-amd +- os=-udi ++ cpu=romp ++ vendor=ibm + ;; +- sb1) +- basic_machine=mipsisa64sb1-unknown ++ sde) ++ cpu=mipsisa32 ++ vendor=sde ++ basic_os=${basic_os:-elf} + ;; +- sb1el) +- basic_machine=mipsisa64sb1el-unknown ++ simso-wrs) ++ cpu=sparclite ++ vendor=wrs ++ basic_os=vxworks + ;; +- sde) +- basic_machine=mipsisa32-sde +- os=-elf ++ tower | tower-32) ++ cpu=m68k ++ vendor=ncr + ;; +- sei) +- basic_machine=mips-sei +- os=-seiux ++ vpp*|vx|vx-*) ++ cpu=f301 ++ vendor=fujitsu + ;; +- sequent) +- basic_machine=i386-sequent ++ w65) ++ cpu=w65 ++ vendor=wdc + ;; +- sh) +- basic_machine=sh-hitachi +- os=-hms ++ w89k-*) ++ cpu=hppa1.1 ++ vendor=winbond ++ basic_os=proelf + ;; +- sh5el) +- basic_machine=sh5le-unknown ++ none) ++ cpu=none ++ vendor=none + ;; +- sh64) +- basic_machine=sh64-unknown ++ leon|leon[3-9]) ++ cpu=sparc ++ vendor=$basic_machine + ;; +- sparclite-wrs | simso-wrs) +- basic_machine=sparclite-wrs +- os=-vxworks ++ leon-*|leon[3-9]-*) ++ cpu=sparc ++ vendor=`echo "$basic_machine" | sed 's/-.*//'` + ;; +- sps7) +- basic_machine=m68k-bull +- os=-sysv2 ++ ++ *-*) ++ # shellcheck disable=SC2162 ++ saved_IFS=$IFS ++ IFS="-" read cpu vendor <&2 +- exit 1 ++ # Recognize the canonical CPU types that are allowed with any ++ # company name. ++ case $cpu in ++ 1750a | 580 \ ++ | a29k \ ++ | aarch64 | aarch64_be | aarch64c | arm64ec \ ++ | abacus \ ++ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ ++ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ ++ | alphapca5[67] | alpha64pca5[67] \ ++ | am33_2.0 \ ++ | amdgcn \ ++ | arc | arceb | arc32 | arc64 \ ++ | arm | arm[lb]e | arme[lb] | armv* \ ++ | avr | avr32 \ ++ | asmjs \ ++ | ba \ ++ | be32 | be64 \ ++ | bfin | bpf | bs2000 \ ++ | c[123]* | c30 | [cjt]90 | c4x \ ++ | c8051 | clipper | craynv | csky | cydra \ ++ | d10v | d30v | dlx | dsp16xx \ ++ | e2k | elxsi | epiphany \ ++ | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ ++ | javascript \ ++ | h8300 | h8500 \ ++ | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ ++ | hexagon \ ++ | i370 | i*86 | i860 | i960 | ia16 | ia64 \ ++ | ip2k | iq2000 \ ++ | k1om \ ++ | kvx \ ++ | le32 | le64 \ ++ | lm32 \ ++ | loongarch32 | loongarch64 \ ++ | m32c | m32r | m32rle \ ++ | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ ++ | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ ++ | m88110 | m88k | maxq | mb | mcore | mep | metag \ ++ | microblaze | microblazeel \ ++ | mips* \ ++ | mmix \ ++ | mn10200 | mn10300 \ ++ | moxie \ ++ | mt \ ++ | msp430 \ ++ | nanomips* \ ++ | nds32 | nds32le | nds32be \ ++ | nfp \ ++ | nios | nios2 | nios2eb | nios2el \ ++ | none | np1 | ns16k | ns32k | nvptx \ ++ | open8 \ ++ | or1k* \ ++ | or32 \ ++ | orion \ ++ | picochip \ ++ | pdp10 | pdp11 | pj | pjl | pn | power \ ++ | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ ++ | pru \ ++ | pyramid \ ++ | riscv | riscv32 | riscv32be | riscv64 | riscv64be \ ++ | rl78 | romp | rs6000 | rx \ ++ | s390 | s390x \ ++ | score \ ++ | sh | shl \ ++ | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ ++ | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ ++ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ ++ | sparclite \ ++ | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ ++ | spu \ ++ | tahoe \ ++ | thumbv7* \ ++ | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ ++ | tron \ ++ | ubicom32 \ ++ | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ ++ | vax \ ++ | vc4 \ ++ | visium \ ++ | w65 \ ++ | wasm32 | wasm64 \ ++ | we32k \ ++ | x86 | x86_64 | xc16x | xgate | xps100 \ ++ | xstormy16 | xtensa* \ ++ | ymp \ ++ | z8k | z80) ++ ;; ++ ++ *) ++ echo "Invalid configuration '$1': machine '$cpu-$vendor' not recognized" 1>&2 ++ exit 1 ++ ;; ++ esac + ;; + esac + + # Here we canonicalize certain aliases for manufacturers. +-case $basic_machine in +- *-digital*) +- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ++case $vendor in ++ digital*) ++ vendor=dec + ;; +- *-commodore*) +- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ++ commodore*) ++ vendor=cbm + ;; + *) + ;; +@@ -1321,200 +1287,226 @@ esac + + # Decode manufacturer-specific aliases for certain operating systems. + +-if [ x"$os" != x"" ] ++if test x"$basic_os" != x + then ++ ++# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just ++# set os. ++obj= ++case $basic_os in ++ gnu/linux*) ++ kernel=linux ++ os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` ++ ;; ++ os2-emx) ++ kernel=os2 ++ os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` ++ ;; ++ nto-qnx*) ++ kernel=nto ++ os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` ++ ;; ++ *-*) ++ # shellcheck disable=SC2162 ++ saved_IFS=$IFS ++ IFS="-" read kernel os <&2 +- exit 1 ++ # No normalization, but not necessarily accepted, that comes below. + ;; + esac ++ + else + + # Here we handle the default operating systems that come with various machines. +@@ -1527,261 +1519,452 @@ else + # will signal an error saying that MANUFACTURER isn't an operating + # system, and we'll never get to this point. + +-case $basic_machine in ++kernel= ++obj= ++case $cpu-$vendor in + score-*) +- os=-elf ++ os= ++ obj=elf + ;; + spu-*) +- os=-elf ++ os= ++ obj=elf + ;; + *-acorn) +- os=-riscix1.2 ++ os=riscix1.2 + ;; + arm*-rebel) +- os=-linux ++ kernel=linux ++ os=gnu + ;; + arm*-semi) +- os=-aout ++ os= ++ obj=aout + ;; + c4x-* | tic4x-*) +- os=-coff ++ os= ++ obj=coff ++ ;; ++ c8051-*) ++ os= ++ obj=elf ++ ;; ++ clipper-intergraph) ++ os=clix + ;; + hexagon-*) +- os=-elf ++ os= ++ obj=elf + ;; + tic54x-*) +- os=-coff ++ os= ++ obj=coff + ;; + tic55x-*) +- os=-coff ++ os= ++ obj=coff + ;; + tic6x-*) +- os=-coff ++ os= ++ obj=coff + ;; + # This must come before the *-dec entry. + pdp10-*) +- os=-tops20 ++ os=tops20 + ;; + pdp11-*) +- os=-none ++ os=none + ;; + *-dec | vax-*) +- os=-ultrix4.2 ++ os=ultrix4.2 + ;; + m68*-apollo) +- os=-domain ++ os=domain + ;; + i386-sun) +- os=-sunos4.0.2 ++ os=sunos4.0.2 + ;; + m68000-sun) +- os=-sunos3 ++ os=sunos3 + ;; + m68*-cisco) +- os=-aout ++ os= ++ obj=aout + ;; + mep-*) +- os=-elf ++ os= ++ obj=elf + ;; + mips*-cisco) +- os=-elf +- ;; +- mips*-*) +- os=-elf ++ os= ++ obj=elf + ;; +- or1k-*) +- os=-elf ++ mips*-*|nanomips*-*) ++ os= ++ obj=elf + ;; + or32-*) +- os=-coff ++ os= ++ obj=coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. +- os=-sysv3 ++ os=sysv3 + ;; + sparc-* | *-sun) +- os=-sunos4.1.1 ++ os=sunos4.1.1 + ;; +- *-be) +- os=-beos ++ pru-*) ++ os= ++ obj=elf + ;; +- *-haiku) +- os=-haiku ++ *-be) ++ os=beos + ;; + *-ibm) +- os=-aix ++ os=aix + ;; + *-knuth) +- os=-mmixware ++ os=mmixware + ;; + *-wec) +- os=-proelf ++ os=proelf + ;; + *-winbond) +- os=-proelf ++ os=proelf + ;; + *-oki) +- os=-proelf ++ os=proelf + ;; + *-hp) +- os=-hpux ++ os=hpux + ;; + *-hitachi) +- os=-hiux ++ os=hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) +- os=-sysv ++ os=sysv + ;; + *-cbm) +- os=-amigaos ++ os=amigaos + ;; + *-dg) +- os=-dgux ++ os=dgux + ;; + *-dolphin) +- os=-sysv3 ++ os=sysv3 + ;; + m68k-ccur) +- os=-rtu ++ os=rtu + ;; + m88k-omron*) +- os=-luna ++ os=luna + ;; +- *-next ) +- os=-nextstep ++ *-next) ++ os=nextstep + ;; + *-sequent) +- os=-ptx ++ os=ptx + ;; + *-crds) +- os=-unos ++ os=unos + ;; + *-ns) +- os=-genix ++ os=genix + ;; + i370-*) +- os=-mvs +- ;; +- *-next) +- os=-nextstep3 ++ os=mvs + ;; + *-gould) +- os=-sysv ++ os=sysv + ;; + *-highlevel) +- os=-bsd ++ os=bsd + ;; + *-encore) +- os=-bsd ++ os=bsd + ;; + *-sgi) +- os=-irix ++ os=irix + ;; + *-siemens) +- os=-sysv4 ++ os=sysv4 + ;; + *-masscomp) +- os=-rtu ++ os=rtu + ;; + f30[01]-fujitsu | f700-fujitsu) +- os=-uxpv ++ os=uxpv + ;; + *-rom68k) +- os=-coff ++ os= ++ obj=coff + ;; + *-*bug) +- os=-coff ++ os= ++ obj=coff + ;; + *-apple) +- os=-macos ++ os=macos + ;; + *-atari*) +- os=-mint ++ os=mint ++ ;; ++ *-wrs) ++ os=vxworks + ;; + *) +- os=-none ++ os=none + ;; + esac ++ + fi + ++# Now, validate our (potentially fixed-up) individual pieces (OS, OBJ). ++ ++case $os in ++ # Sometimes we do "kernel-libc", so those need to count as OSes. ++ llvm* | musl* | newlib* | relibc* | uclibc*) ++ ;; ++ # Likewise for "kernel-abi" ++ eabi* | gnueabi*) ++ ;; ++ # VxWorks passes extra cpu info in the 4th filed. ++ simlinux | simwindows | spe) ++ ;; ++ # See `case $cpu-$os` validation below ++ ghcjs) ++ ;; ++ # Now accept the basic system types. ++ # The portable systems comes first. ++ # Each alternative MUST end in a * to match a version number. ++ gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ ++ | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \ ++ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ ++ | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ ++ | hiux* | abug | nacl* | netware* | windows* \ ++ | os9* | macos* | osx* | ios* | tvos* | watchos* \ ++ | mpw* | magic* | mmixware* | mon960* | lnews* \ ++ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ ++ | aos* | aros* | cloudabi* | sortix* | twizzler* \ ++ | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ ++ | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ ++ | mirbsd* | netbsd* | dicos* | openedition* | ose* \ ++ | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \ ++ | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \ ++ | bosx* | nextstep* | cxux* | oabi* \ ++ | ptx* | ecoff* | winnt* | domain* | vsta* \ ++ | udi* | lites* | ieee* | go32* | aux* | hcos* \ ++ | chorusrdb* | cegcc* | glidix* | serenity* \ ++ | cygwin* | msys* | moss* | proelf* | rtems* \ ++ | midipix* | mingw32* | mingw64* | mint* \ ++ | uxpv* | beos* | mpeix* | udk* | moxiebox* \ ++ | interix* | uwin* | mks* | rhapsody* | darwin* \ ++ | openstep* | oskit* | conix* | pw32* | nonstopux* \ ++ | storm-chaos* | tops10* | tenex* | tops20* | its* \ ++ | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ ++ | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ ++ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ ++ | skyos* | haiku* | rdos* | toppers* | drops* | es* \ ++ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ ++ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ ++ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \ ++ | fiwix* | mlibc* | cos* | mbr* | ironclad* ) ++ ;; ++ # This one is extra strict with allowed versions ++ sco3.2v2 | sco3.2v[4-9]* | sco5v6*) ++ # Don't forget version if it is 3.2v4 or newer. ++ ;; ++ # This refers to builds using the UEFI calling convention ++ # (which depends on the architecture) and PE file format. ++ # Note that this is both a different calling convention and ++ # different file format than that of GNU-EFI ++ # (x86_64-w64-mingw32). ++ uefi) ++ ;; ++ none) ++ ;; ++ kernel* | msvc* ) ++ # Restricted further below ++ ;; ++ '') ++ if test x"$obj" = x ++ then ++ echo "Invalid configuration '$1': Blank OS only allowed with explicit machine code file format" 1>&2 ++ fi ++ ;; ++ *) ++ echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2 ++ exit 1 ++ ;; ++esac ++ ++case $obj in ++ aout* | coff* | elf* | pe*) ++ ;; ++ '') ++ # empty is fine ++ ;; ++ *) ++ echo "Invalid configuration '$1': Machine code format '$obj' not recognized" 1>&2 ++ exit 1 ++ ;; ++esac ++ ++# Here we handle the constraint that a (synthetic) cpu and os are ++# valid only in combination with each other and nowhere else. ++case $cpu-$os in ++ # The "javascript-unknown-ghcjs" triple is used by GHC; we ++ # accept it here in order to tolerate that, but reject any ++ # variations. ++ javascript-ghcjs) ++ ;; ++ javascript-* | *-ghcjs) ++ echo "Invalid configuration '$1': cpu '$cpu' is not valid with os '$os$obj'" 1>&2 ++ exit 1 ++ ;; ++esac ++ ++# As a final step for OS-related things, validate the OS-kernel combination ++# (given a valid OS), if there is a kernel. ++case $kernel-$os-$obj in ++ linux-gnu*- | linux-android*- | linux-dietlibc*- | linux-llvm*- \ ++ | linux-mlibc*- | linux-musl*- | linux-newlib*- \ ++ | linux-relibc*- | linux-uclibc*- ) ++ ;; ++ uclinux-uclibc*- ) ++ ;; ++ managarm-mlibc*- | managarm-kernel*- ) ++ ;; ++ windows*-msvc*-) ++ ;; ++ -dietlibc*- | -llvm*- | -mlibc*- | -musl*- | -newlib*- | -relibc*- \ ++ | -uclibc*- ) ++ # These are just libc implementations, not actual OSes, and thus ++ # require a kernel. ++ echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2 ++ exit 1 ++ ;; ++ -kernel*- ) ++ echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2 ++ exit 1 ++ ;; ++ *-kernel*- ) ++ echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2 ++ exit 1 ++ ;; ++ *-msvc*- ) ++ echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2 ++ exit 1 ++ ;; ++ kfreebsd*-gnu*- | kopensolaris*-gnu*-) ++ ;; ++ vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-) ++ ;; ++ nto-qnx*-) ++ ;; ++ os2-emx-) ++ ;; ++ *-eabi*- | *-gnueabi*-) ++ ;; ++ none--*) ++ # None (no kernel, i.e. freestanding / bare metal), ++ # can be paired with an machine code file format ++ ;; ++ -*-) ++ # Blank kernel with real OS is always fine. ++ ;; ++ --*) ++ # Blank kernel and OS with real machine code file format is always fine. ++ ;; ++ *-*-*) ++ echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2 ++ exit 1 ++ ;; ++esac ++ + # Here we handle the case where we know the os, and the CPU type, but not the + # manufacturer. We pick the logical manufacturer. +-vendor=unknown +-case $basic_machine in +- *-unknown) +- case $os in +- -riscix*) ++case $vendor in ++ unknown) ++ case $cpu-$os in ++ *-riscix*) + vendor=acorn + ;; +- -sunos*) ++ *-sunos*) + vendor=sun + ;; +- -cnk*|-aix*) ++ *-cnk* | *-aix*) + vendor=ibm + ;; +- -beos*) ++ *-beos*) + vendor=be + ;; +- -hpux*) ++ *-hpux*) + vendor=hp + ;; +- -mpeix*) ++ *-mpeix*) + vendor=hp + ;; +- -hiux*) ++ *-hiux*) + vendor=hitachi + ;; +- -unos*) ++ *-unos*) + vendor=crds + ;; +- -dgux*) ++ *-dgux*) + vendor=dg + ;; +- -luna*) ++ *-luna*) + vendor=omron + ;; +- -genix*) ++ *-genix*) + vendor=ns + ;; +- -mvs* | -opened*) ++ *-clix*) ++ vendor=intergraph ++ ;; ++ *-mvs* | *-opened*) ++ vendor=ibm ++ ;; ++ *-os400*) + vendor=ibm + ;; +- -os400*) ++ s390-* | s390x-*) + vendor=ibm + ;; +- -ptx*) ++ *-ptx*) + vendor=sequent + ;; +- -tpf*) ++ *-tpf*) + vendor=ibm + ;; +- -vxsim* | -vxworks* | -windiss*) ++ *-vxsim* | *-vxworks* | *-windiss*) + vendor=wrs + ;; +- -aux*) ++ *-aux*) + vendor=apple + ;; +- -hms*) ++ *-hms*) + vendor=hitachi + ;; +- -mpw* | -macos*) ++ *-mpw* | *-macos*) + vendor=apple + ;; +- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) ++ *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) + vendor=atari + ;; +- -vos*) ++ *-vos*) + vendor=stratus + ;; + esac +- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; + esac + +-echo $basic_machine$os ++echo "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}" + exit + + # Local variables: +-# eval: (add-hook 'write-file-hooks 'time-stamp) ++# eval: (add-hook 'before-save-hook 'time-stamp) + # time-stamp-start: "timestamp='" + # time-stamp-format: "%:y-%02m-%02d" + # time-stamp-end: "'" From 70bb18a446a9e93e2032b49b7f575d23581c7d34 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Sat, 3 Aug 2024 23:15:05 -0500 Subject: [PATCH 0756/1589] Update iqtree to v2.3.6 (#49785) --- recipes/iqtree/build.sh | 3 ++- recipes/iqtree/meta.yaml | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/recipes/iqtree/build.sh b/recipes/iqtree/build.sh index 3fffe3a1e8433..5b02ecc9cb4ac 100644 --- a/recipes/iqtree/build.sh +++ b/recipes/iqtree/build.sh @@ -6,6 +6,7 @@ set -ex # we're restoring them here by mentioning them explicitly # .bak is required for sed -i on macOS sed -i.bak 's/-mavx/-mno-avx -mno-avx2 -march=nocona -mtune=haswell/' cmaple/CMakeLists.txt +rm -rf cmaple/*.bak export INCLUDES="-I${PREFIX}/include" export LIBPATH="-L${PREFIX}/lib" @@ -48,7 +49,7 @@ VERBOSE=1 cmake --build build --target install -j "${JOBS}" chmod 755 "${PREFIX}/bin/iqtree2" # Use symlink to not duplicate the binary, saving space -ln -s "${PREFIX}"/bin/iqtree2 "${PREFIX}"/bin/iqtree +ln -sf "${PREFIX}"/bin/iqtree2 "${PREFIX}"/bin/iqtree # Remove example data files for file in "${PREFIX}/example"* "${PREFIX}/models.nex" "${PREFIX}/bin/iqtree2-aa"; do diff --git a/recipes/iqtree/meta.yaml b/recipes/iqtree/meta.yaml index 78c3729b31380..875325dc79689 100644 --- a/recipes/iqtree/meta.yaml +++ b/recipes/iqtree/meta.yaml @@ -1,12 +1,12 @@ {% set name = "IQTREE" %} -{% set version = "2.3.5" %} +{% set version = "2.3.6" %} package: name: {{ name|lower }} version: {{ version | replace("-", "_") }} build: - number: 3 + number: 0 run_exports: - {{ pin_subpackage('iqtree', max_pin="x") }} @@ -32,6 +32,7 @@ requirements: - llvm-openmp # [osx] - boost-cpp - eigen + test: source_files: - cmaple/example/input.fa From 03ca2582e27b8710b14577c004ad6497f0e3c59b Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Sat, 3 Aug 2024 23:29:26 -0500 Subject: [PATCH 0757/1589] Update table2asn to 1.28.1111 (#49786) * Update table2asn to 1.28.1111 * edit build.sh --- recipes/table2asn/build.sh | 2 +- recipes/table2asn/meta.yaml | 13 ++++++------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/recipes/table2asn/build.sh b/recipes/table2asn/build.sh index 4237f9e676325..6e0c82f01b182 100644 --- a/recipes/table2asn/build.sh +++ b/recipes/table2asn/build.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -ex gunzip *table2asn.gz mkdir -p ${PREFIX}/bin diff --git a/recipes/table2asn/meta.yaml b/recipes/table2asn/meta.yaml index 309a04dc74f0f..9787dc6a10cc7 100644 --- a/recipes/table2asn/meta.yaml +++ b/recipes/table2asn/meta.yaml @@ -1,23 +1,22 @@ {% set name = "table2asn" %} -{% set version = "1.28.943" %} -{% set sha256 = "91632c6442986d5af455421ed8121647f9bd90e64560ba27ae0b2ab0a1289ae6" %} -{% set release_date = "2023-10-05" %} +{% set version = "1.28.1111" %} +{% set sha256 = "626116210fea6b1426092e370c32c7f766a6cc98857c4202712eb7b265da23cb" %} +{% set release_date = "2024-06-18" %} package: name: {{ name }} version: {{ version }} - release_date: {{ release_date }} source: - url: https://ftp.ncbi.nlm.nih.gov/asn1-converters/versions/{{ release_date }}/by_program/{{ name }}/mac.{{ name }}.gz # [osx] - sha256: 3ecc9fc29beb69640d47cd49a43b342ee6d7627f25c7b2d78dd44fce00cd2c6d # [osx] + sha256: 1b3ce05a1d3ef5afaa38c9b5c5a520b74d27aea9b516513ec647576e3a98bb32 # [osx] - url: https://ftp.ncbi.nlm.nih.gov/asn1-converters/versions/{{ release_date }}/by_program/{{ name }}/linux64.{{ name }}.gz # [linux] sha256: {{ sha256 }} # [linux] build: number: 0 run_exports: - - {{ pin_subpackage('table2asn', max_pin="x.x") }} + - {{ pin_subpackage('table2asn', max_pin="x") }} requirements: host: @@ -30,7 +29,7 @@ test: - table2asn -help about: - home: 'https://www.ncbi.nlm.nih.gov/genbank/table2asn/' + home: 'https://www.ncbi.nlm.nih.gov/genbank/table2asn' license: Public Domain summary: 'table2asn is a command-line program that creates sequence records for submission to GenBank - replaces tbl2asn.' doc_url: 'https://ftp.ncbi.nlm.nih.gov/asn1-converters/by_program/table2asn/DOCUMENTATION/table2asn_readme.txt' From dd60ecf3d1c2ef1a09f46099b1bb77a77fae27bc Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 4 Aug 2024 00:33:34 -0400 Subject: [PATCH 0758/1589] Update insurveyor to 1.1.3 (#49783) * Update insurveyor to 1.1.3 * add run_exports * edit build.sh * edit build.sh --------- Co-authored-by: mencian --- recipes/insurveyor/build.sh | 25 ++++++++++++++----------- recipes/insurveyor/meta.yaml | 18 ++++++++++++++---- 2 files changed, 28 insertions(+), 15 deletions(-) diff --git a/recipes/insurveyor/build.sh b/recipes/insurveyor/build.sh index ad41ce59ba618..f1d3689d0c241 100644 --- a/recipes/insurveyor/build.sh +++ b/recipes/insurveyor/build.sh @@ -1,4 +1,15 @@ -set -x +#!/bin/bash -ex + +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CXXFLAGS="${CXXFLAGS} -O3 -I{PREFIX}/include ${LDFLAGS}" + +mkdir -p ${PREFIX}/bin + +cmake -S . -B build \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ + -DCMAKE_CXX_COMPILER="${CXX}" \ + -DCMAKE_CXX_FLAGS="${CXXFLAGS}" ${CXX} ${CPPFLAGS} ${CXXFLAGS} ${LDFLAGS} reads_categorizer.cpp -o reads_categorizer -pthread -lhts ${CXX} ${CPPFLAGS} ${CXXFLAGS} ${LDFLAGS} clip_consensus_builder.cpp -o clip_consensus_builder -pthread -lhts @@ -8,13 +19,5 @@ ${CXX} ${CPPFLAGS} ${CXXFLAGS} ${LDFLAGS} add_filtering_info.cpp -o add_filterin ${CXX} ${CPPFLAGS} ${CXXFLAGS} ${LDFLAGS} filter.cpp -o filter -pthread -lhts ${CXX} ${CPPFLAGS} ${CXXFLAGS} ${LDFLAGS} normalise.cpp -o normalise -pthread -lhts -cp reads_categorizer $PREFIX/bin/ -cp clip_consensus_builder $PREFIX/bin/ -cp call_insertions $PREFIX/bin/ -cp dc_remapper $PREFIX/bin/ -cp add_filtering_info $PREFIX/bin/ -cp filter $PREFIX/bin/ -cp normalise $PREFIX/bin/ - -cp insurveyor.py $PREFIX/bin/ -cp random_pos_generator.py $PREFIX/bin/ +cp -rf reads_categorizer clip_consensus_builder call_insertions dc_remapper add_filtering_info \ + filter normalise insurveyor.py random_pos_generator.py ${PREFIX}/bin/ diff --git a/recipes/insurveyor/meta.yaml b/recipes/insurveyor/meta.yaml index e3699705f2464..d235d5fd03e7b 100644 --- a/recipes/insurveyor/meta.yaml +++ b/recipes/insurveyor/meta.yaml @@ -1,5 +1,5 @@ {% set name = "insurveyor" %} -{% set version = "1.1.2" %} +{% set version = "1.1.3" %} package: name: {{ name|lower }} @@ -7,19 +7,25 @@ package: source: url: https://github.com/kensung-lab/INSurVeyor/archive/refs/tags/{{ version }}.tar.gz - sha256: ac4d2e16f6f884e6da82a1090af744ba8b63657a1f2719b4f8ff266a26c73549 + sha256: 0099ce859dd1b61b726b87ca26d7b89dabb34cab27afc97a5696780260b27304 build: number: 0 + run_exports: + - {{ pin_subpackage('insurveyor', max_pin="x") }} requirements: build: - {{ compiler('cxx') }} + - cmake + - make + - autoconf host: - htslib >=1.13 + - zlib run: - - pysam >=0.16.0.1, <0.21 - - pyfaidx >=0.5.9.1, <0.8 + - pysam >=0.16.0.1 + - pyfaidx >=0.5.9.1 - numpy test: @@ -38,8 +44,12 @@ about: description: | INSurVeyor is a fast and accurate SV insertion caller for Illumina paired-end WGS data. license: GPL-3.0-only + license_family: GPL3 license_file: LICENSE + dev_url: https://github.com/kensung-lab/INSurVeyor extra: recipe-maintainers: - Mesh89 + identifiers: + - doi:10.1038/s41467-023-38870-2 From e40935cdcc5532461566f5953c6bbbc99e50786b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 4 Aug 2024 02:17:05 -0400 Subject: [PATCH 0759/1589] Update trinity to 2.15.2 (#49741) * Update trinity to 2.15.2 * edit patch * edit build.sh * edit build.sh * edit build.sh * edit build.sh --------- Co-authored-by: mencian Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/trinity/build.sh | 25 +++++++++++++------- recipes/trinity/makefile.patch | 42 ++++++++++++++-------------------- recipes/trinity/meta.yaml | 14 ++++++------ 3 files changed, 41 insertions(+), 40 deletions(-) diff --git a/recipes/trinity/build.sh b/recipes/trinity/build.sh index 453ee990e1564..ad90cf9dcaf75 100644 --- a/recipes/trinity/build.sh +++ b/recipes/trinity/build.sh @@ -1,5 +1,4 @@ -#!/bin/bash -set -x -e +#!/bin/bash -ex export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" @@ -10,7 +9,12 @@ export CXXFLAGS="${CXXFLAGS} -O3 -I${PREFIX}/include ${LDFLAGS}" export BINARY_HOME="${PREFIX}/bin" export TRINITY_HOME="${PREFIX}/opt/trinity-${PKG_VERSION}" -make CXX="${CXX}" CXXFLAGS="${CXXFLAGS}" -j4 plugins +if [ "$(uname)" == "Darwin" ]; then + # for Mac OSX + export CXXFLAGS="${CXXFLAGS} -std=c++14" +fi + +make CXX="${CXX}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}" plugins make CXX="${CXX}" CXXFLAGS="${CXXFLAGS}" # remove the sample data @@ -19,10 +23,10 @@ rm -rf ${SRC_DIR}/sample_data # reproduce make install without the wrapper script mkdir -p ${PREFIX}/bin mkdir -p ${TRINITY_HOME}/Butterfly -chmod +x Trinity -cp Trinity ${TRINITY_HOME}/ +chmod 0755 Trinity +cp -rf Trinity ${TRINITY_HOME}/ mv Analysis ${TRINITY_HOME}/ -cp Butterfly/Butterfly.jar ${TRINITY_HOME}/Butterfly +cp -rf Butterfly/Butterfly.jar ${TRINITY_HOME}/Butterfly mkdir -p ${TRINITY_HOME}/Chrysalis cp -LR Chrysalis/bin ${TRINITY_HOME}/Chrysalis mkdir -p ${TRINITY_HOME}/Inchworm @@ -32,7 +36,12 @@ cp -LR PyLib ${TRINITY_HOME}/ cp -LR trinity-plugins ${TRINITY_HOME}/ cp -LR util ${TRINITY_HOME}/ -sed -i.bak '1 s|^.*$|#!/usr/bin/env perl|g' ${TRINITY_HOME}/util/misc/fastq_stats.pl +sed -i.bak '1 s|^.*$|#!/usr/bin/env perl|g' ${TRINITY_HOME}/util/*.pl +rm -rf ${TRINITY_HOME}/util/*.bak +sed -i.bak '1 s|^.*$|#!/usr/bin/env perl|g' ${TRINITY_HOME}/util/misc/*.pl +rm -rf ${TRINITY_HOME}/util/misc/*.bak +sed -i.bak '1 s|^.*$|#!/usr/bin/env perl|g' ${TRINITY_HOME}/util/support_scripts/*.pl +rm -rf ${TRINITY_HOME}/util/support_scripts/*.bak # add link to Trinity from bin so in PATH cd ${BINARY_HOME} @@ -46,7 +55,7 @@ ln -sf ${TRINITY_HOME}/Analysis/SuperTranscripts/Trinity_gene_splice_modeler.py ln -sf ${TRINITY_HOME}/Analysis/SuperTranscripts/extract_supertranscript_from_reference.py ln -sf ${TRINITY_HOME}/util/support_scripts/get_Trinity_gene_to_trans_map.pl ln -sf ${TRINITY_HOME}/util/misc/contig_ExN50_statistic.pl -cp ${TRINITY_HOME}/trinity-plugins/BIN/seqtk-trinity . +cp -rf ${TRINITY_HOME}/trinity-plugins/BIN/seqtk-trinity . # Find real path when executing from a symlink export LC_ALL=C diff --git a/recipes/trinity/makefile.patch b/recipes/trinity/makefile.patch index 1dea4321e5686..86b29fc1ef473 100644 --- a/recipes/trinity/makefile.patch +++ b/recipes/trinity/makefile.patch @@ -98,36 +98,28 @@ htslib/version.h : --- a/trinity-plugins/bamsifter/build_htslib.sh +++ b/trinity-plugins/bamsifter/build_htslib.sh -@@ -2,14 +2,10 @@ - - set -e -v - --tar xvf htslib-1.16.tar.bz2 --mv htslib-1.16 htslib - cd htslib --mkdir -p build --#autoheader --#autoconf +@@ -6,9 +6,7 @@ cd htslib + git submodule init && git submodule update + mkdir -p build + autoheader +-autoconf -./configure --prefix=`pwd`/build/ -+autoheader +autoreconf -+./configure --prefix=`pwd`/build/ CXXFLAGS="-I${PREFIX}/include ${LDFLAGS}" CFLAGS="-I${PREFIX}/include ${LDFLAGS}" ++./configure --prefix=`pwd`/build/ CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" CFLAGS="${CFLAGS} ${LDFLAGS}" make make install - - - - +- --- a/trinity-plugins/bamsifter/sift_bam_max_cov.cpp +++ b/trinity-plugins/bamsifter/sift_bam_max_cov.cpp -@@ -2,6 +2,7 @@ - #include - // #include - #include -+#include - #include - #include - #include --- -2.40.0 +@@ -14,8 +14,8 @@ + #include + #include + +-#include "htslib/sam.h" +-#include "htslib/bgzf.h" ++#include "htslib/htslib/sam.h" ++#include "htslib/htslib/bgzf.h" + + enum test_op { diff --git a/recipes/trinity/meta.yaml b/recipes/trinity/meta.yaml index 721036e21f6e1..92c0c528bd138 100644 --- a/recipes/trinity/meta.yaml +++ b/recipes/trinity/meta.yaml @@ -1,6 +1,6 @@ {% set name = "Trinity" %} -{% set version = "2.15.1" %} -{% set sha256 = "ba37e5f696d3d54e8749c4ba439901a3e97e14a4314a5229d7a069ad7b1ee580" %} +{% set version = "2.15.2" %} +{% set sha256 = "baab87e4878ad097e265c46de121414629bf88fa9342022baae5cac12432a15c" %} package: name: {{ name|lower }} @@ -13,7 +13,7 @@ source: - makefile.patch build: - number: 4 + number: 0 run_exports: - {{ pin_subpackage('trinity', max_pin="x") }} @@ -71,13 +71,13 @@ test: - "Trinity_gene_splice_modeler.py --help" about: - home: https://github.com/trinityrnaseq/trinityrnaseq/ - license: BSD-3-Clause + home: "https://github.com/trinityrnaseq/trinityrnaseq" + license: "BSD-3-Clause" license_family: BSD license_file: LICENSE summary: "Trinity assembles transcript sequences from Illumina RNA-Seq data." - doc_url: https://github.com/trinityrnaseq/trinityrnaseq/wiki - dev_url: https://github.com/trinityrnaseq/trinityrnaseq/ + doc_url: "https://github.com/trinityrnaseq/trinityrnaseq/wiki" + dev_url: "https://github.com/trinityrnaseq/trinityrnaseq" extra: identifiers: From 6c72e6240094e81ea0c75052fe6f550131650ce9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 4 Aug 2024 13:19:24 -0400 Subject: [PATCH 0760/1589] Update lsabgc to 1.0.5 (#49787) * Update lsabgc to 1.0.5 * Update meta.yaml --------- Co-authored-by: Rauf Salamzade --- recipes/lsabgc/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/lsabgc/meta.yaml b/recipes/lsabgc/meta.yaml index 8752b995ee828..f55c6fb0d327f 100644 --- a/recipes/lsabgc/meta.yaml +++ b/recipes/lsabgc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "lsabgc" %} -{% set version = "1.0.4" %} +{% set version = "1.0.5" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Kalan-Lab/lsaBGC-Pan/archive/refs/tags/v{{ version }}.tar.gz - sha256: d04c6a3a9a562c6fb97e778032ae7148bc90dfa982a8cac3d6e4eb2269995b66 + sha256: c6354a39e64238d42c9f5d3e1464d78545f91d5231de2306d162cee6b36eb85f build: number: 0 @@ -25,7 +25,7 @@ requirements: - python >=3.10 - r-base - axel - - zol >=1.4.11 + - zol >=1.4.12 - orthofinder =2.5.5 - pyseer >=1.3 - gecco =0.9.6 From 52c6468e2800ea3fe83ad8b39086c9ab6b04bc06 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 4 Aug 2024 23:49:17 -0400 Subject: [PATCH 0761/1589] Update snakemake-storage-plugin-azure to 0.4.0 (#49788) --- recipes/snakemake-storage-plugin-azure/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-storage-plugin-azure/meta.yaml b/recipes/snakemake-storage-plugin-azure/meta.yaml index f22cf394948c6..61f93de3b0722 100644 --- a/recipes/snakemake-storage-plugin-azure/meta.yaml +++ b/recipes/snakemake-storage-plugin-azure/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-storage-plugin-azure" %} -{% set version = "0.3.0" %} +{% set version = "0.4.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_storage_plugin_azure-{{ version }}.tar.gz - sha256: 95f58b2f355707a37fcf739a0e9172388acef8a1800242f2e0724154521a20e0 + sha256: 7b3fd1479d3a2f3447891dbd27b84aeb7380f526b68147d7d8f7aceda14bda62 build: noarch: python From b45bbdf3758bfb6bf2ff187ff8f5be6e45baa566 Mon Sep 17 00:00:00 2001 From: Li Song Date: Sun, 4 Aug 2024 23:50:51 -0400 Subject: [PATCH 0762/1589] Add osx-arm64 to centrifuger (#49789) --- recipes/centrifuger/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/centrifuger/meta.yaml b/recipes/centrifuger/meta.yaml index 25087132e9a81..dccd1d4dbe4d6 100644 --- a/recipes/centrifuger/meta.yaml +++ b/recipes/centrifuger/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} @@ -41,5 +41,6 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - doi:10.1101/2023.11.15.567129 From e3bf80fde3cf4be9810a81530968fbe7870099b0 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 02:29:33 -0400 Subject: [PATCH 0763/1589] Update sdeper to 1.6.1 (#49781) * Update sdeper to 1.6.0 * Update sdeper to 1.6.1 * add extended-base --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Co-authored-by: mencian --- recipes/sdeper/meta.yaml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/recipes/sdeper/meta.yaml b/recipes/sdeper/meta.yaml index 11e612ac4b87f..394c27d640310 100755 --- a/recipes/sdeper/meta.yaml +++ b/recipes/sdeper/meta.yaml @@ -1,6 +1,5 @@ -# This is the recipe file to publish SDePER to Bioconda {% set name = "sdeper" %} -{% set version = "1.5.0" %} +{% set version = "1.6.1" %} package: name: "{{ name|lower }}" @@ -8,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 43ad2e10fc85aadb821aaf106deee6769de9d45f4b530e204e5f1e18398eb0f1 + sha256: 6d1777d13ba5253e762f007fcab22743f24d760adf07ebb7079cb2c652b2575a build: number: 0 @@ -39,7 +38,7 @@ requirements: - scikit-learn ==1.1.1 - scikit-misc ==0.1.4 - scipy ==1.8.1 - - seaborn ==0.11.2 + - seaborn-base ==0.11.2 - tensorflow-base 2.9.1 cpu_* # explicitly specify to use cpu version out from cpu_, cuda, eigen_, gpu_, or mkl_ in conda packages - umap-learn ==0.5.3 - libopencv ==4.6.0 # install opencv in conda requires installing these 3 packages, headless version is used @@ -52,15 +51,18 @@ test: - runImputation --help about: - home: "https://az7jh2.github.io/SDePER/" + home: "https://az7jh2.github.io/SDePER" license: MIT license_family: MIT license_file: LICENSE - summary: "Spatial Deconvolution method with Platform Effect Removal" - doc_url: "https://sdeper.readthedocs.io/en/latest/" + summary: "Spatial Deconvolution method with Platform Effect Removal." + doc_url: "https://sdeper.readthedocs.io/en/latest" dev_url: "https://github.com/az7jh2/SDePER" description: "SDePER (Spatial Deconvolution method with Platform Effect Removal) is a hybrid machine learning and regression method to deconvolve Spatial barcoding-based transcriptomic data using reference single-cell RNA sequencing data, considering platform effects removal, sparsity of cell types per capture spot and across-spots spatial correlation in cell type compositions. SDePER is also able to impute cell type compositions and gene expression at unmeasured locations in a tissue map with enhanced resolution." extra: recipe-maintainers: - az7jh2 + container: + # needs libGL.so.1 + extended-base: True From 44f02dbb56ed8c6a12fa123d3ca8d664b6ff9657 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Mon, 5 Aug 2024 01:43:36 -0500 Subject: [PATCH 0764/1589] bam-readcount: build on OSX (#49790) * bam-readcount: build on OSX * remove osx-arm64 --- recipes/bam-readcount/build.sh | 21 +++++++++++---------- recipes/bam-readcount/meta.yaml | 4 +--- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/recipes/bam-readcount/build.sh b/recipes/bam-readcount/build.sh index 7d754621bbd4d..e4eec512b3d21 100644 --- a/recipes/bam-readcount/build.sh +++ b/recipes/bam-readcount/build.sh @@ -1,6 +1,4 @@ -#!/bin/bash -euo - -set -x +#!/bin/bash -ex wget https://github.com/boostorg/boost/releases/download/boost-1.85.0/boost-1.85.0-cmake.tar.gz @@ -14,11 +12,12 @@ export LIBPATH="-L${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -pthread -L${PREFIX}/lib" export CXXFLAGS="${CXXFLAGS} -O3 -I${PREFIX}/include" -if [ `uname` == Darwin ]; then - export LDFLAGS="${LDFLAGS} -Wl,-rpath,${PREFIX}/lib -lz -lbz2" - export MACOSX_DEPLOYMENT_TARGET=10.13 - # See https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk for -D_LIBCPP_DISABLE_AVAILABILITY - # export CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY" +if [[ `uname` == Darwin ]]; then + export LDFLAGS="${LDFLAGS} -Wl,-rpath,${PREFIX}/lib" + export CFLAGS="${CFLAGS} -Wno-unguarded-availability -Wdeprecated-non-prototype" + export CMAKE_EXTRA="-DCMAKE_FIND_FRAMEWORK=NEVER -DCMAKE_FIND_APPBUNDLE=NEVER" +else + export CMAKE_EXTRA="" fi mkdir -p build @@ -28,10 +27,12 @@ cmake -S .. -B . -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ -DCMAKE_CXX_COMPILER="${CXX}" \ -DCMAKE_C_COMPILER="${CC}" \ -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ - -Wno-dev -Wno-deprecated --no-warn-unused-cli + -DCMAKE_C_FLAGS="${CFLAGS}" \ + -Wno-dev -Wno-deprecated --no-warn-unused-cli \ + ${CMAKE_EXTRA} make clean -make CXX="${CXX} ${LDFLAGS}" CC="${CC}" CXXFLAGS="${CXXFLAGS}" +make CXX="${CXX} ${LDFLAGS}" CC="${CC}" CXXFLAGS="${CXXFLAGS}" CFLAGS="${CFLAGS}" chmod 755 bin/bam-readcount cp -f bin/bam-readcount "${PREFIX}/bin" diff --git a/recipes/bam-readcount/meta.yaml b/recipes/bam-readcount/meta.yaml index 5e80b8f2b7fd7..fa49a617952da 100644 --- a/recipes/bam-readcount/meta.yaml +++ b/recipes/bam-readcount/meta.yaml @@ -10,8 +10,7 @@ source: sha256: 8ebf84d9efee0f2d3b43f0452dbf16b27337c960e25128f6a7173119e62588b8 build: - number: 1 - skip: True # [osx] + number: 2 run_exports: - {{ pin_subpackage('bam-readcount', max_pin="x") }} @@ -28,7 +27,6 @@ requirements: - clangdev run: - python - - pthread-stubs test: commands: From ebe1de0c321709344801241d00903849df8b69e9 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Mon, 5 Aug 2024 02:35:30 -0500 Subject: [PATCH 0765/1589] Update cite-seq-count to 1.4.5 (#49792) --- recipes/cite-seq-count/0001-setup.py.patch | 841 ++++++++++++++++++ recipes/cite-seq-count/0002-pytest_deps.patch | 17 + recipes/cite-seq-count/meta.yaml | 30 +- recipes/cite-seq-count/pytest_deps.patch | 25 - 4 files changed, 872 insertions(+), 41 deletions(-) create mode 100644 recipes/cite-seq-count/0001-setup.py.patch create mode 100644 recipes/cite-seq-count/0002-pytest_deps.patch delete mode 100644 recipes/cite-seq-count/pytest_deps.patch diff --git a/recipes/cite-seq-count/0001-setup.py.patch b/recipes/cite-seq-count/0001-setup.py.patch new file mode 100644 index 0000000000000..77f379138ff94 --- /dev/null +++ b/recipes/cite-seq-count/0001-setup.py.patch @@ -0,0 +1,841 @@ +diff --git a/cite_seq_count/__main__.py b/cite_seq_count/__main__.py +index 519c391..bf1c3ba 100755 +--- a/cite_seq_count/__main__.py ++++ b/cite_seq_count/__main__.py +@@ -25,134 +25,263 @@ from cite_seq_count import secondsToText + + version = pkg_resources.require("cite_seq_count")[0].version + ++ + def get_args(): + """ + Get args. + """ + parser = ArgumentParser( +- prog='CITE-seq-Count', formatter_class=RawTextHelpFormatter, +- description=("This script counts matching antibody tags from paired fastq " +- "files. Version {}".format(version)), ++ prog="CITE-seq-Count", ++ formatter_class=RawTextHelpFormatter, ++ description=( ++ "This script counts matching antibody tags from paired fastq " ++ "files. Version {}".format(version) ++ ), + ) + + # REQUIRED INPUTS group. +- inputs = parser.add_argument_group('Inputs', +- description="Required input files.") +- inputs.add_argument('-R1', '--read1', dest='read1_path', required=True, +- help=("The path of Read1 in gz format, or a comma-separated list of paths to all Read1 files in" +- " gz format (E.g. A1.fq.gz,B1.fq,gz,...")) +- inputs.add_argument('-R2', '--read2', dest='read2_path', required=True, +- help=("The path of Read2 in gz format, or a comma-separated list of paths to all Read2 files in" +- " gz format (E.g. A2.fq.gz,B2.fq,gz,...")) ++ inputs = parser.add_argument_group("Inputs", description="Required input files.") ++ inputs.add_argument( ++ "-R1", ++ "--read1", ++ dest="read1_path", ++ required=True, ++ help=( ++ "The path of Read1 in gz format, or a comma-separated list of paths to all Read1 files in" ++ " gz format (E.g. A1.fq.gz,B1.fq,gz,..." ++ ), ++ ) ++ inputs.add_argument( ++ "-R2", ++ "--read2", ++ dest="read2_path", ++ required=True, ++ help=( ++ "The path of Read2 in gz format, or a comma-separated list of paths to all Read2 files in" ++ " gz format (E.g. A2.fq.gz,B2.fq,gz,..." ++ ), ++ ) + inputs.add_argument( +- '-t', '--tags', dest='tags', required=True, +- help=("The path to the csv file containing the antibody\n" +- "barcodes as well as their respective names.\n\n" +- "Example of an antibody barcode file structure:\n\n" +- "\tATGCGA,First_tag_name\n" +- "\tGTCATG,Second_tag_name") ++ "-t", ++ "--tags", ++ dest="tags", ++ required=True, ++ help=( ++ "The path to the csv file containing the antibody\n" ++ "barcodes as well as their respective names.\n\n" ++ "Example of an antibody barcode file structure:\n\n" ++ "\tATGCGA,First_tag_name\n" ++ "\tGTCATG,Second_tag_name" ++ ), + ) + + # BARCODES group. + barcodes = parser.add_argument_group( +- 'Barcodes', +- description=("Positions of the cellular barcodes and UMI. If your " +- "cellular barcodes and UMI\n are positioned as follows:\n" +- "\tBarcodes from 1 to 16 and UMI from 17 to 26\n" +- "then this is the input you need:\n" +- "\t-cbf 1 -cbl 16 -umif 17 -umil 26") +- ) +- barcodes.add_argument('-cbf', '--cell_barcode_first_base', dest='cb_first', +- required=True, type=int, +- help=("Postion of the first base of your cell " +- "barcodes.")) +- barcodes.add_argument('-cbl', '--cell_barcode_last_base', dest='cb_last', +- required=True, type=int, +- help=("Postion of the last base of your cell " +- "barcodes.")) +- barcodes.add_argument('-umif', '--umi_first_base', dest='umi_first', +- required=True, type=int, +- help="Postion of the first base of your UMI.") +- barcodes.add_argument('-umil', '--umi_last_base', dest='umi_last', +- required=True, type=int, +- help="Postion of the last base of your UMI.") +- barcodes.add_argument('--umi_collapsing_dist', dest='umi_threshold', +- required=False, type=int, default=2, +- help="threshold for umi collapsing.") +- barcodes.add_argument('--no_umi_correction', required=False, action='store_true', default=False, +- dest='no_umi_correction', help="Deactivate UMI collapsing") +- barcodes.add_argument('--bc_collapsing_dist', dest='bc_threshold', +- required=False, type=int, default=1, +- help="threshold for cellular barcode collapsing.") ++ "Barcodes", ++ description=( ++ "Positions of the cellular barcodes and UMI. If your " ++ "cellular barcodes and UMI\n are positioned as follows:\n" ++ "\tBarcodes from 1 to 16 and UMI from 17 to 26\n" ++ "then this is the input you need:\n" ++ "\t-cbf 1 -cbl 16 -umif 17 -umil 26" ++ ), ++ ) ++ barcodes.add_argument( ++ "-cbf", ++ "--cell_barcode_first_base", ++ dest="cb_first", ++ required=True, ++ type=int, ++ help=("Postion of the first base of your cell " "barcodes."), ++ ) ++ barcodes.add_argument( ++ "-cbl", ++ "--cell_barcode_last_base", ++ dest="cb_last", ++ required=True, ++ type=int, ++ help=("Postion of the last base of your cell " "barcodes."), ++ ) ++ barcodes.add_argument( ++ "-umif", ++ "--umi_first_base", ++ dest="umi_first", ++ required=True, ++ type=int, ++ help="Postion of the first base of your UMI.", ++ ) ++ barcodes.add_argument( ++ "-umil", ++ "--umi_last_base", ++ dest="umi_last", ++ required=True, ++ type=int, ++ help="Postion of the last base of your UMI.", ++ ) ++ barcodes.add_argument( ++ "--umi_collapsing_dist", ++ dest="umi_threshold", ++ required=False, ++ type=int, ++ default=2, ++ help="threshold for umi collapsing.", ++ ) ++ barcodes.add_argument( ++ "--no_umi_correction", ++ required=False, ++ action="store_true", ++ default=False, ++ dest="no_umi_correction", ++ help="Deactivate UMI collapsing", ++ ) ++ barcodes.add_argument( ++ "--bc_collapsing_dist", ++ dest="bc_threshold", ++ required=False, ++ type=int, ++ default=1, ++ help="threshold for cellular barcode collapsing.", ++ ) + cells = parser.add_argument_group( +- 'Cells', +- description=("Expected number of cells and potential whitelist") ++ "Cells", description=("Expected number of cells and potential whitelist") + ) + + cells.add_argument( +- '-cells', '--expected_cells', dest='expected_cells', required=True, type=int, +- help=("Number of expected cells from your run."), default=0 ++ "-cells", ++ "--expected_cells", ++ dest="expected_cells", ++ required=True, ++ type=int, ++ help=("Number of expected cells from your run."), ++ default=0, + ) + cells.add_argument( +- '-wl', '--whitelist', dest='whitelist', required=False, type=str, +- help=("A csv file containning a whitelist of barcodes produced" +- " by the mRNA data.\n\n" +- "\tExample:\n" +- "\tATGCTAGTGCTA\n\tGCTAGTCAGGAT\n\tCGACTGCTAACG\n\n" +- "Or 10X-style:\n" +- "\tATGCTAGTGCTA-1\n\tGCTAGTCAGGAT-1\n\tCGACTGCTAACG-1\n") ++ "-wl", ++ "--whitelist", ++ dest="whitelist", ++ required=False, ++ type=str, ++ help=( ++ "A csv file containning a whitelist of barcodes produced" ++ " by the mRNA data.\n\n" ++ "\tExample:\n" ++ "\tATGCTAGTGCTA\n\tGCTAGTCAGGAT\n\tCGACTGCTAACG\n\n" ++ "Or 10X-style:\n" ++ "\tATGCTAGTGCTA-1\n\tGCTAGTCAGGAT-1\n\tCGACTGCTAACG-1\n" ++ ), + ) + + # FILTERS group. + filters = parser.add_argument_group( +- 'TAG filters', +- description=("Filtering and trimming for read2.") ++ "TAG filters", description=("Filtering and trimming for read2.") + ) + filters.add_argument( +- '--max-errors', dest='max_error', +- required=False, type=int, default=2, +- help=("Maximum Levenshtein distance allowed for antibody barcodes.") ++ "--max-errors", ++ dest="max_error", ++ required=False, ++ type=int, ++ default=2, ++ help=("Maximum Levenshtein distance allowed for antibody barcodes."), + ) +- ++ + filters.add_argument( +- '-trim', '--start-trim', dest='start_trim', +- required=False, type=int, default=0, +- help=("Number of bases to discard from read2.") ++ "-trim", ++ "--start-trim", ++ dest="start_trim", ++ required=False, ++ type=int, ++ default=0, ++ help=("Number of bases to discard from read2."), + ) +- ++ + filters.add_argument( +- '--sliding-window', dest='sliding_window', +- required=False, default=False, action='store_true', +- help=("Allow for a sliding window when aligning.") ++ "--sliding-window", ++ dest="sliding_window", ++ required=False, ++ default=False, ++ action="store_true", ++ help=("Allow for a sliding window when aligning."), + ) +- + + # Remaining arguments. +- parser.add_argument('-T', '--threads', required=False, type=int, +- dest='n_threads', default=cpu_count(), +- help="How many threads are to be used for running the program") +- parser.add_argument('-n', '--first_n', required=False, type=int, +- dest='first_n', default=None, +- help="Select N reads to run on instead of all.") +- parser.add_argument('-o', '--output', required=False, type=str, default='Results', +- dest='outfolder', help="Results will be written to this folder") +- parser.add_argument('--dense', required=False, action='store_true', default=False, +- dest='dense', help="Add a dense output to the results folder") +- parser.add_argument('-u', '--unmapped-tags', required=False, type=str, +- dest='unmapped_file', default='unmapped.csv', +- help="Write table of unknown TAGs to file.") +- parser.add_argument('-ut', '--unknown-top-tags', required=False, +- dest='unknowns_top', type=int, default=100, +- help="Top n unmapped TAGs.") +- parser.add_argument('--debug', action='store_true', +- help="Print extra information for debugging.") +- parser.add_argument('--version', action='version', version='CITE-seq-Count v{}'.format(version), +- help="Print version number.") ++ parser.add_argument( ++ "-T", ++ "--threads", ++ required=False, ++ type=int, ++ dest="n_threads", ++ default=cpu_count(), ++ help="How many threads are to be used for running the program", ++ ) ++ parser.add_argument( ++ "-n", ++ "--first_n", ++ required=False, ++ type=int, ++ dest="first_n", ++ default=None, ++ help="Select N reads to run on instead of all.", ++ ) ++ parser.add_argument( ++ "-o", ++ "--output", ++ required=False, ++ type=str, ++ default="Results", ++ dest="outfolder", ++ help="Results will be written to this folder", ++ ) ++ parser.add_argument( ++ "--dense", ++ required=False, ++ action="store_true", ++ default=False, ++ dest="dense", ++ help="Add a dense output to the results folder", ++ ) ++ parser.add_argument( ++ "-u", ++ "--unmapped-tags", ++ required=False, ++ type=str, ++ dest="unmapped_file", ++ default="unmapped.csv", ++ help="Write table of unknown TAGs to file.", ++ ) ++ parser.add_argument( ++ "-ut", ++ "--unknown-top-tags", ++ required=False, ++ dest="unknowns_top", ++ type=int, ++ default=100, ++ help="Top n unmapped TAGs.", ++ ) ++ parser.add_argument( ++ "--debug", action="store_true", help="Print extra information for debugging." ++ ) ++ parser.add_argument( ++ "--version", ++ action="version", ++ version="CITE-seq-Count v{}".format(version), ++ help="Print version number.", ++ ) + # Finally! Too many options XD + return parser + + +-def create_report(n_reads, reads_per_cell, no_match, version, start_time, ordered_tags_map, umis_corrected, bcs_corrected, bad_cells, args): ++def create_report( ++ n_reads, ++ reads_per_cell, ++ no_match, ++ version, ++ start_time, ++ ordered_tags_map, ++ umis_corrected, ++ bcs_corrected, ++ bad_cells, ++ args, ++): + """ + Creates a report with details about the run in a yaml format. + +@@ -167,12 +296,12 @@ def create_report(n_reads, reads_per_cell, no_match, version, start_time, ordere + """ + total_unmapped = sum(no_match.values()) + total_mapped = sum(reads_per_cell.values()) - total_unmapped +- mapped_perc = round((total_mapped/n_reads)*100) +- unmapped_perc = round((total_unmapped/n_reads)*100) +- +- with open(os.path.join(args.outfolder, 'run_report.yaml'), 'w') as report_file: ++ mapped_perc = round((total_mapped / n_reads) * 100) ++ unmapped_perc = round((total_unmapped / n_reads) * 100) ++ ++ with open(os.path.join(args.outfolder, "run_report.yaml"), "w") as report_file: + report_file.write( +-"""Date: {} ++ """Date: {} + Running time: {} + CITE-seq-Count Version: {} + Reads processed: {} +@@ -197,34 +326,39 @@ Run parameters: + \tTags max errors: {} + \tStart trim: {} + """.format( +- datetime.datetime.today().strftime('%Y-%m-%d'), +- secondsToText.secondsToText(time.time()-start_time), +- version, +- n_reads, +- mapped_perc, +- unmapped_perc, +- len(bad_cells), +- args.bc_threshold, +- bcs_corrected, +- args.umi_threshold, +- umis_corrected, +- args.read1_path, +- args.read2_path, +- args.cb_first, +- args.cb_last, +- args.umi_first, +- args.umi_last, +- args.expected_cells, +- args.max_error, +- args.start_trim)) ++ datetime.datetime.today().strftime("%Y-%m-%d"), ++ secondsToText.secondsToText(time.time() - start_time), ++ version, ++ n_reads, ++ mapped_perc, ++ unmapped_perc, ++ len(bad_cells), ++ args.bc_threshold, ++ bcs_corrected, ++ args.umi_threshold, ++ umis_corrected, ++ args.read1_path, ++ args.read2_path, ++ args.cb_first, ++ args.cb_last, ++ args.umi_first, ++ args.umi_last, ++ args.expected_cells, ++ args.max_error, ++ args.start_trim, ++ ) ++ ) ++ + + def main(): +- #Create logger and stream handler +- logger = logging.getLogger('cite_seq_count') ++ # Create logger and stream handler ++ logger = logging.getLogger("cite_seq_count") + logger.setLevel(logging.CRITICAL) + ch = logging.StreamHandler() + ch.setLevel(logging.CRITICAL) +- formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') ++ formatter = logging.Formatter( ++ "%(asctime)s - %(name)s - %(levelname)s - %(message)s" ++ ) + ch.setFormatter(formatter) + logger.addHandler(ch) + +@@ -237,11 +371,12 @@ def main(): + # Parse arguments. + args = parser.parse_args() + if args.whitelist: +- print('Loading whitelist') ++ print("Loading whitelist") + (whitelist, args.bc_threshold) = preprocessing.parse_whitelist_csv( + filename=args.whitelist, + barcode_length=args.cb_last - args.cb_first + 1, +- collapsing_threshold=args.bc_threshold) ++ collapsing_threshold=args.bc_threshold, ++ ) + else: + whitelist = False + +@@ -250,7 +385,9 @@ def main(): + ab_map = preprocessing.check_tags(ab_map, args.max_error) + + # Identify input file(s) +- read1_paths, read2_paths = preprocessing.get_read_paths(args.read1_path, args.read2_path) ++ read1_paths, read2_paths = preprocessing.get_read_paths( ++ args.read1_path, args.read2_path ++ ) + + # preprocessing and processing occur in separate loops so the program can crash earlier if + # one of the inputs is not valid. +@@ -264,14 +401,16 @@ def main(): + ( + barcode_slice, + umi_slice, +- barcode_umi_length ++ barcode_umi_length, + ) = preprocessing.check_barcodes_lengths( +- read1_lengths[-1], +- args.cb_first, +- args.cb_last, +- args.umi_first, args.umi_last) ++ read1_lengths[-1], ++ args.cb_first, ++ args.cb_last, ++ args.umi_first, ++ args.umi_last, ++ ) + # Ensure all files have the same input length +- #if len(set(read1_lengths)) != 1: ++ # if len(set(read1_lengths)) != 1: + # sys.exit('Input barcode fastqs (read1) do not all have same length.\nExiting') + + # Initialize the counts dicts that will be generated from each input fastq pair +@@ -281,52 +420,54 @@ def main(): + merged_no_match = Counter() + number_of_samples = len(read1_paths) + n_reads = 0 +- +- #Print a statement if multiple files are run. ++ ++ # Print a statement if multiple files are run. + if number_of_samples != 1: +- print('Detected {} files to run on.'.format(number_of_samples)) +- ++ print("Detected {} files to run on.".format(number_of_samples)) ++ + for read1_path, read2_path in zip(read1_paths, read2_paths): + if args.first_n: +- n_lines = (args.first_n*4)/number_of_samples ++ n_lines = (args.first_n * 4) / number_of_samples + else: + n_lines = preprocessing.get_n_lines(read1_path) +- n_reads += int(n_lines/4) ++ n_reads += int(n_lines / 4) + n_threads = args.n_threads +- print('Started mapping') +- print('Processing {:,} reads'.format(n_reads)) +- #Run with one process ++ print("Started mapping") ++ print("Processing {:,} reads".format(n_reads)) ++ # Run with one process + if n_threads <= 1 or n_reads < 1000001: +- print('CITE-seq-Count is running with one core.') +- ( +- _final_results, +- _merged_no_match) = processing.map_reads( +- read1_path=read1_path, +- read2_path=read2_path, +- tags=ab_map, +- barcode_slice=barcode_slice, +- umi_slice=umi_slice, +- indexes=[0,n_reads], +- whitelist=whitelist, +- debug=args.debug, +- start_trim=args.start_trim, +- maximum_distance=args.max_error, +- sliding_window=args.sliding_window) +- print('Mapping done') ++ print("CITE-seq-Count is running with one core.") ++ (_final_results, _merged_no_match) = processing.map_reads( ++ read1_path=read1_path, ++ read2_path=read2_path, ++ tags=ab_map, ++ barcode_slice=barcode_slice, ++ umi_slice=umi_slice, ++ indexes=[0, n_reads], ++ whitelist=whitelist, ++ debug=args.debug, ++ start_trim=args.start_trim, ++ maximum_distance=args.max_error, ++ sliding_window=args.sliding_window, ++ ) ++ print("Mapping done") + _umis_per_cell = Counter() + _reads_per_cell = Counter() + for cell_barcode, counts in _final_results.items(): + _umis_per_cell[cell_barcode] = sum([len(counts[UMI]) for UMI in counts]) +- _reads_per_cell[cell_barcode] = sum([sum(counts[UMI].values()) for UMI in counts]) ++ _reads_per_cell[cell_barcode] = sum( ++ [sum(counts[UMI].values()) for UMI in counts] ++ ) + else: + # Run with multiple processes +- print('CITE-seq-Count is running with {} cores.'.format(n_threads)) ++ print("CITE-seq-Count is running with {} cores.".format(n_threads)) + p = Pool(processes=n_threads) + chunk_indexes = preprocessing.chunk_reads(n_reads, n_threads) + parallel_results = [] + + for indexes in chunk_indexes: +- p.apply_async(processing.map_reads, ++ p.apply_async( ++ processing.map_reads, + args=( + read1_path, + read2_path, +@@ -338,21 +479,23 @@ def main(): + args.debug, + args.start_trim, + args.max_error, +- args.sliding_window), ++ args.sliding_window, ++ ), + callback=parallel_results.append, +- error_callback=sys.stderr) ++ error_callback=sys.stderr, ++ ) + p.close() + p.join() +- print('Mapping done') +- print('Merging results') ++ print("Mapping done") ++ print("Merging results") + + ( + _final_results, + _umis_per_cell, + _reads_per_cell, +- _merged_no_match ++ _merged_no_match, + ) = processing.merge_results(parallel_results=parallel_results) +- del(parallel_results) ++ del parallel_results + + # Update the overall counts dicts + umis_per_cell.update(_umis_per_cell) +@@ -362,46 +505,56 @@ def main(): + for tag in _final_results[cell_barcode]: + if tag in final_results[cell_barcode]: + # Counter + Counter = Counter +- final_results[cell_barcode][tag] += _final_results[cell_barcode][tag] ++ final_results[cell_barcode][tag] += _final_results[cell_barcode][ ++ tag ++ ] + else: + # Explicitly save the counter to that tag + final_results[cell_barcode][tag] = _final_results[cell_barcode][tag] + ordered_tags_map = OrderedDict() +- for i,tag in enumerate(ab_map.values()): ++ for i, tag in enumerate(ab_map.values()): + ordered_tags_map[tag] = i +- ordered_tags_map['unmapped'] = i + 1 ++ ordered_tags_map["unmapped"] = i + 1 + + # Correct cell barcodes +- if(len(umis_per_cell) <= args.expected_cells): +- print("Number of expected cells, {}, is higher " \ +- "than number of cells found {}.\nNot performing" \ +- "cell barcode correction" \ +- "".format(args.expected_cells, len(umis_per_cell))) +- bcs_corrected = 0 +- else: +- print('Correcting cell barcodes') +- if not whitelist: +- ( +- final_results, +- umis_per_cell, +- bcs_corrected +- ) = processing.correct_cells( ++ if args.bc_threshold > 0: ++ if len(umis_per_cell) <= args.expected_cells: ++ print( ++ "Number of expected cells, {}, is higher " ++ "than number of cells found {}.\nNot performing" ++ "cell barcode correction" ++ "".format(args.expected_cells, len(umis_per_cell)) ++ ) ++ bcs_corrected = 0 ++ else: ++ print("Correcting cell barcodes") ++ if not whitelist: ++ ( ++ final_results, ++ umis_per_cell, ++ bcs_corrected, ++ ) = processing.correct_cells( + final_results=final_results, + reads_per_cell=reads_per_cell, + umis_per_cell=umis_per_cell, + expected_cells=args.expected_cells, + collapsing_threshold=args.bc_threshold, +- ab_map=ordered_tags_map) +- else: +- ( +- final_results, +- umis_per_cell, +- bcs_corrected) = processing.correct_cells_whitelist( ++ ab_map=ordered_tags_map, ++ ) ++ else: ++ ( ++ final_results, ++ umis_per_cell, ++ bcs_corrected, ++ ) = processing.correct_cells_whitelist( + final_results=final_results, + umis_per_cell=umis_per_cell, + whitelist=whitelist, + collapsing_threshold=args.bc_threshold, +- ab_map=ordered_tags_map) ++ ab_map=ordered_tags_map, ++ ) ++ else: ++ bcs_corrected = 0 + + # If given, use whitelist for top cells + if whitelist: +@@ -420,78 +573,75 @@ def main(): + top_cells_tuple = umis_per_cell.most_common(args.expected_cells) + top_cells = set([pair[0] for pair in top_cells_tuple]) + +- #UMI correction ++ # UMI correction + + if args.no_umi_correction: +- #Don't correct ++ # Don't correct + umis_corrected = 0 + aberrant_cells = set() + else: +- #Correct UMIS +- ( +- final_results, +- umis_corrected, +- aberrant_cells +- ) = processing.correct_umis( ++ # Correct UMIS ++ (final_results, umis_corrected, aberrant_cells) = processing.correct_umis( + final_results=final_results, + collapsing_threshold=args.umi_threshold, + top_cells=top_cells, +- max_umis=20000) ++ max_umis=20000, ++ ) + +- #Remove aberrant cells from the top cells ++ # Remove aberrant cells from the top cells + for cell_barcode in aberrant_cells: + top_cells.remove(cell_barcode) + +- #Create sparse aberrant cells matrix +- ( +- umi_aberrant_matrix, +- read_aberrant_matrix +- ) = processing.generate_sparse_matrices( ++ # Create sparse aberrant cells matrix ++ (umi_aberrant_matrix, read_aberrant_matrix) = processing.generate_sparse_matrices( + final_results=final_results, + ordered_tags_map=ordered_tags_map, +- top_cells=aberrant_cells) +- +- #Write uncorrected cells to dense output ++ top_cells=aberrant_cells, ++ ) ++ ++ # Write uncorrected cells to dense output + io.write_dense( +- sparse_matrix=umi_aberrant_matrix, +- index=list(ordered_tags_map.keys()), +- columns=aberrant_cells, +- outfolder=os.path.join(args.outfolder,'uncorrected_cells'), +- filename='dense_umis.tsv') +- +- #Create sparse matrices for results +- ( +- umi_results_matrix, +- read_results_matrix +- ) = processing.generate_sparse_matrices( ++ sparse_matrix=umi_aberrant_matrix, ++ index=list(ordered_tags_map.keys()), ++ columns=aberrant_cells, ++ outfolder=os.path.join(args.outfolder, "uncorrected_cells"), ++ filename="dense_umis.tsv", ++ ) ++ ++ # Create sparse matrices for results ++ (umi_results_matrix, read_results_matrix) = processing.generate_sparse_matrices( + final_results=final_results, + ordered_tags_map=ordered_tags_map, +- top_cells=top_cells) +- ++ top_cells=top_cells, ++ ) ++ + # Write umis to file + io.write_to_files( + sparse_matrix=umi_results_matrix, + top_cells=top_cells, + ordered_tags_map=ordered_tags_map, +- data_type='umi', +- outfolder=args.outfolder) +- ++ data_type="umi", ++ outfolder=args.outfolder, ++ ) ++ + # Write reads to file + io.write_to_files( + sparse_matrix=read_results_matrix, + top_cells=top_cells, + ordered_tags_map=ordered_tags_map, +- data_type='read', +- outfolder=args.outfolder) +- +- #Write unmapped sequences ++ data_type="read", ++ outfolder=args.outfolder, ++ ) ++ ++ # Write unmapped sequences + io.write_unmapped( + merged_no_match=merged_no_match, + top_unknowns=args.unknowns_top, + outfolder=args.outfolder, +- filename=args.unmapped_file) +- +- #Create report and write it to disk ++ filename=args.unmapped_file, ++ ) ++ ++ # Create report and write it to disk + create_report( + n_reads=n_reads, + reads_per_cell=reads_per_cell, +@@ -502,17 +652,20 @@ def main(): + umis_corrected=umis_corrected, + bcs_corrected=bcs_corrected, + bad_cells=aberrant_cells, +- args=args) +- +- #Write dense matrix to disk if requested ++ args=args, ++ ) ++ ++ # Write dense matrix to disk if requested + if args.dense: +- print('Writing dense format output') ++ print("Writing dense format output") + io.write_dense( + sparse_matrix=umi_results_matrix, + index=list(ordered_tags_map.keys()), + columns=top_cells, + outfolder=args.outfolder, +- filename='dense_umis.tsv') ++ filename="dense_umis.tsv", ++ ) ++ + +-if __name__ == '__main__': ++if __name__ == "__main__": + main() +diff --git a/setup.py b/setup.py +index 819e30c..6423bc3 100644 +--- a/setup.py ++++ b/setup.py +@@ -5,7 +5,7 @@ with open("README.md", "r") as fh: + + setuptools.setup( + name="CITE-seq-Count", +- version="1.4.4", ++ version="1.4.5", + author="Roelli Patrick", + author_email="patrick.roelli@gmail.com", + description="A python package to map reads from CITE-seq or hashing data for single cell experiments", diff --git a/recipes/cite-seq-count/0002-pytest_deps.patch b/recipes/cite-seq-count/0002-pytest_deps.patch new file mode 100644 index 0000000000000..08b5a7c38a9cd --- /dev/null +++ b/recipes/cite-seq-count/0002-pytest_deps.patch @@ -0,0 +1,17 @@ +diff --git a/setup.py b/setup.py +index 819e30c..832c108 100644 +--- a/setup.py ++++ b/setup.py +@@ -21,9 +21,9 @@ setuptools.setup( + "python-levenshtein>=0.12.0", + "scipy>=1.1.0", + "multiprocess>=0.70.6.1", +- "umi_tools==1.0.0", +- "pytest==4.1.0", +- "pytest-dependency==0.4.0", ++ "umi_tools>=1.1.5", ++ "pytest>=4.1.0", ++ "pytest-dependency>=0.4.0", + "pandas>=0.23.4", + "pybktree==1.1", + ], diff --git a/recipes/cite-seq-count/meta.yaml b/recipes/cite-seq-count/meta.yaml index 21c798bf66609..49f5676a7caa3 100644 --- a/recipes/cite-seq-count/meta.yaml +++ b/recipes/cite-seq-count/meta.yaml @@ -1,36 +1,32 @@ + {% set name = "CITE-seq-Count" %} {% set version = "1.4.4" %} {% set sha256 = "1245c0dabf2c2ee80f9afcac4c70bb97c2d8b5aea73adfcfc7062e3984d57e39" %} package: name: "{{ name|lower }}" - version: "{{ version }}" + version: "1.4.5" source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" sha256: {{ sha256 }} patches: - - pytest_deps.patch + - 0001-setup.py.patch + - 0002-pytest_deps.patch build: number: 0 noarch: python entry_points: - CITE-seq-Count = cite_seq_count.__main__:main - script: "{{ PYTHON }} -m pip install . -vv --no-deps" + script: "{{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir" + run_exports: + - {{ pin_subpackage('cite-seq-count', max_pin="x") }} requirements: host: - python >=3.6 - - multiprocess >=0.70.6.1 - - pandas >=0.23.4 - pip - - pybktree ==1.1 - - pytest - - pytest-dependency - - python-levenshtein >=0.12.0 - - scipy >=1.1.0 - - umi_tools ==1.0.0 run: - python >=3.6 - multiprocess >=0.70.6.1 @@ -39,8 +35,9 @@ requirements: - pytest - pytest-dependency - python-levenshtein >=0.12.0 + - regex - scipy >=1.1.0 - - umi_tools ==1.0.0 + - umi_tools >=1.1.5 test: imports: @@ -49,17 +46,18 @@ test: - CITE-seq-Count --help about: - home: "https://hoohm.github.io/CITE-seq-Count/" + home: "https://hoohm.github.io/CITE-seq-Count" license: MIT license_family: MIT license_file: LICENSE - summary: "A python package to map reads from CITE-seq or hashing data for single cell experiments" - doc_url: "https://hoohm.github.io/CITE-seq-Count/" - dev_url: "https://github.com/Hoohm/CITE-seq-Count/" + summary: "A python package to map reads from CITE-seq or hashing data for single cell experiments." + doc_url: "https://hoohm.github.io/CITE-seq-Count" + dev_url: "https://github.com/Hoohm/CITE-seq-Count" extra: recipe-maintainers: - acaprez identifiers: - biotools:CITE-seq-Count + - usegalaxy-eu:cite_seq_count - doi:10.5281/zenodo.2590196 diff --git a/recipes/cite-seq-count/pytest_deps.patch b/recipes/cite-seq-count/pytest_deps.patch deleted file mode 100644 index c60eb0a601bcd..0000000000000 --- a/recipes/cite-seq-count/pytest_deps.patch +++ /dev/null @@ -1,25 +0,0 @@ ---- setup.py.org 2021-10-01 00:42:34.157107978 -0500 -+++ setup.py 2021-10-01 00:42:52.500079923 -0500 -@@ -22,8 +22,8 @@ - "scipy>=1.1.0", - "multiprocess>=0.70.6.1", - "umi_tools==1.0.0", -- "pytest==4.1.0", -- "pytest-dependency==0.4.0", -+ "pytest>=4.1.0", -+ "pytest-dependency>=0.4.0", - "pandas>=0.23.4", - "pybktree==1.1", - ], ---- CITE_seq_Count.egg-info/requires.txt.org 2021-10-01 00:43:01.952065465 -0500 -+++ CITE_seq_Count.egg-info/requires.txt 2021-10-01 00:43:10.664052138 -0500 -@@ -2,7 +2,7 @@ - scipy>=1.1.0 - multiprocess>=0.70.6.1 - umi_tools==1.0.0 --pytest==4.1.0 --pytest-dependency==0.4.0 -+pytest>=4.1.0 -+pytest-dependency>=0.4.0 - pandas>=0.23.4 - pybktree==1.1 From 5f2d85c2deed2e371d9cf7e27a686d1eaf3eea8c Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Mon, 5 Aug 2024 03:14:39 -0500 Subject: [PATCH 0766/1589] umi_tools: add arm64 build (#49793) --- recipes/umi_tools/meta.yaml | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/recipes/umi_tools/meta.yaml b/recipes/umi_tools/meta.yaml index 8176d7e0607eb..1226c60bb3b15 100644 --- a/recipes/umi_tools/meta.yaml +++ b/recipes/umi_tools/meta.yaml @@ -1,6 +1,6 @@ {% set name = "umi_tools" %} {% set version = "1.1.5" %} -{% set sha256hash = "2a87b75364ebe3e6ccf467d3b6d0501c458a48f3e6c8ab8b7c4dfb3fd7627fab" %} +{% set sha256 = "2a87b75364ebe3e6ccf467d3b6d0501c458a48f3e6c8ab8b7c4dfb3fd7627fab" %} package: name: {{ name }} @@ -8,13 +8,13 @@ package: source: url: https://github.com/CGATOxford/UMI-tools/archive/refs/tags/{{ version }}.tar.gz - sha256: {{ sha256hash }} + sha256: {{ sha256 }} build: - number: 2 - script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed --no-cache-dir -vvv" + number: 3 + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" # python 3.12: error: 'PyLongObject' {aka 'struct _longobject'} has no member named 'ob_digit' - skip: true # [py == 312 ] + skip: True # [py == 312 ] entry_points: - umi_tools = umi_tools.umi_tools:main run_exports: @@ -39,16 +39,26 @@ requirements: test: commands: - - umi_tools --help + - "umi_tools --help" about: - home: https://github.com/CGATOxford/UMI-tools - license: MIT License + home: "https://github.com/CGATOxford/UMI-tools" + license: MIT license_family: MIT - summary: 'Tools for dealing with Unique Molecular Identifiers - (UMIs) / Random Molecular Tags (RMTs)' - dev_url: https://github.com/CGATOxford/UMI-tools + license_file: LICENSE + summary: "Tools for dealing with Unique Molecular Identifiers + (UMIs) / Random Molecular Tags (RMTs)." + dev_url: "https://github.com/CGATOxford/UMI-tools" + doc_url: "https://umi-tools.readthedocs.io/en/latest" extra: additional-platforms: - linux-aarch64 + - osx-arm64 + identifiers: + - doi:10.1101/gr.209601.116 + - usegalaxy-eu:umi_tools_count + - usegalaxy-eu:umi_tools_extract + - usegalaxy-eu:umi_tools_group + - usegalaxy-eu:umi_tools_whitelist + - usegalaxy-eu:umi_tools_dedup From ee73481153fce989acac090ad3b09dabaac9764f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 05:11:12 -0400 Subject: [PATCH 0767/1589] Update nextpolish2 to 0.2.1 (#49795) * Update nextpolish2 to 0.2.1 * add run_exports --------- Co-authored-by: mencian --- recipes/nextpolish2/build.sh | 6 +----- recipes/nextpolish2/meta.yaml | 24 +++++++++++++++--------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/recipes/nextpolish2/build.sh b/recipes/nextpolish2/build.sh index 3662f6efb60db..5e20a67b60e44 100644 --- a/recipes/nextpolish2/build.sh +++ b/recipes/nextpolish2/build.sh @@ -1,8 +1,4 @@ #!/bin/bash -euo -# Add workaround for SSH-based Git connections from Rust/cargo. See https://github.com/rust-lang/cargo/issues/2078 for details. -# We set CARGO_HOME because we don't pass on HOME to conda-build, thus rendering the default "${HOME}/.cargo" defunct. -export CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_HOME="$(pwd)/.cargo" - # build statically linked binary with Rust -RUST_BACKTRACE=1 cargo install --verbose --path . --root $PREFIX +RUST_BACKTRACE=1 cargo install --verbose --path . --root "${PREFIX}" diff --git a/recipes/nextpolish2/meta.yaml b/recipes/nextpolish2/meta.yaml index 06e3cee601ab3..c90c5f20d41d2 100644 --- a/recipes/nextpolish2/meta.yaml +++ b/recipes/nextpolish2/meta.yaml @@ -1,24 +1,27 @@ -{% set version = "0.2.0" %} +{% set name = "nextpolish2" %} +{% set version = "0.2.1" %} package: - name: nextpolish2 + name: {{ name }} version: {{ version }} source: url: https://github.com/Nextomics/NextPolish2/archive/{{ version }}.tar.gz - sha256: 34fc7c5ce8e4ce2e1e2fd2252624b8f7d6cc81e2d4b2c8a7479053401bb50e04 + sha256: 5f94cfabae5d38397a33c118f572246070707aa23f7b2ab831fd255710f50280 build: number: 0 + run_exports: + - {{ pin_subpackage('nextpolish2', max_pin="x.x") }} requirements: build: - - rust >=1.64 + - {{ compiler('cxx') }} + - {{ compiler('rust') }} - make - cmake - - zlib - - {{ compiler('cxx') }} host: + - zlib run: - yak >=0.1 @@ -29,12 +32,15 @@ test: - nextPolish2 --help about: - home: https://github.com/Nextomics/NextPolish2 + home: "https://github.com/Nextomics/NextPolish2" license: GBPL license_file: LICENSE - summary: Repeat-aware polishing genomes assembled using HiFi long reads + summary: "Repeat-aware polishing genomes assembled using HiFi long reads." + dev_url: "https://github.com/Nextomics/NextPolish2" + doc_url: "https://github.com/Nextomics/NextPolish2/blob/{{ version }}/README.md" extra: recipe-maintainers: - moold - + identifiers: + - doi:10.1093/gpbjnl/qzad009 From 060926c44e25bf2fc77f29b296127fa245fb66a2 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Mon, 5 Aug 2024 04:25:21 -0500 Subject: [PATCH 0768/1589] Update cite-seq-count recipe (#49797) * Update cite-seq-count recipe * reset build number --- recipes/cite-seq-count/meta.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/recipes/cite-seq-count/meta.yaml b/recipes/cite-seq-count/meta.yaml index 49f5676a7caa3..dd1d6ffc1de9a 100644 --- a/recipes/cite-seq-count/meta.yaml +++ b/recipes/cite-seq-count/meta.yaml @@ -35,7 +35,6 @@ requirements: - pytest - pytest-dependency - python-levenshtein >=0.12.0 - - regex - scipy >=1.1.0 - umi_tools >=1.1.5 From 8db8ceffb23b2ae65fd2f570702155686990bcc2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 10:03:55 -0400 Subject: [PATCH 0769/1589] Update assembly_finder to 0.7.5 (#49798) --- recipes/assembly_finder/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/assembly_finder/meta.yaml b/recipes/assembly_finder/meta.yaml index 5abfbc3b3caa9..481c55de1362a 100644 --- a/recipes/assembly_finder/meta.yaml +++ b/recipes/assembly_finder/meta.yaml @@ -1,5 +1,5 @@ {% set name = "assembly_finder" %} -{% set version = "0.7.4" %} +{% set version = "0.7.5" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://github.com/metagenlab/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz - sha256: a883ea2ac4b70960bdd260de69fb53a33b52ec1fe0d975572fce5f45a7ebdfc4 + sha256: 5b5d6ec619775e419c6875215c71a3a1e8c4e745c4a7ddb6847a2c03313a1470 build: number: 0 From 38506c8e23d480898d903bc586c0bff9c805f3c0 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 5 Aug 2024 18:21:42 +0300 Subject: [PATCH 0770/1589] pybedlite & cgranges: add aarch64/arm64 builds (#49794) * pybedlite: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * cgranges: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/cgranges/meta.yaml | 6 ++++-- recipes/pybedlite/meta.yaml | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/recipes/cgranges/meta.yaml b/recipes/cgranges/meta.yaml index 1a43ace782623..cc8be36d7d0a4 100644 --- a/recipes/cgranges/meta.yaml +++ b/recipes/cgranges/meta.yaml @@ -11,8 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 - skip: True # [py27] + number: 2 script: {{ PYTHON }} -m pip install --no-deps --no-build-isolation -vvv . run_exports: - {{ pin_subpackage('cgranges', max_pin="x") }} @@ -38,5 +37,8 @@ about: summary: "cgranges is a small C library for genomic interval overlap queries" extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - nh13 diff --git a/recipes/pybedlite/meta.yaml b/recipes/pybedlite/meta.yaml index 16e6de9deda68..711845645471b 100644 --- a/recipes/pybedlite/meta.yaml +++ b/recipes/pybedlite/meta.yaml @@ -10,8 +10,7 @@ source: sha256: c87a246a673f69b929103176b744b6ad6978b63fae45f1ca6becc315a72d671c build: - skip: True # [py < 38] - number: 0 + number: 1 script: {{ PYTHON }} -m pip install . -vvv --no-deps run_exports: - {{ pin_subpackage('pybedlite', max_pin="x") }} @@ -45,6 +44,9 @@ about: doc_url: https://pybedlite.readthedocs.io/en/latest/ extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - NatPRoach - nh13 From 45d39a236b884add4b8b38a91d95f1a8123619b8 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 5 Aug 2024 18:22:18 +0300 Subject: [PATCH 0771/1589] insurveyor: add aarch64/arm64 builds (#49800) * insurveyor: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * Add a patch to use sse2neon.h for aarch64/arm64 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/insurveyor/INSurVeyor-aarch64.patch | 9360 +++++++++++++++++++ recipes/insurveyor/build.sh | 2 +- recipes/insurveyor/meta.yaml | 7 +- 3 files changed, 9367 insertions(+), 2 deletions(-) create mode 100644 recipes/insurveyor/INSurVeyor-aarch64.patch diff --git a/recipes/insurveyor/INSurVeyor-aarch64.patch b/recipes/insurveyor/INSurVeyor-aarch64.patch new file mode 100644 index 0000000000000..b8fa54aa85460 --- /dev/null +++ b/recipes/insurveyor/INSurVeyor-aarch64.patch @@ -0,0 +1,9360 @@ +diff --git c/libs/ssw.c i/libs/ssw.c +index a45635c..4269776 100644 +--- c/libs/ssw.c ++++ i/libs/ssw.c +@@ -36,7 +36,13 @@ + */ + + //#include ++#ifdef __ARM_NEON ++#include "../sse2neon.h" ++#else + #include ++#endif ++ ++ + #include + #include + #include +diff --git c/libs/ssw.h i/libs/ssw.h +index 510f5f4..c0be73b 100644 +--- c/libs/ssw.h ++++ i/libs/ssw.h +@@ -14,7 +14,13 @@ + #include + #include + #include ++ ++#ifdef __ARM_NEON ++#include "../sse2neon.h" ++#else + #include ++#endif ++ + + #ifdef __cplusplus + extern "C" { +diff --git c/sse2neon.h i/sse2neon.h +new file mode 100644 +index 0000000..2b12721 +--- /dev/null ++++ i/sse2neon.h +@@ -0,0 +1,9301 @@ ++#ifndef SSE2NEON_H ++#define SSE2NEON_H ++ ++/* ++ * sse2neon is freely redistributable under the MIT License. ++ * ++ * Copyright (c) 2015-2024 SSE2NEON Contributors. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a copy ++ * of this software and associated documentation files (the "Software"), to deal ++ * in the Software without restriction, including without limitation the rights ++ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ++ * copies of the Software, and to permit persons to whom the Software is ++ * furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice shall be included in ++ * all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++ * SOFTWARE. ++ */ ++ ++// This header file provides a simple API translation layer ++// between SSE intrinsics to their corresponding Arm/Aarch64 NEON versions ++// ++// Contributors to this work are: ++// John W. Ratcliff ++// Brandon Rowlett ++// Ken Fast ++// Eric van Beurden ++// Alexander Potylitsin ++// Hasindu Gamaarachchi ++// Jim Huang ++// Mark Cheng ++// Malcolm James MacLeod ++// Devin Hussey (easyaspi314) ++// Sebastian Pop ++// Developer Ecosystem Engineering ++// Danila Kutenin ++// François Turban (JishinMaster) ++// Pei-Hsuan Hung ++// Yang-Hao Yuan ++// Syoyo Fujita ++// Brecht Van Lommel ++// Jonathan Hue ++// Cuda Chen ++// Aymen Qader ++// Anthony Roberts ++ ++/* Tunable configurations */ ++ ++/* Enable precise implementation of math operations ++ * This would slow down the computation a bit, but gives consistent result with ++ * x86 SSE. (e.g. would solve a hole or NaN pixel in the rendering result) ++ */ ++/* _mm_min|max_ps|ss|pd|sd */ ++#ifndef SSE2NEON_PRECISE_MINMAX ++#define SSE2NEON_PRECISE_MINMAX (0) ++#endif ++/* _mm_rcp_ps */ ++#ifndef SSE2NEON_PRECISE_DIV ++#define SSE2NEON_PRECISE_DIV (0) ++#endif ++/* _mm_sqrt_ps and _mm_rsqrt_ps */ ++#ifndef SSE2NEON_PRECISE_SQRT ++#define SSE2NEON_PRECISE_SQRT (0) ++#endif ++/* _mm_dp_pd */ ++#ifndef SSE2NEON_PRECISE_DP ++#define SSE2NEON_PRECISE_DP (0) ++#endif ++ ++/* Enable inclusion of windows.h on MSVC platforms ++ * This makes _mm_clflush functional on windows, as there is no builtin. ++ */ ++#ifndef SSE2NEON_INCLUDE_WINDOWS_H ++#define SSE2NEON_INCLUDE_WINDOWS_H (0) ++#endif ++ ++/* compiler specific definitions */ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma push_macro("FORCE_INLINE") ++#pragma push_macro("ALIGN_STRUCT") ++#define FORCE_INLINE static inline __attribute__((always_inline)) ++#define ALIGN_STRUCT(x) __attribute__((aligned(x))) ++#define _sse2neon_likely(x) __builtin_expect(!!(x), 1) ++#define _sse2neon_unlikely(x) __builtin_expect(!!(x), 0) ++#elif defined(_MSC_VER) ++#if _MSVC_TRADITIONAL ++#error Using the traditional MSVC preprocessor is not supported! Use /Zc:preprocessor instead. ++#endif ++#ifndef FORCE_INLINE ++#define FORCE_INLINE static inline ++#endif ++#ifndef ALIGN_STRUCT ++#define ALIGN_STRUCT(x) __declspec(align(x)) ++#endif ++#define _sse2neon_likely(x) (x) ++#define _sse2neon_unlikely(x) (x) ++#else ++#pragma message("Macro name collisions may happen with unsupported compilers.") ++#endif ++ ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma push_macro("FORCE_INLINE_OPTNONE") ++#define FORCE_INLINE_OPTNONE static inline __attribute__((optimize("O0"))) ++#elif defined(__clang__) ++#pragma push_macro("FORCE_INLINE_OPTNONE") ++#define FORCE_INLINE_OPTNONE static inline __attribute__((optnone)) ++#else ++#define FORCE_INLINE_OPTNONE FORCE_INLINE ++#endif ++ ++#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ < 10 ++#warning "GCC versions earlier than 10 are not supported." ++#endif ++ ++/* C language does not allow initializing a variable with a function call. */ ++#ifdef __cplusplus ++#define _sse2neon_const static const ++#else ++#define _sse2neon_const const ++#endif ++ ++#include ++#include ++ ++#if defined(_WIN32) ++/* Definitions for _mm_{malloc,free} are provided by ++ * from both MinGW-w64 and MSVC. ++ */ ++#define SSE2NEON_ALLOC_DEFINED ++#endif ++ ++/* If using MSVC */ ++#ifdef _MSC_VER ++#include ++#if SSE2NEON_INCLUDE_WINDOWS_H ++#include ++#include ++#endif ++ ++#if !defined(__cplusplus) ++#error SSE2NEON only supports C++ compilation with this compiler ++#endif ++ ++#ifdef SSE2NEON_ALLOC_DEFINED ++#include ++#endif ++ ++#if (defined(_M_AMD64) || defined(__x86_64__)) || \ ++ (defined(_M_ARM64) || defined(__arm64__)) ++#define SSE2NEON_HAS_BITSCAN64 ++#endif ++#endif ++ ++#if defined(__GNUC__) || defined(__clang__) ++#define _sse2neon_define0(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define1(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define2(type, a, b, body) \ ++ __extension__({ \ ++ type _a = (a), _b = (b); \ ++ body \ ++ }) ++#define _sse2neon_return(ret) (ret) ++#else ++#define _sse2neon_define0(type, a, body) [=](type _a) { body }(a) ++#define _sse2neon_define1(type, a, body) [](type _a) { body }(a) ++#define _sse2neon_define2(type, a, b, body) \ ++ [](type _a, type _b) { body }((a), (b)) ++#define _sse2neon_return(ret) return ret ++#endif ++ ++#define _sse2neon_init(...) \ ++ { \ ++ __VA_ARGS__ \ ++ } ++ ++/* Compiler barrier */ ++#if defined(_MSC_VER) ++#define SSE2NEON_BARRIER() _ReadWriteBarrier() ++#else ++#define SSE2NEON_BARRIER() \ ++ do { \ ++ __asm__ __volatile__("" ::: "memory"); \ ++ (void) 0; \ ++ } while (0) ++#endif ++ ++/* Memory barriers ++ * __atomic_thread_fence does not include a compiler barrier; instead, ++ * the barrier is part of __atomic_load/__atomic_store's "volatile-like" ++ * semantics. ++ */ ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) ++#include ++#endif ++ ++FORCE_INLINE void _sse2neon_smp_mb(void) ++{ ++ SSE2NEON_BARRIER(); ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && \ ++ !defined(__STDC_NO_ATOMICS__) ++ atomic_thread_fence(memory_order_seq_cst); ++#elif defined(__GNUC__) || defined(__clang__) ++ __atomic_thread_fence(__ATOMIC_SEQ_CST); ++#else /* MSVC */ ++ __dmb(_ARM64_BARRIER_ISH); ++#endif ++} ++ ++/* Architecture-specific build options */ ++/* FIXME: #pragma GCC push_options is only available on GCC */ ++#if defined(__GNUC__) ++#if defined(__arm__) && __ARM_ARCH == 7 ++/* According to ARM C Language Extensions Architecture specification, ++ * __ARM_NEON is defined to a value indicating the Advanced SIMD (NEON) ++ * architecture supported. ++ */ ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error "You must enable NEON instructions (e.g. -mfpu=neon) to use SSE2NEON." ++#endif ++#if !defined(__clang__) ++#pragma GCC push_options ++#pragma GCC target("fpu=neon") ++#endif ++#elif defined(__aarch64__) || defined(_M_ARM64) ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#pragma GCC target("+simd") ++#endif ++#elif __ARM_ARCH == 8 ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error \ ++ "You must enable NEON instructions (e.g. -mfpu=neon-fp-armv8) to use SSE2NEON." ++#endif ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#endif ++#else ++#error \ ++ "Unsupported target. Must be either ARMv7-A+NEON or ARMv8-A \ ++(you could try setting target explicitly with -march or -mcpu)" ++#endif ++#endif ++ ++#include ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) && (__ARM_ARCH == 8) ++#if defined __has_include && __has_include() ++#include ++#endif ++#endif ++ ++/* Apple Silicon cache lines are double of what is commonly used by Intel, AMD ++ * and other Arm microarchitectures use. ++ * From sysctl -a on Apple M1: ++ * hw.cachelinesize: 128 ++ */ ++#if defined(__APPLE__) && (defined(__aarch64__) || defined(__arm64__)) ++#define SSE2NEON_CACHELINE_SIZE 128 ++#else ++#define SSE2NEON_CACHELINE_SIZE 64 ++#endif ++ ++/* Rounding functions require either Aarch64 instructions or libm fallback */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#include ++#endif ++ ++/* On ARMv7, some registers, such as PMUSERENR and PMCCNTR, are read-only ++ * or even not accessible in user mode. ++ * To write or access to these registers in user mode, ++ * we have to perform syscall instead. ++ */ ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) ++#include ++#endif ++ ++/* "__has_builtin" can be used to query support for built-in functions ++ * provided by gcc/clang and other compilers that support it. ++ */ ++#ifndef __has_builtin /* GCC prior to 10 or non-clang compilers */ ++/* Compatibility with gcc <= 9 */ ++#if defined(__GNUC__) && (__GNUC__ <= 9) ++#define __has_builtin(x) HAS##x ++#define HAS__builtin_popcount 1 ++#define HAS__builtin_popcountll 1 ++ ++// __builtin_shuffle introduced in GCC 4.7.0 ++#if (__GNUC__ >= 5) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) ++#define HAS__builtin_shuffle 1 ++#else ++#define HAS__builtin_shuffle 0 ++#endif ++ ++#define HAS__builtin_shufflevector 0 ++#define HAS__builtin_nontemporal_store 0 ++#else ++#define __has_builtin(x) 0 ++#endif ++#endif ++ ++/** ++ * MACRO for shuffle parameter for _mm_shuffle_ps(). ++ * Argument fp3 is a digit[0123] that represents the fp from argument "b" ++ * of mm_shuffle_ps that will be placed in fp3 of result. fp2 is the same ++ * for fp2 in result. fp1 is a digit[0123] that represents the fp from ++ * argument "a" of mm_shuffle_ps that will be places in fp1 of result. ++ * fp0 is the same for fp0 of result. ++ */ ++#define _MM_SHUFFLE(fp3, fp2, fp1, fp0) \ ++ (((fp3) << 6) | ((fp2) << 4) | ((fp1) << 2) | ((fp0))) ++ ++#if __has_builtin(__builtin_shufflevector) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __builtin_shufflevector(a, b, __VA_ARGS__) ++#elif __has_builtin(__builtin_shuffle) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __extension__({ \ ++ type tmp = {__VA_ARGS__}; \ ++ __builtin_shuffle(a, b, tmp); \ ++ }) ++#endif ++ ++#ifdef _sse2neon_shuffle ++#define vshuffle_s16(a, b, ...) _sse2neon_shuffle(int16x4_t, a, b, __VA_ARGS__) ++#define vshuffleq_s16(a, b, ...) _sse2neon_shuffle(int16x8_t, a, b, __VA_ARGS__) ++#define vshuffle_s32(a, b, ...) _sse2neon_shuffle(int32x2_t, a, b, __VA_ARGS__) ++#define vshuffleq_s32(a, b, ...) _sse2neon_shuffle(int32x4_t, a, b, __VA_ARGS__) ++#define vshuffle_s64(a, b, ...) _sse2neon_shuffle(int64x1_t, a, b, __VA_ARGS__) ++#define vshuffleq_s64(a, b, ...) _sse2neon_shuffle(int64x2_t, a, b, __VA_ARGS__) ++#endif ++ ++/* Rounding mode macros. */ ++#define _MM_FROUND_TO_NEAREST_INT 0x00 ++#define _MM_FROUND_TO_NEG_INF 0x01 ++#define _MM_FROUND_TO_POS_INF 0x02 ++#define _MM_FROUND_TO_ZERO 0x03 ++#define _MM_FROUND_CUR_DIRECTION 0x04 ++#define _MM_FROUND_NO_EXC 0x08 ++#define _MM_FROUND_RAISE_EXC 0x00 ++#define _MM_FROUND_NINT (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_FLOOR (_MM_FROUND_TO_NEG_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_CEIL (_MM_FROUND_TO_POS_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_TRUNC (_MM_FROUND_TO_ZERO | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_RINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_NEARBYINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_NO_EXC) ++#define _MM_ROUND_NEAREST 0x0000 ++#define _MM_ROUND_DOWN 0x2000 ++#define _MM_ROUND_UP 0x4000 ++#define _MM_ROUND_TOWARD_ZERO 0x6000 ++/* Flush zero mode macros. */ ++#define _MM_FLUSH_ZERO_MASK 0x8000 ++#define _MM_FLUSH_ZERO_ON 0x8000 ++#define _MM_FLUSH_ZERO_OFF 0x0000 ++/* Denormals are zeros mode macros. */ ++#define _MM_DENORMALS_ZERO_MASK 0x0040 ++#define _MM_DENORMALS_ZERO_ON 0x0040 ++#define _MM_DENORMALS_ZERO_OFF 0x0000 ++ ++/* indicate immediate constant argument in a given range */ ++#define __constrange(a, b) const ++ ++/* A few intrinsics accept traditional data types like ints or floats, but ++ * most operate on data types that are specific to SSE. ++ * If a vector type ends in d, it contains doubles, and if it does not have ++ * a suffix, it contains floats. An integer vector type can contain any type ++ * of integer, from chars to shorts to unsigned long longs. ++ */ ++typedef int64x1_t __m64; ++typedef float32x4_t __m128; /* 128-bit vector containing 4 floats */ ++// On ARM 32-bit architecture, the float64x2_t is not supported. ++// The data type __m128d should be represented in a different way for related ++// intrinsic conversion. ++#if defined(__aarch64__) || defined(_M_ARM64) ++typedef float64x2_t __m128d; /* 128-bit vector containing 2 doubles */ ++#else ++typedef float32x4_t __m128d; ++#endif ++typedef int64x2_t __m128i; /* 128-bit vector containing integers */ ++ ++// Some intrinsics operate on unaligned data types. ++typedef int16_t ALIGN_STRUCT(1) unaligned_int16_t; ++typedef int32_t ALIGN_STRUCT(1) unaligned_int32_t; ++typedef int64_t ALIGN_STRUCT(1) unaligned_int64_t; ++ ++// __int64 is defined in the Intrinsics Guide which maps to different datatype ++// in different data model ++#if !(defined(_WIN32) || defined(_WIN64) || defined(__int64)) ++#if (defined(__x86_64__) || defined(__i386__)) ++#define __int64 long long ++#else ++#define __int64 int64_t ++#endif ++#endif ++ ++/* type-safe casting between types */ ++ ++#define vreinterpretq_m128_f16(x) vreinterpretq_f32_f16(x) ++#define vreinterpretq_m128_f32(x) (x) ++#define vreinterpretq_m128_f64(x) vreinterpretq_f32_f64(x) ++ ++#define vreinterpretq_m128_u8(x) vreinterpretq_f32_u8(x) ++#define vreinterpretq_m128_u16(x) vreinterpretq_f32_u16(x) ++#define vreinterpretq_m128_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128_s8(x) vreinterpretq_f32_s8(x) ++#define vreinterpretq_m128_s16(x) vreinterpretq_f32_s16(x) ++#define vreinterpretq_m128_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_f16_m128(x) vreinterpretq_f16_f32(x) ++#define vreinterpretq_f32_m128(x) (x) ++#define vreinterpretq_f64_m128(x) vreinterpretq_f64_f32(x) ++ ++#define vreinterpretq_u8_m128(x) vreinterpretq_u8_f32(x) ++#define vreinterpretq_u16_m128(x) vreinterpretq_u16_f32(x) ++#define vreinterpretq_u32_m128(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_s8_m128(x) vreinterpretq_s8_f32(x) ++#define vreinterpretq_s16_m128(x) vreinterpretq_s16_f32(x) ++#define vreinterpretq_s32_m128(x) vreinterpretq_s32_f32(x) ++#define vreinterpretq_s64_m128(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_m128i_s8(x) vreinterpretq_s64_s8(x) ++#define vreinterpretq_m128i_s16(x) vreinterpretq_s64_s16(x) ++#define vreinterpretq_m128i_s32(x) vreinterpretq_s64_s32(x) ++#define vreinterpretq_m128i_s64(x) (x) ++ ++#define vreinterpretq_m128i_u8(x) vreinterpretq_s64_u8(x) ++#define vreinterpretq_m128i_u16(x) vreinterpretq_s64_u16(x) ++#define vreinterpretq_m128i_u32(x) vreinterpretq_s64_u32(x) ++#define vreinterpretq_m128i_u64(x) vreinterpretq_s64_u64(x) ++ ++#define vreinterpretq_f32_m128i(x) vreinterpretq_f32_s64(x) ++#define vreinterpretq_f64_m128i(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_s8_m128i(x) vreinterpretq_s8_s64(x) ++#define vreinterpretq_s16_m128i(x) vreinterpretq_s16_s64(x) ++#define vreinterpretq_s32_m128i(x) vreinterpretq_s32_s64(x) ++#define vreinterpretq_s64_m128i(x) (x) ++ ++#define vreinterpretq_u8_m128i(x) vreinterpretq_u8_s64(x) ++#define vreinterpretq_u16_m128i(x) vreinterpretq_u16_s64(x) ++#define vreinterpretq_u32_m128i(x) vreinterpretq_u32_s64(x) ++#define vreinterpretq_u64_m128i(x) vreinterpretq_u64_s64(x) ++ ++#define vreinterpret_m64_s8(x) vreinterpret_s64_s8(x) ++#define vreinterpret_m64_s16(x) vreinterpret_s64_s16(x) ++#define vreinterpret_m64_s32(x) vreinterpret_s64_s32(x) ++#define vreinterpret_m64_s64(x) (x) ++ ++#define vreinterpret_m64_u8(x) vreinterpret_s64_u8(x) ++#define vreinterpret_m64_u16(x) vreinterpret_s64_u16(x) ++#define vreinterpret_m64_u32(x) vreinterpret_s64_u32(x) ++#define vreinterpret_m64_u64(x) vreinterpret_s64_u64(x) ++ ++#define vreinterpret_m64_f16(x) vreinterpret_s64_f16(x) ++#define vreinterpret_m64_f32(x) vreinterpret_s64_f32(x) ++#define vreinterpret_m64_f64(x) vreinterpret_s64_f64(x) ++ ++#define vreinterpret_u8_m64(x) vreinterpret_u8_s64(x) ++#define vreinterpret_u16_m64(x) vreinterpret_u16_s64(x) ++#define vreinterpret_u32_m64(x) vreinterpret_u32_s64(x) ++#define vreinterpret_u64_m64(x) vreinterpret_u64_s64(x) ++ ++#define vreinterpret_s8_m64(x) vreinterpret_s8_s64(x) ++#define vreinterpret_s16_m64(x) vreinterpret_s16_s64(x) ++#define vreinterpret_s32_m64(x) vreinterpret_s32_s64(x) ++#define vreinterpret_s64_m64(x) (x) ++ ++#define vreinterpret_f32_m64(x) vreinterpret_f32_s64(x) ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f64_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f64_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) vreinterpretq_f64_f32(x) ++#define vreinterpretq_m128d_f64(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f64(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f64(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f64(x) ++ ++#define vreinterpretq_f64_m128d(x) (x) ++#define vreinterpretq_f32_m128d(x) vreinterpretq_f32_f64(x) ++#else ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_m128d_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_f32_m128d(x) (x) ++#endif ++ ++// A struct is defined in this header file called 'SIMDVec' which can be used ++// by applications which attempt to access the contents of an __m128 struct ++// directly. It is important to note that accessing the __m128 struct directly ++// is bad coding practice by Microsoft: @see: ++// https://learn.microsoft.com/en-us/cpp/cpp/m128 ++// ++// However, some legacy source code may try to access the contents of an __m128 ++// struct directly so the developer can use the SIMDVec as an alias for it. Any ++// casting must be done manually by the developer, as you cannot cast or ++// otherwise alias the base NEON data type for intrinsic operations. ++// ++// union intended to allow direct access to an __m128 variable using the names ++// that the MSVC compiler provides. This union should really only be used when ++// trying to access the members of the vector as integer values. GCC/clang ++// allow native access to the float members through a simple array access ++// operator (in C since 4.6, in C++ since 4.8). ++// ++// Ideally direct accesses to SIMD vectors should not be used since it can cause ++// a performance hit. If it really is needed however, the original __m128 ++// variable can be aliased with a pointer to this union and used to access ++// individual components. The use of this union should be hidden behind a macro ++// that is used throughout the codebase to access the members instead of always ++// declaring this type of variable. ++typedef union ALIGN_STRUCT(16) SIMDVec { ++ float m128_f32[4]; // as floats - DON'T USE. Added for convenience. ++ int8_t m128_i8[16]; // as signed 8-bit integers. ++ int16_t m128_i16[8]; // as signed 16-bit integers. ++ int32_t m128_i32[4]; // as signed 32-bit integers. ++ int64_t m128_i64[2]; // as signed 64-bit integers. ++ uint8_t m128_u8[16]; // as unsigned 8-bit integers. ++ uint16_t m128_u16[8]; // as unsigned 16-bit integers. ++ uint32_t m128_u32[4]; // as unsigned 32-bit integers. ++ uint64_t m128_u64[2]; // as unsigned 64-bit integers. ++} SIMDVec; ++ ++// casting using SIMDVec ++#define vreinterpretq_nth_u64_m128i(x, n) (((SIMDVec *) &x)->m128_u64[n]) ++#define vreinterpretq_nth_u32_m128i(x, n) (((SIMDVec *) &x)->m128_u32[n]) ++#define vreinterpretq_nth_u8_m128i(x, n) (((SIMDVec *) &x)->m128_u8[n]) ++ ++/* SSE macros */ ++#define _MM_GET_FLUSH_ZERO_MODE _sse2neon_mm_get_flush_zero_mode ++#define _MM_SET_FLUSH_ZERO_MODE _sse2neon_mm_set_flush_zero_mode ++#define _MM_GET_DENORMALS_ZERO_MODE _sse2neon_mm_get_denormals_zero_mode ++#define _MM_SET_DENORMALS_ZERO_MODE _sse2neon_mm_set_denormals_zero_mode ++ ++// Function declaration ++// SSE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void); ++FORCE_INLINE __m128 _mm_move_ss(__m128, __m128); ++FORCE_INLINE __m128 _mm_or_ps(__m128, __m128); ++FORCE_INLINE __m128 _mm_set_ps1(float); ++FORCE_INLINE __m128 _mm_setzero_ps(void); ++// SSE2 ++FORCE_INLINE __m128i _mm_and_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_castps_si128(__m128); ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128); ++FORCE_INLINE __m128d _mm_move_sd(__m128d, __m128d); ++FORCE_INLINE __m128i _mm_or_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_set_epi32(int, int, int, int); ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t, int64_t); ++FORCE_INLINE __m128d _mm_set_pd(double, double); ++FORCE_INLINE __m128i _mm_set1_epi32(int); ++FORCE_INLINE __m128i _mm_setzero_si128(void); ++// SSE4.1 ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d); ++FORCE_INLINE __m128 _mm_ceil_ps(__m128); ++FORCE_INLINE __m128d _mm_floor_pd(__m128d); ++FORCE_INLINE __m128 _mm_floor_ps(__m128); ++FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d, int); ++FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128, int); ++// SSE4.2 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t, uint8_t); ++ ++/* Backwards compatibility for compilers with lack of specific type support */ ++ ++// Older gcc does not define vld1q_u8_x4 type ++#if defined(__GNUC__) && !defined(__clang__) && \ ++ ((__GNUC__ <= 13 && defined(__arm__)) || \ ++ (__GNUC__ == 10 && __GNUC_MINOR__ < 3 && defined(__aarch64__)) || \ ++ (__GNUC__ <= 9 && defined(__aarch64__))) ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ uint8x16x4_t ret; ++ ret.val[0] = vld1q_u8(p + 0); ++ ret.val[1] = vld1q_u8(p + 16); ++ ret.val[2] = vld1q_u8(p + 32); ++ ret.val[3] = vld1q_u8(p + 48); ++ return ret; ++} ++#else ++// Wraps vld1q_u8_x4 ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ return vld1q_u8_x4(p); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddv u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ const uint64x1_t v1 = vpaddl_u32(vpaddl_u16(vpaddl_u8(v8))); ++ return vget_lane_u8(vreinterpret_u8_u64(v1), 0); ++} ++#else ++// Wraps vaddv_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ return vaddv_u8(v8); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ uint8x8_t tmp = vpadd_u8(vget_low_u8(a), vget_high_u8(a)); ++ uint8_t res = 0; ++ for (int i = 0; i < 8; ++i) ++ res += tmp[i]; ++ return res; ++} ++#else ++// Wraps vaddvq_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ return vaddvq_u8(a); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u16 variant */ ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ uint32x4_t m = vpaddlq_u16(a); ++ uint64x2_t n = vpaddlq_u32(m); ++ uint64x1_t o = vget_low_u64(n) + vget_high_u64(n); ++ ++ return vget_lane_u32((uint32x2_t) o, 0); ++} ++#else ++// Wraps vaddvq_u16 ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ return vaddvq_u16(a); ++} ++#endif ++ ++/* Function Naming Conventions ++ * The naming convention of SSE intrinsics is straightforward. A generic SSE ++ * intrinsic function is given as follows: ++ * _mm__ ++ * ++ * The parts of this format are given as follows: ++ * 1. describes the operation performed by the intrinsic ++ * 2. identifies the data type of the function's primary arguments ++ * ++ * This last part, , is a little complicated. It identifies the ++ * content of the input values, and can be set to any of the following values: ++ * + ps - vectors contain floats (ps stands for packed single-precision) ++ * + pd - vectors contain doubles (pd stands for packed double-precision) ++ * + epi8/epi16/epi32/epi64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * signed integers ++ * + epu8/epu16/epu32/epu64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * unsigned integers ++ * + si128 - unspecified 128-bit vector or 256-bit vector ++ * + m128/m128i/m128d - identifies input vector types when they are different ++ * than the type of the returned vector ++ * ++ * For example, _mm_setzero_ps. The _mm implies that the function returns ++ * a 128-bit vector. The _ps at the end implies that the argument vectors ++ * contain floats. ++ * ++ * A complete example: Byte Shuffle - pshufb (_mm_shuffle_epi8) ++ * // Set packed 16-bit integers. 128 bits, 8 short, per 16 bits ++ * __m128i v_in = _mm_setr_epi16(1, 2, 3, 4, 5, 6, 7, 8); ++ * // Set packed 8-bit integers ++ * // 128 bits, 16 chars, per 8 bits ++ * __m128i v_perm = _mm_setr_epi8(1, 0, 2, 3, 8, 9, 10, 11, ++ * 4, 5, 12, 13, 6, 7, 14, 15); ++ * // Shuffle packed 8-bit integers ++ * __m128i v_out = _mm_shuffle_epi8(v_in, v_perm); // pshufb ++ */ ++ ++/* Constants for use with _mm_prefetch. */ ++enum _mm_hint { ++ _MM_HINT_NTA = 0, /* load data to L1 and L2 cache, mark it as NTA */ ++ _MM_HINT_T0 = 1, /* load data to L1 and L2 cache */ ++ _MM_HINT_T1 = 2, /* load data to L2 cache only */ ++ _MM_HINT_T2 = 3, /* load data to L2 cache only, mark it as NTA */ ++}; ++ ++// The bit field mapping to the FPCR(floating-point control register) ++typedef struct { ++ uint16_t res0; ++ uint8_t res1 : 6; ++ uint8_t bit22 : 1; ++ uint8_t bit23 : 1; ++ uint8_t bit24 : 1; ++ uint8_t res2 : 7; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32_t res3; ++#endif ++} fpcr_bitfield; ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of b and places it into the high end of the result. ++FORCE_INLINE __m128 _mm_shuffle_ps_1032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in high ++// end of result takes the higher two 32 bit values from b and swaps them and ++// places in low end of result. ++FORCE_INLINE __m128 _mm_shuffle_ps_2301(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b23 = vrev64_f32(vget_high_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b23)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0321(__m128 a, __m128 b) ++{ ++ float32x2_t a21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a21, b03)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2103(__m128 a, __m128 b) ++{ ++ float32x2_t a03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a03, b21)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0101(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b01)); ++} ++ ++// keeps the low 64 bits of b in the low and puts the high 64 bits of a in the ++// high ++FORCE_INLINE __m128 _mm_shuffle_ps_3210(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0011(__m128 a, __m128 b) ++{ ++ float32x2_t a11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a11, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0022(__m128 a, __m128 b) ++{ ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a22, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2200(__m128 a, __m128 b) ++{ ++ float32x2_t a00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a00, b22)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_3202(__m128 a, __m128 b) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t a02 = vset_lane_f32(a0, a22, 1); /* TODO: use vzip ?*/ ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a02, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1133(__m128 a, __m128 b) ++{ ++ float32x2_t a33 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a33, b11)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b20)); ++} ++ ++// For MSVC, we check only if it is ARM64, as every single ARM64 processor ++// supported by WoA has crypto extensions. If this changes in the future, ++// this can be verified via the runtime-only method of: ++// IsProcessorFeaturePresent(PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE) ++#if (defined(_M_ARM64) && !defined(__clang__)) || \ ++ (defined(__ARM_FEATURE_CRYPTO) && \ ++ (defined(__aarch64__) || __has_builtin(__builtin_arm_crypto_vmullp64))) ++// Wraps vmull_p64 ++FORCE_INLINE uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly64_t a = vget_lane_p64(vreinterpret_p64_u64(_a), 0); ++ poly64_t b = vget_lane_p64(vreinterpret_p64_u64(_b), 0); ++#if defined(_MSC_VER) ++ __n64 a1 = {a}, b1 = {b}; ++ return vreinterpretq_u64_p128(vmull_p64(a1, b1)); ++#else ++ return vreinterpretq_u64_p128(vmull_p64(a, b)); ++#endif ++} ++#else // ARMv7 polyfill ++// ARMv7/some A64 lacks vmull_p64, but it has vmull_p8. ++// ++// vmull_p8 calculates 8 8-bit->16-bit polynomial multiplies, but we need a ++// 64-bit->128-bit polynomial multiply. ++// ++// It needs some work and is somewhat slow, but it is still faster than all ++// known scalar methods. ++// ++// Algorithm adapted to C from ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/, which is adapted ++// from "Fast Software Polynomial Multiplication on ARM Processors Using the ++// NEON Engine" by Danilo Camara, Conrado Gouvea, Julio Lopez and Ricardo Dahab ++// (https://hal.inria.fr/hal-01506572) ++static uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly8x8_t a = vreinterpret_p8_u64(_a); ++ poly8x8_t b = vreinterpret_p8_u64(_b); ++ ++ // Masks ++ uint8x16_t k48_32 = vcombine_u8(vcreate_u8(0x0000ffffffffffff), ++ vcreate_u8(0x00000000ffffffff)); ++ uint8x16_t k16_00 = vcombine_u8(vcreate_u8(0x000000000000ffff), ++ vcreate_u8(0x0000000000000000)); ++ ++ // Do the multiplies, rotating with vext to get all combinations ++ uint8x16_t d = vreinterpretq_u8_p16(vmull_p8(a, b)); // D = A0 * B0 ++ uint8x16_t e = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 1))); // E = A0 * B1 ++ uint8x16_t f = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 1), b)); // F = A1 * B0 ++ uint8x16_t g = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 2))); // G = A0 * B2 ++ uint8x16_t h = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 2), b)); // H = A2 * B0 ++ uint8x16_t i = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 3))); // I = A0 * B3 ++ uint8x16_t j = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 3), b)); // J = A3 * B0 ++ uint8x16_t k = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 4))); // L = A0 * B4 ++ ++ // Add cross products ++ uint8x16_t l = veorq_u8(e, f); // L = E + F ++ uint8x16_t m = veorq_u8(g, h); // M = G + H ++ uint8x16_t n = veorq_u8(i, j); // N = I + J ++ ++ // Interleave. Using vzip1 and vzip2 prevents Clang from emitting TBL ++ // instructions. ++#if defined(__aarch64__) ++ uint8x16_t lm_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t lm_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t nk_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++ uint8x16_t nk_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++#else ++ uint8x16_t lm_p0 = vcombine_u8(vget_low_u8(l), vget_low_u8(m)); ++ uint8x16_t lm_p1 = vcombine_u8(vget_high_u8(l), vget_high_u8(m)); ++ uint8x16_t nk_p0 = vcombine_u8(vget_low_u8(n), vget_low_u8(k)); ++ uint8x16_t nk_p1 = vcombine_u8(vget_high_u8(n), vget_high_u8(k)); ++#endif ++ // t0 = (L) (P0 + P1) << 8 ++ // t1 = (M) (P2 + P3) << 16 ++ uint8x16_t t0t1_tmp = veorq_u8(lm_p0, lm_p1); ++ uint8x16_t t0t1_h = vandq_u8(lm_p1, k48_32); ++ uint8x16_t t0t1_l = veorq_u8(t0t1_tmp, t0t1_h); ++ ++ // t2 = (N) (P4 + P5) << 24 ++ // t3 = (K) (P6 + P7) << 32 ++ uint8x16_t t2t3_tmp = veorq_u8(nk_p0, nk_p1); ++ uint8x16_t t2t3_h = vandq_u8(nk_p1, k16_00); ++ uint8x16_t t2t3_l = veorq_u8(t2t3_tmp, t2t3_h); ++ ++ // De-interleave ++#if defined(__aarch64__) ++ uint8x16_t t0 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t1 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t2 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++ uint8x16_t t3 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++#else ++ uint8x16_t t1 = vcombine_u8(vget_high_u8(t0t1_l), vget_high_u8(t0t1_h)); ++ uint8x16_t t0 = vcombine_u8(vget_low_u8(t0t1_l), vget_low_u8(t0t1_h)); ++ uint8x16_t t3 = vcombine_u8(vget_high_u8(t2t3_l), vget_high_u8(t2t3_h)); ++ uint8x16_t t2 = vcombine_u8(vget_low_u8(t2t3_l), vget_low_u8(t2t3_h)); ++#endif ++ // Shift the cross products ++ uint8x16_t t0_shift = vextq_u8(t0, t0, 15); // t0 << 8 ++ uint8x16_t t1_shift = vextq_u8(t1, t1, 14); // t1 << 16 ++ uint8x16_t t2_shift = vextq_u8(t2, t2, 13); // t2 << 24 ++ uint8x16_t t3_shift = vextq_u8(t3, t3, 12); // t3 << 32 ++ ++ // Accumulate the products ++ uint8x16_t cross1 = veorq_u8(t0_shift, t1_shift); ++ uint8x16_t cross2 = veorq_u8(t2_shift, t3_shift); ++ uint8x16_t mix = veorq_u8(d, cross1); ++ uint8x16_t r = veorq_u8(mix, cross2); ++ return vreinterpretq_u64_u8(r); ++} ++#endif // ARMv7 polyfill ++ ++// C equivalent: ++// __m128i _mm_shuffle_epi32_default(__m128i a, ++// __constrange(0, 255) int imm) { ++// __m128i ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = a[(imm >> 4) & 0x03]; ret[3] = a[(imm >> 6) & 0x03]; ++// return ret; ++// } ++#define _mm_shuffle_epi32_default(a, imm) \ ++ vreinterpretq_m128i_s32(vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), \ ++ ((imm) >> 2) & 0x3), \ ++ vmovq_n_s32(vgetq_lane_s32( \ ++ vreinterpretq_s32_m128i(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of a and places it into the high end of the result. ++FORCE_INLINE __m128i _mm_shuffle_epi_1032(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in low end ++// of result takes the higher two 32 bit values from a and swaps them and places ++// in high end of result. ++FORCE_INLINE __m128i _mm_shuffle_epi_2301(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a23 = vrev64_s32(vget_high_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a23)); ++} ++ ++// rotates the least significant 32 bits into the most significant 32 bits, and ++// shifts the rest down ++FORCE_INLINE __m128i _mm_shuffle_epi_0321(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 1)); ++} ++ ++// rotates the most significant 32 bits into the least significant 32 bits, and ++// shifts the rest up ++FORCE_INLINE __m128i _mm_shuffle_epi_2103(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 3)); ++} ++ ++// gets the lower 64 bits of a, and places it in the upper 64 bits ++// gets the lower 64 bits of a and places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1010(__m128i a) ++{ ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a10, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements, and places it in the ++// lower 64 bits gets the lower 64 bits of a, and places it in the upper 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1001(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements and places it in the ++// upper 64 bits gets the lower 64 bits of a, swaps the 0 and 1 elements, and ++// places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_0101(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_2211(__m128i a) ++{ ++ int32x2_t a11 = vdup_lane_s32(vget_low_s32(vreinterpretq_s32_m128i(a)), 1); ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ return vreinterpretq_m128i_s32(vcombine_s32(a11, a22)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_0122(__m128i a) ++{ ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a22, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_3332(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a33 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 1); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a33)); ++} ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32(vdupq_laneq_s32(vreinterpretq_s32_m128i(a), (imm))) ++#else ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vdupq_n_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)))) ++#endif ++ ++// NEON does not support a general purpose permute intrinsic. ++// Shuffle single-precision (32-bit) floating-point elements in a using the ++// control in imm8, and store the results in dst. ++// ++// C equivalent: ++// __m128 _mm_shuffle_ps_default(__m128 a, __m128 b, ++// __constrange(0, 255) int imm) { ++// __m128 ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = b[(imm >> 4) & 0x03]; ret[3] = b[(imm >> 6) & 0x03]; ++// return ret; ++// } ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_ps ++#define _mm_shuffle_ps_default(a, b, imm) \ ++ vreinterpretq_m128_f32(vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), ((imm) >> 2) & 0x3), \ ++ vmovq_n_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Shuffle 16-bit integers in the low 64 bits of a using the control in imm8. ++// Store the results in the low 64 bits of dst, with the high 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflelo_epi16 ++#define _mm_shufflelo_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t lowBits = vget_low_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, (imm) & (0x3)), ret, 0); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++// Shuffle 16-bit integers in the high 64 bits of a using the control in imm8. ++// Store the results in the high 64 bits of dst, with the low 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflehi_epi16 ++#define _mm_shufflehi_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t highBits = vget_high_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, (imm) & (0x3)), ret, 4); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 2) & 0x3), ret, \ ++ 5); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 4) & 0x3), ret, \ ++ 6); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 6) & 0x3), ret, \ ++ 7); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++/* MMX */ ++ ++//_mm_empty is a no-op on arm ++FORCE_INLINE void _mm_empty(void) {} ++ ++/* SSE */ ++ ++// Add packed single-precision (32-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ps ++FORCE_INLINE __m128 _mm_add_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Add the lower single-precision (32-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ss ++FORCE_INLINE __m128 _mm_add_ss(__m128 a, __m128 b) ++{ ++ float32_t b0 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++ float32x4_t value = vsetq_lane_f32(b0, vdupq_n_f32(0), 0); ++ // the upper values in the result must be the remnants of . ++ return vreinterpretq_m128_f32(vaddq_f32(a, value)); ++} ++ ++// Compute the bitwise AND of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_ps ++FORCE_INLINE __m128 _mm_and_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vandq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Compute the bitwise NOT of packed single-precision (32-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_ps ++FORCE_INLINE __m128 _mm_andnot_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vbicq_s32(vreinterpretq_s32_m128(b), ++ vreinterpretq_s32_m128(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu16 ++FORCE_INLINE __m64 _mm_avg_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16( ++ vrhadd_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu8 ++FORCE_INLINE __m64 _mm_avg_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vrhadd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ps ++FORCE_INLINE __m128 _mm_cmpeq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ss ++FORCE_INLINE __m128 _mm_cmpeq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpeq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ps ++FORCE_INLINE __m128 _mm_cmpge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ss ++FORCE_INLINE __m128 _mm_cmpge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ps ++FORCE_INLINE __m128 _mm_cmpgt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ss ++FORCE_INLINE __m128 _mm_cmpgt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpgt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ps ++FORCE_INLINE __m128 _mm_cmple_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ss ++FORCE_INLINE __m128 _mm_cmple_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmple_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ps ++FORCE_INLINE __m128 _mm_cmplt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ss ++FORCE_INLINE __m128 _mm_cmplt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmplt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ps ++FORCE_INLINE __m128 _mm_cmpneq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ss ++FORCE_INLINE __m128 _mm_cmpneq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpneq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ps ++FORCE_INLINE __m128 _mm_cmpnge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ss ++FORCE_INLINE __m128 _mm_cmpnge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ps ++FORCE_INLINE __m128 _mm_cmpngt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ss ++FORCE_INLINE __m128 _mm_cmpngt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpngt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ps ++FORCE_INLINE __m128 _mm_cmpnle_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ss ++FORCE_INLINE __m128 _mm_cmpnle_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnle_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ps ++FORCE_INLINE __m128 _mm_cmpnlt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ss ++FORCE_INLINE __m128 _mm_cmpnlt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnlt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ps ++// ++// See also: ++// http://stackoverflow.com/questions/8627331/what-does-ordered-unordered-comparison-mean ++// http://stackoverflow.com/questions/29349621/neon-isnanval-intrinsics ++FORCE_INLINE __m128 _mm_cmpord_ps(__m128 a, __m128 b) ++{ ++ // Note: NEON does not have ordered compare builtin ++ // Need to compare a eq a and b eq b to check for NaN ++ // Do AND of results to get final ++ uint32x4_t ceqaa = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t ceqbb = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vandq_u32(ceqaa, ceqbb)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ss ++FORCE_INLINE __m128 _mm_cmpord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpord_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ps ++FORCE_INLINE __m128 _mm_cmpunord_ps(__m128 a, __m128 b) ++{ ++ uint32x4_t f32a = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t f32b = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vmvnq_u32(vandq_u32(f32a, f32b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ss ++FORCE_INLINE __m128 _mm_cmpunord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpunord_ps(a, b)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_ss ++FORCE_INLINE int _mm_comieq_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_eq_b = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_eq_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_ss ++FORCE_INLINE int _mm_comige_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_ge_b = ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_ge_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_ss ++FORCE_INLINE int _mm_comigt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_gt_b = ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_gt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_ss ++FORCE_INLINE int _mm_comile_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_le_b = ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_le_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_ss ++FORCE_INLINE int _mm_comilt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_lt_b = ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_lt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_ss ++FORCE_INLINE int _mm_comineq_ss(__m128 a, __m128 b) ++{ ++ return !_mm_comieq_ss(a, b); ++} ++ ++// Convert packed signed 32-bit integers in b to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, and copy the upper 2 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_pi2ps ++FORCE_INLINE __m128 _mm_cvt_pi2ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ps2pi ++FORCE_INLINE __m64 _mm_cvt_ps2pi(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))))); ++#else ++ return vreinterpret_m64_s32(vcvt_s32_f32(vget_low_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION))))); ++#endif ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_si2ss ++FORCE_INLINE __m128 _mm_cvt_si2ss(__m128 a, int b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ss2si ++FORCE_INLINE int _mm_cvt_ss2si(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vgetq_lane_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))), ++ 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int32_t) data; ++#endif ++} ++ ++// Convert packed 16-bit integers in a to packed single-precision (32-bit) ++// floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi16_ps ++FORCE_INLINE __m128 _mm_cvtpi16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vmovl_s16(vreinterpret_s16_m64(a)))); ++} ++ ++// Convert packed 32-bit integers in b to packed single-precision (32-bit) ++// floating-point elements, store the results in the lower 2 elements of dst, ++// and copy the upper 2 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_ps ++FORCE_INLINE __m128 _mm_cvtpi32_ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, then convert the packed signed 32-bit integers in b to ++// single-precision (32-bit) floating-point element, and store the results in ++// the upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32x2_ps ++FORCE_INLINE __m128 _mm_cvtpi32x2_ps(__m64 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vcombine_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b)))); ++} ++ ++// Convert the lower packed 8-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi8_ps ++FORCE_INLINE __m128 _mm_cvtpi8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vmovl_s16(vget_low_s16(vmovl_s8(vreinterpret_s8_m64(a)))))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 16-bit integers, and store the results in dst. Note: this intrinsic ++// will generate 0x7FFF, rather than 0x8000, for input values between 0x7FFF and ++// 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi16 ++FORCE_INLINE __m64 _mm_cvtps_pi16(__m128 a) ++{ ++ return vreinterpret_m64_s16( ++ vqmovn_s32(vreinterpretq_s32_m128i(_mm_cvtps_epi32(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi32 ++#define _mm_cvtps_pi32(a) _mm_cvt_ps2pi(a) ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 8-bit integers, and store the results in lower 4 elements of dst. ++// Note: this intrinsic will generate 0x7F, rather than 0x80, for input values ++// between 0x7F and 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi8 ++FORCE_INLINE __m64 _mm_cvtps_pi8(__m128 a) ++{ ++ return vreinterpret_m64_s8(vqmovn_s16( ++ vcombine_s16(vreinterpret_s16_m64(_mm_cvtps_pi16(a)), vdup_n_s16(0)))); ++} ++ ++// Convert packed unsigned 16-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu16_ps ++FORCE_INLINE __m128 _mm_cvtpu16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_u32(vmovl_u16(vreinterpret_u16_m64(a)))); ++} ++ ++// Convert the lower packed unsigned 8-bit integers in a to packed ++// single-precision (32-bit) floating-point elements, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu8_ps ++FORCE_INLINE __m128 _mm_cvtpu8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_u32( ++ vmovl_u16(vget_low_u16(vmovl_u8(vreinterpret_u8_m64(a)))))); ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_ss ++#define _mm_cvtsi32_ss(a, b) _mm_cvt_si2ss(a, b) ++ ++// Convert the signed 64-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_ss ++FORCE_INLINE __m128 _mm_cvtsi64_ss(__m128 a, int64_t b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Copy the lower single-precision (32-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_f32 ++FORCE_INLINE float _mm_cvtss_f32(__m128 a) ++{ ++ return vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si32 ++#define _mm_cvtss_si32(a) _mm_cvt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si64 ++FORCE_INLINE int64_t _mm_cvtss_si64(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return (int64_t) vgetq_lane_f32(vrndiq_f32(vreinterpretq_f32_m128(a)), 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int64_t) data; ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ps2pi ++FORCE_INLINE __m64 _mm_cvtt_ps2pi(__m128 a) ++{ ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ss2si ++FORCE_INLINE int _mm_cvtt_ss2si(__m128 a) ++{ ++ return vgetq_lane_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)), 0); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_pi32 ++#define _mm_cvttps_pi32(a) _mm_cvtt_ps2pi(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si32 ++#define _mm_cvttss_si32(a) _mm_cvtt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si64 ++FORCE_INLINE int64_t _mm_cvttss_si64(__m128 a) ++{ ++ return (int64_t) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Divide packed single-precision (32-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise division intrinsic, we implement ++// division by multiplying a by b's reciprocal before using the Newton-Raphson ++// method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ps ++FORCE_INLINE __m128 _mm_div_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vdivq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(b)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(a), recip)); ++#endif ++} ++ ++// Divide the lower single-precision (32-bit) floating-point element in a by the ++// lower single-precision (32-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper 3 packed elements from a to ++// the upper elements of dst. ++// Warning: ARMv7-A does not produce the same result compared to Intel and not ++// IEEE-compliant. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ss ++FORCE_INLINE __m128 _mm_div_ss(__m128 a, __m128 b) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_div_ps(a, b)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_pi16 ++#define _mm_extract_pi16(a, imm) \ ++ (int32_t) vget_lane_u16(vreinterpret_u16_m64(a), (imm)) ++ ++// Free aligned memory that was allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_free ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void _mm_free(void *addr) ++{ ++ free(addr); ++} ++#endif ++ ++FORCE_INLINE uint64_t _sse2neon_get_fpcr(void) ++{ ++ uint64_t value; ++#if defined(_MSC_VER) ++ value = _ReadStatusReg(ARM64_FPCR); ++#else ++ __asm__ __volatile__("mrs %0, FPCR" : "=r"(value)); /* read */ ++#endif ++ return value; ++} ++ ++FORCE_INLINE void _sse2neon_set_fpcr(uint64_t value) ++{ ++#if defined(_MSC_VER) ++ _WriteStatusReg(ARM64_FPCR, value); ++#else ++ __asm__ __volatile__("msr FPCR, %0" ::"r"(value)); /* write */ ++#endif ++} ++ ++// Macro: Get the flush zero bits from the MXCSR control and status register. ++// The flush zero may contain any of the following flags: _MM_FLUSH_ZERO_ON or ++// _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_FLUSH_ZERO_MODE ++FORCE_INLINE unsigned int _sse2neon_mm_get_flush_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_FLUSH_ZERO_ON : _MM_FLUSH_ZERO_OFF; ++} ++ ++// Macro: Get the rounding mode bits from the MXCSR control and status register. ++// The rounding mode may contain any of the following flags: _MM_ROUND_NEAREST, ++// _MM_ROUND_DOWN, _MM_ROUND_UP, _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_ROUNDING_MODE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ if (r.field.bit22) { ++ return r.field.bit23 ? _MM_ROUND_TOWARD_ZERO : _MM_ROUND_UP; ++ } else { ++ return r.field.bit23 ? _MM_ROUND_DOWN : _MM_ROUND_NEAREST; ++ } ++} ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_pi16 ++#define _mm_insert_pi16(a, b, imm) \ ++ vreinterpret_m64_s16(vset_lane_s16((b), vreinterpret_s16_m64(a), (imm))) ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps ++FORCE_INLINE __m128 _mm_load_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// ++// dst[31:0] := MEM[mem_addr+31:mem_addr] ++// dst[63:32] := MEM[mem_addr+31:mem_addr] ++// dst[95:64] := MEM[mem_addr+31:mem_addr] ++// dst[127:96] := MEM[mem_addr+31:mem_addr] ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps1 ++#define _mm_load_ps1 _mm_load1_ps ++ ++// Load a single-precision (32-bit) floating-point element from memory into the ++// lower of dst, and zero the upper 3 elements. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ss ++FORCE_INLINE __m128 _mm_load_ss(const float *p) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(*p, vdupq_n_f32(0), 0)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_ps ++FORCE_INLINE __m128 _mm_load1_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_dup_f32(p)); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// upper 2 elements of dst, and copy the lower 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pi ++FORCE_INLINE __m128 _mm_loadh_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vget_low_f32(a), vld1_f32((const float32_t *) p))); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// lower 2 elements of dst, and copy the upper 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pi ++FORCE_INLINE __m128 _mm_loadl_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vld1_f32((const float32_t *) p), vget_high_f32(a))); ++} ++ ++// Load 4 single-precision (32-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_ps ++FORCE_INLINE __m128 _mm_loadr_ps(const float *p) ++{ ++ float32x4_t v = vrev64q_f32(vld1q_f32(p)); ++ return vreinterpretq_m128_f32(vextq_f32(v, v, 2)); ++} ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_ps ++FORCE_INLINE __m128 _mm_loadu_ps(const float *p) ++{ ++ // for neon, alignment doesn't matter, so _mm_load_ps and _mm_loadu_ps are ++ // equivalent for neon ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load unaligned 16-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si16 ++FORCE_INLINE __m128i _mm_loadu_si16(const void *p) ++{ ++ return vreinterpretq_m128i_s16( ++ vsetq_lane_s16(*(const unaligned_int16_t *) p, vdupq_n_s16(0), 0)); ++} ++ ++// Load unaligned 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si64 ++FORCE_INLINE __m128i _mm_loadu_si64(const void *p) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(*(const unaligned_int64_t *) p, vdupq_n_s64(0), 0)); ++} ++ ++// Allocate size bytes of memory, aligned to the alignment specified in align, ++// and return a pointer to the allocated memory. _mm_free should be used to free ++// memory that is allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_malloc ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void *_mm_malloc(size_t size, size_t align) ++{ ++ void *ptr; ++ if (align == 1) ++ return malloc(size); ++ if (align == 2 || (sizeof(void *) == 8 && align == 4)) ++ align = sizeof(void *); ++ if (!posix_memalign(&ptr, align, size)) ++ return ptr; ++ return NULL; ++} ++#endif ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmove_si64 ++FORCE_INLINE void _mm_maskmove_si64(__m64 a, __m64 mask, char *mem_addr) ++{ ++ int8x8_t shr_mask = vshr_n_s8(vreinterpret_s8_m64(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x8_t masked = ++ vbsl_s8(vreinterpret_u8_s8(shr_mask), vreinterpret_s8_m64(a), ++ vreinterpret_s8_u64(vget_low_u64(vreinterpretq_u64_m128(b)))); ++ vst1_s8((int8_t *) mem_addr, masked); ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_maskmovq ++#define _m_maskmovq(a, mask, mem_addr) _mm_maskmove_si64(a, mask, mem_addr) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pi16 ++FORCE_INLINE __m64 _mm_max_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmax_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) maximum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ps ++FORCE_INLINE __m128 _mm_max_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcgtq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vmaxq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pu8 ++FORCE_INLINE __m64 _mm_max_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmax_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) maximum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ss ++FORCE_INLINE __m128 _mm_max_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_max_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pi16 ++FORCE_INLINE __m64 _mm_min_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmin_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) minimum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ps ++FORCE_INLINE __m128 _mm_min_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcltq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vminq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pu8 ++FORCE_INLINE __m64 _mm_min_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmin_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) minimum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ss ++FORCE_INLINE __m128 _mm_min_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_min_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the lower single-precision (32-bit) floating-point element from b to the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_ss ++FORCE_INLINE __m128 _mm_move_ss(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(vgetq_lane_f32(vreinterpretq_f32_m128(b), 0), ++ vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the upper 2 single-precision (32-bit) floating-point elements from b to ++// the lower 2 elements of dst, and copy the upper 2 elements from a to the ++// upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehl_ps ++FORCE_INLINE __m128 _mm_movehl_ps(__m128 a, __m128 b) ++{ ++#if defined(aarch64__) ++ return vreinterpretq_m128_u64( ++ vzip2q_u64(vreinterpretq_u64_m128(b), vreinterpretq_u64_m128(a))); ++#else ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(b32, a32)); ++#endif ++} ++ ++// Move the lower 2 single-precision (32-bit) floating-point elements from b to ++// the upper 2 elements of dst, and copy the lower 2 elements from a to the ++// lower 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movelh_ps ++FORCE_INLINE __m128 _mm_movelh_ps(__m128 __A, __m128 __B) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(__A)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(__B)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pi8 ++FORCE_INLINE int _mm_movemask_pi8(__m64 a) ++{ ++ uint8x8_t input = vreinterpret_u8_m64(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int8_t shift[8] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint8x8_t tmp = vshr_n_u8(input, 7); ++ return vaddv_u8(vshl_u8(tmp, vld1_s8(shift))); ++#else ++ // Refer the implementation of `_mm_movemask_epi8` ++ uint16x4_t high_bits = vreinterpret_u16_u8(vshr_n_u8(input, 7)); ++ uint32x2_t paired16 = ++ vreinterpret_u32_u16(vsra_n_u16(high_bits, high_bits, 7)); ++ uint8x8_t paired32 = ++ vreinterpret_u8_u32(vsra_n_u32(paired16, paired16, 14)); ++ return vget_lane_u8(paired32, 0) | ((int) vget_lane_u8(paired32, 4) << 4); ++#endif ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed single-precision (32-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_ps ++FORCE_INLINE int _mm_movemask_ps(__m128 a) ++{ ++ uint32x4_t input = vreinterpretq_u32_m128(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int32_t shift[4] = {0, 1, 2, 3}; ++ uint32x4_t tmp = vshrq_n_u32(input, 31); ++ return vaddvq_u32(vshlq_u32(tmp, vld1q_s32(shift))); ++#else ++ // Uses the exact same method as _mm_movemask_epi8, see that for details. ++ // Shift out everything but the sign bits with a 32-bit unsigned shift ++ // right. ++ uint64x2_t high_bits = vreinterpretq_u64_u32(vshrq_n_u32(input, 31)); ++ // Merge the two pairs together with a 64-bit unsigned shift right + add. ++ uint8x16_t paired = ++ vreinterpretq_u8_u64(vsraq_n_u64(high_bits, high_bits, 31)); ++ // Extract the result. ++ return vgetq_lane_u8(paired, 0) | (vgetq_lane_u8(paired, 8) << 2); ++#endif ++} ++ ++// Multiply packed single-precision (32-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ps ++FORCE_INLINE_OPTNONE __m128 _mm_mul_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vmulq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Multiply the lower single-precision (32-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ss ++FORCE_INLINE __m128 _mm_mul_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_mul_ps(a, b)); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_pu16 ++FORCE_INLINE __m64 _mm_mulhi_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16(vshrn_n_u32( ++ vmull_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b)), 16)); ++} ++ ++// Compute the bitwise OR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_ps ++FORCE_INLINE __m128 _mm_or_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vorrq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgb ++#define _m_pavgb(a, b) _mm_avg_pu8(a, b) ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgw ++#define _m_pavgw(a, b) _mm_avg_pu16(a, b) ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pextrw ++#define _m_pextrw(a, imm) _mm_extract_pi16(a, imm) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_pinsrw ++#define _m_pinsrw(a, i, imm) _mm_insert_pi16(a, i, imm) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxsw ++#define _m_pmaxsw(a, b) _mm_max_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxub ++#define _m_pmaxub(a, b) _mm_max_pu8(a, b) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminsw ++#define _m_pminsw(a, b) _mm_min_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminub ++#define _m_pminub(a, b) _mm_min_pu8(a, b) ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmovmskb ++#define _m_pmovmskb(a) _mm_movemask_pi8(a) ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmulhuw ++#define _m_pmulhuw(a, b) _mm_mulhi_pu16(a, b) ++ ++// Fetch the line of data from memory that contains address p to a location in ++// the cache hierarchy specified by the locality hint i. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_prefetch ++FORCE_INLINE void _mm_prefetch(char const *p, int i) ++{ ++ (void) i; ++#if defined(_MSC_VER) ++ switch (i) { ++ case _MM_HINT_NTA: ++ __prefetch2(p, 1); ++ break; ++ case _MM_HINT_T0: ++ __prefetch2(p, 0); ++ break; ++ case _MM_HINT_T1: ++ __prefetch2(p, 2); ++ break; ++ case _MM_HINT_T2: ++ __prefetch2(p, 4); ++ break; ++ } ++#else ++ switch (i) { ++ case _MM_HINT_NTA: ++ __builtin_prefetch(p, 0, 0); ++ break; ++ case _MM_HINT_T0: ++ __builtin_prefetch(p, 0, 3); ++ break; ++ case _MM_HINT_T1: ++ __builtin_prefetch(p, 0, 2); ++ break; ++ case _MM_HINT_T2: ++ __builtin_prefetch(p, 0, 1); ++ break; ++ } ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_psadbw ++#define _m_psadbw(a, b) _mm_sad_pu8(a, b) ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pshufw ++#define _m_pshufw(a, imm) _mm_shuffle_pi16(a, imm) ++ ++// Compute the approximate reciprocal of packed single-precision (32-bit) ++// floating-point elements in a, and store the results in dst. The maximum ++// relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ps ++FORCE_INLINE __m128 _mm_rcp_ps(__m128 in) ++{ ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(in)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#if SSE2NEON_PRECISE_DIV ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#endif ++ return vreinterpretq_m128_f32(recip); ++} ++ ++// Compute the approximate reciprocal of the lower single-precision (32-bit) ++// floating-point element in a, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ss ++FORCE_INLINE __m128 _mm_rcp_ss(__m128 a) ++{ ++ return _mm_move_ss(a, _mm_rcp_ps(a)); ++} ++ ++// Compute the approximate reciprocal square root of packed single-precision ++// (32-bit) floating-point elements in a, and store the results in dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ps ++FORCE_INLINE __m128 _mm_rsqrt_ps(__m128 in) ++{ ++ float32x4_t out = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Generate masks for detecting whether input has any 0.0f/-0.0f ++ // (which becomes positive/negative infinity by IEEE-754 arithmetic rules). ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t neg_inf = vdupq_n_u32(0xFF800000); ++ const uint32x4_t has_pos_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(out)); ++ const uint32x4_t has_neg_zero = ++ vceqq_u32(neg_inf, vreinterpretq_u32_f32(out)); ++ ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#if SSE2NEON_PRECISE_SQRT ++ // Additional Netwon-Raphson iteration for accuracy ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#endif ++ ++ // Set output vector element to infinity/negative-infinity if ++ // the corresponding input vector element is 0.0f/-0.0f. ++ out = vbslq_f32(has_pos_zero, (float32x4_t) pos_inf, out); ++ out = vbslq_f32(has_neg_zero, (float32x4_t) neg_inf, out); ++ ++ return vreinterpretq_m128_f32(out); ++} ++ ++// Compute the approximate reciprocal square root of the lower single-precision ++// (32-bit) floating-point element in a, store the result in the lower element ++// of dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ss ++FORCE_INLINE __m128 _mm_rsqrt_ss(__m128 in) ++{ ++ return vsetq_lane_f32(vgetq_lane_f32(_mm_rsqrt_ps(in), 0), in, 0); ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_pu8 ++FORCE_INLINE __m64 _mm_sad_pu8(__m64 a, __m64 b) ++{ ++ uint64x1_t t = vpaddl_u32(vpaddl_u16( ++ vpaddl_u8(vabd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))))); ++ return vreinterpret_m64_u16( ++ vset_lane_u16((int) vget_lane_u64(t, 0), vdup_n_u16(0), 0)); ++} ++ ++// Macro: Set the flush zero bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The flush zero may contain any of the ++// following flags: _MM_FLUSH_ZERO_ON or _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_FLUSH_ZERO_MODE ++FORCE_INLINE void _sse2neon_mm_set_flush_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_FLUSH_ZERO_MASK) == _MM_FLUSH_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps ++FORCE_INLINE __m128 _mm_set_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {x, y, z, w}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps1 ++FORCE_INLINE __m128 _mm_set_ps1(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Macro: Set the rounding mode bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The rounding mode may contain any of ++// the following flags: _MM_ROUND_NEAREST, _MM_ROUND_DOWN, _MM_ROUND_UP, ++// _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_ROUNDING_MODE ++FORCE_INLINE void _MM_SET_ROUNDING_MODE(int rounding) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ switch (rounding) { ++ case _MM_ROUND_TOWARD_ZERO: ++ r.field.bit22 = 1; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_DOWN: ++ r.field.bit22 = 0; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_UP: ++ r.field.bit22 = 1; ++ r.field.bit23 = 0; ++ break; ++ default: //_MM_ROUND_NEAREST ++ r.field.bit22 = 0; ++ r.field.bit23 = 0; ++ } ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Copy single-precision (32-bit) floating-point element a to the lower element ++// of dst, and zero the upper 3 elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ss ++FORCE_INLINE __m128 _mm_set_ss(float a) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(a, vdupq_n_f32(0), 0)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_ps ++FORCE_INLINE __m128 _mm_set1_ps(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Set the MXCSR control and status register with the value in unsigned 32-bit ++// integer a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setcsr ++// FIXME: _mm_setcsr() implementation supports changing the rounding mode only. ++FORCE_INLINE void _mm_setcsr(unsigned int a) ++{ ++ _MM_SET_ROUNDING_MODE(a); ++} ++ ++// Get the unsigned 32-bit value of the MXCSR control and status register. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_getcsr ++// FIXME: _mm_getcsr() implementation supports reading the rounding mode only. ++FORCE_INLINE unsigned int _mm_getcsr(void) ++{ ++ return _MM_GET_ROUNDING_MODE(); ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_ps ++FORCE_INLINE __m128 _mm_setr_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {w, z, y, x}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Return vector of type __m128 with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_ps ++FORCE_INLINE __m128 _mm_setzero_ps(void) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(0)); ++} ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi16 ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pi16(a, imm) \ ++ vreinterpret_m64_s16(vshuffle_s16( \ ++ vreinterpret_s16_m64(a), vreinterpret_s16_m64(a), (imm & 0x3), \ ++ ((imm >> 2) & 0x3), ((imm >> 4) & 0x3), ((imm >> 6) & 0x3))) ++#else ++#define _mm_shuffle_pi16(a, imm) \ ++ _sse2neon_define1( \ ++ __m64, a, int16x4_t ret; \ ++ ret = vmov_n_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), (imm) & (0x3))); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpret_m64_s16(ret));) ++#endif ++ ++// Perform a serializing operation on all store-to-memory instructions that were ++// issued prior to this instruction. Guarantees that every store instruction ++// that precedes, in program order, is globally visible before any store ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sfence ++FORCE_INLINE void _mm_sfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory and store-to-memory ++// instructions that were issued prior to this instruction. Guarantees that ++// every memory access that precedes, in program order, the memory fence ++// instruction is globally visible before any memory instruction which follows ++// the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mfence ++FORCE_INLINE void _mm_mfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory instructions that ++// were issued prior to this instruction. Guarantees that every load instruction ++// that precedes, in program order, is globally visible before any load ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lfence ++FORCE_INLINE void _mm_lfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// FORCE_INLINE __m128 _mm_shuffle_ps(__m128 a, __m128 b, __constrange(0,255) ++// int imm) ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_ps(a, b, imm) \ ++ __extension__({ \ ++ float32x4_t _input1 = vreinterpretq_f32_m128(a); \ ++ float32x4_t _input2 = vreinterpretq_f32_m128(b); \ ++ float32x4_t _shuf = \ ++ vshuffleq_s32(_input1, _input2, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ (((imm) >> 4) & 0x3) + 4, (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128_f32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_ps(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128, a, b, __m128 ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_1032(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_ps_2301(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_ps_0321(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_ps_2103(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_movelh_ps(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_1001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_ps_0101(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 1, 0): \ ++ ret = _mm_shuffle_ps_3210(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 1, 1): \ ++ ret = _mm_shuffle_ps_0011(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 2, 2): \ ++ ret = _mm_shuffle_ps_0022(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 0, 0): \ ++ ret = _mm_shuffle_ps_2200(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 0, 2): \ ++ ret = _mm_shuffle_ps_3202(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 3, 2): \ ++ ret = _mm_movehl_ps(_b, _a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 3, 3): \ ++ ret = _mm_shuffle_ps_1133(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 1, 0): \ ++ ret = _mm_shuffle_ps_2010(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_2001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_2032(_a, _b); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_ps_default(_a, _b, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Compute the square root of packed single-precision (32-bit) floating-point ++// elements in a, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise square root intrinsic, we implement ++// square root by multiplying input in with its reciprocal square root before ++// using the Newton-Raphson method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ps ++FORCE_INLINE __m128 _mm_sqrt_ps(__m128 in) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) && !SSE2NEON_PRECISE_SQRT ++ return vreinterpretq_m128_f32(vsqrtq_f32(vreinterpretq_f32_m128(in))); ++#else ++ float32x4_t recip = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Test for vrsqrteq_f32(0) -> positive infinity case. ++ // Change to zero, so that s * 1/sqrt(s) result is zero too. ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t div_by_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(recip)); ++ recip = vreinterpretq_f32_u32( ++ vandq_u32(vmvnq_u32(div_by_zero), vreinterpretq_u32_f32(recip))); ++ ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ ++ // sqrt(s) = s * 1/sqrt(s) ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(in), recip)); ++#endif ++} ++ ++// Compute the square root of the lower single-precision (32-bit) floating-point ++// element in a, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ss ++FORCE_INLINE __m128 _mm_sqrt_ss(__m128 in) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_sqrt_ps(in)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(in), 0)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps ++FORCE_INLINE void _mm_store_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps1 ++FORCE_INLINE void _mm_store_ps1(float *p, __m128 a) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ vst1q_f32(p, vdupq_n_f32(a0)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ss ++FORCE_INLINE void _mm_store_ss(float *p, __m128 a) ++{ ++ vst1q_lane_f32(p, vreinterpretq_f32_m128(a), 0); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store1_ps ++#define _mm_store1_ps _mm_store_ps1 ++ ++// Store the upper 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pi ++FORCE_INLINE void _mm_storeh_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_high_f32(a)); ++} ++ ++// Store the lower 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pi ++FORCE_INLINE void _mm_storel_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_low_f32(a)); ++} ++ ++// Store 4 single-precision (32-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_ps ++FORCE_INLINE void _mm_storer_ps(float *p, __m128 a) ++{ ++ float32x4_t tmp = vrev64q_f32(vreinterpretq_f32_m128(a)); ++ float32x4_t rev = vextq_f32(tmp, tmp, 2); ++ vst1q_f32(p, rev); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_ps ++FORCE_INLINE void _mm_storeu_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Stores 16-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si16 ++FORCE_INLINE void _mm_storeu_si16(void *p, __m128i a) ++{ ++ vst1q_lane_s16((int16_t *) p, vreinterpretq_s16_m128i(a), 0); ++} ++ ++// Stores 64-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si64 ++FORCE_INLINE void _mm_storeu_si64(void *p, __m128i a) ++{ ++ vst1q_lane_s64((int64_t *) p, vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Store 64-bits of integer data from a into memory using a non-temporal memory ++// hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pi ++FORCE_INLINE void _mm_stream_pi(__m64 *p, __m64 a) ++{ ++ vst1_s64((int64_t *) p, vreinterpret_s64_m64(a)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating- ++// point elements) from a into memory using a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_ps ++FORCE_INLINE void _mm_stream_ps(float *p, __m128 a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (float32x4_t *) p); ++#else ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++#endif ++} ++ ++// Subtract packed single-precision (32-bit) floating-point elements in b from ++// packed single-precision (32-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ps ++FORCE_INLINE __m128 _mm_sub_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Subtract the lower single-precision (32-bit) floating-point element in b from ++// the lower single-precision (32-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper 3 packed elements from ++// a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ss ++FORCE_INLINE __m128 _mm_sub_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_sub_ps(a, b)); ++} ++ ++// Macro: Transpose the 4x4 matrix formed by the 4 rows of single-precision ++// (32-bit) floating-point elements in row0, row1, row2, and row3, and store the ++// transposed matrix in these vectors (row0 now contains column 0, etc.). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=MM_TRANSPOSE4_PS ++#define _MM_TRANSPOSE4_PS(row0, row1, row2, row3) \ ++ do { \ ++ float32x4x2_t ROW01 = vtrnq_f32(row0, row1); \ ++ float32x4x2_t ROW23 = vtrnq_f32(row2, row3); \ ++ row0 = vcombine_f32(vget_low_f32(ROW01.val[0]), \ ++ vget_low_f32(ROW23.val[0])); \ ++ row1 = vcombine_f32(vget_low_f32(ROW01.val[1]), \ ++ vget_low_f32(ROW23.val[1])); \ ++ row2 = vcombine_f32(vget_high_f32(ROW01.val[0]), \ ++ vget_high_f32(ROW23.val[0])); \ ++ row3 = vcombine_f32(vget_high_f32(ROW01.val[1]), \ ++ vget_high_f32(ROW23.val[1])); \ ++ } while (0) ++ ++// according to the documentation, these intrinsics behave the same as the ++// non-'u' versions. We'll just alias them here. ++#define _mm_ucomieq_ss _mm_comieq_ss ++#define _mm_ucomige_ss _mm_comige_ss ++#define _mm_ucomigt_ss _mm_comigt_ss ++#define _mm_ucomile_ss _mm_comile_ss ++#define _mm_ucomilt_ss _mm_comilt_ss ++#define _mm_ucomineq_ss _mm_comineq_ss ++ ++// Return vector of type __m128i with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_undefined_si128 ++FORCE_INLINE __m128i _mm_undefined_si128(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128i a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_si128(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Return vector of type __m128 with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_ps ++FORCE_INLINE __m128 _mm_undefined_ps(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128 a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_ps(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the high half a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_ps ++FORCE_INLINE __m128 _mm_unpackhi_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_ps ++FORCE_INLINE __m128 _mm_unpacklo_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Compute the bitwise XOR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_ps ++FORCE_INLINE __m128 _mm_xor_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ veorq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++/* SSE2 */ ++ ++// Add packed 16-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi16 ++FORCE_INLINE __m128i _mm_add_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed 32-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi32 ++FORCE_INLINE __m128i _mm_add_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vaddq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Add packed 64-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi64 ++FORCE_INLINE __m128i _mm_add_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vaddq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Add packed 8-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi8 ++FORCE_INLINE __m128i _mm_add_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed double-precision (64-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_pd ++FORCE_INLINE __m128d _mm_add_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1] + db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add the lower double-precision (64-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper element from ++// a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_sd ++FORCE_INLINE __m128d _mm_add_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_add_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add 64-bit integers a and b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_si64 ++FORCE_INLINE __m64 _mm_add_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vadd_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Add packed signed 16-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi16 ++FORCE_INLINE __m128i _mm_adds_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed signed 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi8 ++FORCE_INLINE __m128i _mm_adds_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed unsigned 16-bit integers in a and b using saturation, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu16 ++FORCE_INLINE __m128i _mm_adds_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqaddq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Add packed unsigned 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu8 ++FORCE_INLINE __m128i _mm_adds_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compute the bitwise AND of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_pd ++FORCE_INLINE __m128d _mm_and_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vandq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_si128 ++FORCE_INLINE __m128i _mm_and_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vandq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compute the bitwise NOT of packed double-precision (64-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_pd ++FORCE_INLINE __m128d _mm_andnot_pd(__m128d a, __m128d b) ++{ ++ // *NOTE* argument swap ++ return vreinterpretq_m128d_s64( ++ vbicq_s64(vreinterpretq_s64_m128d(b), vreinterpretq_s64_m128d(a))); ++} ++ ++// Compute the bitwise NOT of 128 bits (representing integer data) in a and then ++// AND with b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_si128 ++FORCE_INLINE __m128i _mm_andnot_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vbicq_s32(vreinterpretq_s32_m128i(b), ++ vreinterpretq_s32_m128i(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu16 ++FORCE_INLINE __m128i _mm_avg_epu16(__m128i a, __m128i b) ++{ ++ return (__m128i) vrhaddq_u16(vreinterpretq_u16_m128i(a), ++ vreinterpretq_u16_m128i(b)); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu8 ++FORCE_INLINE __m128i _mm_avg_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vrhaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bslli_si128 ++#define _mm_bslli_si128(a, imm) _mm_slli_si128(a, imm) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bsrli_si128 ++#define _mm_bsrli_si128(a, imm) _mm_srli_si128(a, imm) ++ ++// Cast vector of type __m128d to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_ps ++FORCE_INLINE __m128 _mm_castpd_ps(__m128d a) ++{ ++ return vreinterpretq_m128_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128d to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_si128 ++FORCE_INLINE __m128i _mm_castpd_si128(__m128d a) ++{ ++ return vreinterpretq_m128i_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128 to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_pd ++FORCE_INLINE __m128d _mm_castps_pd(__m128 a) ++{ ++ return vreinterpretq_m128d_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128 to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_si128 ++FORCE_INLINE __m128i _mm_castps_si128(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128i to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_pd ++FORCE_INLINE __m128d _mm_castsi128_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vreinterpretq_f64_m128i(a)); ++#else ++ return vreinterpretq_m128d_f32(vreinterpretq_f32_m128i(a)); ++#endif ++} ++ ++// Cast vector of type __m128i to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_ps ++FORCE_INLINE __m128 _mm_castsi128_ps(__m128i a) ++{ ++ return vreinterpretq_m128_s32(vreinterpretq_s32_m128i(a)); ++} ++ ++// Invalidate and flush the cache line that contains p from all levels of the ++// cache hierarchy. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clflush ++#if defined(__APPLE__) ++#include ++#endif ++FORCE_INLINE void _mm_clflush(void const *p) ++{ ++ (void) p; ++ ++ /* sys_icache_invalidate is supported since macOS 10.5. ++ * However, it does not work on non-jailbroken iOS devices, although the ++ * compilation is successful. ++ */ ++#if defined(__APPLE__) ++ sys_icache_invalidate((void *) (uintptr_t) p, SSE2NEON_CACHELINE_SIZE); ++#elif defined(__GNUC__) || defined(__clang__) ++ uintptr_t ptr = (uintptr_t) p; ++ __builtin___clear_cache((char *) ptr, ++ (char *) ptr + SSE2NEON_CACHELINE_SIZE); ++#elif (_MSC_VER) && SSE2NEON_INCLUDE_WINDOWS_H ++ FlushInstructionCache(GetCurrentProcess(), p, SSE2NEON_CACHELINE_SIZE); ++#endif ++} ++ ++// Compare packed 16-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi16 ++FORCE_INLINE __m128i _mm_cmpeq_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vceqq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed 32-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi32 ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vceqq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed 8-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi8 ++FORCE_INLINE __m128i _mm_cmpeq_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vceqq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_pd ++FORCE_INLINE __m128d _mm_cmpeq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_sd ++FORCE_INLINE __m128d _mm_cmpeq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpeq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_pd ++FORCE_INLINE __m128d _mm_cmpge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) >= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_sd ++FORCE_INLINE __m128d _mm_cmpge_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpge_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi16 ++FORCE_INLINE __m128i _mm_cmpgt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcgtq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi32 ++FORCE_INLINE __m128i _mm_cmpgt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcgtq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi8 ++FORCE_INLINE __m128i _mm_cmpgt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcgtq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_pd ++FORCE_INLINE __m128d _mm_cmpgt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_sd ++FORCE_INLINE __m128d _mm_cmpgt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpgt_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_pd ++FORCE_INLINE __m128d _mm_cmple_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) <= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_sd ++FORCE_INLINE __m128d _mm_cmple_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmple_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtw instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi16 ++FORCE_INLINE __m128i _mm_cmplt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcltq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtd instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi32 ++FORCE_INLINE __m128i _mm_cmplt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcltq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtb instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi8 ++FORCE_INLINE __m128i _mm_cmplt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcltq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_pd ++FORCE_INLINE __m128d _mm_cmplt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_sd ++FORCE_INLINE __m128d _mm_cmplt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmplt_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_pd ++FORCE_INLINE __m128d _mm_cmpneq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_s32(vmvnq_s32(vreinterpretq_s32_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vmvnq_u32(vandq_u32(cmp, swapped))); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_sd ++FORCE_INLINE __m128d _mm_cmpneq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpneq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_pd ++FORCE_INLINE __m128d _mm_cmpnge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) >= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) >= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_sd ++FORCE_INLINE __m128d _mm_cmpnge_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnge_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_cmpngt_pd ++FORCE_INLINE __m128d _mm_cmpngt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) > (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) > (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_sd ++FORCE_INLINE __m128d _mm_cmpngt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpngt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_pd ++FORCE_INLINE __m128d _mm_cmpnle_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) <= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) <= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_sd ++FORCE_INLINE __m128d _mm_cmpnle_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnle_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_pd ++FORCE_INLINE __m128d _mm_cmpnlt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) < (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) < (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_sd ++FORCE_INLINE __m128d _mm_cmpnlt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnlt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_pd ++FORCE_INLINE __m128d _mm_cmpord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Excluding NaNs, any two floating point numbers can be compared. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_u64(vandq_u64(not_nan_a, not_nan_b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_sd ++FORCE_INLINE __m128d _mm_cmpord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_pd ++FORCE_INLINE __m128d _mm_cmpunord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Two NaNs are not equal in comparison operation. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_s32( ++ vmvnq_s32(vreinterpretq_s32_u64(vandq_u64(not_nan_a, not_nan_b)))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_sd ++FORCE_INLINE __m128d _mm_cmpunord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpunord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_sd ++FORCE_INLINE int _mm_comige_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgeq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 >= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_sd ++FORCE_INLINE int _mm_comigt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgtq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 > *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_sd ++FORCE_INLINE int _mm_comile_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcleq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 <= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_sd ++FORCE_INLINE int _mm_comilt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcltq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 < *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_sd ++FORCE_INLINE int _mm_comieq_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vceqq_f64(a, b), 0) & 0x1; ++#else ++ uint32x4_t a_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(a)); ++ uint32x4_t b_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(b), vreinterpretq_u32_m128d(b)); ++ uint32x4_t a_and_b_not_nan = vandq_u32(a_not_nan, b_not_nan); ++ uint32x4_t a_eq_b = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint64x2_t and_results = vandq_u64(vreinterpretq_u64_u32(a_and_b_not_nan), ++ vreinterpretq_u64_u32(a_eq_b)); ++ return vgetq_lane_u64(and_results, 0) & 0x1; ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_sd ++FORCE_INLINE int _mm_comineq_sd(__m128d a, __m128d b) ++{ ++ return !_mm_comieq_sd(a, b); ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_pd ++FORCE_INLINE __m128d _mm_cvtepi32_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a))))); ++#else ++ double a0 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++ double a1 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_ps ++FORCE_INLINE __m128 _mm_cvtepi32_ps(__m128i a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_epi32 ++FORCE_INLINE_OPTNONE __m128i _mm_cvtpd_epi32(__m128d a) ++{ ++// vrnd32xq_f64 not supported on clang ++#if defined(__ARM_FEATURE_FRINT) && !defined(__clang__) ++ float64x2_t rounded = vrnd32xq_f64(vreinterpretq_f64_m128d(a)); ++ int64x2_t integers = vcvtq_s64_f64(rounded); ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vmovn_s64(integers), vdup_n_s32(0))); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) d1, (int32_t) d0); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_pi32 ++FORCE_INLINE_OPTNONE __m64 _mm_cvtpd_pi32(__m128d a) ++{ ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) d0, (int32_t) d1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed single-precision (32-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_ps ++FORCE_INLINE __m128 _mm_cvtpd_ps(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float32x2_t tmp = vcvt_f32_f64(vreinterpretq_f64_m128d(a)); ++ return vreinterpretq_m128_f32(vcombine_f32(tmp, vdup_n_f32(0))); ++#else ++ float a0 = (float) ((double *) &a)[0]; ++ float a1 = (float) ((double *) &a)[1]; ++ return _mm_set_ps(0, 0, a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_pd ++FORCE_INLINE __m128d _mm_cvtpi32_pd(__m64 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vreinterpret_s32_m64(a)))); ++#else ++ double a0 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 0); ++ double a1 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_epi32 ++// *NOTE*. The default rounding mode on SSE is 'round to even', which ARMv7-A ++// does not support! It is supported on ARMv8-A however. ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128 a) ++{ ++#if defined(__ARM_FEATURE_FRINT) ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vrnd32xq_f32(a))); ++#elif (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: ++ return vreinterpretq_m128i_s32(vcvtnq_s32_f32(a)); ++ case _MM_ROUND_DOWN: ++ return vreinterpretq_m128i_s32(vcvtmq_s32_f32(a)); ++ case _MM_ROUND_UP: ++ return vreinterpretq_m128i_s32(vcvtpq_s32_f32(a)); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(a)); ++ } ++#else ++ float *f = (float *) &a; ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128i_s32( ++ vbslq_s32(is_delta_half, r_even, r_normal)); ++ } ++ case _MM_ROUND_DOWN: ++ return _mm_set_epi32(floorf(f[3]), floorf(f[2]), floorf(f[1]), ++ floorf(f[0])); ++ case _MM_ROUND_UP: ++ return _mm_set_epi32(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ++ ceilf(f[0])); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return _mm_set_epi32((int32_t) f[3], (int32_t) f[2], (int32_t) f[1], ++ (int32_t) f[0]); ++ } ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed double-precision (64-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pd ++FORCE_INLINE __m128d _mm_cvtps_pd(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvt_f64_f32(vget_low_f32(vreinterpretq_f32_m128(a)))); ++#else ++ double a0 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ double a1 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Copy the lower double-precision (64-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_f64 ++FORCE_INLINE double _mm_cvtsd_f64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (double) vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0); ++#else ++ return ((double *) &a)[0]; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si32 ++FORCE_INLINE int32_t _mm_cvtsd_si32(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int32_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int32_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64 ++FORCE_INLINE int64_t _mm_cvtsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int64_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64x ++#define _mm_cvtsd_si64x _mm_cvtsd_si64 ++ ++// Convert the lower double-precision (64-bit) floating-point element in b to a ++// single-precision (32-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_ss ++FORCE_INLINE __m128 _mm_cvtsd_ss(__m128 a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32(vsetq_lane_f32( ++ vget_lane_f32(vcvt_f32_f64(vreinterpretq_f64_m128d(b)), 0), ++ vreinterpretq_f32_m128(a), 0)); ++#else ++ return vreinterpretq_m128_f32(vsetq_lane_f32((float) ((double *) &b)[0], ++ vreinterpretq_f32_m128(a), 0)); ++#endif ++} ++ ++// Copy the lower 32-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si32 ++FORCE_INLINE int _mm_cvtsi128_si32(__m128i a) ++{ ++ return vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64 ++FORCE_INLINE int64_t _mm_cvtsi128_si64(__m128i a) ++{ ++ return vgetq_lane_s64(vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Convert the signed 32-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_sd ++FORCE_INLINE __m128d _mm_cvtsi32_sd(__m128d a, int32_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Copy 32-bit integer a to the lower elements of dst, and zero the upper ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_si128 ++FORCE_INLINE __m128i _mm_cvtsi32_si128(int a) ++{ ++ return vreinterpretq_m128i_s32(vsetq_lane_s32(a, vdupq_n_s32(0), 0)); ++} ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_sd ++FORCE_INLINE __m128d _mm_cvtsi64_sd(__m128d a, int64_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_si128 ++FORCE_INLINE __m128i _mm_cvtsi64_si128(int64_t a) ++{ ++ return vreinterpretq_m128i_s64(vsetq_lane_s64(a, vdupq_n_s64(0), 0)); ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_si128 ++#define _mm_cvtsi64x_si128(a) _mm_cvtsi64_si128(a) ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_sd ++#define _mm_cvtsi64x_sd(a, b) _mm_cvtsi64_sd(a, b) ++ ++// Convert the lower single-precision (32-bit) floating-point element in b to a ++// double-precision (64-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_sd ++FORCE_INLINE __m128d _mm_cvtss_sd(__m128d a, __m128 b) ++{ ++ double d = (double) vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(d, vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &d, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_epi32 ++FORCE_INLINE __m128i _mm_cvttpd_epi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) a1, (int32_t) a0); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_pi32 ++FORCE_INLINE __m64 _mm_cvttpd_pi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) a0, (int32_t) a1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_epi32 ++FORCE_INLINE __m128i _mm_cvttps_epi32(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a))); ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si32 ++FORCE_INLINE int32_t _mm_cvttsd_si32(__m128d a) ++{ ++ double ret = *((double *) &a); ++ return (int32_t) ret; ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64 ++FORCE_INLINE int64_t _mm_cvttsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_s64(vcvtq_s64_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ double ret = *((double *) &a); ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64x ++#define _mm_cvttsd_si64x(a) _mm_cvttsd_si64(a) ++ ++// Divide packed double-precision (64-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_pd ++FORCE_INLINE __m128d _mm_div_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] / db[0]; ++ c[1] = da[1] / db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Divide the lower double-precision (64-bit) floating-point element in a by the ++// lower double-precision (64-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper element from a to the upper ++// element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_sd ++FORCE_INLINE __m128d _mm_div_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t tmp = ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1), tmp, 1)); ++#else ++ return _mm_move_sd(a, _mm_div_pd(a, b)); ++#endif ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi16 ++// FORCE_INLINE int _mm_extract_epi16(__m128i a, __constrange(0,8) int imm) ++#define _mm_extract_epi16(a, imm) \ ++ vgetq_lane_u16(vreinterpretq_u16_m128i(a), (imm)) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi16 ++// FORCE_INLINE __m128i _mm_insert_epi16(__m128i a, int b, ++// __constrange(0,8) int imm) ++#define _mm_insert_epi16(a, b, imm) \ ++ vreinterpretq_m128i_s16( \ ++ vsetq_lane_s16((b), vreinterpretq_s16_m128i(a), (imm))) ++ ++// Load 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd ++FORCE_INLINE __m128d _mm_load_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64(p)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], fp[2], fp[3]}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd1 ++#define _mm_load_pd1 _mm_load1_pd ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower of dst, and zero the upper element. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_sd ++FORCE_INLINE __m128d _mm_load_sd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(*p, vdupq_n_f64(0), 0)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], 0, 0}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_si128 ++FORCE_INLINE __m128i _mm_load_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const int32_t *) p)); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_pd ++FORCE_INLINE __m128d _mm_load1_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_dup_f64(p)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(const int64_t *) p)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// upper element of dst, and copy the lower element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pd ++FORCE_INLINE __m128d _mm_loadh_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vget_low_f64(vreinterpretq_f64_m128d(a)), vld1_f64(p))); ++#else ++ return vreinterpretq_m128d_f32(vcombine_f32( ++ vget_low_f32(vreinterpretq_f32_m128d(a)), vld1_f32((const float *) p))); ++#endif ++} ++ ++// Load 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_epi64 ++FORCE_INLINE __m128i _mm_loadl_epi64(__m128i const *p) ++{ ++ /* Load the lower 64 bits of the value pointed to by p into the ++ * lower 64 bits of the result, zeroing the upper 64 bits of the result. ++ */ ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vld1_s32((int32_t const *) p), vcreate_s32(0))); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower element of dst, and copy the upper element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pd ++FORCE_INLINE __m128d _mm_loadl_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vld1_f64(p), vget_high_f64(vreinterpretq_f64_m128d(a)))); ++#else ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vld1_f32((const float *) p), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++#endif ++} ++ ++// Load 2 double-precision (64-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_pd ++FORCE_INLINE __m128d _mm_loadr_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t v = vld1q_f64(p); ++ return vreinterpretq_m128d_f64(vextq_f64(v, v, 1)); ++#else ++ int64x2_t v = vld1q_s64((const int64_t *) p); ++ return vreinterpretq_m128d_s64(vextq_s64(v, v, 1)); ++#endif ++} ++ ++// Loads two double-precision from unaligned memory, floating-point values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_pd ++FORCE_INLINE __m128d _mm_loadu_pd(const double *p) ++{ ++ return _mm_load_pd(p); ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si128 ++FORCE_INLINE __m128i _mm_loadu_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const unaligned_int32_t *) p)); ++} ++ ++// Load unaligned 32-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si32 ++FORCE_INLINE __m128i _mm_loadu_si32(const void *p) ++{ ++ return vreinterpretq_m128i_s32( ++ vsetq_lane_s32(*(const unaligned_int32_t *) p, vdupq_n_s32(0), 0)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Horizontally add adjacent pairs of intermediate ++// 32-bit integers, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_madd_epi16 ++FORCE_INLINE __m128i _mm_madd_epi16(__m128i a, __m128i b) ++{ ++ int32x4_t low = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t high = ++ vmull_high_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b)); ++ ++ return vreinterpretq_m128i_s32(vpaddq_s32(low, high)); ++#else ++ int32x4_t high = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ int32x2_t low_sum = vpadd_s32(vget_low_s32(low), vget_high_s32(low)); ++ int32x2_t high_sum = vpadd_s32(vget_low_s32(high), vget_high_s32(high)); ++ ++ return vreinterpretq_m128i_s32(vcombine_s32(low_sum, high_sum)); ++#endif ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. mem_addr does not need to be aligned ++// on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmoveu_si128 ++FORCE_INLINE void _mm_maskmoveu_si128(__m128i a, __m128i mask, char *mem_addr) ++{ ++ int8x16_t shr_mask = vshrq_n_s8(vreinterpretq_s8_m128i(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x16_t masked = ++ vbslq_s8(vreinterpretq_u8_s8(shr_mask), vreinterpretq_s8_m128i(a), ++ vreinterpretq_s8_m128(b)); ++ vst1q_s8((int8_t *) mem_addr, masked); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi16 ++FORCE_INLINE __m128i _mm_max_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmaxq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu8 ++FORCE_INLINE __m128i _mm_max_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vmaxq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pd ++FORCE_INLINE __m128d _mm_max_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcgtq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vmaxq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? a1 : b1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_sd ++FORCE_INLINE __m128d _mm_max_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_max_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] > db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi16 ++FORCE_INLINE __m128i _mm_min_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vminq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu8 ++FORCE_INLINE __m128i _mm_min_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vminq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pd ++FORCE_INLINE __m128d _mm_min_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcltq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vminq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? a1 : b1; ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_sd ++FORCE_INLINE __m128d _mm_min_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_min_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] < db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to the lower element of dst, and zero the ++// upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_epi64 ++FORCE_INLINE __m128i _mm_move_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(0, vreinterpretq_s64_m128i(a), 1)); ++} ++ ++// Move the lower double-precision (64-bit) floating-point element from b to the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_sd ++FORCE_INLINE __m128d _mm_move_sd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vget_low_f32(vreinterpretq_f32_m128d(b)), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_epi8 ++FORCE_INLINE int _mm_movemask_epi8(__m128i a) ++{ ++ // Use increasingly wide shifts+adds to collect the sign bits ++ // together. ++ // Since the widening shifts would be rather confusing to follow in little ++ // endian, everything will be illustrated in big endian order instead. This ++ // has a different result - the bits would actually be reversed on a big ++ // endian machine. ++ ++ // Starting input (only half the elements are shown): ++ // 89 ff 1d c0 00 10 99 33 ++ uint8x16_t input = vreinterpretq_u8_m128i(a); ++ ++ // Shift out everything but the sign bits with an unsigned shift right. ++ // ++ // Bytes of the vector:: ++ // 89 ff 1d c0 00 10 99 33 ++ // \ \ \ \ \ \ \ \ high_bits = (uint16x4_t)(input >> 7) ++ // | | | | | | | | ++ // 01 01 00 01 00 00 01 00 ++ // ++ // Bits of first important lane(s): ++ // 10001001 (89) ++ // \______ ++ // | ++ // 00000001 (01) ++ uint16x8_t high_bits = vreinterpretq_u16_u8(vshrq_n_u8(input, 7)); ++ ++ // Merge the even lanes together with a 16-bit unsigned shift right + add. ++ // 'xx' represents garbage data which will be ignored in the final result. ++ // In the important bytes, the add functions like a binary OR. ++ // ++ // 01 01 00 01 00 00 01 00 ++ // \_ | \_ | \_ | \_ | paired16 = (uint32x4_t)(input + (input >> 7)) ++ // \| \| \| \| ++ // xx 03 xx 01 xx 00 xx 02 ++ // ++ // 00000001 00000001 (01 01) ++ // \_______ | ++ // \| ++ // xxxxxxxx xxxxxx11 (xx 03) ++ uint32x4_t paired16 = ++ vreinterpretq_u32_u16(vsraq_n_u16(high_bits, high_bits, 7)); ++ ++ // Repeat with a wider 32-bit shift + add. ++ // xx 03 xx 01 xx 00 xx 02 ++ // \____ | \____ | paired32 = (uint64x1_t)(paired16 + (paired16 >> ++ // 14)) ++ // \| \| ++ // xx xx xx 0d xx xx xx 02 ++ // ++ // 00000011 00000001 (03 01) ++ // \\_____ || ++ // '----.\|| ++ // xxxxxxxx xxxx1101 (xx 0d) ++ uint64x2_t paired32 = ++ vreinterpretq_u64_u32(vsraq_n_u32(paired16, paired16, 14)); ++ ++ // Last, an even wider 64-bit shift + add to get our result in the low 8 bit ++ // lanes. xx xx xx 0d xx xx xx 02 ++ // \_________ | paired64 = (uint8x8_t)(paired32 + (paired32 >> ++ // 28)) ++ // \| ++ // xx xx xx xx xx xx xx d2 ++ // ++ // 00001101 00000010 (0d 02) ++ // \ \___ | | ++ // '---. \| | ++ // xxxxxxxx 11010010 (xx d2) ++ uint8x16_t paired64 = ++ vreinterpretq_u8_u64(vsraq_n_u64(paired32, paired32, 28)); ++ ++ // Extract the low 8 bits from each 64-bit lane with 2 8-bit extracts. ++ // xx xx xx xx xx xx xx d2 ++ // || return paired64[0] ++ // d2 ++ // Note: Little endian would return the correct value 4b (01001011) instead. ++ return vgetq_lane_u8(paired64, 0) | ((int) vgetq_lane_u8(paired64, 8) << 8); ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed double-precision (64-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pd ++FORCE_INLINE int _mm_movemask_pd(__m128d a) ++{ ++ uint64x2_t input = vreinterpretq_u64_m128d(a); ++ uint64x2_t high_bits = vshrq_n_u64(input, 63); ++ return (int) (vgetq_lane_u64(high_bits, 0) | ++ (vgetq_lane_u64(high_bits, 1) << 1)); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movepi64_pi64 ++FORCE_INLINE __m64 _mm_movepi64_pi64(__m128i a) ++{ ++ return vreinterpret_m64_s64(vget_low_s64(vreinterpretq_s64_m128i(a))); ++} ++ ++// Copy the 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movpi64_epi64 ++FORCE_INLINE __m128i _mm_movpi64_epi64(__m64 a) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vreinterpret_s64_m64(a), vdup_n_s64(0))); ++} ++ ++// Multiply the low unsigned 32-bit integers from each packed 64-bit element in ++// a and b, and store the unsigned 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epu32 ++FORCE_INLINE __m128i _mm_mul_epu32(__m128i a, __m128i b) ++{ ++ // vmull_u32 upcasts instead of masking, so we downcast. ++ uint32x2_t a_lo = vmovn_u64(vreinterpretq_u64_m128i(a)); ++ uint32x2_t b_lo = vmovn_u64(vreinterpretq_u64_m128i(b)); ++ return vreinterpretq_m128i_u64(vmull_u32(a_lo, b_lo)); ++} ++ ++// Multiply packed double-precision (64-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_pd ++FORCE_INLINE __m128d _mm_mul_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vmulq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] * db[0]; ++ c[1] = da[1] * db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Multiply the lower double-precision (64-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper element ++// from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_mul_sd ++FORCE_INLINE __m128d _mm_mul_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_mul_pd(a, b)); ++} ++ ++// Multiply the low unsigned 32-bit integers from a and b, and store the ++// unsigned 64-bit result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_su32 ++FORCE_INLINE __m64 _mm_mul_su32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u64(vget_low_u64( ++ vmull_u32(vreinterpret_u32_m64(a), vreinterpret_u32_m64(b)))); ++} ++ ++// Multiply the packed signed 16-bit integers in a and b, producing intermediate ++// 32-bit integers, and store the high 16 bits of the intermediate integers in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epi16 ++FORCE_INLINE __m128i _mm_mulhi_epi16(__m128i a, __m128i b) ++{ ++ /* FIXME: issue with large values because of result saturation */ ++ // int16x8_t ret = vqdmulhq_s16(vreinterpretq_s16_m128i(a), ++ // vreinterpretq_s16_m128i(b)); /* =2*a*b */ return ++ // vreinterpretq_m128i_s16(vshrq_n_s16(ret, 1)); ++ int16x4_t a3210 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b3210 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab3210 = vmull_s16(a3210, b3210); /* 3333222211110000 */ ++ int16x4_t a7654 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b7654 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab7654 = vmull_s16(a7654, b7654); /* 7777666655554444 */ ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_s32(ab3210), vreinterpretq_u16_s32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epu16 ++FORCE_INLINE __m128i _mm_mulhi_epu16(__m128i a, __m128i b) ++{ ++ uint16x4_t a3210 = vget_low_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b3210 = vget_low_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab3210 = vmull_u16(a3210, b3210); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32x4_t ab7654 = ++ vmull_high_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ uint16x8_t r = vuzp2q_u16(vreinterpretq_u16_u32(ab3210), ++ vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r); ++#else ++ uint16x4_t a7654 = vget_high_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b7654 = vget_high_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab7654 = vmull_u16(a7654, b7654); ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_u32(ab3210), vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++#endif ++} ++ ++// Multiply the packed 16-bit integers in a and b, producing intermediate 32-bit ++// integers, and store the low 16 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi16 ++FORCE_INLINE __m128i _mm_mullo_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmulq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compute the bitwise OR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_or_pd ++FORCE_INLINE __m128d _mm_or_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vorrq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise OR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_si128 ++FORCE_INLINE __m128i _mm_or_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vorrq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi16 ++FORCE_INLINE __m128i _mm_packs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vqmovn_s16(vreinterpretq_s16_m128i(a)), ++ vqmovn_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi32 ++FORCE_INLINE __m128i _mm_packs_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vqmovn_s32(vreinterpretq_s32_m128i(a)), ++ vqmovn_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi16 ++FORCE_INLINE __m128i _mm_packus_epi16(const __m128i a, const __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcombine_u8(vqmovun_s16(vreinterpretq_s16_m128i(a)), ++ vqmovun_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Pause the processor. This is typically used in spin-wait loops and depending ++// on the x86 processor typical values are in the 40-100 cycle range. The ++// 'yield' instruction isn't a good fit because it's effectively a nop on most ++// Arm cores. Experience with several databases has shown has shown an 'isb' is ++// a reasonable approximation. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_pause ++FORCE_INLINE void _mm_pause(void) ++{ ++#if defined(_MSC_VER) ++ __isb(_ARM64_BARRIER_SY); ++#else ++ __asm__ __volatile__("isb\n"); ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce two ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of 64-bit elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_epu8 ++FORCE_INLINE __m128i _mm_sad_epu8(__m128i a, __m128i b) ++{ ++ uint16x8_t t = vpaddlq_u8(vabdq_u8((uint8x16_t) a, (uint8x16_t) b)); ++ return vreinterpretq_m128i_u64(vpaddlq_u32(vpaddlq_u16(t))); ++} ++ ++// Set packed 16-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi16 ++FORCE_INLINE __m128i _mm_set_epi16(short i7, ++ short i6, ++ short i5, ++ short i4, ++ short i3, ++ short i2, ++ short i1, ++ short i0) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {i0, i1, i2, i3, i4, i5, i6, i7}; ++ return vreinterpretq_m128i_s16(vld1q_s16(data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi32 ++FORCE_INLINE __m128i _mm_set_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i0, i1, i2, i3}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64 ++FORCE_INLINE __m128i _mm_set_epi64(__m64 i1, __m64 i2) ++{ ++ return _mm_set_epi64x(vget_lane_s64(i1, 0), vget_lane_s64(i2, 0)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64x ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t i1, int64_t i2) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vcreate_s64(i2), vcreate_s64(i1))); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi8 ++FORCE_INLINE __m128i _mm_set_epi8(signed char b15, ++ signed char b14, ++ signed char b13, ++ signed char b12, ++ signed char b11, ++ signed char b10, ++ signed char b9, ++ signed char b8, ++ signed char b7, ++ signed char b6, ++ signed char b5, ++ signed char b4, ++ signed char b3, ++ signed char b2, ++ signed char b1, ++ signed char b0) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd ++FORCE_INLINE __m128d _mm_set_pd(double e1, double e0) ++{ ++ double ALIGN_STRUCT(16) data[2] = {e0, e1}; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64((float64_t *) data)); ++#else ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) data)); ++#endif ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd1 ++#define _mm_set_pd1 _mm_set1_pd ++ ++// Copy double-precision (64-bit) floating-point element a to the lower element ++// of dst, and zero the upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_sd ++FORCE_INLINE __m128d _mm_set_sd(double a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(a, vdupq_n_f64(0), 0)); ++#else ++ return _mm_set_pd(0, a); ++#endif ++} ++ ++// Broadcast 16-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi16 ++FORCE_INLINE __m128i _mm_set1_epi16(short w) ++{ ++ return vreinterpretq_m128i_s16(vdupq_n_s16(w)); ++} ++ ++// Broadcast 32-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi32 ++FORCE_INLINE __m128i _mm_set1_epi32(int _i) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(_i)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64 ++FORCE_INLINE __m128i _mm_set1_epi64(__m64 _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_lane_s64(_i, 0)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64x ++FORCE_INLINE __m128i _mm_set1_epi64x(int64_t _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_n_s64(_i)); ++} ++ ++// Broadcast 8-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi8 ++FORCE_INLINE __m128i _mm_set1_epi8(signed char w) ++{ ++ return vreinterpretq_m128i_s8(vdupq_n_s8(w)); ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_pd ++FORCE_INLINE __m128d _mm_set1_pd(double d) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(d)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(int64_t *) &d)); ++#endif ++} ++ ++// Set packed 16-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi16 ++FORCE_INLINE __m128i _mm_setr_epi16(short w0, ++ short w1, ++ short w2, ++ short w3, ++ short w4, ++ short w5, ++ short w6, ++ short w7) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {w0, w1, w2, w3, w4, w5, w6, w7}; ++ return vreinterpretq_m128i_s16(vld1q_s16((int16_t *) data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi32 ++FORCE_INLINE __m128i _mm_setr_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i3, i2, i1, i0}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi64 ++FORCE_INLINE __m128i _mm_setr_epi64(__m64 e1, __m64 e0) ++{ ++ return vreinterpretq_m128i_s64(vcombine_s64(e1, e0)); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi8 ++FORCE_INLINE __m128i _mm_setr_epi8(signed char b0, ++ signed char b1, ++ signed char b2, ++ signed char b3, ++ signed char b4, ++ signed char b5, ++ signed char b6, ++ signed char b7, ++ signed char b8, ++ signed char b9, ++ signed char b10, ++ signed char b11, ++ signed char b12, ++ signed char b13, ++ signed char b14, ++ signed char b15) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_pd ++FORCE_INLINE __m128d _mm_setr_pd(double e1, double e0) ++{ ++ return _mm_set_pd(e0, e1); ++} ++ ++// Return vector of type __m128d with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_pd ++FORCE_INLINE __m128d _mm_setzero_pd(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(0)); ++#else ++ return vreinterpretq_m128d_f32(vdupq_n_f32(0)); ++#endif ++} ++ ++// Return vector of type __m128i with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_si128 ++FORCE_INLINE __m128i _mm_setzero_si128(void) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(0)); ++} ++ ++// Shuffle 32-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi32 ++// FORCE_INLINE __m128i _mm_shuffle_epi32(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shuffle_epi32(a, imm) \ ++ __extension__({ \ ++ int32x4_t _input = vreinterpretq_s32_m128i(a); \ ++ int32x4_t _shuf = \ ++ vshuffleq_s32(_input, _input, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ ((imm) >> 4) & 0x3, ((imm) >> 6) & 0x3); \ ++ vreinterpretq_m128i_s32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_epi32(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, __m128i ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_epi_1032(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_epi_2301(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_epi_0321(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_epi_2103(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_shuffle_epi_1010(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_epi_1001(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_epi_0101(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 1, 1): \ ++ ret = _mm_shuffle_epi_2211(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 2, 2): \ ++ ret = _mm_shuffle_epi_0122(_a); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 2): \ ++ ret = _mm_shuffle_epi_3332(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 0, 0): \ ++ ret = _mm_shuffle_epi32_splat(_a, 0); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 1, 1): \ ++ ret = _mm_shuffle_epi32_splat(_a, 1); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 2, 2): \ ++ ret = _mm_shuffle_epi32_splat(_a, 2); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 3): \ ++ ret = _mm_shuffle_epi32_splat(_a, 3); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_epi32_default(_a, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Shuffle double-precision (64-bit) floating-point elements using the control ++// in imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pd ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pd(a, b, imm8) \ ++ vreinterpretq_m128d_s64( \ ++ vshuffleq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b), \ ++ imm8 & 0x1, ((imm8 & 0x2) >> 1) + 2)) ++#else ++#define _mm_shuffle_pd(a, b, imm8) \ ++ _mm_castsi128_pd(_mm_set_epi64x( \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(b), (imm8 & 0x2) >> 1), \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(a), imm8 & 0x1))) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflehi_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflehi_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = \ ++ vshuffleq_s16(_input, _input, 0, 1, 2, 3, ((imm) & (0x3)) + 4, \ ++ (((imm) >> 2) & 0x3) + 4, (((imm) >> 4) & 0x3) + 4, \ ++ (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflehi_epi16(a, imm) _mm_shufflehi_epi16_function((a), (imm)) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflelo_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflelo_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = vshuffleq_s16( \ ++ _input, _input, ((imm) & (0x3)), (((imm) >> 2) & 0x3), \ ++ (((imm) >> 4) & 0x3), (((imm) >> 6) & 0x3), 4, 5, 6, 7); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflelo_epi16(a, imm) _mm_shufflelo_epi16_function((a), (imm)) ++#endif ++ ++// Shift packed 16-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi16 ++FORCE_INLINE __m128i _mm_sll_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16((int16_t) c); ++ return vreinterpretq_m128i_s16(vshlq_s16(vreinterpretq_s16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi32 ++FORCE_INLINE __m128i _mm_sll_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32((int32_t) c); ++ return vreinterpretq_m128i_s32(vshlq_s32(vreinterpretq_s32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi64 ++FORCE_INLINE __m128i _mm_sll_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64((int64_t) c); ++ return vreinterpretq_m128i_s64(vshlq_s64(vreinterpretq_s64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi16 ++FORCE_INLINE __m128i _mm_slli_epi16(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~15)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16(vreinterpretq_s16_m128i(a), vdupq_n_s16(imm))); ++} ++ ++// Shift packed 32-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi32 ++FORCE_INLINE __m128i _mm_slli_epi32(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~31)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32(vreinterpretq_s32_m128i(a), vdupq_n_s32(imm))); ++} ++ ++// Shift packed 64-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi64 ++FORCE_INLINE __m128i _mm_slli_epi64(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~63)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s64( ++ vshlq_s64(vreinterpretq_s64_m128i(a), vdupq_n_s64(imm))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_si128 ++#define _mm_slli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely(imm == 0)) ret = vreinterpretq_s8_m128i(_a); \ ++ else if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vdupq_n_s8(0), vreinterpretq_s8_m128i(_a), \ ++ ((imm <= 0 || imm > 15) ? 0 : (16 - imm))); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Compute the square root of packed double-precision (64-bit) floating-point ++// elements in a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_pd ++FORCE_INLINE __m128d _mm_sqrt_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsqrtq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double a0 = sqrt(((double *) &a)[0]); ++ double a1 = sqrt(((double *) &a)[1]); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Compute the square root of the lower double-precision (64-bit) floating-point ++// element in b, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_sd ++FORCE_INLINE __m128d _mm_sqrt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_sqrt_pd(b)); ++#else ++ return _mm_set_pd(((double *) &a)[1], sqrt(((double *) &b)[0])); ++#endif ++} ++ ++// Shift packed 16-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi16 ++FORCE_INLINE __m128i _mm_sra_epi16(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_cmplt_epi16(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16((int16x8_t) a, vdupq_n_s16((int) -c))); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi32 ++FORCE_INLINE __m128i _mm_sra_epi32(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_cmplt_epi32(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32((int32x4_t) a, vdupq_n_s32((int) -c))); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in sign ++// bits, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi16 ++FORCE_INLINE __m128i _mm_srai_epi16(__m128i a, int imm) ++{ ++ const int count = (imm & ~15) ? 15 : imm; ++ return (__m128i) vshlq_s16((int16x8_t) a, vdupq_n_s16(-count)); ++} ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi32 ++// FORCE_INLINE __m128i _mm_srai_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srai_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) == 0)) { \ ++ ret = _a; \ ++ } else if (_sse2neon_likely(0 < (imm) && (imm) < 32)) { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshlq_s32(vreinterpretq_s32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } else { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshrq_n_s32(vreinterpretq_s32_m128i(_a), 31)); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 16-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi16 ++FORCE_INLINE __m128i _mm_srl_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16(-(int16_t) c); ++ return vreinterpretq_m128i_u16(vshlq_u16(vreinterpretq_u16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi32 ++FORCE_INLINE __m128i _mm_srl_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32(-(int32_t) c); ++ return vreinterpretq_m128i_u32(vshlq_u32(vreinterpretq_u32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi64 ++FORCE_INLINE __m128i _mm_srl_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64(-(int64_t) c); ++ return vreinterpretq_m128i_u64(vshlq_u64(vreinterpretq_u64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi16 ++#define _mm_srli_epi16(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~15)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u16( \ ++ vshlq_u16(vreinterpretq_u16_m128i(_a), vdupq_n_s16(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi32 ++// FORCE_INLINE __m128i _mm_srli_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srli_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~31)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u32( \ ++ vshlq_u32(vreinterpretq_u32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 64-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi64 ++#define _mm_srli_epi64(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~63)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u64( \ ++ vshlq_u64(vreinterpretq_u64_m128i(_a), vdupq_n_s64(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_si128 ++#define _mm_srli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vreinterpretq_s8_m128i(_a), vdupq_n_s8(0), \ ++ (imm > 15 ? 0 : imm)); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd ++FORCE_INLINE void _mm_store_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64((float64_t *) mem_addr, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_f32((float32_t *) mem_addr, vreinterpretq_f32_m128d(a)); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd1 ++FORCE_INLINE void _mm_store_pd1(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x1_t a_low = vget_low_f64(vreinterpretq_f64_m128d(a)); ++ vst1q_f64((float64_t *) mem_addr, ++ vreinterpretq_f64_m128d(vcombine_f64(a_low, a_low))); ++#else ++ float32x2_t a_low = vget_low_f32(vreinterpretq_f32_m128d(a)); ++ vst1q_f32((float32_t *) mem_addr, ++ vreinterpretq_f32_m128d(vcombine_f32(a_low, a_low))); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_store_sd ++FORCE_INLINE void _mm_store_sd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_u64((uint64_t *) mem_addr, vget_low_u64(vreinterpretq_u64_m128d(a))); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_si128 ++FORCE_INLINE void _mm_store_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#expand=9,526,5601&text=_mm_store1_pd ++#define _mm_store1_pd _mm_store_pd1 ++ ++// Store the upper double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pd ++FORCE_INLINE void _mm_storeh_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_high_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_high_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 64-bit integer from the first element of a into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_epi64 ++FORCE_INLINE void _mm_storel_epi64(__m128i *a, __m128i b) ++{ ++ vst1_u64((uint64_t *) a, vget_low_u64(vreinterpretq_u64_m128i(b))); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pd ++FORCE_INLINE void _mm_storel_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_low_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 2 double-precision (64-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_pd ++FORCE_INLINE void _mm_storer_pd(double *mem_addr, __m128d a) ++{ ++ float32x4_t f = vreinterpretq_f32_m128d(a); ++ _mm_store_pd(mem_addr, vreinterpretq_m128d_f32(vextq_f32(f, f, 2))); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_pd ++FORCE_INLINE void _mm_storeu_pd(double *mem_addr, __m128d a) ++{ ++ _mm_store_pd(mem_addr, a); ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si128 ++FORCE_INLINE void _mm_storeu_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store 32-bit integer from the first element of a into memory. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si32 ++FORCE_INLINE void _mm_storeu_si32(void *p, __m128i a) ++{ ++ vst1q_lane_s32((int32_t *) p, vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory using a non-temporal memory hint. mem_addr must ++// be aligned on a 16-byte boundary or a general-protection exception may be ++// generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pd ++FORCE_INLINE void _mm_stream_pd(double *p, __m128d a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (__m128d *) p); ++#elif defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64(p, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128d(a)); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory using a non-temporal memory ++// hint. mem_addr must be aligned on a 16-byte boundary or a general-protection ++// exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si128 ++FORCE_INLINE void _mm_stream_si128(__m128i *p, __m128i a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, p); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128i(a)); ++#endif ++} ++ ++// Store 32-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si32 ++FORCE_INLINE void _mm_stream_si32(int *p, int a) ++{ ++ vst1q_lane_s32((int32_t *) p, vdupq_n_s32(a), 0); ++} ++ ++// Store 64-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si64 ++FORCE_INLINE void _mm_stream_si64(__int64 *p, __int64 a) ++{ ++ vst1_s64((int64_t *) p, vdup_n_s64((int64_t) a)); ++} ++ ++// Subtract packed 16-bit integers in b from packed 16-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi16 ++FORCE_INLINE __m128i _mm_sub_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed 32-bit integers in b from packed 32-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi32 ++FORCE_INLINE __m128i _mm_sub_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Subtract packed 64-bit integers in b from packed 64-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi64 ++FORCE_INLINE __m128i _mm_sub_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vsubq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Subtract packed 8-bit integers in b from packed 8-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi8 ++FORCE_INLINE __m128i _mm_sub_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed double-precision (64-bit) floating-point elements in b from ++// packed double-precision (64-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_sub_pd ++FORCE_INLINE __m128d _mm_sub_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] - db[0]; ++ c[1] = da[1] - db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Subtract the lower double-precision (64-bit) floating-point element in b from ++// the lower double-precision (64-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_sd ++FORCE_INLINE __m128d _mm_sub_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_sub_pd(a, b)); ++} ++ ++// Subtract 64-bit integer b from 64-bit integer a, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_si64 ++FORCE_INLINE __m64 _mm_sub_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vsub_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Subtract packed signed 16-bit integers in b from packed 16-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi16 ++FORCE_INLINE __m128i _mm_subs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed signed 8-bit integers in b from packed 8-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi8 ++FORCE_INLINE __m128i _mm_subs_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed unsigned 16-bit integers in b from packed unsigned 16-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu16 ++FORCE_INLINE __m128i _mm_subs_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqsubq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Subtract packed unsigned 8-bit integers in b from packed unsigned 8-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu8 ++FORCE_INLINE __m128i _mm_subs_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqsubq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++#define _mm_ucomieq_sd _mm_comieq_sd ++#define _mm_ucomige_sd _mm_comige_sd ++#define _mm_ucomigt_sd _mm_comigt_sd ++#define _mm_ucomile_sd _mm_comile_sd ++#define _mm_ucomilt_sd _mm_comilt_sd ++#define _mm_ucomineq_sd _mm_comineq_sd ++ ++// Return vector of type __m128d with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_pd ++FORCE_INLINE __m128d _mm_undefined_pd(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128d a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_pd(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi16 ++FORCE_INLINE __m128i _mm_unpackhi_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip2q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi32 ++FORCE_INLINE __m128i _mm_unpackhi_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip2q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_high_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi64 ++FORCE_INLINE __m128i _mm_unpackhi_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip2q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_h = vget_high_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_h = vget_high_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_h, b_h)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the high half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi8 ++FORCE_INLINE __m128i _mm_unpackhi_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip2q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the high half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_pd ++FORCE_INLINE __m128d _mm_unpackhi_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip2q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_high_s64(vreinterpretq_s64_m128d(a)), ++ vget_high_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi16 ++FORCE_INLINE __m128i _mm_unpacklo_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip1q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi32 ++FORCE_INLINE __m128i _mm_unpacklo_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip1q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_low_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi64 ++FORCE_INLINE __m128i _mm_unpacklo_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip1q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_l = vget_low_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_l = vget_low_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_l, b_l)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi8 ++FORCE_INLINE __m128i _mm_unpacklo_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip1q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_pd ++FORCE_INLINE __m128d _mm_unpacklo_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip1q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_low_s64(vreinterpretq_s64_m128d(a)), ++ vget_low_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Compute the bitwise XOR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_pd ++FORCE_INLINE __m128d _mm_xor_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ veorq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise XOR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_si128 ++FORCE_INLINE __m128i _mm_xor_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ veorq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++/* SSE3 */ ++ ++// Alternatively add and subtract packed double-precision (64-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_addsub_pd ++FORCE_INLINE __m128d _mm_addsub_pd(__m128d a, __m128d b) ++{ ++ _sse2neon_const __m128d mask = _mm_set_pd(1.0f, -1.0f); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vfmaq_f64(vreinterpretq_f64_m128d(a), ++ vreinterpretq_f64_m128d(b), ++ vreinterpretq_f64_m128d(mask))); ++#else ++ return _mm_add_pd(_mm_mul_pd(b, mask), a); ++#endif ++} ++ ++// Alternatively add and subtract packed single-precision (32-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=addsub_ps ++FORCE_INLINE __m128 _mm_addsub_ps(__m128 a, __m128 b) ++{ ++ _sse2neon_const __m128 mask = _mm_setr_ps(-1.0f, 1.0f, -1.0f, 1.0f); ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_FMA) /* VFPv4+ */ ++ return vreinterpretq_m128_f32(vfmaq_f32(vreinterpretq_f32_m128(a), ++ vreinterpretq_f32_m128(mask), ++ vreinterpretq_f32_m128(b))); ++#else ++ return _mm_add_ps(_mm_mul_ps(b, mask), a); ++#endif ++} ++ ++// Horizontally add adjacent pairs of double-precision (64-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pd ++FORCE_INLINE __m128d _mm_hadd_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vpaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[] = {da[0] + da[1], db[0] + db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of single-precision (32-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_ps ++FORCE_INLINE __m128 _mm_hadd_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vpaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vpadd_f32(a10, a32), vpadd_f32(b10, b32))); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of double-precision (64-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pd ++FORCE_INLINE __m128d _mm_hsub_pd(__m128d _a, __m128d _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vuzp1q_f64(a, b), vuzp2q_f64(a, b))); ++#else ++ double *da = (double *) &_a; ++ double *db = (double *) &_b; ++ double c[] = {da[0] - da[1], db[0] - db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of single-precision (32-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_ps ++FORCE_INLINE __m128 _mm_hsub_ps(__m128 _a, __m128 _b) ++{ ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vuzp1q_f32(a, b), vuzp2q_f32(a, b))); ++#else ++ float32x4x2_t c = vuzpq_f32(a, b); ++ return vreinterpretq_m128_f32(vsubq_f32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Load 128-bits of integer data from unaligned memory into dst. This intrinsic ++// may perform better than _mm_loadu_si128 when the data crosses a cache line ++// boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lddqu_si128 ++#define _mm_lddqu_si128 _mm_loadu_si128 ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loaddup_pd ++#define _mm_loaddup_pd _mm_load1_pd ++ ++// Duplicate the low double-precision (64-bit) floating-point element from a, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movedup_pd ++FORCE_INLINE __m128d _mm_movedup_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdupq_laneq_f64(vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_u64( ++ vdupq_n_u64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0))); ++#endif ++} ++ ++// Duplicate odd-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehdup_ps ++FORCE_INLINE __m128 _mm_movehdup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 1, 1, 3, 3)); ++#else ++ float32_t a1 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ float32_t a3 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 3); ++ float ALIGN_STRUCT(16) data[4] = {a1, a1, a3, a3}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Duplicate even-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_moveldup_ps ++FORCE_INLINE __m128 _mm_moveldup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 0, 0, 2, 2)); ++#else ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32_t a2 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 2); ++ float ALIGN_STRUCT(16) data[4] = {a0, a0, a2, a2}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++/* SSSE3 */ ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi16 ++FORCE_INLINE __m128i _mm_abs_epi16(__m128i a) ++{ ++ return vreinterpretq_m128i_s16(vabsq_s16(vreinterpretq_s16_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi32 ++FORCE_INLINE __m128i _mm_abs_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32(vabsq_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi8 ++FORCE_INLINE __m128i _mm_abs_epi8(__m128i a) ++{ ++ return vreinterpretq_m128i_s8(vabsq_s8(vreinterpretq_s8_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi16 ++FORCE_INLINE __m64 _mm_abs_pi16(__m64 a) ++{ ++ return vreinterpret_m64_s16(vabs_s16(vreinterpret_s16_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi32 ++FORCE_INLINE __m64 _mm_abs_pi32(__m64 a) ++{ ++ return vreinterpret_m64_s32(vabs_s32(vreinterpret_s32_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi8 ++FORCE_INLINE __m64 _mm_abs_pi8(__m64 a) ++{ ++ return vreinterpret_m64_s8(vabs_s8(vreinterpret_s8_m64(a))); ++} ++ ++// Concatenate 16-byte blocks in a and b into a 32-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 16 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_epi8 ++#if defined(__GNUC__) && !defined(__clang__) ++#define _mm_alignr_epi8(a, b, imm) \ ++ __extension__({ \ ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); \ ++ uint8x16_t _b = vreinterpretq_u8_m128i(b); \ ++ __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) \ ++ ret = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) \ ++ ret = _mm_srli_si128(a, imm >= 16 ? imm - 16 : 0); \ ++ else \ ++ ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(_b, _a, imm < 16 ? imm : 0)); \ ++ ret; \ ++ }) ++ ++#else ++#define _mm_alignr_epi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, uint8x16_t __a = vreinterpretq_u8_m128i(_a); \ ++ uint8x16_t __b = vreinterpretq_u8_m128i(_b); __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) ret = \ ++ vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) ret = \ ++ _mm_srli_si128(_a, imm >= 16 ? imm - 16 : 0); \ ++ else ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(__b, __a, imm < 16 ? imm : 0)); \ ++ _sse2neon_return(ret);) ++ ++#endif ++ ++// Concatenate 8-byte blocks in a and b into a 16-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 8 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_pi8 ++#define _mm_alignr_pi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m64, a, b, __m64 ret; if (_sse2neon_unlikely((imm) >= 16)) { \ ++ ret = vreinterpret_m64_s8(vdup_n_s8(0)); \ ++ } else { \ ++ uint8x8_t tmp_low; \ ++ uint8x8_t tmp_high; \ ++ if ((imm) >= 8) { \ ++ const int idx = (imm) -8; \ ++ tmp_low = vreinterpret_u8_m64(_a); \ ++ tmp_high = vdup_n_u8(0); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } else { \ ++ const int idx = (imm); \ ++ tmp_low = vreinterpret_u8_m64(_b); \ ++ tmp_high = vreinterpret_u8_m64(_a); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } \ ++ } _sse2neon_return(ret);) ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi16 ++FORCE_INLINE __m128i _mm_hadd_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16(vpaddq_s16(a, b)); ++#else ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(vget_low_s16(a), vget_high_s16(a)), ++ vpadd_s16(vget_low_s16(b), vget_high_s16(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi32 ++FORCE_INLINE __m128i _mm_hadd_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32(vpaddq_s32(a, b)); ++#else ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vpadd_s32(vget_low_s32(a), vget_high_s32(a)), ++ vpadd_s32(vget_low_s32(b), vget_high_s32(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi16 ++FORCE_INLINE __m64 _mm_hadd_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vpadd_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi32 ++FORCE_INLINE __m64 _mm_hadd_pi32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s32( ++ vpadd_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_epi16 ++FORCE_INLINE __m128i _mm_hadds_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ return vreinterpretq_s64_s16( ++ vqaddq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ // Interleave using vshrn/vmovn ++ // [a0|a2|a4|a6|b0|b2|b4|b6] ++ // [a1|a3|a5|a7|b1|b3|b5|b7] ++ int16x8_t ab0246 = vcombine_s16(vmovn_s32(a), vmovn_s32(b)); ++ int16x8_t ab1357 = vcombine_s16(vshrn_n_s32(a, 16), vshrn_n_s32(b, 16)); ++ // Saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(ab0246, ab1357)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_pi16 ++FORCE_INLINE __m64 _mm_hadds_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_s64_s16(vqadd_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t res = vuzp_s16(a, b); ++ return vreinterpret_s64_s16(vqadd_s16(res.val[0], res.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi16 ++FORCE_INLINE __m128i _mm_hsub_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi32 ++FORCE_INLINE __m128i _mm_hsub_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vuzp1q_s32(a, b), vuzp2q_s32(a, b))); ++#else ++ int32x4x2_t c = vuzpq_s32(a, b); ++ return vreinterpretq_m128i_s32(vsubq_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pi16 ++FORCE_INLINE __m64 _mm_hsub_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_hsub_pi32 ++FORCE_INLINE __m64 _mm_hsub_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s32(vsub_s32(vuzp1_s32(a, b), vuzp2_s32(a, b))); ++#else ++ int32x2x2_t c = vuzp_s32(a, b); ++ return vreinterpret_m64_s32(vsub_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_epi16 ++FORCE_INLINE __m128i _mm_hsubs_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vqsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_pi16 ++FORCE_INLINE __m64 _mm_hsubs_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vqsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vqsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, ++// and pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_epi16 ++FORCE_INLINE __m128i _mm_maddubs_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ int16x8_t tl = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_low_u8(a))), ++ vmovl_s8(vget_low_s8(b))); ++ int16x8_t th = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_high_u8(a))), ++ vmovl_s8(vget_high_s8(b))); ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vuzp1q_s16(tl, th), vuzp2q_s16(tl, th))); ++#else ++ // This would be much simpler if x86 would choose to zero extend OR sign ++ // extend, not both. This could probably be optimized better. ++ uint16x8_t a = vreinterpretq_u16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // Zero extend a ++ int16x8_t a_odd = vreinterpretq_s16_u16(vshrq_n_u16(a, 8)); ++ int16x8_t a_even = vreinterpretq_s16_u16(vbicq_u16(a, vdupq_n_u16(0xff00))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x8_t b_even = vshrq_n_s16(vshlq_n_s16(b, 8), 8); ++ int16x8_t b_odd = vshrq_n_s16(b, 8); ++ ++ // multiply ++ int16x8_t prod1 = vmulq_s16(a_even, b_even); ++ int16x8_t prod2 = vmulq_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(prod1, prod2)); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, and ++// pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_pi16 ++FORCE_INLINE __m64 _mm_maddubs_pi16(__m64 _a, __m64 _b) ++{ ++ uint16x4_t a = vreinterpret_u16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // Zero extend a ++ int16x4_t a_odd = vreinterpret_s16_u16(vshr_n_u16(a, 8)); ++ int16x4_t a_even = vreinterpret_s16_u16(vand_u16(a, vdup_n_u16(0xff))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x4_t b_even = vshr_n_s16(vshl_n_s16(b, 8), 8); ++ int16x4_t b_odd = vshr_n_s16(b, 8); ++ ++ // multiply ++ int16x4_t prod1 = vmul_s16(a_even, b_even); ++ int16x4_t prod2 = vmul_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpret_m64_s16(vqadd_s16(prod1, prod2)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Shift right by 15 bits while rounding up, and store ++// the packed 16-bit integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_epi16 ++FORCE_INLINE __m128i _mm_mulhrs_epi16(__m128i a, __m128i b) ++{ ++ // Has issues due to saturation ++ // return vreinterpretq_m128i_s16(vqrdmulhq_s16(a, b)); ++ ++ // Multiply ++ int32x4_t mul_lo = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int32x4_t mul_hi = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ // Rounding narrowing shift right ++ // narrow = (int16_t)((mul + 16384) >> 15); ++ int16x4_t narrow_lo = vrshrn_n_s32(mul_lo, 15); ++ int16x4_t narrow_hi = vrshrn_n_s32(mul_hi, 15); ++ ++ // Join together ++ return vreinterpretq_m128i_s16(vcombine_s16(narrow_lo, narrow_hi)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Truncate each intermediate integer to the 18 most ++// significant bits, round by adding 1, and store bits [16:1] to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_pi16 ++FORCE_INLINE __m64 _mm_mulhrs_pi16(__m64 a, __m64 b) ++{ ++ int32x4_t mul_extend = ++ vmull_s16((vreinterpret_s16_m64(a)), (vreinterpret_s16_m64(b))); ++ ++ // Rounding narrowing shift right ++ return vreinterpret_m64_s16(vrshrn_n_s32(mul_extend, 15)); ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi8 ++FORCE_INLINE __m128i _mm_shuffle_epi8(__m128i a, __m128i b) ++{ ++ int8x16_t tbl = vreinterpretq_s8_m128i(a); // input a ++ uint8x16_t idx = vreinterpretq_u8_m128i(b); // input b ++ uint8x16_t idx_masked = ++ vandq_u8(idx, vdupq_n_u8(0x8F)); // avoid using meaningless bits ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8(vqtbl1q_s8(tbl, idx_masked)); ++#elif defined(__GNUC__) ++ int8x16_t ret; ++ // %e and %f represent the even and odd D registers ++ // respectively. ++ __asm__ __volatile__( ++ "vtbl.8 %e[ret], {%e[tbl], %f[tbl]}, %e[idx]\n" ++ "vtbl.8 %f[ret], {%e[tbl], %f[tbl]}, %f[idx]\n" ++ : [ret] "=&w"(ret) ++ : [tbl] "w"(tbl), [idx] "w"(idx_masked)); ++ return vreinterpretq_m128i_s8(ret); ++#else ++ // use this line if testing on aarch64 ++ int8x8x2_t a_split = {vget_low_s8(tbl), vget_high_s8(tbl)}; ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vtbl2_s8(a_split, vget_low_u8(idx_masked)), ++ vtbl2_s8(a_split, vget_high_u8(idx_masked)))); ++#endif ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi8 ++FORCE_INLINE __m64 _mm_shuffle_pi8(__m64 a, __m64 b) ++{ ++ const int8x8_t controlMask = ++ vand_s8(vreinterpret_s8_m64(b), vdup_n_s8((int8_t) (0x1 << 7 | 0x07))); ++ int8x8_t res = vtbl1_s8(vreinterpret_s8_m64(a), controlMask); ++ return vreinterpret_m64_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed ++// 16-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi16 ++FORCE_INLINE __m128i _mm_sign_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x8_t ltMask = vreinterpretq_u16_s16(vshrq_n_s16(b, 15)); ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqzq_s16(b)); ++#else ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqq_s16(b, vdupq_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s16(a) equals to negative ++ // 'a') based on ltMask ++ int16x8_t masked = vbslq_s16(ltMask, vnegq_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x8_t res = vbicq_s16(masked, zeroMask); ++ return vreinterpretq_m128i_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed ++// 32-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi32 ++FORCE_INLINE __m128i _mm_sign_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x4_t ltMask = vreinterpretq_u32_s32(vshrq_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqzq_s32(b)); ++#else ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqq_s32(b, vdupq_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s32(a) equals to negative ++ // 'a') based on ltMask ++ int32x4_t masked = vbslq_s32(ltMask, vnegq_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x4_t res = vbicq_s32(masked, zeroMask); ++ return vreinterpretq_m128i_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed ++// 8-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi8 ++FORCE_INLINE __m128i _mm_sign_epi8(__m128i _a, __m128i _b) ++{ ++ int8x16_t a = vreinterpretq_s8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x16_t ltMask = vreinterpretq_u8_s8(vshrq_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqzq_s8(b)); ++#else ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqq_s8(b, vdupq_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s8(a) return negative 'a') ++ // based on ltMask ++ int8x16_t masked = vbslq_s8(ltMask, vnegq_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x16_t res = vbicq_s8(masked, zeroMask); ++ ++ return vreinterpretq_m128i_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed 16-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi16 ++FORCE_INLINE __m64 _mm_sign_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x4_t ltMask = vreinterpret_u16_s16(vshr_n_s16(b, 15)); ++ ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceqz_s16(b)); ++#else ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceq_s16(b, vdup_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s16(a) return negative 'a') ++ // based on ltMask ++ int16x4_t masked = vbsl_s16(ltMask, vneg_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x4_t res = vbic_s16(masked, zeroMask); ++ ++ return vreinterpret_m64_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed 32-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi32 ++FORCE_INLINE __m64 _mm_sign_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x2_t ltMask = vreinterpret_u32_s32(vshr_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceqz_s32(b)); ++#else ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceq_s32(b, vdup_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s32(a) return negative 'a') ++ // based on ltMask ++ int32x2_t masked = vbsl_s32(ltMask, vneg_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x2_t res = vbic_s32(masked, zeroMask); ++ ++ return vreinterpret_m64_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed 8-bit integer ++// in b is negative, and store the results in dst. Element in dst are zeroed out ++// when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi8 ++FORCE_INLINE __m64 _mm_sign_pi8(__m64 _a, __m64 _b) ++{ ++ int8x8_t a = vreinterpret_s8_m64(_a); ++ int8x8_t b = vreinterpret_s8_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x8_t ltMask = vreinterpret_u8_s8(vshr_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceqz_s8(b)); ++#else ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceq_s8(b, vdup_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s8(a) return negative 'a') ++ // based on ltMask ++ int8x8_t masked = vbsl_s8(ltMask, vneg_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x8_t res = vbic_s8(masked, zeroMask); ++ ++ return vreinterpret_m64_s8(res); ++} ++ ++/* SSE4.1 */ ++ ++// Blend packed 16-bit integers from a and b using control mask imm8, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_epi16 ++// FORCE_INLINE __m128i _mm_blend_epi16(__m128i a, __m128i b, ++// __constrange(0,255) int imm) ++#define _mm_blend_epi16(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, \ ++ const uint16_t _mask[8] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 1)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 2)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 3)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 4)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 5)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 6)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 7)) ? (uint16_t) -1 : 0x0); \ ++ uint16x8_t _mask_vec = vld1q_u16(_mask); \ ++ uint16x8_t __a = vreinterpretq_u16_m128i(_a); \ ++ uint16x8_t __b = vreinterpretq_u16_m128i(_b); _sse2neon_return( \ ++ vreinterpretq_m128i_u16(vbslq_u16(_mask_vec, __b, __a)));) ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using control mask imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_pd ++#define _mm_blend_pd(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128d, a, b, \ ++ const uint64_t _mask[2] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? ~UINT64_C(0) : UINT64_C(0), \ ++ ((imm) & (1 << 1)) ? ~UINT64_C(0) : UINT64_C(0)); \ ++ uint64x2_t _mask_vec = vld1q_u64(_mask); \ ++ uint64x2_t __a = vreinterpretq_u64_m128d(_a); \ ++ uint64x2_t __b = vreinterpretq_u64_m128d(_b); _sse2neon_return( \ ++ vreinterpretq_m128d_u64(vbslq_u64(_mask_vec, __b, __a)));) ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_ps ++FORCE_INLINE __m128 _mm_blend_ps(__m128 _a, __m128 _b, const char imm8) ++{ ++ const uint32_t ALIGN_STRUCT(16) ++ data[4] = {((imm8) & (1 << 0)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0}; ++ uint32x4_t mask = vld1q_u32(data); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Blend packed 8-bit integers from a and b using mask, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_epi8 ++FORCE_INLINE __m128i _mm_blendv_epi8(__m128i _a, __m128i _b, __m128i _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint8x16_t mask = ++ vreinterpretq_u8_s8(vshrq_n_s8(vreinterpretq_s8_m128i(_mask), 7)); ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ uint8x16_t b = vreinterpretq_u8_m128i(_b); ++ return vreinterpretq_m128i_u8(vbslq_u8(mask, b, a)); ++} ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_pd ++FORCE_INLINE __m128d _mm_blendv_pd(__m128d _a, __m128d _b, __m128d _mask) ++{ ++ uint64x2_t mask = ++ vreinterpretq_u64_s64(vshrq_n_s64(vreinterpretq_s64_m128d(_mask), 63)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64(vbslq_f64(mask, b, a)); ++#else ++ uint64x2_t a = vreinterpretq_u64_m128d(_a); ++ uint64x2_t b = vreinterpretq_u64_m128d(_b); ++ return vreinterpretq_m128d_u64(vbslq_u64(mask, b, a)); ++#endif ++} ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_ps ++FORCE_INLINE __m128 _mm_blendv_ps(__m128 _a, __m128 _b, __m128 _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint32x4_t mask = ++ vreinterpretq_u32_s32(vshrq_n_s32(vreinterpretq_s32_m128(_mask), 31)); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a up ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_pd ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndpq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(ceil(f[1]), ceil(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a up to ++// an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ps ++FORCE_INLINE __m128 _mm_ceil_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndpq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ceilf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b up to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_sd ++FORCE_INLINE __m128d _mm_ceil_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_ceil_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b up to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ss ++FORCE_INLINE __m128 _mm_ceil_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_ceil_ps(b)); ++} ++ ++// Compare packed 64-bit integers in a and b for equality, and store the results ++// in dst ++FORCE_INLINE __m128i _mm_cmpeq_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vceqq_u64(vreinterpretq_u64_m128i(a), vreinterpretq_u64_m128i(b))); ++#else ++ // ARMv7 lacks vceqq_u64 ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128i_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Sign extend packed 16-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi32 ++FORCE_INLINE __m128i _mm_cvtepi16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vmovl_s16(vget_low_s16(vreinterpretq_s16_m128i(a)))); ++} ++ ++// Sign extend packed 16-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi64 ++FORCE_INLINE __m128i _mm_cvtepi16_epi64(__m128i a) ++{ ++ int16x8_t s16x8 = vreinterpretq_s16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Sign extend packed 32-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_epi64 ++FORCE_INLINE __m128i _mm_cvtepi32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a)))); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 16-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi16 ++FORCE_INLINE __m128i _mm_cvtepi8_epi16(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ return vreinterpretq_m128i_s16(s16x8); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi32 ++FORCE_INLINE __m128i _mm_cvtepi8_epi32(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_s32(s32x4); ++} ++ ++// Sign extend packed 8-bit integers in the low 8 bytes of a to packed 64-bit ++// integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi64 ++FORCE_INLINE __m128i _mm_cvtepi8_epi64(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi32 ++FORCE_INLINE __m128i _mm_cvtepu16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_u32( ++ vmovl_u16(vget_low_u16(vreinterpretq_u16_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi64 ++FORCE_INLINE __m128i _mm_cvtepu16_epi64(__m128i a) ++{ ++ uint16x8_t u16x8 = vreinterpretq_u16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Zero extend packed unsigned 32-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu32_epi64 ++FORCE_INLINE __m128i _mm_cvtepu32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_u64( ++ vmovl_u32(vget_low_u32(vreinterpretq_u32_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 16-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi16 ++FORCE_INLINE __m128i _mm_cvtepu8_epi16(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx HGFE DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0H0G 0F0E 0D0C 0B0A */ ++ return vreinterpretq_m128i_u16(u16x8); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi32 ++FORCE_INLINE __m128i _mm_cvtepu8_epi32(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_u32(u32x4); ++} ++ ++// Zero extend packed unsigned 8-bit integers in the low 8 bytes of a to packed ++// 64-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi64 ++FORCE_INLINE __m128i _mm_cvtepu8_epi64(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Conditionally multiply the packed double-precision (64-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, and ++// conditionally store the sum in dst using the low 4 bits of imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_pd ++FORCE_INLINE __m128d _mm_dp_pd(__m128d a, __m128d b, const int imm) ++{ ++ // Generate mask value from constant immediate bit value ++ const int64_t bit0Mask = imm & 0x01 ? UINT64_MAX : 0; ++ const int64_t bit1Mask = imm & 0x02 ? UINT64_MAX : 0; ++#if !SSE2NEON_PRECISE_DP ++ const int64_t bit4Mask = imm & 0x10 ? UINT64_MAX : 0; ++ const int64_t bit5Mask = imm & 0x20 ? UINT64_MAX : 0; ++#endif ++ // Conditional multiplication ++#if !SSE2NEON_PRECISE_DP ++ __m128d mul = _mm_mul_pd(a, b); ++ const __m128d mulMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit5Mask, bit4Mask)); ++ __m128d tmp = _mm_and_pd(mul, mulMask); ++#else ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double d0 = (imm & 0x10) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 0) ++ : 0; ++ double d1 = (imm & 0x20) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 1) ++ : 0; ++#else ++ double d0 = (imm & 0x10) ? ((double *) &a)[0] * ((double *) &b)[0] : 0; ++ double d1 = (imm & 0x20) ? ((double *) &a)[1] * ((double *) &b)[1] : 0; ++#endif ++ __m128d tmp = _mm_set_pd(d1, d0); ++#endif ++ // Sum the products ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double sum = vpaddd_f64(vreinterpretq_f64_m128d(tmp)); ++#else ++ double sum = *((double *) &tmp) + *(((double *) &tmp) + 1); ++#endif ++ // Conditionally store the sum ++ const __m128d sumMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit1Mask, bit0Mask)); ++ __m128d res = _mm_and_pd(_mm_set_pd1(sum), sumMask); ++ return res; ++} ++ ++// Conditionally multiply the packed single-precision (32-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, ++// and conditionally store the sum in dst using the low 4 bits of imm. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_ps ++FORCE_INLINE __m128 _mm_dp_ps(__m128 a, __m128 b, const int imm) ++{ ++ float32x4_t elementwise_prod = _mm_mul_ps(a, b); ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ /* shortcuts */ ++ if (imm == 0xFF) { ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++ ++ if ((imm & 0x0F) == 0x0F) { ++ if (!(imm & (1 << 4))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 0); ++ if (!(imm & (1 << 5))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 1); ++ if (!(imm & (1 << 6))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 2); ++ if (!(imm & (1 << 7))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 3); ++ ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++#endif ++ ++ float s = 0.0f; ++ ++ if (imm & (1 << 4)) ++ s += vgetq_lane_f32(elementwise_prod, 0); ++ if (imm & (1 << 5)) ++ s += vgetq_lane_f32(elementwise_prod, 1); ++ if (imm & (1 << 6)) ++ s += vgetq_lane_f32(elementwise_prod, 2); ++ if (imm & (1 << 7)) ++ s += vgetq_lane_f32(elementwise_prod, 3); ++ ++ const float32_t res[4] = { ++ (imm & 0x1) ? s : 0.0f, ++ (imm & 0x2) ? s : 0.0f, ++ (imm & 0x4) ? s : 0.0f, ++ (imm & 0x8) ? s : 0.0f, ++ }; ++ return vreinterpretq_m128_f32(vld1q_f32(res)); ++} ++ ++// Extract a 32-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi32 ++// FORCE_INLINE int _mm_extract_epi32(__m128i a, __constrange(0,4) int imm) ++#define _mm_extract_epi32(a, imm) \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)) ++ ++// Extract a 64-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi64 ++// FORCE_INLINE __int64 _mm_extract_epi64(__m128i a, __constrange(0,2) int imm) ++#define _mm_extract_epi64(a, imm) \ ++ vgetq_lane_s64(vreinterpretq_s64_m128i(a), (imm)) ++ ++// Extract an 8-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. FORCE_INLINE int _mm_extract_epi8(__m128i a, ++// __constrange(0,16) int imm) ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi8 ++#define _mm_extract_epi8(a, imm) vgetq_lane_u8(vreinterpretq_u8_m128i(a), (imm)) ++ ++// Extracts the selected single-precision (32-bit) floating-point from a. ++// FORCE_INLINE int _mm_extract_ps(__m128 a, __constrange(0,4) int imm) ++#define _mm_extract_ps(a, imm) vgetq_lane_s32(vreinterpretq_s32_m128(a), (imm)) ++ ++// Round the packed double-precision (64-bit) floating-point elements in a down ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_pd ++FORCE_INLINE __m128d _mm_floor_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndmq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(floor(f[1]), floor(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a down ++// to an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ps ++FORCE_INLINE __m128 _mm_floor_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndmq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(floorf(f[3]), floorf(f[2]), floorf(f[1]), floorf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b down to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_sd ++FORCE_INLINE __m128d _mm_floor_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_floor_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b down to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ss ++FORCE_INLINE __m128 _mm_floor_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_floor_ps(b)); ++} ++ ++// Copy a to dst, and insert the 32-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi32 ++// FORCE_INLINE __m128i _mm_insert_epi32(__m128i a, int b, ++// __constrange(0,4) int imm) ++#define _mm_insert_epi32(a, b, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vsetq_lane_s32((b), vreinterpretq_s32_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the 64-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi64 ++// FORCE_INLINE __m128i _mm_insert_epi64(__m128i a, __int64 b, ++// __constrange(0,2) int imm) ++#define _mm_insert_epi64(a, b, imm) \ ++ vreinterpretq_m128i_s64( \ ++ vsetq_lane_s64((b), vreinterpretq_s64_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the lower 8-bit integer from i into dst at the ++// location specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi8 ++// FORCE_INLINE __m128i _mm_insert_epi8(__m128i a, int b, ++// __constrange(0,16) int imm) ++#define _mm_insert_epi8(a, b, imm) \ ++ vreinterpretq_m128i_s8(vsetq_lane_s8((b), vreinterpretq_s8_m128i(a), (imm))) ++ ++// Copy a to tmp, then insert a single-precision (32-bit) floating-point ++// element from b into tmp using the control in imm8. Store tmp to dst using ++// the mask in imm8 (elements are zeroed out when the corresponding bit is set). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=insert_ps ++#define _mm_insert_ps(a, b, imm8) \ ++ _sse2neon_define2( \ ++ __m128, a, b, \ ++ float32x4_t tmp1 = \ ++ vsetq_lane_f32(vgetq_lane_f32(_b, (imm8 >> 6) & 0x3), \ ++ vreinterpretq_f32_m128(_a), 0); \ ++ float32x4_t tmp2 = \ ++ vsetq_lane_f32(vgetq_lane_f32(tmp1, 0), \ ++ vreinterpretq_f32_m128(_a), ((imm8 >> 4) & 0x3)); \ ++ const uint32_t data[4] = \ ++ _sse2neon_init(((imm8) & (1 << 0)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0); \ ++ uint32x4_t mask = vld1q_u32(data); \ ++ float32x4_t all_zeros = vdupq_n_f32(0); \ ++ \ ++ _sse2neon_return(vreinterpretq_m128_f32( \ ++ vbslq_f32(mask, all_zeros, vreinterpretq_f32_m128(tmp2))));) ++ ++// Compare packed signed 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi32 ++FORCE_INLINE __m128i _mm_max_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmaxq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi8 ++FORCE_INLINE __m128i _mm_max_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vmaxq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu16 ++FORCE_INLINE __m128i _mm_max_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vmaxq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_max_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vmaxq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi32 ++FORCE_INLINE __m128i _mm_min_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vminq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi8 ++FORCE_INLINE __m128i _mm_min_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vminq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu16 ++FORCE_INLINE __m128i _mm_min_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vminq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_min_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vminq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Horizontally compute the minimum amongst the packed unsigned 16-bit integers ++// in a, store the minimum and index in dst, and zero the remaining bits in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_minpos_epu16 ++FORCE_INLINE __m128i _mm_minpos_epu16(__m128i a) ++{ ++ __m128i dst; ++ uint16_t min, idx = 0; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Find the minimum value ++ min = vminvq_u16(vreinterpretq_u16_m128i(a)); ++ ++ // Get the index of the minimum value ++ static const uint16_t idxv[] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint16x8_t minv = vdupq_n_u16(min); ++ uint16x8_t cmeq = vceqq_u16(minv, vreinterpretq_u16_m128i(a)); ++ idx = vminvq_u16(vornq_u16(vld1q_u16(idxv), cmeq)); ++#else ++ // Find the minimum value ++ __m64 tmp; ++ tmp = vreinterpret_m64_u16( ++ vmin_u16(vget_low_u16(vreinterpretq_u16_m128i(a)), ++ vget_high_u16(vreinterpretq_u16_m128i(a)))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ min = vget_lane_u16(vreinterpret_u16_m64(tmp), 0); ++ // Get the index of the minimum value ++ int i; ++ for (i = 0; i < 8; i++) { ++ if (min == vgetq_lane_u16(vreinterpretq_u16_m128i(a), 0)) { ++ idx = (uint16_t) i; ++ break; ++ } ++ a = _mm_srli_si128(a, 2); ++ } ++#endif ++ // Generate result ++ dst = _mm_setzero_si128(); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(min, vreinterpretq_u16_m128i(dst), 0)); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(idx, vreinterpretq_u16_m128i(dst), 1)); ++ return dst; ++} ++ ++// Compute the sum of absolute differences (SADs) of quadruplets of unsigned ++// 8-bit integers in a compared to those in b, and store the 16-bit results in ++// dst. Eight SADs are performed using one quadruplet from b and eight ++// quadruplets from a. One quadruplet is selected from b starting at on the ++// offset specified in imm8. Eight quadruplets are formed from sequential 8-bit ++// integers selected from a starting at the offset specified in imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mpsadbw_epu8 ++FORCE_INLINE __m128i _mm_mpsadbw_epu8(__m128i a, __m128i b, const int imm) ++{ ++ uint8x16_t _a, _b; ++ ++ switch (imm & 0x4) { ++ case 0: ++ // do nothing ++ _a = vreinterpretq_u8_m128i(a); ++ break; ++ case 4: ++ _a = vreinterpretq_u8_u32(vextq_u32(vreinterpretq_u32_m128i(a), ++ vreinterpretq_u32_m128i(a), 1)); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ switch (imm & 0x3) { ++ case 0: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 0))); ++ break; ++ case 1: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 1))); ++ break; ++ case 2: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 2))); ++ break; ++ case 3: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 3))); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ int16x8_t c04, c15, c26, c37; ++ uint8x8_t low_b = vget_low_u8(_b); ++ c04 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a), low_b)); ++ uint8x16_t _a_1 = vextq_u8(_a, _a, 1); ++ c15 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_1), low_b)); ++ uint8x16_t _a_2 = vextq_u8(_a, _a, 2); ++ c26 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_2), low_b)); ++ uint8x16_t _a_3 = vextq_u8(_a, _a, 3); ++ c37 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_3), low_b)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // |0|4|2|6| ++ c04 = vpaddq_s16(c04, c26); ++ // |1|5|3|7| ++ c15 = vpaddq_s16(c15, c37); ++ ++ int32x4_t trn1_c = ++ vtrn1q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ int32x4_t trn2_c = ++ vtrn2q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ return vreinterpretq_m128i_s16(vpaddq_s16(vreinterpretq_s16_s32(trn1_c), ++ vreinterpretq_s16_s32(trn2_c))); ++#else ++ int16x4_t c01, c23, c45, c67; ++ c01 = vpadd_s16(vget_low_s16(c04), vget_low_s16(c15)); ++ c23 = vpadd_s16(vget_low_s16(c26), vget_low_s16(c37)); ++ c45 = vpadd_s16(vget_high_s16(c04), vget_high_s16(c15)); ++ c67 = vpadd_s16(vget_high_s16(c26), vget_high_s16(c37)); ++ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(c01, c23), vpadd_s16(c45, c67))); ++#endif ++} ++ ++// Multiply the low signed 32-bit integers from each packed 64-bit element in ++// a and b, and store the signed 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epi32 ++FORCE_INLINE __m128i _mm_mul_epi32(__m128i a, __m128i b) ++{ ++ // vmull_s32 upcasts instead of masking, so we downcast. ++ int32x2_t a_lo = vmovn_s64(vreinterpretq_s64_m128i(a)); ++ int32x2_t b_lo = vmovn_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vmull_s32(a_lo, b_lo)); ++} ++ ++// Multiply the packed 32-bit integers in a and b, producing intermediate 64-bit ++// integers, and store the low 32 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi32 ++FORCE_INLINE __m128i _mm_mullo_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmulq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi32 ++FORCE_INLINE __m128i _mm_packus_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcombine_u16(vqmovun_s32(vreinterpretq_s32_m128i(a)), ++ vqmovun_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_pd ++FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d a, int rounding) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndnq_f64(vreinterpretq_f64_m128d(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_pd(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_pd(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndq_f64(vreinterpretq_f64_m128d(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128d_f64(vrndiq_f64(vreinterpretq_f64_m128d(a))); ++ } ++#else ++ double *v_double = (double *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ double res[2], tmp; ++ for (int i = 0; i < 2; i++) { ++ tmp = (v_double[i] < 0) ? -v_double[i] : v_double[i]; ++ double roundDown = floor(tmp); // Round down value ++ double roundUp = ceil(tmp); // Round up value ++ double diffDown = tmp - roundDown; ++ double diffUp = roundUp - tmp; ++ if (diffDown < diffUp) { ++ /* If it's closer to the round down value, then use it */ ++ res[i] = roundDown; ++ } else if (diffDown > diffUp) { ++ /* If it's closer to the round up value, then use it */ ++ res[i] = roundUp; ++ } else { ++ /* If it's equidistant between round up and round down value, ++ * pick the one which is an even number */ ++ double half = roundDown / 2; ++ if (half != floor(half)) { ++ /* If the round down value is odd, return the round up value ++ */ ++ res[i] = roundUp; ++ } else { ++ /* If the round up value is odd, return the round down value ++ */ ++ res[i] = roundDown; ++ } ++ } ++ res[i] = (v_double[i] < 0) ? -res[i] : res[i]; ++ } ++ return _mm_set_pd(res[1], res[0]); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_pd(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_pd(a); ++ } ++ return _mm_set_pd(v_double[1] > 0 ? floor(v_double[1]) : ceil(v_double[1]), ++ v_double[0] > 0 ? floor(v_double[0]) : ceil(v_double[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed single-precision ++// floating-point elements in dst. ++// software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_round_ps ++FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128 a, int rounding) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndnq_f32(vreinterpretq_f32_m128(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_ps(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_ps(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndq_f32(vreinterpretq_f32_m128(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128_f32(vrndiq_f32(vreinterpretq_f32_m128(a))); ++ } ++#else ++ float *v_float = (float *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vbslq_s32(is_delta_half, r_even, r_normal))); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_ps(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_ps(a); ++ } ++ return _mm_set_ps(v_float[3] > 0 ? floorf(v_float[3]) : ceilf(v_float[3]), ++ v_float[2] > 0 ? floorf(v_float[2]) : ceilf(v_float[2]), ++ v_float[1] > 0 ? floorf(v_float[1]) : ceilf(v_float[1]), ++ v_float[0] > 0 ? floorf(v_float[0]) : ceilf(v_float[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b using ++// the rounding parameter, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_sd ++FORCE_INLINE __m128d _mm_round_sd(__m128d a, __m128d b, int rounding) ++{ ++ return _mm_move_sd(a, _mm_round_pd(b, rounding)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b using ++// the rounding parameter, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. Rounding is done according to the ++// rounding[3:0] parameter, which can be one of: ++// (_MM_FROUND_TO_NEAREST_INT |_MM_FROUND_NO_EXC) // round to nearest, and ++// suppress exceptions ++// (_MM_FROUND_TO_NEG_INF |_MM_FROUND_NO_EXC) // round down, and ++// suppress exceptions ++// (_MM_FROUND_TO_POS_INF |_MM_FROUND_NO_EXC) // round up, and suppress ++// exceptions ++// (_MM_FROUND_TO_ZERO |_MM_FROUND_NO_EXC) // truncate, and suppress ++// exceptions _MM_FROUND_CUR_DIRECTION // use MXCSR.RC; see ++// _MM_SET_ROUNDING_MODE ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_ss ++FORCE_INLINE __m128 _mm_round_ss(__m128 a, __m128 b, int rounding) ++{ ++ return _mm_move_ss(a, _mm_round_ps(b, rounding)); ++} ++ ++// Load 128-bits of integer data from memory into dst using a non-temporal ++// memory hint. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_load_si128 ++FORCE_INLINE __m128i _mm_stream_load_si128(__m128i *p) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ return __builtin_nontemporal_load(p); ++#else ++ return vreinterpretq_m128i_s64(vld1q_s64((int64_t *) p)); ++#endif ++} ++ ++// Compute the bitwise NOT of a and then AND with a 128-bit vector containing ++// all 1's, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_ones ++FORCE_INLINE int _mm_test_all_ones(__m128i a) ++{ ++ return (uint64_t) (vgetq_lane_s64(a, 0) & vgetq_lane_s64(a, 1)) == ++ ~(uint64_t) 0; ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_zeros ++FORCE_INLINE int _mm_test_all_zeros(__m128i a, __m128i mask) ++{ ++ int64x2_t a_and_mask = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(mask)); ++ return !(vgetq_lane_s64(a_and_mask, 0) | vgetq_lane_s64(a_and_mask, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute ++// the bitwise NOT of a and then AND with mask, and set CF to 1 if the result is ++// zero, otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_test_mix_ones_zero ++// Note: Argument names may be wrong in the Intel intrinsics guide. ++FORCE_INLINE int _mm_test_mix_ones_zeros(__m128i a, __m128i mask) ++{ ++ uint64x2_t v = vreinterpretq_u64_m128i(a); ++ uint64x2_t m = vreinterpretq_u64_m128i(mask); ++ ++ // find ones (set-bits) and zeros (clear-bits) under clip mask ++ uint64x2_t ones = vandq_u64(m, v); ++ uint64x2_t zeros = vbicq_u64(m, v); ++ ++ // If both 128-bit variables are populated (non-zero) then return 1. ++ // For comparison purposes, first compact each var down to 32-bits. ++ uint32x2_t reduced = vpmax_u32(vqmovn_u64(ones), vqmovn_u64(zeros)); ++ ++ // if folding minimum is non-zero then both vars must be non-zero ++ return (vget_lane_u32(vpmin_u32(reduced, reduced), 0) != 0); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the CF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testc_si128 ++FORCE_INLINE int _mm_testc_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vbicq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testnzc_si128 ++#define _mm_testnzc_si128(a, b) _mm_test_mix_ones_zeros(a, b) ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the ZF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testz_si128 ++FORCE_INLINE int _mm_testz_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++/* SSE4.2 */ ++ ++static const uint16_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask16b[8] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++static const uint8_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask8b[16] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++ ++/* specify the source data format */ ++#define _SIDD_UBYTE_OPS 0x00 /* unsigned 8-bit characters */ ++#define _SIDD_UWORD_OPS 0x01 /* unsigned 16-bit characters */ ++#define _SIDD_SBYTE_OPS 0x02 /* signed 8-bit characters */ ++#define _SIDD_SWORD_OPS 0x03 /* signed 16-bit characters */ ++ ++/* specify the comparison operation */ ++#define _SIDD_CMP_EQUAL_ANY 0x00 /* compare equal any: strchr */ ++#define _SIDD_CMP_RANGES 0x04 /* compare ranges */ ++#define _SIDD_CMP_EQUAL_EACH 0x08 /* compare equal each: strcmp */ ++#define _SIDD_CMP_EQUAL_ORDERED 0x0C /* compare equal ordered */ ++ ++/* specify the polarity */ ++#define _SIDD_POSITIVE_POLARITY 0x00 ++#define _SIDD_MASKED_POSITIVE_POLARITY 0x20 ++#define _SIDD_NEGATIVE_POLARITY 0x10 /* negate results */ ++#define _SIDD_MASKED_NEGATIVE_POLARITY \ ++ 0x30 /* negate results only before end of string */ ++ ++/* specify the output selection in _mm_cmpXstri */ ++#define _SIDD_LEAST_SIGNIFICANT 0x00 ++#define _SIDD_MOST_SIGNIFICANT 0x40 ++ ++/* specify the output selection in _mm_cmpXstrm */ ++#define _SIDD_BIT_MASK 0x00 ++#define _SIDD_UNIT_MASK 0x40 ++ ++/* Pattern Matching for C macros. ++ * https://github.com/pfultz2/Cloak/wiki/C-Preprocessor-tricks,-tips,-and-idioms ++ */ ++ ++/* catenate */ ++#define SSE2NEON_PRIMITIVE_CAT(a, ...) a##__VA_ARGS__ ++#define SSE2NEON_CAT(a, b) SSE2NEON_PRIMITIVE_CAT(a, b) ++ ++#define SSE2NEON_IIF(c) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_IIF_, c) ++/* run the 2nd parameter */ ++#define SSE2NEON_IIF_0(t, ...) __VA_ARGS__ ++/* run the 1st parameter */ ++#define SSE2NEON_IIF_1(t, ...) t ++ ++#define SSE2NEON_COMPL(b) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_COMPL_, b) ++#define SSE2NEON_COMPL_0 1 ++#define SSE2NEON_COMPL_1 0 ++ ++#define SSE2NEON_DEC(x) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_DEC_, x) ++#define SSE2NEON_DEC_1 0 ++#define SSE2NEON_DEC_2 1 ++#define SSE2NEON_DEC_3 2 ++#define SSE2NEON_DEC_4 3 ++#define SSE2NEON_DEC_5 4 ++#define SSE2NEON_DEC_6 5 ++#define SSE2NEON_DEC_7 6 ++#define SSE2NEON_DEC_8 7 ++#define SSE2NEON_DEC_9 8 ++#define SSE2NEON_DEC_10 9 ++#define SSE2NEON_DEC_11 10 ++#define SSE2NEON_DEC_12 11 ++#define SSE2NEON_DEC_13 12 ++#define SSE2NEON_DEC_14 13 ++#define SSE2NEON_DEC_15 14 ++#define SSE2NEON_DEC_16 15 ++ ++/* detection */ ++#define SSE2NEON_CHECK_N(x, n, ...) n ++#define SSE2NEON_CHECK(...) SSE2NEON_CHECK_N(__VA_ARGS__, 0, ) ++#define SSE2NEON_PROBE(x) x, 1, ++ ++#define SSE2NEON_NOT(x) SSE2NEON_CHECK(SSE2NEON_PRIMITIVE_CAT(SSE2NEON_NOT_, x)) ++#define SSE2NEON_NOT_0 SSE2NEON_PROBE(~) ++ ++#define SSE2NEON_BOOL(x) SSE2NEON_COMPL(SSE2NEON_NOT(x)) ++#define SSE2NEON_IF(c) SSE2NEON_IIF(SSE2NEON_BOOL(c)) ++ ++#define SSE2NEON_EAT(...) ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++#define SSE2NEON_WHEN(c) SSE2NEON_IF(c)(SSE2NEON_EXPAND, SSE2NEON_EAT) ++ ++/* recursion */ ++/* deferred expression */ ++#define SSE2NEON_EMPTY() ++#define SSE2NEON_DEFER(id) id SSE2NEON_EMPTY() ++#define SSE2NEON_OBSTRUCT(...) __VA_ARGS__ SSE2NEON_DEFER(SSE2NEON_EMPTY)() ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++ ++#define SSE2NEON_EVAL(...) \ ++ SSE2NEON_EVAL1(SSE2NEON_EVAL1(SSE2NEON_EVAL1(__VA_ARGS__))) ++#define SSE2NEON_EVAL1(...) \ ++ SSE2NEON_EVAL2(SSE2NEON_EVAL2(SSE2NEON_EVAL2(__VA_ARGS__))) ++#define SSE2NEON_EVAL2(...) \ ++ SSE2NEON_EVAL3(SSE2NEON_EVAL3(SSE2NEON_EVAL3(__VA_ARGS__))) ++#define SSE2NEON_EVAL3(...) __VA_ARGS__ ++ ++#define SSE2NEON_REPEAT(count, macro, ...) \ ++ SSE2NEON_WHEN(count) \ ++ (SSE2NEON_OBSTRUCT(SSE2NEON_REPEAT_INDIRECT)()( \ ++ SSE2NEON_DEC(count), macro, \ ++ __VA_ARGS__) SSE2NEON_OBSTRUCT(macro)(SSE2NEON_DEC(count), \ ++ __VA_ARGS__)) ++#define SSE2NEON_REPEAT_INDIRECT() SSE2NEON_REPEAT ++ ++#define SSE2NEON_SIZE_OF_byte 8 ++#define SSE2NEON_NUMBER_OF_LANES_byte 16 ++#define SSE2NEON_SIZE_OF_word 16 ++#define SSE2NEON_NUMBER_OF_LANES_word 8 ++ ++#define SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE(i, type) \ ++ mtx[i] = vreinterpretq_m128i_##type(vceqq_##type( \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)), \ ++ vreinterpretq_##type##_m128i(a))); ++ ++#define SSE2NEON_FILL_LANE(i, type) \ ++ vec_b[i] = \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)); ++ ++#define PCMPSTR_RANGES(a, b, mtx, data_type_prefix, type_prefix, size, \ ++ number_of_lanes, byte_or_word) \ ++ do { \ ++ SSE2NEON_CAT( \ ++ data_type_prefix, \ ++ SSE2NEON_CAT(size, \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(number_of_lanes, _t)))) \ ++ vec_b[number_of_lanes]; \ ++ __m128i mask = SSE2NEON_IIF(byte_or_word)( \ ++ vreinterpretq_m128i_u16(vdupq_n_u16(0xff)), \ ++ vreinterpretq_m128i_u32(vdupq_n_u32(0xffff))); \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, SSE2NEON_FILL_LANE, \ ++ SSE2NEON_CAT(type_prefix, size))) \ ++ for (int i = 0; i < number_of_lanes; i++) { \ ++ mtx[i] = SSE2NEON_CAT(vreinterpretq_m128i_u, \ ++ size)(SSE2NEON_CAT(vbslq_u, size)( \ ++ SSE2NEON_CAT(vreinterpretq_u, \ ++ SSE2NEON_CAT(size, _m128i))(mask), \ ++ SSE2NEON_CAT(vcgeq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))), \ ++ SSE2NEON_CAT(vcleq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))))); \ ++ } \ ++ } while (0) ++ ++#define PCMPSTR_EQ(a, b, mtx, size, number_of_lanes) \ ++ do { \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, \ ++ SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE, \ ++ SSE2NEON_CAT(u, size))) \ ++ } while (0) ++ ++#define SSE2NEON_CMP_EQUAL_ANY_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_any(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_any_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_RANGES_IMPL(type, data_type, us, byte_or_word) \ ++ static int _sse2neon_cmp_##us##type##_ranges(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_RANGES( \ ++ a, b, mtx, data_type, us, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), byte_or_word); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_ranges_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_EQUAL_ORDERED_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_ordered(__m128i a, int la, \ ++ __m128i b, int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_ordered_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type))))( \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), la, lb, mtx); \ ++ } ++ ++static int _sse2neon_aggregate_equal_any_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ int tmp = _sse2neon_vaddvq_u8(vreinterpretq_u8_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_equal_any_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ int tmp = _sse2neon_vaddvq_u16(vreinterpretq_u16_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ANY(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ANY(SSE2NEON_CMP_EQUAL_ANY_) ++ ++static int _sse2neon_aggregate_ranges_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ __m128i tmp = vreinterpretq_m128i_u32( ++ vshrq_n_u32(vreinterpretq_u32_m128i(mtx[j]), 16)); ++ uint32x4_t vec_res = vandq_u32(vreinterpretq_u32_m128i(mtx[j]), ++ vreinterpretq_u32_m128i(tmp)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int t = vaddvq_u32(vec_res) ? 1 : 0; ++#else ++ uint64x2_t sumh = vpaddlq_u32(vec_res); ++ int t = vgetq_lane_u64(sumh, 0) + vgetq_lane_u64(sumh, 1); ++#endif ++ res |= (t << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_ranges_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ __m128i tmp = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 8)); ++ uint16x8_t vec_res = vandq_u16(vreinterpretq_u16_m128i(mtx[j]), ++ vreinterpretq_u16_m128i(tmp)); ++ int t = _sse2neon_vaddvq_u16(vec_res) ? 1 : 0; ++ res |= (t << j); ++ } ++ return res; ++} ++ ++#define SSE2NEON_CMP_RANGES_IS_BYTE 1 ++#define SSE2NEON_CMP_RANGES_IS_WORD 0 ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_RANGES(prefix) \ ++ prefix##IMPL(byte, uint, u, prefix##IS_BYTE) \ ++ prefix##IMPL(byte, int, s, prefix##IS_BYTE) \ ++ prefix##IMPL(word, uint, u, prefix##IS_WORD) \ ++ prefix##IMPL(word, int, s, prefix##IS_WORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_RANGES(SSE2NEON_CMP_RANGES_) ++ ++#undef SSE2NEON_CMP_RANGES_IS_BYTE ++#undef SSE2NEON_CMP_RANGES_IS_WORD ++ ++static int _sse2neon_cmp_byte_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint8x16_t mtx = ++ vceqq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x10000 - (1 << la); ++ int tb = 0x10000 - (1 << lb); ++ uint8x8_t vec_mask, vec0_lo, vec0_hi, vec1_lo, vec1_hi; ++ uint8x8_t tmp_lo, tmp_hi, res_lo, res_hi; ++ vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ vec0_lo = vtst_u8(vdup_n_u8(m0), vec_mask); ++ vec0_hi = vtst_u8(vdup_n_u8(m0 >> 8), vec_mask); ++ vec1_lo = vtst_u8(vdup_n_u8(m1), vec_mask); ++ vec1_hi = vtst_u8(vdup_n_u8(m1 >> 8), vec_mask); ++ tmp_lo = vtst_u8(vdup_n_u8(tb), vec_mask); ++ tmp_hi = vtst_u8(vdup_n_u8(tb >> 8), vec_mask); ++ ++ res_lo = vbsl_u8(vec0_lo, vdup_n_u8(0), vget_low_u8(mtx)); ++ res_hi = vbsl_u8(vec0_hi, vdup_n_u8(0), vget_high_u8(mtx)); ++ res_lo = vbsl_u8(vec1_lo, tmp_lo, res_lo); ++ res_hi = vbsl_u8(vec1_hi, tmp_hi, res_hi); ++ res_lo = vand_u8(res_lo, vec_mask); ++ res_hi = vand_u8(res_hi, vec_mask); ++ ++ int res = _sse2neon_vaddv_u8(res_lo) + (_sse2neon_vaddv_u8(res_hi) << 8); ++ return res; ++} ++ ++static int _sse2neon_cmp_word_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint16x8_t mtx = ++ vceqq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x100 - (1 << la); ++ int tb = 0x100 - (1 << lb); ++ uint16x8_t vec_mask = vld1q_u16(_sse2neon_cmpestr_mask16b); ++ uint16x8_t vec0 = vtstq_u16(vdupq_n_u16(m0), vec_mask); ++ uint16x8_t vec1 = vtstq_u16(vdupq_n_u16(m1), vec_mask); ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(tb), vec_mask); ++ mtx = vbslq_u16(vec0, vdupq_n_u16(0), mtx); ++ mtx = vbslq_u16(vec1, tmp, mtx); ++ mtx = vandq_u16(mtx, vec_mask); ++ return _sse2neon_vaddvq_u16(mtx); ++} ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE 1 ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD 0 ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IMPL(size, number_of_lanes, data_type) \ ++ static int _sse2neon_aggregate_equal_ordered_##size##x##number_of_lanes( \ ++ int bound, int la, int lb, __m128i mtx[16]) \ ++ { \ ++ int res = 0; \ ++ int m1 = SSE2NEON_IIF(data_type)(0x10000, 0x100) - (1 << la); \ ++ uint##size##x8_t vec_mask = SSE2NEON_IIF(data_type)( \ ++ vld1_u##size(_sse2neon_cmpestr_mask##size##b), \ ++ vld1q_u##size(_sse2neon_cmpestr_mask##size##b)); \ ++ uint##size##x##number_of_lanes##_t vec1 = SSE2NEON_IIF(data_type)( \ ++ vcombine_u##size(vtst_u##size(vdup_n_u##size(m1), vec_mask), \ ++ vtst_u##size(vdup_n_u##size(m1 >> 8), vec_mask)), \ ++ vtstq_u##size(vdupq_n_u##size(m1), vec_mask)); \ ++ uint##size##x##number_of_lanes##_t vec_minusone = vdupq_n_u##size(-1); \ ++ uint##size##x##number_of_lanes##_t vec_zero = vdupq_n_u##size(0); \ ++ for (int j = 0; j < lb; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size(vbslq_u##size( \ ++ vec1, vec_minusone, vreinterpretq_u##size##_m128i(mtx[j]))); \ ++ } \ ++ for (int j = lb; j < bound; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size( \ ++ vbslq_u##size(vec1, vec_minusone, vec_zero)); \ ++ } \ ++ unsigned SSE2NEON_IIF(data_type)(char, short) *ptr = \ ++ (unsigned SSE2NEON_IIF(data_type)(char, short) *) mtx; \ ++ for (int i = 0; i < bound; i++) { \ ++ int val = 1; \ ++ for (int j = 0, k = i; j < bound - i && k < bound; j++, k++) \ ++ val &= ptr[k * bound + j]; \ ++ res += val << i; \ ++ } \ ++ return res; \ ++ } ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(prefix) \ ++ prefix##IMPL(8, 16, prefix##IS_UBYTE) \ ++ prefix##IMPL(16, 8, prefix##IS_UWORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(SSE2NEON_AGGREGATE_EQUAL_ORDER_) ++ ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(SSE2NEON_CMP_EQUAL_ORDERED_) ++ ++#define SSE2NEON_CMPESTR_LIST \ ++ _(CMP_UBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_UWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_SBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_SWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_UBYTE_RANGES, cmp_ubyte_ranges) \ ++ _(CMP_UWORD_RANGES, cmp_uword_ranges) \ ++ _(CMP_SBYTE_RANGES, cmp_sbyte_ranges) \ ++ _(CMP_SWORD_RANGES, cmp_sword_ranges) \ ++ _(CMP_UBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_UWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_SBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_SWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_UBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_UWORD_EQUAL_ORDERED, cmp_word_equal_ordered) \ ++ _(CMP_SBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_SWORD_EQUAL_ORDERED, cmp_word_equal_ordered) ++ ++enum { ++#define _(name, func_suffix) name, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++typedef int (*cmpestr_func_t)(__m128i a, int la, __m128i b, int lb); ++static cmpestr_func_t _sse2neon_cmpfunc_table[] = { ++#define _(name, func_suffix) _sse2neon_##func_suffix, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++ ++FORCE_INLINE int _sse2neon_sido_negative(int res, int lb, int imm8, int bound) ++{ ++ switch (imm8 & 0x30) { ++ case _SIDD_NEGATIVE_POLARITY: ++ res ^= 0xffffffff; ++ break; ++ case _SIDD_MASKED_NEGATIVE_POLARITY: ++ res ^= (1 << lb) - 1; ++ break; ++ default: ++ break; ++ } ++ ++ return res & ((bound == 8) ? 0xFF : 0xFFFF); ++} ++ ++FORCE_INLINE int _sse2neon_clz(unsigned int x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt = 0; ++ if (_BitScanReverse(&cnt, x)) ++ return 31 - cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_clz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctz(unsigned int x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt = 0; ++ if (_BitScanForward(&cnt, x)) ++ return cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_ctz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctzll(unsigned long long x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt; ++#if defined(SSE2NEON_HAS_BITSCAN64) ++ if (_BitScanForward64(&cnt, x)) ++ return (int) (cnt); ++#else ++ if (_BitScanForward(&cnt, (unsigned long) (x))) ++ return (int) cnt; ++ if (_BitScanForward(&cnt, (unsigned long) (x >> 32))) ++ return (int) (cnt + 32); ++#endif /* SSE2NEON_HAS_BITSCAN64 */ ++ return 64; ++#else /* assume GNU compatible compilers */ ++ return x != 0 ? __builtin_ctzll(x) : 64; ++#endif ++} ++ ++#define SSE2NEON_MIN(x, y) (x) < (y) ? (x) : (y) ++ ++#define SSE2NEON_CMPSTR_SET_UPPER(var, imm) \ ++ const int var = (imm & 0x01) ? 8 : 16 ++ ++#define SSE2NEON_CMPESTRX_LEN_PAIR(a, b, la, lb) \ ++ int tmp1 = la ^ (la >> 31); \ ++ la = tmp1 - (la >> 31); \ ++ int tmp2 = lb ^ (lb >> 31); \ ++ lb = tmp2 - (lb >> 31); \ ++ la = SSE2NEON_MIN(la, bound); \ ++ lb = SSE2NEON_MIN(lb, bound) ++ ++// Compare all pairs of character in string a and b, ++// then aggregate the result. ++// As the only difference of PCMPESTR* and PCMPISTR* is the way to calculate the ++// length of string, we use SSE2NEON_CMP{I,E}STRX_GET_LEN to get the length of ++// string a and b. ++#define SSE2NEON_COMP_AGG(a, b, la, lb, imm8, IE) \ ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); \ ++ SSE2NEON_##IE##_LEN_PAIR(a, b, la, lb); \ ++ int r2 = (_sse2neon_cmpfunc_table[imm8 & 0x0f])(a, la, b, lb); \ ++ r2 = _sse2neon_sido_negative(r2, lb, imm8, bound) ++ ++#define SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8) \ ++ return (r2 == 0) ? bound \ ++ : ((imm8 & 0x40) ? (31 - _sse2neon_clz(r2)) \ ++ : _sse2neon_ctz(r2)) ++ ++#define SSE2NEON_CMPSTR_GENERATE_MASK(dst) \ ++ __m128i dst = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ if (imm8 & 0x40) { \ ++ if (bound == 8) { \ ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(r2), \ ++ vld1q_u16(_sse2neon_cmpestr_mask16b)); \ ++ dst = vreinterpretq_m128i_u16(vbslq_u16( \ ++ tmp, vdupq_n_u16(-1), vreinterpretq_u16_m128i(dst))); \ ++ } else { \ ++ uint8x16_t vec_r2 = \ ++ vcombine_u8(vdup_n_u8(r2), vdup_n_u8(r2 >> 8)); \ ++ uint8x16_t tmp = \ ++ vtstq_u8(vec_r2, vld1q_u8(_sse2neon_cmpestr_mask8b)); \ ++ dst = vreinterpretq_m128i_u8( \ ++ vbslq_u8(tmp, vdupq_n_u8(-1), vreinterpretq_u8_m128i(dst))); \ ++ } \ ++ } else { \ ++ if (bound == 16) { \ ++ dst = vreinterpretq_m128i_u16( \ ++ vsetq_lane_u16(r2 & 0xffff, vreinterpretq_u16_m128i(dst), 0)); \ ++ } else { \ ++ dst = vreinterpretq_m128i_u8( \ ++ vsetq_lane_u8(r2 & 0xff, vreinterpretq_u8_m128i(dst), 0)); \ ++ } \ ++ } \ ++ return dst ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and returns 1 if b did not contain a null character and the ++// resulting mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestra ++FORCE_INLINE int _mm_cmpestra(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ int lb_cpy = lb; ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return !r2 & (lb_cpy > bound); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrc ++FORCE_INLINE int _mm_cmpestrc(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestri ++FORCE_INLINE int _mm_cmpestri(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrm ++FORCE_INLINE __m128i ++_mm_cmpestrm(__m128i a, int la, __m128i b, int lb, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestro ++FORCE_INLINE int _mm_cmpestro(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrs ++FORCE_INLINE int _mm_cmpestrs(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) lb; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrz ++FORCE_INLINE int _mm_cmpestrz(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) la; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return lb <= (bound - 1); ++} ++ ++#define SSE2NEON_CMPISTRX_LENGTH(str, len, imm8) \ ++ do { \ ++ if (imm8 & 0x01) { \ ++ uint16x8_t equal_mask_##str = \ ++ vceqq_u16(vreinterpretq_u16_m128i(str), vdupq_n_u16(0)); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 3; \ ++ } else { \ ++ uint16x8_t equal_mask_##str = vreinterpretq_u16_u8( \ ++ vceqq_u8(vreinterpretq_u8_m128i(str), vdupq_n_u8(0))); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 2; \ ++ } \ ++ } while (0) ++ ++#define SSE2NEON_CMPISTRX_LEN_PAIR(a, b, la, lb) \ ++ int la, lb; \ ++ do { \ ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); \ ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); \ ++ } while (0) ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if b did not contain a null character and the resulting ++// mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistra ++FORCE_INLINE int _mm_cmpistra(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return !r2 & (lb >= bound); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrc ++FORCE_INLINE int _mm_cmpistrc(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistri ++FORCE_INLINE int _mm_cmpistri(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrm ++FORCE_INLINE __m128i _mm_cmpistrm(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistro ++FORCE_INLINE int _mm_cmpistro(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrs ++FORCE_INLINE int _mm_cmpistrs(__m128i a, __m128i b, const int imm8) ++{ ++ (void) b; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int la; ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrz ++FORCE_INLINE int _mm_cmpistrz(__m128i a, __m128i b, const int imm8) ++{ ++ (void) a; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int lb; ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); ++ return lb <= (bound - 1); ++} ++ ++// Compares the 2 signed 64-bit integers in a and the 2 signed 64-bit integers ++// in b for greater than. ++FORCE_INLINE __m128i _mm_cmpgt_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vcgtq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ return vreinterpretq_m128i_s64(vshrq_n_s64( ++ vqsubq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)), ++ 63)); ++#endif ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 16-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u16 ++FORCE_INLINE uint32_t _mm_crc32_u16(uint32_t crc, uint16_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32ch %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32ch(crc, v); ++#else ++ crc = _mm_crc32_u8(crc, v & 0xff); ++ crc = _mm_crc32_u8(crc, (v >> 8) & 0xff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 32-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u32 ++FORCE_INLINE uint32_t _mm_crc32_u32(uint32_t crc, uint32_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cw %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cw(crc, v); ++#else ++ crc = _mm_crc32_u16(crc, v & 0xffff); ++ crc = _mm_crc32_u16(crc, (v >> 16) & 0xffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 64-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u64 ++FORCE_INLINE uint64_t _mm_crc32_u64(uint64_t crc, uint64_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cx %w[c], %w[c], %x[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cd((uint32_t) crc, v); ++#else ++ crc = _mm_crc32_u32((uint32_t) (crc), v & 0xffffffff); ++ crc = _mm_crc32_u32((uint32_t) (crc), (v >> 32) & 0xffffffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 8-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u8 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t crc, uint8_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cb %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cb(crc, v); ++#else ++ crc ^= v; ++#if defined(__ARM_FEATURE_CRYPTO) ++ // Adapted from: https://mary.rs/lab/crc32/ ++ // Barrent reduction ++ uint64x2_t orig = ++ vcombine_u64(vcreate_u64((uint64_t) (crc) << 24), vcreate_u64(0x0)); ++ uint64x2_t tmp = orig; ++ ++ // Polynomial P(x) of CRC32C ++ uint64_t p = 0x105EC76F1; ++ // Barrett Reduction (in bit-reflected form) constant mu_{64} = \lfloor ++ // 2^{64} / P(x) \rfloor = 0x11f91caf6 ++ uint64_t mu = 0x1dea713f1; ++ ++ // Multiply by mu_{64} ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(mu)); ++ // Divide by 2^{64} (mask away the unnecessary bits) ++ tmp = ++ vandq_u64(tmp, vcombine_u64(vcreate_u64(0xFFFFFFFF), vcreate_u64(0x0))); ++ // Multiply by P(x) (shifted left by 1 for alignment reasons) ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(p)); ++ // Subtract original from result ++ tmp = veorq_u64(tmp, orig); ++ ++ // Extract the 'lower' (in bit-reflected sense) 32 bits ++ crc = vgetq_lane_u32(vreinterpretq_u32_u64(tmp), 1); ++#else // Fall back to the generic table lookup approach ++ // Adapted from: https://create.stephan-brumme.com/crc32/ ++ // Apply half-byte comparison algorithm for the best ratio between ++ // performance and lookup table. ++ ++ // The lookup table just needs to store every 16th entry ++ // of the standard look-up table. ++ static const uint32_t crc32_half_byte_tbl[] = { ++ 0x00000000, 0x105ec76f, 0x20bd8ede, 0x30e349b1, 0x417b1dbc, 0x5125dad3, ++ 0x61c69362, 0x7198540d, 0x82f63b78, 0x92a8fc17, 0xa24bb5a6, 0xb21572c9, ++ 0xc38d26c4, 0xd3d3e1ab, 0xe330a81a, 0xf36e6f75, ++ }; ++ ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++#endif ++#endif ++ return crc; ++} ++ ++/* AES */ ++ ++#if !defined(__ARM_FEATURE_CRYPTO) && (!defined(_M_ARM64) || defined(__clang__)) ++/* clang-format off */ ++#define SSE2NEON_AES_SBOX(w) \ ++ { \ ++ w(0x63), w(0x7c), w(0x77), w(0x7b), w(0xf2), w(0x6b), w(0x6f), \ ++ w(0xc5), w(0x30), w(0x01), w(0x67), w(0x2b), w(0xfe), w(0xd7), \ ++ w(0xab), w(0x76), w(0xca), w(0x82), w(0xc9), w(0x7d), w(0xfa), \ ++ w(0x59), w(0x47), w(0xf0), w(0xad), w(0xd4), w(0xa2), w(0xaf), \ ++ w(0x9c), w(0xa4), w(0x72), w(0xc0), w(0xb7), w(0xfd), w(0x93), \ ++ w(0x26), w(0x36), w(0x3f), w(0xf7), w(0xcc), w(0x34), w(0xa5), \ ++ w(0xe5), w(0xf1), w(0x71), w(0xd8), w(0x31), w(0x15), w(0x04), \ ++ w(0xc7), w(0x23), w(0xc3), w(0x18), w(0x96), w(0x05), w(0x9a), \ ++ w(0x07), w(0x12), w(0x80), w(0xe2), w(0xeb), w(0x27), w(0xb2), \ ++ w(0x75), w(0x09), w(0x83), w(0x2c), w(0x1a), w(0x1b), w(0x6e), \ ++ w(0x5a), w(0xa0), w(0x52), w(0x3b), w(0xd6), w(0xb3), w(0x29), \ ++ w(0xe3), w(0x2f), w(0x84), w(0x53), w(0xd1), w(0x00), w(0xed), \ ++ w(0x20), w(0xfc), w(0xb1), w(0x5b), w(0x6a), w(0xcb), w(0xbe), \ ++ w(0x39), w(0x4a), w(0x4c), w(0x58), w(0xcf), w(0xd0), w(0xef), \ ++ w(0xaa), w(0xfb), w(0x43), w(0x4d), w(0x33), w(0x85), w(0x45), \ ++ w(0xf9), w(0x02), w(0x7f), w(0x50), w(0x3c), w(0x9f), w(0xa8), \ ++ w(0x51), w(0xa3), w(0x40), w(0x8f), w(0x92), w(0x9d), w(0x38), \ ++ w(0xf5), w(0xbc), w(0xb6), w(0xda), w(0x21), w(0x10), w(0xff), \ ++ w(0xf3), w(0xd2), w(0xcd), w(0x0c), w(0x13), w(0xec), w(0x5f), \ ++ w(0x97), w(0x44), w(0x17), w(0xc4), w(0xa7), w(0x7e), w(0x3d), \ ++ w(0x64), w(0x5d), w(0x19), w(0x73), w(0x60), w(0x81), w(0x4f), \ ++ w(0xdc), w(0x22), w(0x2a), w(0x90), w(0x88), w(0x46), w(0xee), \ ++ w(0xb8), w(0x14), w(0xde), w(0x5e), w(0x0b), w(0xdb), w(0xe0), \ ++ w(0x32), w(0x3a), w(0x0a), w(0x49), w(0x06), w(0x24), w(0x5c), \ ++ w(0xc2), w(0xd3), w(0xac), w(0x62), w(0x91), w(0x95), w(0xe4), \ ++ w(0x79), w(0xe7), w(0xc8), w(0x37), w(0x6d), w(0x8d), w(0xd5), \ ++ w(0x4e), w(0xa9), w(0x6c), w(0x56), w(0xf4), w(0xea), w(0x65), \ ++ w(0x7a), w(0xae), w(0x08), w(0xba), w(0x78), w(0x25), w(0x2e), \ ++ w(0x1c), w(0xa6), w(0xb4), w(0xc6), w(0xe8), w(0xdd), w(0x74), \ ++ w(0x1f), w(0x4b), w(0xbd), w(0x8b), w(0x8a), w(0x70), w(0x3e), \ ++ w(0xb5), w(0x66), w(0x48), w(0x03), w(0xf6), w(0x0e), w(0x61), \ ++ w(0x35), w(0x57), w(0xb9), w(0x86), w(0xc1), w(0x1d), w(0x9e), \ ++ w(0xe1), w(0xf8), w(0x98), w(0x11), w(0x69), w(0xd9), w(0x8e), \ ++ w(0x94), w(0x9b), w(0x1e), w(0x87), w(0xe9), w(0xce), w(0x55), \ ++ w(0x28), w(0xdf), w(0x8c), w(0xa1), w(0x89), w(0x0d), w(0xbf), \ ++ w(0xe6), w(0x42), w(0x68), w(0x41), w(0x99), w(0x2d), w(0x0f), \ ++ w(0xb0), w(0x54), w(0xbb), w(0x16) \ ++ } ++#define SSE2NEON_AES_RSBOX(w) \ ++ { \ ++ w(0x52), w(0x09), w(0x6a), w(0xd5), w(0x30), w(0x36), w(0xa5), \ ++ w(0x38), w(0xbf), w(0x40), w(0xa3), w(0x9e), w(0x81), w(0xf3), \ ++ w(0xd7), w(0xfb), w(0x7c), w(0xe3), w(0x39), w(0x82), w(0x9b), \ ++ w(0x2f), w(0xff), w(0x87), w(0x34), w(0x8e), w(0x43), w(0x44), \ ++ w(0xc4), w(0xde), w(0xe9), w(0xcb), w(0x54), w(0x7b), w(0x94), \ ++ w(0x32), w(0xa6), w(0xc2), w(0x23), w(0x3d), w(0xee), w(0x4c), \ ++ w(0x95), w(0x0b), w(0x42), w(0xfa), w(0xc3), w(0x4e), w(0x08), \ ++ w(0x2e), w(0xa1), w(0x66), w(0x28), w(0xd9), w(0x24), w(0xb2), \ ++ w(0x76), w(0x5b), w(0xa2), w(0x49), w(0x6d), w(0x8b), w(0xd1), \ ++ w(0x25), w(0x72), w(0xf8), w(0xf6), w(0x64), w(0x86), w(0x68), \ ++ w(0x98), w(0x16), w(0xd4), w(0xa4), w(0x5c), w(0xcc), w(0x5d), \ ++ w(0x65), w(0xb6), w(0x92), w(0x6c), w(0x70), w(0x48), w(0x50), \ ++ w(0xfd), w(0xed), w(0xb9), w(0xda), w(0x5e), w(0x15), w(0x46), \ ++ w(0x57), w(0xa7), w(0x8d), w(0x9d), w(0x84), w(0x90), w(0xd8), \ ++ w(0xab), w(0x00), w(0x8c), w(0xbc), w(0xd3), w(0x0a), w(0xf7), \ ++ w(0xe4), w(0x58), w(0x05), w(0xb8), w(0xb3), w(0x45), w(0x06), \ ++ w(0xd0), w(0x2c), w(0x1e), w(0x8f), w(0xca), w(0x3f), w(0x0f), \ ++ w(0x02), w(0xc1), w(0xaf), w(0xbd), w(0x03), w(0x01), w(0x13), \ ++ w(0x8a), w(0x6b), w(0x3a), w(0x91), w(0x11), w(0x41), w(0x4f), \ ++ w(0x67), w(0xdc), w(0xea), w(0x97), w(0xf2), w(0xcf), w(0xce), \ ++ w(0xf0), w(0xb4), w(0xe6), w(0x73), w(0x96), w(0xac), w(0x74), \ ++ w(0x22), w(0xe7), w(0xad), w(0x35), w(0x85), w(0xe2), w(0xf9), \ ++ w(0x37), w(0xe8), w(0x1c), w(0x75), w(0xdf), w(0x6e), w(0x47), \ ++ w(0xf1), w(0x1a), w(0x71), w(0x1d), w(0x29), w(0xc5), w(0x89), \ ++ w(0x6f), w(0xb7), w(0x62), w(0x0e), w(0xaa), w(0x18), w(0xbe), \ ++ w(0x1b), w(0xfc), w(0x56), w(0x3e), w(0x4b), w(0xc6), w(0xd2), \ ++ w(0x79), w(0x20), w(0x9a), w(0xdb), w(0xc0), w(0xfe), w(0x78), \ ++ w(0xcd), w(0x5a), w(0xf4), w(0x1f), w(0xdd), w(0xa8), w(0x33), \ ++ w(0x88), w(0x07), w(0xc7), w(0x31), w(0xb1), w(0x12), w(0x10), \ ++ w(0x59), w(0x27), w(0x80), w(0xec), w(0x5f), w(0x60), w(0x51), \ ++ w(0x7f), w(0xa9), w(0x19), w(0xb5), w(0x4a), w(0x0d), w(0x2d), \ ++ w(0xe5), w(0x7a), w(0x9f), w(0x93), w(0xc9), w(0x9c), w(0xef), \ ++ w(0xa0), w(0xe0), w(0x3b), w(0x4d), w(0xae), w(0x2a), w(0xf5), \ ++ w(0xb0), w(0xc8), w(0xeb), w(0xbb), w(0x3c), w(0x83), w(0x53), \ ++ w(0x99), w(0x61), w(0x17), w(0x2b), w(0x04), w(0x7e), w(0xba), \ ++ w(0x77), w(0xd6), w(0x26), w(0xe1), w(0x69), w(0x14), w(0x63), \ ++ w(0x55), w(0x21), w(0x0c), w(0x7d) \ ++ } ++/* clang-format on */ ++ ++/* X Macro trick. See https://en.wikipedia.org/wiki/X_Macro */ ++#define SSE2NEON_AES_H0(x) (x) ++static const uint8_t _sse2neon_sbox[256] = SSE2NEON_AES_SBOX(SSE2NEON_AES_H0); ++static const uint8_t _sse2neon_rsbox[256] = SSE2NEON_AES_RSBOX(SSE2NEON_AES_H0); ++#undef SSE2NEON_AES_H0 ++ ++/* x_time function and matrix multiply function */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#define SSE2NEON_XT(x) (((x) << 1) ^ ((((x) >> 7) & 1) * 0x1b)) ++#define SSE2NEON_MULTIPLY(x, y) \ ++ (((y & 1) * x) ^ ((y >> 1 & 1) * SSE2NEON_XT(x)) ^ \ ++ ((y >> 2 & 1) * SSE2NEON_XT(SSE2NEON_XT(x))) ^ \ ++ ((y >> 3 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))) ^ \ ++ ((y >> 4 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))))) ++#endif ++ ++// In the absence of crypto extensions, implement aesenc using regular NEON ++// intrinsics instead. See: ++// https://www.workofard.com/2017/01/accelerated-aes-for-the-arm64-linux-kernel/ ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/ and ++// for more information. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ /* shift rows */ ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ /* sub bytes */ ++ // Here, we separate the whole 256-bytes table into 4 64-bytes tables, and ++ // look up each of the table. After each lookup, we load the next table ++ // which locates at the next 64-bytes. In the meantime, the index in the ++ // table would be smaller than it was, so the index parameters of ++ // `vqtbx4q_u8()` need to be added the same constant as the loaded tables. ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ // 'w-0x40' equals to 'vsubq_u8(w, vdupq_n_u8(0x40))' ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ /* mix columns */ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ /* add round key */ ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A implementation for a table-based AES */ ++#define SSE2NEON_AES_B2W(b0, b1, b2, b3) \ ++ (((uint32_t) (b3) << 24) | ((uint32_t) (b2) << 16) | \ ++ ((uint32_t) (b1) << 8) | (uint32_t) (b0)) ++// multiplying 'x' by 2 in GF(2^8) ++#define SSE2NEON_AES_F2(x) ((x << 1) ^ (((x >> 7) & 1) * 0x011b /* WPOLY */)) ++// multiplying 'x' by 3 in GF(2^8) ++#define SSE2NEON_AES_F3(x) (SSE2NEON_AES_F2(x) ^ x) ++#define SSE2NEON_AES_U0(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F2(p), p, p, SSE2NEON_AES_F3(p)) ++#define SSE2NEON_AES_U1(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p, p) ++#define SSE2NEON_AES_U2(p) \ ++ SSE2NEON_AES_B2W(p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p) ++#define SSE2NEON_AES_U3(p) \ ++ SSE2NEON_AES_B2W(p, p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p)) ++ ++ // this generates a table containing every possible permutation of ++ // shift_rows() and sub_bytes() with mix_columns(). ++ static const uint32_t ALIGN_STRUCT(16) aes_table[4][256] = { ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U0), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U1), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U2), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U3), ++ }; ++#undef SSE2NEON_AES_B2W ++#undef SSE2NEON_AES_F2 ++#undef SSE2NEON_AES_F3 ++#undef SSE2NEON_AES_U0 ++#undef SSE2NEON_AES_U1 ++#undef SSE2NEON_AES_U2 ++#undef SSE2NEON_AES_U3 ++ ++ uint32_t x0 = _mm_cvtsi128_si32(a); // get a[31:0] ++ uint32_t x1 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); // get a[63:32] ++ uint32_t x2 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xAA)); // get a[95:64] ++ uint32_t x3 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); // get a[127:96] ++ ++ // finish the modulo addition step in mix_columns() ++ __m128i out = _mm_set_epi32( ++ (aes_table[0][x3 & 0xff] ^ aes_table[1][(x0 >> 8) & 0xff] ^ ++ aes_table[2][(x1 >> 16) & 0xff] ^ aes_table[3][x2 >> 24]), ++ (aes_table[0][x2 & 0xff] ^ aes_table[1][(x3 >> 8) & 0xff] ^ ++ aes_table[2][(x0 >> 16) & 0xff] ^ aes_table[3][x1 >> 24]), ++ (aes_table[0][x1 & 0xff] ^ aes_table[1][(x2 >> 8) & 0xff] ^ ++ aes_table[2][(x3 >> 16) & 0xff] ^ aes_table[3][x0 >> 24]), ++ (aes_table[0][x0 & 0xff] ^ aes_table[1][(x1 >> 8) & 0xff] ^ ++ aes_table[2][(x2 >> 16) & 0xff] ^ aes_table[3][x3 >> 24])); ++ ++ return _mm_xor_si128(out, RoundKey); ++#endif ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // inverse mix columns ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & ++ 0x1b); // multiplying 'v' by 2 in GF(2^8) ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ // inverse mix columns ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ // sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A implementation */ ++ uint8_t v[16] = { ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 0)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 5)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 10)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 15)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 4)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 9)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 14)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 3)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 8)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 13)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 2)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 7)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 12)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 1)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 6)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 11)], ++ }; ++ ++ return vreinterpretq_m128i_u8(vld1q_u8(v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (int i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++#if defined(__aarch64__) ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ uint8x16_t v = vreinterpretq_u8_m128i(a); ++ uint8x16_t w; ++ ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ // multiplying 'v' by 2 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ return vreinterpretq_m128i_u8(w); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ vst1q_u8((uint8_t *) v, vreinterpretq_u8_m128i(a)); ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)); ++#endif ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++// ++// Emits the Advanced Encryption Standard (AES) instruction aeskeygenassist. ++// This instruction generates a round key for AES encryption. See ++// https://kazakov.life/2017/11/01/cryptocurrency-mining-on-ios-devices/ ++// for details. ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++#if defined(__aarch64__) ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); ++ uint8x16_t v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), _a); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), _a - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), _a - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), _a - 0xc0); ++ ++ uint32x4_t v_u32 = vreinterpretq_u32_u8(v); ++ uint32x4_t ror_v = vorrq_u32(vshrq_n_u32(v_u32, 8), vshlq_n_u32(v_u32, 24)); ++ uint32x4_t ror_xor_v = veorq_u32(ror_v, vdupq_n_u32(rcon)); ++ ++ return vreinterpretq_m128i_u32(vtrn2q_u32(v_u32, ror_xor_v)); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint32_t X1 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); ++ uint32_t X3 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); ++ for (int i = 0; i < 4; ++i) { ++ ((uint8_t *) &X1)[i] = _sse2neon_sbox[((uint8_t *) &X1)[i]]; ++ ((uint8_t *) &X3)[i] = _sse2neon_sbox[((uint8_t *) &X3)[i]]; ++ } ++ return _mm_set_epi32(((X3 >> 8) | (X3 << 24)) ^ rcon, X3, ++ ((X1 >> 8) | (X1 << 24)) ^ rcon, X1); ++#endif ++} ++#undef SSE2NEON_AES_SBOX ++#undef SSE2NEON_AES_RSBOX ++ ++#if defined(__aarch64__) ++#undef SSE2NEON_XT ++#undef SSE2NEON_MULTIPLY ++#endif ++ ++#else /* __ARM_FEATURE_CRYPTO */ ++// Implements equivalent of 'aesenc' by combining AESE (with an empty key) and ++// AESMC and then manually applying the real key as an xor operation. This ++// unfortunately means an additional xor op; the compiler should be able to ++// optimize this away for repeated calls however. See ++// https://blog.michaelbrase.com/2018/05/08/emulating-x86-aes-intrinsics-on-armv8-a ++// for more details. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesmcq_u8(vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(b))); ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesimcq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return _mm_xor_si128(vreinterpretq_m128i_u8(vaeseq_u8( ++ vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ RoundKey); ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8( ++ veorq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++ return vreinterpretq_m128i_u8(vaesimcq_u8(vreinterpretq_u8_m128i(a))); ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst." ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++ // AESE does ShiftRows and SubBytes on A ++ uint8x16_t u8 = vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)); ++ ++#ifndef _MSC_VER ++ uint8x16_t dest = { ++ // Undo ShiftRows step from AESE and extract X1 and X3 ++ u8[0x4], u8[0x1], u8[0xE], u8[0xB], // SubBytes(X1) ++ u8[0x1], u8[0xE], u8[0xB], u8[0x4], // ROT(SubBytes(X1)) ++ u8[0xC], u8[0x9], u8[0x6], u8[0x3], // SubBytes(X3) ++ u8[0x9], u8[0x6], u8[0x3], u8[0xC], // ROT(SubBytes(X3)) ++ }; ++ uint32x4_t r = {0, (unsigned) rcon, 0, (unsigned) rcon}; ++ return vreinterpretq_m128i_u8(dest) ^ vreinterpretq_m128i_u32(r); ++#else ++ // We have to do this hack because MSVC is strictly adhering to the CPP ++ // standard, in particular C++03 8.5.1 sub-section 15, which states that ++ // unions must be initialized by their first member type. ++ ++ // As per the Windows ARM64 ABI, it is always little endian, so this works ++ __n128 dest{ ++ ((uint64_t) u8.n128_u8[0x4] << 0) | ((uint64_t) u8.n128_u8[0x1] << 8) | ++ ((uint64_t) u8.n128_u8[0xE] << 16) | ++ ((uint64_t) u8.n128_u8[0xB] << 24) | ++ ((uint64_t) u8.n128_u8[0x1] << 32) | ++ ((uint64_t) u8.n128_u8[0xE] << 40) | ++ ((uint64_t) u8.n128_u8[0xB] << 48) | ++ ((uint64_t) u8.n128_u8[0x4] << 56), ++ ((uint64_t) u8.n128_u8[0xC] << 0) | ((uint64_t) u8.n128_u8[0x9] << 8) | ++ ((uint64_t) u8.n128_u8[0x6] << 16) | ++ ((uint64_t) u8.n128_u8[0x3] << 24) | ++ ((uint64_t) u8.n128_u8[0x9] << 32) | ++ ((uint64_t) u8.n128_u8[0x6] << 40) | ++ ((uint64_t) u8.n128_u8[0x3] << 48) | ++ ((uint64_t) u8.n128_u8[0xC] << 56)}; ++ ++ dest.n128_u32[1] = dest.n128_u32[1] ^ rcon; ++ dest.n128_u32[3] = dest.n128_u32[3] ^ rcon; ++ ++ return dest; ++#endif ++} ++#endif ++ ++/* Others */ ++ ++// Perform a carry-less multiplication of two 64-bit integers, selected from a ++// and b according to imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clmulepi64_si128 ++FORCE_INLINE __m128i _mm_clmulepi64_si128(__m128i _a, __m128i _b, const int imm) ++{ ++ uint64x2_t a = vreinterpretq_u64_m128i(_a); ++ uint64x2_t b = vreinterpretq_u64_m128i(_b); ++ switch (imm & 0x11) { ++ case 0x00: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_low_u64(b))); ++ case 0x01: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_low_u64(b))); ++ case 0x10: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_high_u64(b))); ++ case 0x11: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_high_u64(b))); ++ default: ++ abort(); ++ } ++} ++ ++FORCE_INLINE unsigned int _sse2neon_mm_get_denormals_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_DENORMALS_ZERO_ON : _MM_DENORMALS_ZERO_OFF; ++} ++ ++// Count the number of bits set to 1 in unsigned 32-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u32 ++FORCE_INLINE int _mm_popcnt_u32(unsigned int a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcount) ++ return __builtin_popcount(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits(a); ++#else ++ return (int) vaddlv_u8(vcnt_u8(vcreate_u8((uint64_t) a))); ++#endif ++#else ++ uint32_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ ++ vst1_u32(&count, count32x2_val); ++ return count; ++#endif ++} ++ ++// Count the number of bits set to 1 in unsigned 64-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u64 ++FORCE_INLINE int64_t _mm_popcnt_u64(uint64_t a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcountll) ++ return __builtin_popcountll(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits64(a); ++#else ++ return (int64_t) vaddlv_u8(vcnt_u8(vcreate_u8(a))); ++#endif ++#else ++ uint64_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ uint64x1_t count64x1_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ count64x1_val = vpaddl_u32(count32x2_val); ++ vst1_u64(&count, count64x1_val); ++ return count; ++#endif ++} ++ ++FORCE_INLINE void _sse2neon_mm_set_denormals_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_DENORMALS_ZERO_MASK) == _MM_DENORMALS_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Return the current 64-bit value of the processor's time-stamp counter. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=rdtsc ++FORCE_INLINE uint64_t _rdtsc(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t val; ++ ++ /* According to ARM DDI 0487F.c, from Armv8.0 to Armv8.5 inclusive, the ++ * system counter is at least 56 bits wide; from Armv8.6, the counter ++ * must be 64 bits wide. So the system counter could be less than 64 ++ * bits wide and it is attributed with the flag 'cap_user_time_short' ++ * is true. ++ */ ++#if defined(_MSC_VER) ++ val = _ReadStatusReg(ARM64_SYSREG(3, 3, 14, 0, 2)); ++#else ++ __asm__ __volatile__("mrs %0, cntvct_el0" : "=r"(val)); ++#endif ++ ++ return val; ++#else ++ uint32_t pmccntr, pmuseren, pmcntenset; ++ // Read the user mode Performance Monitoring Unit (PMU) ++ // User Enable Register (PMUSERENR) access permissions. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c14, 0" : "=r"(pmuseren)); ++ if (pmuseren & 1) { // Allows reading PMUSERENR for user mode code. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c12, 1" : "=r"(pmcntenset)); ++ if (pmcntenset & 0x80000000UL) { // Is it counting? ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c13, 0" : "=r"(pmccntr)); ++ // The counter is set up to count every 64th cycle ++ return (uint64_t) (pmccntr) << 6; ++ } ++ } ++ ++ // Fallback to syscall as we can't enable PMUSERENR in user mode. ++ struct timeval tv; ++ gettimeofday(&tv, NULL); ++ return (uint64_t) (tv.tv_sec) * 1000000 + tv.tv_usec; ++#endif ++} ++ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma pop_macro("ALIGN_STRUCT") ++#pragma pop_macro("FORCE_INLINE") ++#pragma pop_macro("FORCE_INLINE_OPTNONE") ++#endif ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma GCC pop_options ++#endif ++ ++#endif +diff --git c/utils.h i/utils.h +index a86747e..9449dfa 100644 +--- c/utils.h ++++ i/utils.h +@@ -6,7 +6,12 @@ + #include + #include + #include ++ ++#ifdef __ARM_NEON ++#include "sse2neon.h" ++#else + #include ++#endif + + #include "libs/ssw.h" + #include "libs/ssw_cpp.h" diff --git a/recipes/insurveyor/build.sh b/recipes/insurveyor/build.sh index f1d3689d0c241..8223fd07e1f8f 100644 --- a/recipes/insurveyor/build.sh +++ b/recipes/insurveyor/build.sh @@ -1,7 +1,7 @@ #!/bin/bash -ex export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" -export CXXFLAGS="${CXXFLAGS} -O3 -I{PREFIX}/include ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -O3 -I${PREFIX}/include ${LDFLAGS}" mkdir -p ${PREFIX}/bin diff --git a/recipes/insurveyor/meta.yaml b/recipes/insurveyor/meta.yaml index d235d5fd03e7b..8db223d4c12d2 100644 --- a/recipes/insurveyor/meta.yaml +++ b/recipes/insurveyor/meta.yaml @@ -8,9 +8,11 @@ package: source: url: https://github.com/kensung-lab/INSurVeyor/archive/refs/tags/{{ version }}.tar.gz sha256: 0099ce859dd1b61b726b87ca26d7b89dabb34cab27afc97a5696780260b27304 + patches: + - INSurVeyor-aarch64.patch # [aarch64 or arm64] build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('insurveyor', max_pin="x") }} @@ -49,6 +51,9 @@ about: dev_url: https://github.com/kensung-lab/INSurVeyor extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - Mesh89 identifiers: From b57cd279d0e8dffd12c02b4ffe2b4fb069dd5a91 Mon Sep 17 00:00:00 2001 From: Ningshan Li <50506882+az7jh2@users.noreply.github.com> Date: Tue, 6 Aug 2024 00:10:34 +0800 Subject: [PATCH 0772/1589] Update sdeper to 1.6.2 (#49802) --- recipes/sdeper/meta.yaml | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/recipes/sdeper/meta.yaml b/recipes/sdeper/meta.yaml index 394c27d640310..864ce86a9107a 100755 --- a/recipes/sdeper/meta.yaml +++ b/recipes/sdeper/meta.yaml @@ -1,5 +1,7 @@ +# This is the recipe file to publish SDePER to Bioconda + {% set name = "sdeper" %} -{% set version = "1.6.1" %} +{% set version = "1.6.2" %} package: name: "{{ name|lower }}" @@ -7,43 +9,42 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 6d1777d13ba5253e762f007fcab22743f24d760adf07ebb7079cb2c652b2575a + sha256: 271371a6cdd717244c96ce7ba0c6e282f9cd85112048aac3a0ab40975724a1e4 build: number: 0 entry_points: - runDeconvolution = cvaeglrm:main - runImputation = imputation:main - script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" + script: "{{ PYTHON }} -m pip install . -vv" noarch: python run_exports: - - {{ pin_subpackage('sdeper', max_pin="x") }} + - {{ pin_subpackage('sdeper', max_pin="x.x") }} requirements: host: - - python >=3.9.12,<3.11 + - python >=3.9,<=3.10 - pip - - twine >=4.0 run: - distinctipy ==1.2.2 - matplotlib-base ==3.5.2 - networkx ==2.8.4 - - numba ==0.55.2 - - numpy ==1.22.4 + - numba ==0.59.1 + - numpy ==1.26.4 - openpyxl ==3.0.10 - pandas ==1.4.3 - - python >=3.9.12,<3.11 + - python >=3.9,<=3.10 - reportlab ==4.1.0 - scanpy ==1.9.1 - scikit-learn ==1.1.1 - scikit-misc ==0.1.4 - - scipy ==1.8.1 - - seaborn-base ==0.11.2 - - tensorflow-base 2.9.1 cpu_* # explicitly specify to use cpu version out from cpu_, cuda, eigen_, gpu_, or mkl_ in conda packages + - scipy ==1.11.4 + - seaborn ==0.13.2 + - tensorflow-base 2.15.0 cpu_* # explicitly specify to use cpu version out from cpu_, cuda, eigen_, gpu_, or mkl_ in conda packages - umap-learn ==0.5.3 - - libopencv ==4.6.0 # install opencv in conda requires installing these 3 packages, headless version is used - - opencv ==4.6.0 - - py-opencv ==4.6.0 + - libopencv ==4.9.0 headless_* # install opencv in conda requires installing these 3 packages, headless version is used + - opencv ==4.9.0 + - py-opencv ==4.9.0 test: commands: @@ -51,18 +52,15 @@ test: - runImputation --help about: - home: "https://az7jh2.github.io/SDePER" + home: "https://az7jh2.github.io/SDePER/" license: MIT license_family: MIT license_file: LICENSE - summary: "Spatial Deconvolution method with Platform Effect Removal." - doc_url: "https://sdeper.readthedocs.io/en/latest" + summary: "Spatial Deconvolution method with Platform Effect Removal" + doc_url: "https://sdeper.readthedocs.io/en/latest/" dev_url: "https://github.com/az7jh2/SDePER" description: "SDePER (Spatial Deconvolution method with Platform Effect Removal) is a hybrid machine learning and regression method to deconvolve Spatial barcoding-based transcriptomic data using reference single-cell RNA sequencing data, considering platform effects removal, sparsity of cell types per capture spot and across-spots spatial correlation in cell type compositions. SDePER is also able to impute cell type compositions and gene expression at unmeasured locations in a tissue map with enhanced resolution." extra: recipe-maintainers: - az7jh2 - container: - # needs libGL.so.1 - extended-base: True From f82edb1a371fae953d434307956596ee62164d55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABtan=20BENOIT?= <79975313+GaetanBenoitDev@users.noreply.github.com> Date: Mon, 5 Aug 2024 18:11:37 +0200 Subject: [PATCH 0773/1589] Update metaMDBG to 1.0 (#49801) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build 1.0 * fixed lint errors * remove osx build --------- Co-authored-by: Gaëtan BENOIT --- recipes/metamdbg/0.3/build.sh | 14 ++++++++++++ recipes/metamdbg/0.3/meta.yaml | 41 ++++++++++++++++++++++++++++++++++ recipes/metamdbg/meta.yaml | 8 +++---- 3 files changed, 58 insertions(+), 5 deletions(-) create mode 100644 recipes/metamdbg/0.3/build.sh create mode 100644 recipes/metamdbg/0.3/meta.yaml diff --git a/recipes/metamdbg/0.3/build.sh b/recipes/metamdbg/0.3/build.sh new file mode 100644 index 0000000000000..6ca4ef93a91f9 --- /dev/null +++ b/recipes/metamdbg/0.3/build.sh @@ -0,0 +1,14 @@ +#!/bin/bash + + +mkdir -p $PREFIX/bin + +export CPATH=${PREFIX}/include + +mkdir build +cd build +cmake .. + +make + +cp ./bin/metaMDBG $PREFIX/bin diff --git a/recipes/metamdbg/0.3/meta.yaml b/recipes/metamdbg/0.3/meta.yaml new file mode 100644 index 0000000000000..7316c6c86c897 --- /dev/null +++ b/recipes/metamdbg/0.3/meta.yaml @@ -0,0 +1,41 @@ +{% set version = "0.3" %} + +package: + name: metamdbg + version: {{ version }} + +source: + url: https://github.com/GaetanBenoitDev/metaMDBG/archive/refs/tags/metaMDBG-{{ version }}.tar.gz + sha256: 24b34fcc7416b44081963a470059209c7f0592bd597a25388a94dae5edb2b09d + +build: + skip: True # [osx] + number: 0 + run_exports: + - {{ pin_subpackage('metamdbg', max_pin="x.x") }} + +requirements: + build: + - {{ compiler('cxx') }} + - cmake + - make + host: + - zlib + - openmp + run: + - zlib + - openmp + - wfmash =0.8.2 + - samtools =1.6 + - minimap2 =2.24 + - gsl =2.7 =he838d99_0 + +test: + commands: + - metaMDBG 2>&1 | grep 'Usage' + +about: + home: https://github.com/GaetanBenoitDev/metaMDBG + license: MIT + summary: 'MetaMDBG: a lightweight assembler for long and accurate metagenomics reads.' + diff --git a/recipes/metamdbg/meta.yaml b/recipes/metamdbg/meta.yaml index 7316c6c86c897..3d46090812f17 100644 --- a/recipes/metamdbg/meta.yaml +++ b/recipes/metamdbg/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.3" %} +{% set version = "1.0" %} package: name: metamdbg @@ -6,7 +6,7 @@ package: source: url: https://github.com/GaetanBenoitDev/metaMDBG/archive/refs/tags/metaMDBG-{{ version }}.tar.gz - sha256: 24b34fcc7416b44081963a470059209c7f0592bd597a25388a94dae5edb2b09d + sha256: 6e759e1bed8977e5c44ad0314eecb328747e11cb0546510d23e8802862fd2d36 build: skip: True # [osx] @@ -25,10 +25,8 @@ requirements: run: - zlib - openmp - - wfmash =0.8.2 - - samtools =1.6 - minimap2 =2.24 - - gsl =2.7 =he838d99_0 + - time =1.8 test: commands: From 078dfd6a6940e7f8f05d50ededf4ca15a7654e45 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 13:38:01 -0400 Subject: [PATCH 0774/1589] Update wfmash to 0.18.0 (#49807) --- recipes/wfmash/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/wfmash/meta.yaml b/recipes/wfmash/meta.yaml index c973a63f23d8c..cc440afd74bf9 100644 --- a/recipes/wfmash/meta.yaml +++ b/recipes/wfmash/meta.yaml @@ -1,5 +1,5 @@ {% set name = "wfmash" %} -{% set version = "0.17.0" %} +{% set version = "0.18.0" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: https://github.com/waveygang/{{ name }}/releases/download/v{{ version }}/{{ name }}-v{{ version }}.tar.gz - sha256: 9d1a9c7c2635fdd617360746d0bd2b5cdf9f775c42247ecf80a81ba585bd54d4 + sha256: 8a86254dec1fa972cf4f15aa8eb2a21a8c241c1d28df4bcc8c6b10cce77cd510 build: skip: True # [osx] From c4682abc78fafa7d86004b602a09b614e2556f66 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 15:01:06 -0400 Subject: [PATCH 0775/1589] Update sdrf-pipelines to 0.0.29 (#49810) --- recipes/sdrf-pipelines/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sdrf-pipelines/meta.yaml b/recipes/sdrf-pipelines/meta.yaml index 19d25a6692e31..bd2ce8164a5f2 100644 --- a/recipes/sdrf-pipelines/meta.yaml +++ b/recipes/sdrf-pipelines/meta.yaml @@ -1,6 +1,6 @@ {% set name = "sdrf-pipelines" %} {% set pypi_name = "sdrf_pipelines" %} -{% set version = "0.0.28" %} +{% set version = "0.0.29" %} package: name: "{{ name|lower }}" @@ -8,7 +8,7 @@ package: source: url: "https://pypi.io/packages/source/{{ pypi_name[0] }}/{{ pypi_name }}/{{ pypi_name }}-{{ version }}.tar.gz" - sha256: b9978c4599a0e04e157392a2adc35a8a613ce40d88f6b89eee592af667d088dd + sha256: 730d198ce879f864181aa5e567c51273ce95212c9394df84840a0e1896d644f1 build: number: 0 From 46bc45b905dccb7f5eb235bbd049f6aabe7d8225 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 15:34:19 -0400 Subject: [PATCH 0776/1589] Update pgscatalog.match to 0.3.1 (#49808) --- recipes/pgscatalog.match/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pgscatalog.match/meta.yaml b/recipes/pgscatalog.match/meta.yaml index fbf8c49332f44..7b5debb7c3471 100644 --- a/recipes/pgscatalog.match/meta.yaml +++ b/recipes/pgscatalog.match/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pgscatalog.match" %} -{% set version = "0.3.0" %} +{% set version = "0.3.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pgscatalog_match-{{ version }}.tar.gz - sha256: ebebc432448559f7bc9a543acc029e3aa6944eef98f5d735f6750ef3aeb79e6f + sha256: 316feb3337298ac54a2b8aa5baa68bb9144acc1f38795cce628d8cd9b2e3b7c1 build: number: 0 From 97fab06f8dcc97226d70cbeb893883c119656803 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 15:34:25 -0400 Subject: [PATCH 0777/1589] Update pgscatalog-utils to 1.3.1 (#49809) --- recipes/pgscatalog-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pgscatalog-utils/meta.yaml b/recipes/pgscatalog-utils/meta.yaml index 6208f5eea7eac..f75bb5bdd2eca 100644 --- a/recipes/pgscatalog-utils/meta.yaml +++ b/recipes/pgscatalog-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pgscatalog-utils" %} -{% set version = "1.3.0" %} +{% set version = "1.3.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pgscatalog_utils-{{ version }}.tar.gz - sha256: ec6a397a81891860256707d3b25d6615ddee705dd744822f886fbadf16419ab3 + sha256: 7816a0de184e385a1afeec153a5079f751ccda578d702af91391be389c0f09a7 build: noarch: python From e572f92a927d8ca35a23e6b6c8c4b7712db49f75 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 15:34:35 -0400 Subject: [PATCH 0778/1589] Update mycotools to 0.31.45 (#49811) --- recipes/mycotools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mycotools/meta.yaml b/recipes/mycotools/meta.yaml index 76525f003da4e..13bac43437c45 100644 --- a/recipes/mycotools/meta.yaml +++ b/recipes/mycotools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mycotools" %} -{% set version = "0.31.44" %} +{% set version = "0.31.45" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mycotools-{{ version }}.tar.gz - sha256: 48eb2b467fffbf8e4c681378b3a17d2ca127e0ed122dc41d8f2ef9b52984cc29 + sha256: 6754e065060db21fb68296bbe3ab008010eaf3b5c464664db737dd37e3fc02c5 build: entry_points: From c93672ca0cdf846d92d1a56bf6f8e03478d3fd24 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 15:34:52 -0400 Subject: [PATCH 0779/1589] Update allo to 1.1.2 (#49812) --- recipes/allo/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/allo/meta.yaml b/recipes/allo/meta.yaml index 3fa7b1a6eed24..f87b34e141165 100644 --- a/recipes/allo/meta.yaml +++ b/recipes/allo/meta.yaml @@ -1,5 +1,5 @@ {% set name = "allo" %} -{% set version = "1.1.1" %} +{% set version = "1.1.2" %} package: name: {{ name }} @@ -7,12 +7,12 @@ package: source: url: https://pypi.io/packages/source/b/bio-{{ name }}/bio_allo-{{ version }}.tar.gz - sha256: b72bcbd900965e8b2fbbc17b174b44a8938994a4aeb8d532fb6f6a52b115b69e + sha256: 116390a306d76ae8986762292b51e85de710a36e56d532ae7e3cc4df5796befc build: run_exports: - {{ pin_subpackage('allo', max_pin="x") }} - number: 1 + number: 0 noarch: python script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv From c683040770bfa7c6664a986c95fd14b2b4740242 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 15:35:09 -0400 Subject: [PATCH 0780/1589] Update easypqp to 0.1.49 (#49813) --- recipes/easypqp/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/easypqp/meta.yaml b/recipes/easypqp/meta.yaml index 69f9dba6117d2..d4de88853b783 100644 --- a/recipes/easypqp/meta.yaml +++ b/recipes/easypqp/meta.yaml @@ -1,6 +1,6 @@ {% set name = "easypqp" %} -{% set version = "0.1.48" %} -{% set sha256 = "417dd35c421d1d61cade8e6989777c6ef93823da6a53c1c2c540a0a2676a0db6" %} +{% set version = "0.1.49" %} +{% set sha256 = "96fffd59e617de0007f1fbe88ab223d605a7d4a4e94a7b4f4d4a94b4016e327c" %} package: name: {{ name|lower }} From 7bfcb274559f6e0665c26b0a97e3566e866bcc7e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 15:37:27 -0400 Subject: [PATCH 0781/1589] Update snakemake-storage-plugin-azure to 0.4.1 (#49815) --- recipes/snakemake-storage-plugin-azure/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-storage-plugin-azure/meta.yaml b/recipes/snakemake-storage-plugin-azure/meta.yaml index 61f93de3b0722..1dbea32c465a1 100644 --- a/recipes/snakemake-storage-plugin-azure/meta.yaml +++ b/recipes/snakemake-storage-plugin-azure/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-storage-plugin-azure" %} -{% set version = "0.4.0" %} +{% set version = "0.4.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_storage_plugin_azure-{{ version }}.tar.gz - sha256: 7b3fd1479d3a2f3447891dbd27b84aeb7380f526b68147d7d8f7aceda14bda62 + sha256: 5200670ee317a572aa8fe843847a3b9810da1584543b84f69b804b54802db11b build: noarch: python From 5e19e3f89e9c13c8fc994ded35619c096cd1e406 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 15:37:40 -0400 Subject: [PATCH 0782/1589] Update harpy to 1.4.2 (#49814) --- recipes/harpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index 6d9987bb12a93..7447eeb08d075 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.4.1" %} -{% set sha256 = "389f391f1510e4fbaf582f8be32fe762fe792ea65f8c83cca4cf1e7237e442ef" %} +{% set version = "1.4.2" %} +{% set sha256 = "8e8beb3e0782fb9eac2bdeba4896ecdd46a690b8472ff8699684e65c77f6043d" %} package: name: harpy From 297bb6920b3f8275a2faa6a45b9d4b82e22f355d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 17:30:57 -0400 Subject: [PATCH 0783/1589] Update camlhmp to 0.3.0 (#49819) --- recipes/camlhmp/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/camlhmp/meta.yaml b/recipes/camlhmp/meta.yaml index b9cb984c17da0..470d2e32536d3 100644 --- a/recipes/camlhmp/meta.yaml +++ b/recipes/camlhmp/meta.yaml @@ -1,5 +1,5 @@ {% set name = "camlhmp" %} -{% set version = "0.2.2" %} +{% set version = "0.3.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/camlhmp/camlhmp-{{ version }}.tar.gz - sha256: 564b1bc900ce6d3474a66ae6e357733971a61620be79ddf566f36ac51b74e3c1 + sha256: c1b8d99bfc44396342169764c5240578da222e20ba4cbc4df79de59e77dc5936 build: noarch: python From 5878f33141c3597db015052b0609248750c42d03 Mon Sep 17 00:00:00 2001 From: John Marshall Date: Tue, 6 Aug 2024 10:09:38 +1200 Subject: [PATCH 0784/1589] Bump bioconda-repodata-patches for new libdeflate release (#49818) --- recipes/bioconda-repodata-patches/gen_patch_json.py | 2 +- recipes/bioconda-repodata-patches/meta.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/bioconda-repodata-patches/gen_patch_json.py b/recipes/bioconda-repodata-patches/gen_patch_json.py index cf04659f9a5d9..a6413dcc044c4 100755 --- a/recipes/bioconda-repodata-patches/gen_patch_json.py +++ b/recipes/bioconda-repodata-patches/gen_patch_json.py @@ -175,7 +175,7 @@ def _gen_new_index(repodata, subdir): if record_name in ['htslib', 'staden_io_lib', 'fastp', 'pysam'] and has_dep(record, 'libdeflate'): # skip deps that allow anything <1.3, which contained an incompatible library filename # TODO adjust the replacement (exclusive) upper bound each time a compatible new libdeflate is released - _pin_looser(fn, record, 'libdeflate', min_lower_bound='1.3', upper_bound='1.21') + _pin_looser(fn, record, 'libdeflate', min_lower_bound='1.3', upper_bound='1.22') # nanosim <=3.1.0 requires scikit-learn<=0.22.1 if record_name.startswith('nanosim') and has_dep(record, "scikit-learn") and version <= "3.1.0": diff --git a/recipes/bioconda-repodata-patches/meta.yaml b/recipes/bioconda-repodata-patches/meta.yaml index f269b23ddd758..dfacdaf368a45 100644 --- a/recipes/bioconda-repodata-patches/meta.yaml +++ b/recipes/bioconda-repodata-patches/meta.yaml @@ -1,6 +1,6 @@ package: name: bioconda-repodata-patches - version: 20240525 # ensure that this is the "current" date, and always higher than the latest version in master + version: 20240805 # ensure that this is the "current" date, and always higher than the latest version in master source: path: . From 49c67a8af08b21a9d77cec330e4384e3421f6e65 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 18:46:00 -0400 Subject: [PATCH 0785/1589] Update pyfaidx to 0.8.1.2 (#49820) --- recipes/pyfaidx/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pyfaidx/meta.yaml b/recipes/pyfaidx/meta.yaml index eb721ce14f0d7..f4b6ae4cbf1ca 100644 --- a/recipes/pyfaidx/meta.yaml +++ b/recipes/pyfaidx/meta.yaml @@ -1,12 +1,12 @@ -{% set version = "0.8.1.1" %} +{% set version = "0.8.1.2" %} package: name: pyfaidx version: {{ version }} source: - url: https://files.pythonhosted.org/packages/0e/32/a89e956d4f27bd8ab4d92f6b27e46386975add4ad13e54504012afa3d025/pyfaidx-0.8.1.1.tar.gz - sha256: 6f0482352619f2cc56003ca22321bdb0d0764b656795bc1e4062b1fa9b08686b + url: https://files.pythonhosted.org/packages/e0/36/68bfd77bcf675ccdc97d10e69ab2b52d43642301360fa8a55707916f1528/pyfaidx-0.8.1.2.tar.gz + sha256: d8452470455b1e778f93969447db8ea24deb4624c7c40769516459cb6f87bc33 build: number: 0 From 86c50c06667f669d5d9a0f467fb335fca8cbf5a8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 19:52:53 -0400 Subject: [PATCH 0786/1589] Update camlhmp to 0.3.1 (#49821) --- recipes/camlhmp/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/camlhmp/meta.yaml b/recipes/camlhmp/meta.yaml index 470d2e32536d3..4a40b11a65bb0 100644 --- a/recipes/camlhmp/meta.yaml +++ b/recipes/camlhmp/meta.yaml @@ -1,5 +1,5 @@ {% set name = "camlhmp" %} -{% set version = "0.3.0" %} +{% set version = "0.3.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/camlhmp/camlhmp-{{ version }}.tar.gz - sha256: c1b8d99bfc44396342169764c5240578da222e20ba4cbc4df79de59e77dc5936 + sha256: 5add4f82f4cc70bb5192a0bbe4fc3a6263aaa51353ddd0eb17833ec75ec1d008 build: noarch: python From a3bd052216d970eb037706b8801e7aec9891e085 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 20:58:07 -0400 Subject: [PATCH 0787/1589] Update oarfish to 0.5.1 (#49825) --- recipes/oarfish/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/oarfish/meta.yaml b/recipes/oarfish/meta.yaml index 3cc1e8a8739a8..ad46a7b90f03d 100644 --- a/recipes/oarfish/meta.yaml +++ b/recipes/oarfish/meta.yaml @@ -1,17 +1,17 @@ -{% set version = "0.5.0" %} +{% set version = "0.5.1" %} package: name: oarfish version: {{ version }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage("oarfish", max_pin="x.x") }} source: url: https://github.com/COMBINE-lab/oarfish/archive/v{{ version }}.tar.gz - sha256: 2fcaeca31f7e1c9870dd200ce0fd4163b58e8e945015ad00d06e8a98cf4921f6 + sha256: 83fe964065c1068be8085eaf36ce436d8199577d2647fa52138046ccc253d62b requirements: build: @@ -32,4 +32,4 @@ about: extra: additional-platforms: - linux-aarch64 - - osx-arm64 \ No newline at end of file + - osx-arm64 From 5a91a642ec8241ac1eff8c4de75d051806e5fc50 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 00:26:39 -0400 Subject: [PATCH 0788/1589] Update pytaxonkit to 0.9.1 (#49828) --- recipes/pytaxonkit/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pytaxonkit/meta.yaml b/recipes/pytaxonkit/meta.yaml index 8da2b003b8ae3..09bd980293a67 100644 --- a/recipes/pytaxonkit/meta.yaml +++ b/recipes/pytaxonkit/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.9" %} -{% set sha256 = "539ae750fef3d213b669645359dbd4758e28950981a72a35755a852cd8f50358" %} +{% set version = "0.9.1" %} +{% set sha256 = "68d004622a506cc65c634b57c0b27adec475b0532fbf3a6075a0ecdad3ff5f85" %} package: name: pytaxonkit From f44db059a839afa2217cb42b0f44fab7ecbaf1d6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 00:27:07 -0400 Subject: [PATCH 0789/1589] Update segul to 0.22.0 (#49827) --- recipes/segul/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/segul/meta.yaml b/recipes/segul/meta.yaml index 533dbc3be7fad..a64eb2fd5a37c 100644 --- a/recipes/segul/meta.yaml +++ b/recipes/segul/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.21.3" %} +{% set version = "0.22.0" %} package: name: segul @@ -6,7 +6,7 @@ package: source: url: https://github.com/hhandika/segul/archive/refs/tags/v{{ version }}.tar.gz - sha256: 099ce274900bddadac4cf6a917ad34712551f11f6412ca89b315dec881462b47 + sha256: aa50dcfda557262f0a29a8e6be915c327392a10944492b21b42467306d53ed24 build: number: 0 From 250ac9cbafdfd61aa7ec165a7bc8a0cb80a14c64 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 00:32:21 -0400 Subject: [PATCH 0790/1589] Update orthanq to 1.7.1 (#49822) --- recipes/orthanq/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/orthanq/meta.yaml b/recipes/orthanq/meta.yaml index 0b9d61c3201e0..61374a7b9a177 100644 --- a/recipes/orthanq/meta.yaml +++ b/recipes/orthanq/meta.yaml @@ -1,18 +1,18 @@ -{% set version = "1.7.0" %} +{% set version = "1.7.1" %} package: name: orthanq version: {{ version }} build: - number: 2 + number: 0 skip: True # [osx] run_exports: - {{ pin_subpackage("orthanq", max_pin="x") }} source: url: https://github.com/orthanq/orthanq/archive/v{{ version }}.tar.gz - sha256: 7c6c93c47f31bb357210103573e38bed762a3435bdf44bccb0a8740dd15d427c + sha256: 1e918960bd307cdd7d21ef341d1f0827abe8bb243bb4c15266c957dc5b70c07b requirements: build: From 962eacae95f10984e3334c3140e0948a078f2f4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bertrand=20N=C3=A9ron?= Date: Tue, 6 Aug 2024 06:43:54 +0200 Subject: [PATCH 0791/1589] Update Macsyfinder to 2.1.4 (#49806) --- recipes/macsyfinder/meta.yaml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/recipes/macsyfinder/meta.yaml b/recipes/macsyfinder/meta.yaml index 6e61954c4f6c9..e8304f673014b 100644 --- a/recipes/macsyfinder/meta.yaml +++ b/recipes/macsyfinder/meta.yaml @@ -1,5 +1,5 @@ -{% set name = "MacSyFinder" %} -{% set version = "2.1.3" %} +{% set name = "macsyfinder" %} +{% set version = "2.1.4" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 28078e2e742598124aa216b7767db473290257dd265dbd9deafa687a9dbdf91a + sha256: 93af563a81cc33f7593fa145bb9def76d51e3ef500a073531685d642f77da1a5 build: noarch: python @@ -26,17 +26,19 @@ build: requirements: host: - pip - - python >=3.7 + - python >=3.10 run: - - python >=3.7 + - python >=3.10 - colorlog - PyYAML >=5.1.1 - packaging >=18.0 - networkx >=2.4 - - pandas >=1.1.5,<=1.4.3 + - pandas >=1.1.5,<=1.5.1 - colorama >=0.4.4 - certifi - hmmer >=3.1b2,<=3.3.2 + - git >1.7.0 + - gitpython >=3.1.30 test: commands: @@ -56,4 +58,4 @@ extra: - bneron identifiers: - biotools:macsyfinder - - doi:10.1371/journal/pone.0110726 + - doi:10.24072/pcjournal.250 From 6741b0af2804a5add0ddc3fec4eb2bd39c7bbd1d Mon Sep 17 00:00:00 2001 From: sverre-branders <154252137+sverre-branders@users.noreply.github.com> Date: Tue, 6 Aug 2024 06:45:45 +0200 Subject: [PATCH 0792/1589] Update voyager (#49803) --- recipes/voyager/build.sh | 4 ++-- recipes/voyager/meta.yaml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/recipes/voyager/build.sh b/recipes/voyager/build.sh index 110e53095ec3f..e2ebb55accdc9 100755 --- a/recipes/voyager/build.sh +++ b/recipes/voyager/build.sh @@ -7,8 +7,8 @@ cp voyager-combine-cli $PREFIX/bin/ cp voyager-debug-index $PREFIX/bin/ mkdir -p "$PREFIX/lib" -cp voyager-monitor-0.1.0-SNAPSHOT.jar $PREFIX/lib/ +cp voyager-monitor-$PKG_VERSION-SNAPSHOT.jar $PREFIX/lib/ echo '#!/bin/bash' > ${PREFIX}/bin/voyager-monitor -echo 'java -jar "'$PREFIX'/lib/voyager-monitor-1.0.00-SNAPSHOT.jar" "$@"' >> $PREFIX/bin/voyager-monitor +echo 'java -jar "'$PREFIX'/lib/voyager-monitor-'$PKG_VERSION'-SNAPSHOT.jar" "$@"' >> $PREFIX/bin/voyager-monitor chmod +x "${PREFIX}/bin/voyager-monitor" diff --git a/recipes/voyager/meta.yaml b/recipes/voyager/meta.yaml index dc5947046d51d..9fc6c50e7f52c 100755 --- a/recipes/voyager/meta.yaml +++ b/recipes/voyager/meta.yaml @@ -1,13 +1,13 @@ -{% set version = "0.1.0" %} +{% set version = "0.1.1" %} {% set base = "https://bitbucket.org/sverre-phd-work/voyager/downloads" %} -{% set sha256 = "57a87fb9878a25a3848c1bde6f6f873fd154ff6f1b229b09afccf602d3ea82a9" %} +{% set sha256 = "912bf5998095095faa291d504946763e8b31da3bf3bff3a250ac51f5f214948e" %} package: name: voyager version: '{{version}}' source: - url: {{base}}/voyager-linux64-v{{version}}.tar.gz + url: {{base}}/voyager-noarch64-v{{version}}.tar.gz sha256: '{{sha256}}' build: From 477ff1d845b135e52138aa1d27dff216122b3e75 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 01:34:07 -0400 Subject: [PATCH 0793/1589] Update pbptyper to 2.0.0 (#49830) * Update pbptyper to 2.0.0 * update depends * add run_exports --------- Co-authored-by: Robert A. Petit III --- recipes/pbptyper/build.sh | 20 ++++++++++---------- recipes/pbptyper/meta.yaml | 13 +++++-------- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/recipes/pbptyper/build.sh b/recipes/pbptyper/build.sh index 88bd3103facb5..5c332818d61da 100644 --- a/recipes/pbptyper/build.sh +++ b/recipes/pbptyper/build.sh @@ -1,12 +1,12 @@ -#! /bin/bash +#!/bin/bash -# Set up defaults -PBPTYPER_SHARE="share/${PKG_NAME}-${PKG_VERSION}" -mkdir -p ${PREFIX}/${PBPTYPER_SHARE} -mkdir -p ${PREFIX}/bin +mkdir -p $PREFIX/bin ${PREFIX}/share/pbptyper -# Make Bioconda compatible -cp db/*.faa ${PREFIX}/${PBPTYPER_SHARE}/ -cp db/GCF_000006885.fna.gz ${PREFIX}/${PBPTYPER_SHARE}/ -sed "s=\"bin\", \"db\"=\"bin\", \"$PBPTYPER_SHARE\"=" bin/pbptyper > ${PREFIX}/bin/pbptyper -chmod 755 ${PREFIX}/bin/pbptyper +# Copy wrapper +chmod 755 bin/pbptyper bin/pbptyper-bioconda +cp -f bin/pbptyper $PREFIX/bin/pbptyper-main +cp -f bin/pbptyper-bioconda $PREFIX/bin/pbptyper + +# Copy schema (~100kb) +cp -f data/pbptyper.yaml ${PREFIX}/share/pbptyper +cp -f data/pbptyper.fasta ${PREFIX}/share/pbptyper diff --git a/recipes/pbptyper/meta.yaml b/recipes/pbptyper/meta.yaml index 56ec838faad24..76adfdc4e82ae 100644 --- a/recipes/pbptyper/meta.yaml +++ b/recipes/pbptyper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pbptyper" %} -{% set version = "1.0.4" %} +{% set version = "2.0.0" %} package: name: {{ name | lower }} @@ -7,25 +7,22 @@ package: source: url: https://github.com/rpetit3/pbptyper/archive/v{{ version }}.tar.gz - sha256: d112637db40212d87217ee18e692c4d5d5be6ab10845d658165a1c8fc83b03b3 + sha256: a51de405ff4a64687cba129096b0e67fb8388cb932f66858a1c5745393df0441 build: number: 0 noarch: generic + run_exports: + - {{ pin_subpackage(name, max_pin='x.x') }} requirements: run: - - blast - - executor - - fastani - - python >=3.7 - - rich-click + - camlhmp >=0.3.1 test: commands: - pbptyper --version - pbptyper --help - - pbptyper --check about: home: "https://github.com/rpetit3/pbptyper" From cf45bc6abb800ce3fbf19b271fd1854bea4acd97 Mon Sep 17 00:00:00 2001 From: Vijini Mallawaarachchi Date: Tue, 6 Aug 2024 16:17:10 +0930 Subject: [PATCH 0794/1589] Add graphbin2 v1.3.1 (#49829) * Add graphbin2 v1.3.1 * Update meta.yaml * Update meta.yaml * Update meta.yaml --- recipes/graphbin2/meta.yaml | 52 +++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 recipes/graphbin2/meta.yaml diff --git a/recipes/graphbin2/meta.yaml b/recipes/graphbin2/meta.yaml new file mode 100644 index 0000000000000..e1976a97ce5e1 --- /dev/null +++ b/recipes/graphbin2/meta.yaml @@ -0,0 +1,52 @@ +{% set name = "GraphBin2" %} +{% set version = "1.3.1" %} + +package: + name: "{{ name|lower }}" + version: "{{ version }}" + +source: + url: "https://github.com/metagentools/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz" + sha256: 4086cc93980a4c964da2b9d0ae84eaf3aa4a6b9c01aa23b2c2d965bf85cef5f2 + +build: + number: 0 + noarch: python + run_exports: + - {{ pin_subpackage('graphbin2', max_pin="x.x") }} + script: + - "{{ PYTHON }} -m pip install . -vv" + +requirements: + host: + - pip + - python + - flit-core + run: + - cairocffi + - python >=3.9 + - python-igraph + - cogent3 + - tqdm + - click + - scipy + +test: + commands: + - graphbin2 --help + +about: + home: "https://github.com/metagentools/GraphBin2" + license: BSD-3 + license_file: LICENSE + summary: "GraphBin2: Refined and Overlapped Binning of Metagenomic Contigs Using Assembly Graphs" + description: | + GraphBin2 is a metagenomic contig bin-refinement tool that makes use of assembly graphs and can assign contigs to multiple bins. + doc_url: "https://graphbin2.readthedocs.io/" + dev_url: "https://github.com/metagentools/GraphBin2" + +extra: + recipe-maintainers: + - Vini2 + identifiers: + - doi:10.1186/s13015-021-00185-6 From bc18b23e5fbd84bcb536ec8650d585aea5d581de Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 05:06:59 -0400 Subject: [PATCH 0795/1589] Update mehari to 0.26.0 (#48552) * Update mehari to 0.26.0 * Add linux-aarch64 build. Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: mencian Co-authored-by: Till Hartmann Co-authored-by: Martin Tzvetanov Grigorov Co-authored-by: Till Hartmann --- recipes/mehari/build.sh | 4 ++-- recipes/mehari/fix-release-profile.patch | 14 ++++++++++++++ recipes/mehari/meta.yaml | 23 +++++++++++++++-------- 3 files changed, 31 insertions(+), 10 deletions(-) create mode 100644 recipes/mehari/fix-release-profile.patch diff --git a/recipes/mehari/build.sh b/recipes/mehari/build.sh index 62fe997e4df96..4bbfddb620755 100644 --- a/recipes/mehari/build.sh +++ b/recipes/mehari/build.sh @@ -1,6 +1,6 @@ -#!/bin/bash -eu +#!/bin/bash -xeuo # Make sure bindgen passes on our compiler flags. export BINDGEN_EXTRA_CLANG_ARGS="${CPPFLAGS} ${CFLAGS} ${LDFLAGS}" -cargo install --no-track --locked --verbose --root "${PREFIX}" --path . +cargo install --no-track --locked --root "${PREFIX}" --path . diff --git a/recipes/mehari/fix-release-profile.patch b/recipes/mehari/fix-release-profile.patch new file mode 100644 index 0000000000000..78f2c5e59cc6d --- /dev/null +++ b/recipes/mehari/fix-release-profile.patch @@ -0,0 +1,14 @@ +diff --git a/Cargo.toml b/Cargo.toml +index 58c9882..c1ac205 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -111,8 +111,7 @@ opt-level = 3 + + [profile.release] + debug = false +-lto = "fat" +-codegen-units = 1 ++codegen-units = 8 + + [profile.dev] + debug = true diff --git a/recipes/mehari/meta.yaml b/recipes/mehari/meta.yaml index 4dce1d8acc046..407cffb19171f 100644 --- a/recipes/mehari/meta.yaml +++ b/recipes/mehari/meta.yaml @@ -1,33 +1,34 @@ -{% set version = "0.25.5" %} -{% set sha256 = "4986b6249fdc4e726e9494c55340234f50307fc4442e4683ecf18c1bd6ace8fd" %} +{% set version = "0.26.0" %} +{% set sha256 = "b70c46074b8b2cadf20664cbea7f4c1e4628db531068d0f08c955c747540be32" %} package: name: mehari version: {{ version }} +source: + url: https://github.com/varfish-org/mehari/archive/v{{ version }}.tar.gz + sha256: {{ sha256 }} + patches: + - fix-release-profile.patch + build: skip: True # [osx] number: 0 run_exports: - {{ pin_subpackage("mehari", max_pin="x.x") }} -source: - url: https://github.com/varfish-org/mehari/archive/v{{ version }}.tar.gz - sha256: {{ sha256 }} - requirements: build: - {{ compiler('c') }} - {{ compiler('cxx') }} - {{ compiler('rust') }} - cmake - - protobuf - make - pkg-config - - rust >=1.64 host: - clangdev - openssl + - protobuf - sqlite - zlib run: @@ -40,4 +41,10 @@ test: about: home: https://github.com/varfish-org/mehari license: MIT + license_family: MIT summary: VEP-like tool for sequence ontology and HGVS annotation of VCF files written in Rust. + dev_url: https://github.com/varfish-org/mehari + +extra: + additional-platforms: + - linux-aarch64 From 18894bfbf7753344a8a3ba2f5cae02dbc1e31f10 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 05:33:33 -0400 Subject: [PATCH 0796/1589] Update virheat to 0.7.1 (#49834) --- recipes/virheat/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/virheat/meta.yaml b/recipes/virheat/meta.yaml index b760fed750475..6b485917f485d 100644 --- a/recipes/virheat/meta.yaml +++ b/recipes/virheat/meta.yaml @@ -1,5 +1,5 @@ {% set name = "virheat" %} -{% set version = "0.7" %} +{% set version = "0.7.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/virheat-{{ version }}.tar.gz - sha256: 9f50dc2b7517c5e1bc1c1ee7170395147e06fb08016d7c99b30d3271d366f463 + sha256: 142b62f05dfe91b9d04a8fe3e7b27d0d20e502dbfa3163d839666262143f67d6 build: entry_points: From 46d7f01e956961bf0504d143eabf49838524cdcc Mon Sep 17 00:00:00 2001 From: Anna Zhukova Date: Tue, 6 Aug 2024 11:39:42 +0200 Subject: [PATCH 0797/1589] phylodeep_data_bdss package (needed for phylodeep) (#49824) * phylodeep_data_bdss * Update recipes/phylodeep_data_bdss/meta.yaml Co-authored-by: Martin Grigorov --------- Co-authored-by: Martin Grigorov --- recipes/phylodeep_data_bdss/meta.yaml | 42 +++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 recipes/phylodeep_data_bdss/meta.yaml diff --git a/recipes/phylodeep_data_bdss/meta.yaml b/recipes/phylodeep_data_bdss/meta.yaml new file mode 100644 index 0000000000000..7116090176840 --- /dev/null +++ b/recipes/phylodeep_data_bdss/meta.yaml @@ -0,0 +1,42 @@ +{% set name = "phylodeep_data_bdss" %} +{% set version = "0.3" %} + +package: + name: "{{ name|lower }}" + version: "{{ version }}" + +source: + url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" + sha256: 2af2db81208ac169ace415d0b4e68405a680283b744c450115f340e4bfa7071e + +build: + number: 0 + noarch: python + script: "{{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation" + run_exports: + - {{ pin_subpackage('phylodeep_data_bdss', max_pin="x.x") }} + +requirements: + host: + - pip + - python >=3 + run: + - python >=3 + - pandas >=1.0.0 + +test: + imports: + - phylodeep_data_bdss + commands: + - bdss_ci_paths --help + +about: + home: "https://github.com/evolbioinfo/phylodeep_data_bdss" + summary: "Package containing data for the phylodeep package." + license: GPL-3.0-or-later + license_family: GPL3 + license_file: LICENSE + +extra: + recipe-maintainers: + - annazhukova From 002196e7298c70f6ea61f005f06dcc6bc53c8313 Mon Sep 17 00:00:00 2001 From: Anna Zhukova Date: Tue, 6 Aug 2024 12:22:21 +0200 Subject: [PATCH 0798/1589] phylodeep_data_bd package (needed for phylodeep) (#49746) * phylodeep_data_bd package (needed for phylodeep) * Added pandas requirement * Update recipes/phylodeep_data_bd/meta.yaml Co-authored-by: Martin Grigorov --------- Co-authored-by: Martin Grigorov --- recipes/phylodeep_data_bd/meta.yaml | 42 +++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 recipes/phylodeep_data_bd/meta.yaml diff --git a/recipes/phylodeep_data_bd/meta.yaml b/recipes/phylodeep_data_bd/meta.yaml new file mode 100644 index 0000000000000..424be8df088a7 --- /dev/null +++ b/recipes/phylodeep_data_bd/meta.yaml @@ -0,0 +1,42 @@ +{% set name = "phylodeep_data_bd" %} +{% set version = "0.6" %} + +package: + name: "{{ name|lower }}" + version: "{{ version }}" + +source: + url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" + sha256: ca0f0b48e743c1600c455596a6d5d11fea9e0a2ea94a3f116f421d753b6f0731 + +build: + number: 0 + noarch: python + script: "{{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation" + run_exports: + - {{ pin_subpackage('phylodeep_data_bd', max_pin="x.x") }} + +requirements: + host: + - pip + - python >=3 + run: + - python >=3 + - pandas >=1.0.0 + +test: + imports: + - phylodeep_data_bd + commands: + - bd_ci_paths --help + +about: + home: "https://github.com/evolbioinfo/phylodeep_data_bd" + summary: "Package containing data for the phylodeep package." + license: GPL-3.0-or-later + license_family: GPL3 + license_file: LICENSE + +extra: + recipe-maintainers: + - annazhukova From 4780ba6a9024a71b718b3788d804e23850a92d06 Mon Sep 17 00:00:00 2001 From: Anna Zhukova Date: Tue, 6 Aug 2024 12:23:04 +0200 Subject: [PATCH 0799/1589] phylodeep_data_bdei package (needed for phylodeep) (#49823) * phylodeep-data-bdei * fixed sha256 --- recipes/phylodeep_data_bdei/meta.yaml | 42 +++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 recipes/phylodeep_data_bdei/meta.yaml diff --git a/recipes/phylodeep_data_bdei/meta.yaml b/recipes/phylodeep_data_bdei/meta.yaml new file mode 100644 index 0000000000000..1095bf5354102 --- /dev/null +++ b/recipes/phylodeep_data_bdei/meta.yaml @@ -0,0 +1,42 @@ +{% set name = "phylodeep_data_bdei" %} +{% set version = "0.4" %} + +package: + name: "{{ name|lower }}" + version: "{{ version }}" + +source: + url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" + sha256: 59098286f611e21b264ccf0265351c27b3e51d1861f66d4fe9638136fd2828c3 + +build: + number: 0 + noarch: python + script: "{{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation" + run_exports: + - {{ pin_subpackage('phylodeep_data_bdei', max_pin="x.x") }} + +requirements: + host: + - pip + - python >=3 + run: + - python >=3 + - pandas >=1.0.0 + +test: + imports: + - phylodeep_data_bdei + commands: + - bdei_ci_paths --help + +about: + home: "https://github.com/evolbioinfo/phylodeep_data_bdei" + summary: "Package containing data for the phylodeep package." + license: GPL-3.0-or-later + license_family: GPL3 + license_file: LICENSE + +extra: + recipe-maintainers: + - annazhukova From df0f8d4298520841b75f5355e18be6274fd724df Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 06:23:28 -0400 Subject: [PATCH 0800/1589] Update snakemake-executor-plugin-slurm to 0.9.0 (#49835) --- recipes/snakemake-executor-plugin-slurm/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-executor-plugin-slurm/meta.yaml b/recipes/snakemake-executor-plugin-slurm/meta.yaml index e8990b4fa0189..dcd161f2ac530 100644 --- a/recipes/snakemake-executor-plugin-slurm/meta.yaml +++ b/recipes/snakemake-executor-plugin-slurm/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-executor-plugin-slurm" %} -{% set version = "0.8.0" %} +{% set version = "0.9.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_executor_plugin_slurm-{{ version }}.tar.gz - sha256: 7d097267484a306de45db5bbc5d499f8cc044fd1b661d5af3f179f1e0318fe41 + sha256: 1d527dc8d09daa194b4ced3360d06bce61001bfa78471ff35bd421c818fa4101 build: noarch: python From f4ebcbf4c4bc7c19d531d44f1e3eeccd027bb661 Mon Sep 17 00:00:00 2001 From: Max Date: Tue, 6 Aug 2024 14:51:21 +0200 Subject: [PATCH 0801/1589] Update mpra-data-access-portal to 0.1.9 (#49838) * upgrading mpra-data-access-portal to 0.1.9 * adding run_exports * remove not necessary libraries --------- Co-authored-by: Max Schubach --- recipes/mpra-data-access-portal/meta.yaml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/recipes/mpra-data-access-portal/meta.yaml b/recipes/mpra-data-access-portal/meta.yaml index a817b60e07d5f..a823556a22a5f 100644 --- a/recipes/mpra-data-access-portal/meta.yaml +++ b/recipes/mpra-data-access-portal/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.1.8" %} -{% set sha256 = "d505aa70ab9ed1bd60e031d98462b3eb187d4bca881dfec1b265c4d46840d3f1" %} +{% set version = "0.1.9" %} +{% set sha256 = "5ad25bbbe111b3ae96b324da69fa5799893401a7f280462871c18a13509c6164" %} package: name: mpra-data-access-portal @@ -10,7 +10,9 @@ source: sha256: {{ sha256 }} build: - number: 3 + run_exports: + - {{ pin_subpackage('mpra-data-access-portal', max_pin="x.x") }} + number: 0 noarch: generic requirements: @@ -24,7 +26,7 @@ requirements: - r-readr - r-stringr - r-plotly - - r-shinytest + - r-shinyvalidate - r-markdown test: From d6da18c7ff73e2acb0ef84b628cd76c791c7ffa6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 08:51:47 -0400 Subject: [PATCH 0802/1589] Update comparem2 to 2.11.1 (#49840) --- recipes/comparem2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/comparem2/meta.yaml b/recipes/comparem2/meta.yaml index 60d0db2a6c5fa..087cb1fc1f3c6 100644 --- a/recipes/comparem2/meta.yaml +++ b/recipes/comparem2/meta.yaml @@ -1,6 +1,6 @@ {% set name = "comparem2" %} -{% set version = "2.10.1" %} -{% set sha256 = "6689d7b7cd82fecf74a63a7f5cb014b5f3baac797445cce9957bc13e563f3cb8" %} +{% set version = "2.11.1" %} +{% set sha256 = "cc0979068e06490aca1582fe0590a14519307f82e14872ceece3be1555702ee4" %} package: name: {{ name }} From 8201f5e20a07c8872feef00b19b9166ebd3b129a Mon Sep 17 00:00:00 2001 From: "Thiseas C. Lamnidis" Date: Tue, 6 Aug 2024 14:52:35 +0200 Subject: [PATCH 0803/1589] Add KIN (#48200) * add kin recipe * typo * Linting * add latest dependencies from main * testing * cp and rename executables in bin * add host section * edit tests * Fixing python to 3.8 seems to fix argparse issue * reactivate KINgaroo test * try pinning python in host to 3.8 as well * Bump version. fixes empty metavar issues --------- Co-authored-by: mencian --- recipes/kin/meta.yaml | 56 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 recipes/kin/meta.yaml diff --git a/recipes/kin/meta.yaml b/recipes/kin/meta.yaml new file mode 100644 index 0000000000000..c54807c8b0640 --- /dev/null +++ b/recipes/kin/meta.yaml @@ -0,0 +1,56 @@ +{% set name = "KIN" %} +{% set version = "3.1.4" %} + +package: + name: "{{ name|lower }}" + version: "{{ version }}" + +source: + url: https://github.com/DivyaratanPopli/Kinship_Inference/archive/refs/tags/v{{ version }}.tar.gz + sha256: 29dbac786a863561b61d1773f75bbf5f2791c75751c798a327f9106ab20ad839 + +build: + number: 0 + noarch: python + script: + - "mkdir -p ${PREFIX}/bin" + - "{{ PYTHON }} -m pip install ./pypackage/kin -vvv --no-deps --no-build-isolation --no-cache-dir" + - "{{ PYTHON }} -m pip install ./pypackage/kingaroo -vvv --no-deps --no-build-isolation --no-cache-dir" + - "cp -f $(which KINgaroo) ${PREFIX}/bin/kingaroo" + - "cp -f $(which KIN) ${PREFIX}/bin/kin" + - "chmod 755 ${PREFIX}/bin/kingaroo ${PREFIX}/bin/kin" + run_exports: + - {{ pin_subpackage("kin", max_pin="x") }} + +requirements: + host: + - python =3.8 + - pip + run: + - python =3.8 + - scipy >=1.8.0 + - numpy >=1.21.1 + - pandas >=1.3.1 + - numba >=0.55.1 + - pysam >=0.19.0 + - pybedtools >=0.9.0 + - samtools >=1.15 + - bcftools >=1.15 + +test: + commands: + - kin --help + - kingaroo --help + +about: + home: "https://github.com/DivyaratanPopli/Kinship_Inference" + license: "GPL-3.0-only" + license_family: GPL3 + license_file: LICENCE + summary: "A tool to estimate pairwise relatedness from ancient DNA, taking in account contamination, ROH, ascertainment bias." + doc_url: "https://github.com/DivyaratanPopli/Kinship_Inference/blob/main/README.md" + dev_url: "https://github.com/DivyaratanPopli/Kinship_Inference" + +extra: + recipe-maintainers: + - TCLamnidis From e1d1ac97aedc7af50b247635a78f1e8873557995 Mon Sep 17 00:00:00 2001 From: Daniel Standage Date: Tue, 6 Aug 2024 08:54:12 -0400 Subject: [PATCH 0804/1589] Pin taxonkit>=0.17 (#49841) --- recipes/pytaxonkit/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pytaxonkit/meta.yaml b/recipes/pytaxonkit/meta.yaml index 09bd980293a67..b2e49cc2dd84e 100644 --- a/recipes/pytaxonkit/meta.yaml +++ b/recipes/pytaxonkit/meta.yaml @@ -14,7 +14,7 @@ build: - {{ pin_subpackage("pytaxonkit", max_pin="x.x") }} noarch: python script: {{ PYTHON }} -m pip install --no-deps --no-build-isolation . -vvv - number: 0 + number: 1 requirements: host: @@ -24,7 +24,7 @@ requirements: - python >=3,<3.12 - pandas >=1.0 - pytest >=5.4 - - taxonkit >=0.16 + - taxonkit >=0.17 test: imports: From 4638865e193eb3d38afa451df3fec47b241d45fd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 08:54:36 -0400 Subject: [PATCH 0805/1589] Update bamdash to 0.3 (#49842) --- recipes/bamdash/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/bamdash/meta.yaml b/recipes/bamdash/meta.yaml index 2a77d75331151..c245a749ceb5c 100644 --- a/recipes/bamdash/meta.yaml +++ b/recipes/bamdash/meta.yaml @@ -1,5 +1,5 @@ {% set name = "bamdash" %} -{% set version = "0.2.4" %} +{% set version = "0.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/bamdash-{{ version }}.tar.gz - sha256: 9e9d81cb5cefbb2f356d1a1e05ffc84bcaee0cfbfd16b5e92d905817337ea4e8 + sha256: aca6cf247961b7d1e50afa7fe121056ed6039c918d68d8c816f60bc331a7d876 build: entry_points: From 38f7325a4d9dd2e68a3d0274ab652b081e1d1e0d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 08:55:04 -0400 Subject: [PATCH 0806/1589] Update ebi-eva-common-pyutils to 0.6.10 (#49843) --- recipes/ebi-eva-common-pyutils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ebi-eva-common-pyutils/meta.yaml b/recipes/ebi-eva-common-pyutils/meta.yaml index 98e6fd2a8d6d6..f06b115b8bb5c 100644 --- a/recipes/ebi-eva-common-pyutils/meta.yaml +++ b/recipes/ebi-eva-common-pyutils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ebi-eva-common-pyutils" %} -{% set version = "0.6.9" %} +{% set version = "0.6.10" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/ebi_eva_common_pyutils-{{ version }}.tar.gz - sha256: 073b60a4349d3ad540453ee1983bcbbe200cf744242f421bb4ba019cd60eb9a7 + sha256: f143c703e31f40c94ebe366ba5f8a8247b6c825590ac157a7f5495f36aa7accb build: script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation From 7b8af24fa241ccc0f34095f4c08b162f7e13b577 Mon Sep 17 00:00:00 2001 From: Kez Cleal <42997789+kcleal@users.noreply.github.com> Date: Tue, 6 Aug 2024 13:55:58 +0100 Subject: [PATCH 0807/1589] GW - Fixing missing libs for mamba build (#49844) --- recipes/gw/meta.yaml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/recipes/gw/meta.yaml b/recipes/gw/meta.yaml index 919a9ab11e2f2..d91101eaef266 100644 --- a/recipes/gw/meta.yaml +++ b/recipes/gw/meta.yaml @@ -16,7 +16,7 @@ source: build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('gw', max_pin="x") }} @@ -47,12 +47,20 @@ requirements: - xorg-libxcb # [linux] - expat # [linux] run: + - {{ cdt('xorg-x11-proto-devel') }} # [linux] + - {{ cdt('mesa-libgl-devel') }} # [linux] + - {{ cdt('mesa-dri-drivers') }} # [linux] + - {{ cdt('libselinux') }} # [linux] + - {{ cdt('libxdamage') }} # [linux] + - {{ cdt('libxxf86vm') }} # [linux] + - {{ cdt('libxfixes') }} # [linux] + - {{ cdt('libxext') }} # [linux] - glfw >=3.3 - htslib >=1.12 test: commands: - - gw --version + - gw hg19 -b https://github.com/kcleal/gw/releases/download/v1.0.0/demo1.bam -r chr8:37047270-37055161 -n > test.png; ls -lh test.png about: home: https://github.com/kcleal/gw From 54eae884586e36e5065876787ca9e6a4c000a3d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Gr=C3=BCning?= Date: Tue, 6 Aug 2024 16:18:46 +0200 Subject: [PATCH 0808/1589] add flexynesis (#49433) * add flexynesis * Apply suggestions from code review * Update meta.yaml * Update meta.yaml * Apply suggestions from code review Co-authored-by: Amirhossein <66441226+nilchia@users.noreply.github.com> --------- Co-authored-by: Amirhossein <66441226+nilchia@users.noreply.github.com> --- recipes/flexynesis/meta.yaml | 69 ++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 recipes/flexynesis/meta.yaml diff --git a/recipes/flexynesis/meta.yaml b/recipes/flexynesis/meta.yaml new file mode 100644 index 0000000000000..ffa6b599019c7 --- /dev/null +++ b/recipes/flexynesis/meta.yaml @@ -0,0 +1,69 @@ +{% set name = "flexynesis" %} +{% set version = "0.2.10" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/flexynesis-{{ version }}.tar.gz + sha256: e6faea383272ee0bdd2792a2d11e4c1682d898eea09008990aa1132a93e72b34 + +build: + entry_points: + - flexynesis = flexynesis.__main__:main + - flexynesis-cli = flexynesis.cli:main + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + run_exports: + - {{ pin_subpackage("flexynesis", max_pin="x.x.x") }} + +requirements: + host: + - python >=3.11,<3.12 + - setuptools + - pip + run: + - python >=3.11,<3.12 + - matplotlib-base + - numpy + - pandas + - lightning + - pyyaml + - scikit-optimize + - scipy + - seaborn + - pytorch + - torchvision + - tqdm + - umap-learn + - rich + - captum + - ipywidgets + - pytorch_geometric + - ipykernel + - lifelines + - papermill + - scikit-survival + - python-louvain + +test: + imports: + - flexynesis + commands: + - pip check + - flexynesis --help + requires: + - pip + +about: + home: https://github.com/BIMSBbioinfo/flexynesis + summary: "A deep-learning-based multi-omics bulk sequencing data integration suite with a focus on (pre-)clinical endpoint prediction." + license: OTHER + license_file: LICENSE + description: "This is a deep-learning based multi-omics bulk sequencing data integration suite with a focus on (pre-)clinical endpoint prediction." + +extra: + recipe-maintainers: + - bgruening From f04b4d6947bc85cda511b810599933fd8be2db02 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 6 Aug 2024 17:20:12 +0300 Subject: [PATCH 0809/1589] fastool: add aarch64/arm64 builds (#49850) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/fastool/build.sh | 5 ++++- recipes/fastool/meta.yaml | 7 ++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/recipes/fastool/build.sh b/recipes/fastool/build.sh index ac5ab35baba29..362baa4a9cd7e 100644 --- a/recipes/fastool/build.sh +++ b/recipes/fastool/build.sh @@ -1,4 +1,7 @@ #!/bin/bash -make CC="${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" + +set -xe + +make -j ${CPU_COUNT} CC="${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" install -d "${PREFIX}/bin" install fastool "${PREFIX}/bin/" diff --git a/recipes/fastool/meta.yaml b/recipes/fastool/meta.yaml index 70c066b830b35..c630514e19130 100644 --- a/recipes/fastool/meta.yaml +++ b/recipes/fastool/meta.yaml @@ -7,7 +7,9 @@ source: sha256: f86f02fced9479b77d6d27a442b66e66f0c55d40d5ad2ddd91a752de57024540 build: - number: 8 + number: 9 + run_exports: + - {{ pin_subpackage("fastool", max_pin="x.x") }} requirements: build: @@ -28,5 +30,8 @@ about: summary: A simple and quick tool to read huge FastQ and FastA files (both normal and gzipped) and manipulate them. extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 identifiers: - biotools:Fastool From d873ed1cecae0c25950b19f33ae6c171a965f746 Mon Sep 17 00:00:00 2001 From: raymond-u <36328498+raymond-u@users.noreply.github.com> Date: Tue, 6 Aug 2024 22:22:12 +0800 Subject: [PATCH 0810/1589] Update cospar to 0.4.1 (#49846) * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml --- recipes/cospar/meta.yaml | 60 ++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 33 deletions(-) diff --git a/recipes/cospar/meta.yaml b/recipes/cospar/meta.yaml index 01194971282e4..fda23a345219d 100644 --- a/recipes/cospar/meta.yaml +++ b/recipes/cospar/meta.yaml @@ -1,5 +1,5 @@ {% set name = "cospar" %} -{% set version = "0.3.3" %} +{% set version = "0.4.1" %} package: name: {{ name|lower }} @@ -7,59 +7,53 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/cospar-{{ version }}.tar.gz - sha256: 881ee97be1b1d7ecb6e642a91cc3f2f2d569bd410cc2d48a117ea48cde0ec345 + sha256: 36adadb839053189298a30b48e4726ba81efbc42d089e13d80da6b9001aac384 build: noarch: python - script: {{ PYTHON }} -m pip install . -vv + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation number: 0 run_exports: - {{ pin_subpackage('cospar', max_pin='x.x') }} requirements: host: - - python >=3.8 - - setuptools >=40.6.0 - - wheel + - python >=3.9,<3.12 + - poetry-core - pip - - matplotlib-base <3.8.0 - - scanpy >=1.6.0 - - fastcluster >=1.1.26 - - scikit-misc >=0.1.3 - - plotnine >=0.7.1 - - leidenalg >=0.7.0 - - ete3 >=3.1.2 - - ipywidgets - - gseapy >=0.9.13 run: - - python >=3.8 - - numpy >=1.19.4 - - scipy >=1.5.4 - - scikit-learn >=1.1.1 - - scanpy >=1.6.0 - - pandas >=1.1.4 - - statsmodels >=0.14.0 - - plotnine >=0.7.1 - - matplotlib-base <3.8.0 - - fastcluster >=1.1.26 - - anndata >=0.7.5 - - numba >=0.52.0 - - scikit-misc >=0.1.3 - - leidenalg >=0.7.0 - - ete3 >=3.1.2 - - ipywidgets - - gseapy >=0.9.13 + - python >=3.9,<3.12 + - anndata >=0.9.2,<0.10.0 + - ete3 >=3.1.3,<4.0.0 + - fastcluster >=1.2.6,<2.0.0 + - gseapy >=1.1.3,<2.0.0 + - leidenalg >=0.10.2,<0.11.0 + - matplotlib-base >=3.7.3,<3.8.0 + - numpy >=1.24.4,<2.0.0 + - pandas >=2.0.3,<3.0.0 + - plotnine >=0.12.4,<0.13.0 + - scanpy >=1.9.8,<2.0.0 + - scikit-learn >=1.1.3,<1.2.0 + - scikit-misc >=0.1.4,<0.3.0 + - scipy >=1.10.1,<2.0.0 + - statsmodels >=0.14.2,<0.15.0 + - tqdm >=4.66.5,<5.0.0 test: imports: - cospar + commands: + - pip check + requires: + - pip about: home: https://github.com/ShouWenWang-Lab/cospar - summary: 'CoSpar: integrating state and lineage information for dynamic inference' + summary: A toolkit for dynamic inference of cell fate by integrating state and lineage information. license: MIT license_file: LICENSE extra: recipe-maintainers: + - raymond-u - ShouWenWang From 2b164b2ad93222587a74a457fa5431f3f1429194 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 10:34:32 -0400 Subject: [PATCH 0811/1589] Update micom to 0.36.3 (#49848) --- recipes/micom/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/micom/meta.yaml b/recipes/micom/meta.yaml index 19788fb22ba0a..952d0e627826a 100644 --- a/recipes/micom/meta.yaml +++ b/recipes/micom/meta.yaml @@ -1,5 +1,5 @@ {% set name = "micom" %} -{% set version = "0.36.2" %} +{% set version = "0.36.3" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 0d046c51eb73c86d1f694853f99e7f4c86f1f3938af2932871412fea01fc9613 + sha256: 7fca46cd7886683d1e19587703b0f8ac80deea051f0d010c824e99e1c21b695d build: number: 0 From 8027d14dbba2d3159a8221dfe37b1381457cc97a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 12:01:12 -0400 Subject: [PATCH 0812/1589] Update tracegroomer to 0.1.4 (#49856) --- recipes/tracegroomer/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/tracegroomer/meta.yaml b/recipes/tracegroomer/meta.yaml index b85ee45217450..cba5bd1371551 100644 --- a/recipes/tracegroomer/meta.yaml +++ b/recipes/tracegroomer/meta.yaml @@ -1,5 +1,5 @@ {% set name = "tracegroomer" %} -{% set version = "0.1.3" %} +{% set version = "0.1.4" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/tracegroomer-{{ version }}.tar.gz - sha256: d81c872e9ca5f52d10413c4b9c0aff3aa54cc977125b531229dd8a1e4e6a5cdf + sha256: be87034d1ac14622ff361c39e363a842ace6d40ab3a70be62a9a38e29a593c70 build: entry_points: From 83d387d1e11890ee315cecb0c179b2ff95b76c4b Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 6 Aug 2024 19:02:24 +0300 Subject: [PATCH 0813/1589] sage-proteomics: add aarch64/arm64 builds (#49854) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/sage-proteomics/build.sh | 4 +++- recipes/sage-proteomics/meta.yaml | 7 +++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/recipes/sage-proteomics/build.sh b/recipes/sage-proteomics/build.sh index 0d6a1d40a3126..7e288ae106038 100644 --- a/recipes/sage-proteomics/build.sh +++ b/recipes/sage-proteomics/build.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -xe + export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 -fcommon -I${PREFIX}/include ${LDFLAGS}" @@ -8,4 +10,4 @@ export CXXFLAGS="${CXXFLAGS} -O3 -fcommon -I${PREFIX}/include ${LDFLAGS}" export CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_HOME="$(pwd)/.cargo" # build statically linked binary with sage -RUST_BACKTRACE=1 cargo install --verbose -j 4 --root ${PREFIX} --path crates/sage-cli +RUST_BACKTRACE=1 cargo install --verbose -j ${CPU_COUNT} --root ${PREFIX} --path crates/sage-cli diff --git a/recipes/sage-proteomics/meta.yaml b/recipes/sage-proteomics/meta.yaml index 2e26967970fd3..185875e7a26e2 100644 --- a/recipes/sage-proteomics/meta.yaml +++ b/recipes/sage-proteomics/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('sage-proteomics', max_pin="x") }} @@ -18,8 +18,8 @@ source: requirements: build: - {{ compiler('c') }} + - {{ compiler('rust') }} host: - - rust >=1.70.0 test: commands: @@ -35,6 +35,9 @@ about: summary: "Proteomics searching so fast it feels like magic." extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - ypriverol - lazear From 75cf4c7bfa60bbd03738e08d365312b1b3f40970 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 6 Aug 2024 19:02:40 +0300 Subject: [PATCH 0814/1589] irfinder: add aarch64/arm64 builds (#49853) * irfinder: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * irfinder: update the github repo Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/irfinder/build.sh | 8 +++++--- recipes/irfinder/meta.yaml | 15 ++++++++++++--- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/recipes/irfinder/build.sh b/recipes/irfinder/build.sh index 1a87af2d43087..be08c698e0e13 100644 --- a/recipes/irfinder/build.sh +++ b/recipes/irfinder/build.sh @@ -1,8 +1,10 @@ #!/bin/sh -cd $SRC_DIR/src/irfinder && make && mv irfinder $SRC_DIR/bin/util -cd $SRC_DIR/src/trim && make && mv trim $SRC_DIR/bin/util -cd $SRC_DIR/src/winflat && make && mv winflat $SRC_DIR/bin/util +set -xe + +cd $SRC_DIR/src/irfinder && make -j ${CPU_COUNT} && mv irfinder $SRC_DIR/bin/util +cd $SRC_DIR/src/trim && make -j ${CPU_COUNT} && mv trim $SRC_DIR/bin/util +cd $SRC_DIR/src/winflat && make -j ${CPU_COUNT} && mv winflat $SRC_DIR/bin/util irfinder_home=$PREFIX/opt/irfinder-$PKG_VERSION mkdir -p $irfinder_home diff --git a/recipes/irfinder/meta.yaml b/recipes/irfinder/meta.yaml index b041a98420745..7066b218a6a5e 100644 --- a/recipes/irfinder/meta.yaml +++ b/recipes/irfinder/meta.yaml @@ -5,11 +5,13 @@ package: version: '{{ version }}' source: - url: https://github.com/williamritchie/IRFinder/archive/v{{ version }}.tar.gz + url: https://github.com/dgaolab/IRFinder/archive/refs/tags/v{{version}}.tar.gz sha256: 94fee8fdac37a5d51ae459d1b06c8d6ed0107752bf2535f207f787e3246ba8b2 build: - number: 4 + number: 5 + run_exports: + - {{ pin_subpackage("irfinder", max_pin="x") }} requirements: build: @@ -24,7 +26,14 @@ test: - IRFinder -v about: - home: https://github.com/williamritchie/IRFinder + home: https://github.com/dgaolab/IRFinder license: MIT license_family: MIT summary: Intron Retention Finder + dev_url: https://github.com/dgaolab/IRFinder + doc_url: https://github.com/williamritchie/IRFinder/wiki + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From d985ee3cb12c138f190e1963e48da53ce186db8f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 16:50:08 -0400 Subject: [PATCH 0815/1589] Update perl-term-table to 0.022 (#43014) --- recipes/perl-term-table/meta.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/recipes/perl-term-table/meta.yaml b/recipes/perl-term-table/meta.yaml index f2e5c6f439f5b..90c7601d8941b 100644 --- a/recipes/perl-term-table/meta.yaml +++ b/recipes/perl-term-table/meta.yaml @@ -1,18 +1,20 @@ {% set name = "perl-term-table" %} -{% set version = "0.016" %} -{% set sha256 = "8fb4fbb8e96a2d6c514949eb8cfd7e66319bcb1cbf7cea0ab19af887a72d97bf" %} +{% set version = "0.022" %} +{% set sha256 = "b9dbdacfa7362846e3c4a100081832db9da74b7356828ef9d92869c44642e0b8" %} package: name: {{ name }} version: {{ version }} source: - url: https://cpan.metacpan.org/authors/id/E/EX/EXODIST/Term-Table-0.016.tar.gz + url: https://cpan.metacpan.org/authors/id/E/EX/EXODIST/Term-Table-0.022.tar.gz sha256: {{ sha256 }} build: noarch: generic number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x.x") }} requirements: build: From 1e9e9e038de4204990c698b3ac11022951e29ee9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 16:54:36 -0400 Subject: [PATCH 0816/1589] Update ms2query to 1.5.1 (#49858) --- recipes/ms2query/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ms2query/meta.yaml b/recipes/ms2query/meta.yaml index 7e0654830d053..d7cc514c1073a 100644 --- a/recipes/ms2query/meta.yaml +++ b/recipes/ms2query/meta.yaml @@ -1,6 +1,6 @@ {% set name = "ms2query" %} -{% set version = "1.5.0" %} -{% set sha256 = "7f72a7b2f4a6bf4b8d73e99e6708184decf34d36afe359fc38b3678561a44772" %} +{% set version = "1.5.1" %} +{% set sha256 = "cb1e46a18fa9bc75530975512f1e9fba40d1199d4e7203a4562261afd7b3f9bd" %} package: name: {{ name|lower }} From 33672b9b7a381d9d1d6fdfb25f047343d4d5cbdb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 16:55:23 -0400 Subject: [PATCH 0817/1589] Update chewbbaca to 3.3.10 (#49860) --- recipes/chewbbaca/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/chewbbaca/meta.yaml b/recipes/chewbbaca/meta.yaml index 0e07a8938b6ad..6b0161564da8c 100644 --- a/recipes/chewbbaca/meta.yaml +++ b/recipes/chewbbaca/meta.yaml @@ -1,5 +1,5 @@ {% set name = 'chewBBACA' %} -{% set version = '3.3.9' %} +{% set version = '3.3.10' %} package: name: {{ name|lower }} @@ -8,7 +8,7 @@ package: source: url: https://github.com/B-UMMI/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz # url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 7afef83a3e2bd7e451443073ce6f08bc2a9c2149ec9b23bc2be488553bc62169 + sha256: bb3f3bbc81d3469c36d2038302ee32964c630d261dd9e5954aa3fdcb46728c0c # sha256: b54c5f4fb2f3c943f9ec51e5b81f4fb9a312fcc87fdea6e0a9f3edbebdf62308 build: From b8898e1cc4e422295b0e4ab02c11d619ee406c3d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 16:58:10 -0400 Subject: [PATCH 0818/1589] Update phylodeep_data_bdss to 0.4 (#49859) --- recipes/phylodeep_data_bdss/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/phylodeep_data_bdss/meta.yaml b/recipes/phylodeep_data_bdss/meta.yaml index 7116090176840..e38d67480cc16 100644 --- a/recipes/phylodeep_data_bdss/meta.yaml +++ b/recipes/phylodeep_data_bdss/meta.yaml @@ -1,5 +1,5 @@ {% set name = "phylodeep_data_bdss" %} -{% set version = "0.3" %} +{% set version = "0.4" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 2af2db81208ac169ace415d0b4e68405a680283b744c450115f340e4bfa7071e + sha256: 2b97fb01e3babb969e786ba85074ab6799466903bbd351b3675b7099c3e17277 build: number: 0 From 70f29b274698f77aec82e011cf78aece35c98772 Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Tue, 6 Aug 2024 17:17:44 -0400 Subject: [PATCH 0819/1589] bump build number (#49847) --- recipes/blast/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/blast/meta.yaml b/recipes/blast/meta.yaml index a637fdd91d09e..da0a582f155e8 100644 --- a/recipes/blast/meta.yaml +++ b/recipes/blast/meta.yaml @@ -16,7 +16,7 @@ source: - update_configsub.patch build: - number: 1 + number: 2 run_exports: # Now, the point releases seem to be only bugfixes at least (but this definitely was not the # case up to v2.2.31) From 284abafd524622e96b90da1584047234e19c2b5b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 19:25:59 -0400 Subject: [PATCH 0820/1589] Update snakemake-storage-plugin-azure to 0.4.2 (#49862) --- recipes/snakemake-storage-plugin-azure/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-storage-plugin-azure/meta.yaml b/recipes/snakemake-storage-plugin-azure/meta.yaml index 1dbea32c465a1..09d9cb959f74e 100644 --- a/recipes/snakemake-storage-plugin-azure/meta.yaml +++ b/recipes/snakemake-storage-plugin-azure/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-storage-plugin-azure" %} -{% set version = "0.4.1" %} +{% set version = "0.4.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_storage_plugin_azure-{{ version }}.tar.gz - sha256: 5200670ee317a572aa8fe843847a3b9810da1584543b84f69b804b54802db11b + sha256: f1b0395e466fa2f6a20247a23c240b418240dbd6eaf7a55af3b34714594891f0 build: noarch: python From e5e9d1964cc129c691e5ea510f6d16cf30b394eb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 7 Aug 2024 02:14:04 -0400 Subject: [PATCH 0821/1589] Update seqerakit to 0.4.9 (#49863) --- recipes/seqerakit/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/seqerakit/meta.yaml b/recipes/seqerakit/meta.yaml index 1c05abe525a1c..115b311960b83 100644 --- a/recipes/seqerakit/meta.yaml +++ b/recipes/seqerakit/meta.yaml @@ -1,5 +1,5 @@ {% set name = "seqerakit" %} -{% set version = "0.4.8" %} +{% set version = "0.4.9" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/seqerakit-{{ version }}.tar.gz - sha256: 4d80b3e5230b1fbb29d191d36927fc59c696718447616cc9447cdf7bb5dafbbf + sha256: ecca8afc49498226a8c9ad81723a609ae324993e4352fd9561dd2ab657eff378 build: entry_points: From 3568a6aa33fec33d00329be357e33485089ddebf Mon Sep 17 00:00:00 2001 From: Anna Zhukova Date: Wed, 7 Aug 2024 09:12:03 +0200 Subject: [PATCH 0822/1589] Pybdei (#49526) * PyBDEI recipe * Added doi * Fixed name * fixing requirements > build * fixing requirements > build * fixing requirements > build * fixing requirements > build * package version constraints space-separated * added run_exports * version restriction formatting * version restriction formatting * avoiding wheel * added setuptools as build requirement * specified g++-10 * specified g++-10 * specified g++-10 * specified g++-10 * removed noarch * gxx * gxx * gxx * version 0.9 * numpy version * v0.10 * version 0.12 with the LICENCE file * gxx on linux * Update recipes/pybdei/meta.yaml Co-authored-by: Martin Grigorov * Update recipes/pybdei/meta.yaml Co-authored-by: Martin Grigorov * Update recipes/pybdei/meta.yaml Co-authored-by: Martin Grigorov * v0.13 * Update recipes/pybdei/meta.yaml Co-authored-by: Martin Grigorov --------- Co-authored-by: Martin Grigorov --- recipes/pybdei/meta.yaml | 68 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 recipes/pybdei/meta.yaml diff --git a/recipes/pybdei/meta.yaml b/recipes/pybdei/meta.yaml new file mode 100644 index 0000000000000..8b263e9ba7d22 --- /dev/null +++ b/recipes/pybdei/meta.yaml @@ -0,0 +1,68 @@ +{% set name = "pybdei" %} +{% set version = "0.13" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybdei-{{ version }}.tar.gz + sha256: 4fcd3950aa60a25538bb8716a88ed5d5b24f63b1deebf1828e2e0ea9ac45441f + +build: + script_env: + - CC=$CXX + entry_points: + - bdei_infer = pybdei.inference:main + - bdei_loglikelihood = pybdei.loglikelihood:main + - bdei_u = pybdei.u_calculator:main + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation --no-binary=pybdei + number: 0 + run_exports: + - {{ pin_subpackage('pybdei', max_pin="x.x") }} + +requirements: + build: + - {{ compiler('cxx') }} + host: + - python >=3.9 + - setuptools + - numpy >=1.24.0 + - pip + - nlopt + run: + - python >=3.9 + - ete3 >=3.1.3 + - scipy >=1.11.1 + - six >=1.16.0 + - treesimulator >=0.1.22 + - {{ pin_compatible('numpy >=1.24.0') }} + +test: + imports: + - pybdei + commands: + - pip check + - bdei_infer --help + - bdei_loglikelihood --help + - bdei_u --help + requires: + - pip + +about: + home: "https://github.com/evolbioinfo/bdei" + summary: "Maximum likelihood estimation of Birth-Death Exposed-Infectious (BDEI) epidemiological model parameters from phylogenetic trees." + description: | + PyBDEI provides tools for fast and accurate maximum likelihood estimation + of Birth-Death Exposed-Infectious (BDEI) epidemiological model parameters + from phylogenetic trees. + license: LGPL-2.1 + license_file: LICENSE + license_family: GPL2 + dev_url: https://github.com/evolbioinfo/bdei + +extra: + recipe-maintainers: + - annazhukova + identifiers: + - doi:10.1093/sysbio/syad059 \ No newline at end of file From c3adeb3de25843781a6194169838771f6a255fcd Mon Sep 17 00:00:00 2001 From: RolandFaure <64131971+RolandFaure@users.noreply.github.com> Date: Wed, 7 Aug 2024 10:38:30 +0200 Subject: [PATCH 0823/1589] Update Hairsplitter (#49855) * updated harisplitter * Pin libcxx to <18 for OSX Signed-off-by: Martin Tzvetanov Grigorov * Update SHA --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Grigorov --- recipes/hairsplitter/build.sh | 3 +++ recipes/hairsplitter/meta.yaml | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/recipes/hairsplitter/build.sh b/recipes/hairsplitter/build.sh index 978ddf0265bd8..98c511dc2b5c4 100644 --- a/recipes/hairsplitter/build.sh +++ b/recipes/hairsplitter/build.sh @@ -25,5 +25,8 @@ cp -r ../GraphUnzip/repolish.py $PREFIX/bin cp -r ../GraphUnzip/transform_gfa.py $PREFIX/bin cp -r ../GraphUnzip/input_output.py $PREFIX/bin cp -r ../GraphUnzip/determine_multiplicity.py $PREFIX/bin +cp -r ../GraphUnzip/solve_with_long_reads.py $PREFIX/bin +cp -r ../GraphUnzip/solve_with_HiC.py $PREFIX/bin +cp -r ../GraphUnzip/contig_DBG.py $PREFIX/bin chmod +x $PREFIX/bin/determine_multiplicity.py diff --git a/recipes/hairsplitter/meta.yaml b/recipes/hairsplitter/meta.yaml index a6711415add34..2b8fcd0ec6156 100644 --- a/recipes/hairsplitter/meta.yaml +++ b/recipes/hairsplitter/meta.yaml @@ -1,6 +1,6 @@ {% set name = "HairSplitter" %} -{% set version = "1.9.5" %} -{% set sha256 = "b05e9e6681056c18af7e136b3d537dac18a5ed24402612ca2173a4cced115c0b" %} +{% set version = "1.9.9" %} +{% set sha256 = "1eacdd1bf6a97a223c7a969ff9b77f1791e2866b1619c74f7badc89a9ce46dfe" %} package: name: {{ name|lower }} @@ -21,6 +21,7 @@ requirements: - make - openmp - {{ compiler('cxx') }} + - libcxx <18 # [osx] run: - python - scipy From 09970534e6e69f777a8d36c3edde84b7de0f7fa6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 7 Aug 2024 04:39:04 -0400 Subject: [PATCH 0824/1589] Update bamdash to 0.3.1 (#49865) --- recipes/bamdash/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/bamdash/meta.yaml b/recipes/bamdash/meta.yaml index c245a749ceb5c..e583fa3f821fc 100644 --- a/recipes/bamdash/meta.yaml +++ b/recipes/bamdash/meta.yaml @@ -1,5 +1,5 @@ {% set name = "bamdash" %} -{% set version = "0.3" %} +{% set version = "0.3.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/bamdash-{{ version }}.tar.gz - sha256: aca6cf247961b7d1e50afa7fe121056ed6039c918d68d8c816f60bc331a7d876 + sha256: db8ff295b8e16bb290e3cd53fa04aa86d9a2cfd18c053f62a6379bb6c8272b26 build: entry_points: From f87b3f95a8b6b19c7a4b4a4c8f59744ff813420b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20P=C5=99=C3=ADhoda?= Date: Wed, 7 Aug 2024 10:39:27 +0200 Subject: [PATCH 0825/1589] Bump up abnumber to 0.3.7 (#49864) --- recipes/abnumber/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/abnumber/meta.yaml b/recipes/abnumber/meta.yaml index bf1cba8ad94cf..e0f38f1c54682 100644 --- a/recipes/abnumber/meta.yaml +++ b/recipes/abnumber/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.3.6" %} # Remember to update sha256 below +{% set version = "0.3.7" %} # Remember to update sha256 below package: name: abnumber @@ -6,7 +6,7 @@ package: source: url: https://github.com/prihoda/abnumber/archive/v{{ version }}.tar.gz - sha256: 'a3120224ca340c224085a8311ee9d5515fccdbadb156d769918bf86e06890d7d' + sha256: '4c99804745202ddf7bdf3da1add8d043035aabb5064ee69c8ef7b734d925e2ae' build: noarch: python From 7bcd5951af40d0a7f7bb9eb0d8b749770341ea2a Mon Sep 17 00:00:00 2001 From: James Abbott Date: Wed, 7 Aug 2024 09:54:47 +0100 Subject: [PATCH 0826/1589] Add new recipe for bcgtree (#49757) * Add new recipe for bcgtree * Fix linting errors * Fix pinning syntax * Fix shebang lines and add python/bash as prereqs for helper scripts * Reduce pinnings - the muscle CLI has changed with V5 so this is the latest version supported by bcgTree * Update recipes/bcgtree/meta.yaml with subpackage pinning as recommended Co-authored-by: Martin Grigorov * Correct license details --------- Co-authored-by: Martin Grigorov --- recipes/bcgtree/build.sh | 18 +++++++++++++++++ recipes/bcgtree/meta.yaml | 42 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100755 recipes/bcgtree/build.sh create mode 100755 recipes/bcgtree/meta.yaml diff --git a/recipes/bcgtree/build.sh b/recipes/bcgtree/build.sh new file mode 100755 index 0000000000000..76615afda3810 --- /dev/null +++ b/recipes/bcgtree/build.sh @@ -0,0 +1,18 @@ +#!/bin/sh +set -e + +mkdir -pv "$PREFIX/bin" +mkdir -pv "$PREFIX/SeqFilter" +mkdir -pv "$PREFIX/data" +mkdir -pv "$PREFIX/lib" + +sed -i 's/\/usr\/bin\/perl/\/bin\/env perl/' bin/*.pl +sed -i 's/\/usr\/bin\/python/\/bin\/env python/' bin/*.py +sed -i 's/\/bin\/bash/\/bin\/env bash/' bin/*.sh + +cp bin/* "$PREFIX/bin/" +cp -R SeqFilter/* "$PREFIX/SeqFilter/" +cp -R data/* "$PREFIX/data/" +cp -R lib/* "$PREFIX/lib" + + diff --git a/recipes/bcgtree/meta.yaml b/recipes/bcgtree/meta.yaml new file mode 100755 index 0000000000000..b6650dcf4cf90 --- /dev/null +++ b/recipes/bcgtree/meta.yaml @@ -0,0 +1,42 @@ +{% set name = "bcgtree" %} +{% set version = "1.2.1" %} +{% set sha256 = "7739da7bf8e36933a45ee62e72cdf5988626595223baab96ec24a657a814b4a2" %} + +package: + name: '{{ name }}' + version: '{{ version }}' + +source: + url: https://github.com/molbiodiv/{{ name }}/archive/v{{ version }}.tar.gz + sha256: '{{ sha256 }}' + +build: + number: 0 + noarch: generic + run_exports: + - {{ pin_subpackage('bcgtree', max_pin="x") }} + +requirements: + host: + - perl + run: + - perl + - python + - bash + - prodigal + - hmmer + - muscle =3.8.1551 + - gblocks + - raxml + +test: + commands: + - bcgTree.pl --version + +about: + home: https://github.com/molbiodiv/{{ name }} + summary: Automatized phylogenetic tree building from bacterial core genomes + license: MIT + license_family: MIT + license_file: LICENSE + From 4ec4d33c8336740ac4363096deab5e998886c306 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 7 Aug 2024 06:02:54 -0400 Subject: [PATCH 0827/1589] Update mehari to 0.26.1 (#49867) --- recipes/mehari/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mehari/meta.yaml b/recipes/mehari/meta.yaml index 407cffb19171f..9f32745c748c1 100644 --- a/recipes/mehari/meta.yaml +++ b/recipes/mehari/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.26.0" %} -{% set sha256 = "b70c46074b8b2cadf20664cbea7f4c1e4628db531068d0f08c955c747540be32" %} +{% set version = "0.26.1" %} +{% set sha256 = "98d3aa2e219c9e6091c7e76a0bffd74d8ae2d4a96696984cb62739b0e718e537" %} package: name: mehari From ca14f8e6ff35d16711b029294649967d6129a4d2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 7 Aug 2024 08:11:18 -0400 Subject: [PATCH 0828/1589] Update crisprme to 2.1.5 (#49871) --- recipes/crisprme/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/crisprme/meta.yaml b/recipes/crisprme/meta.yaml index 6997ee9a682b8..77d798dc99338 100644 --- a/recipes/crisprme/meta.yaml +++ b/recipes/crisprme/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.1.4" %} +{% set version = "2.1.5" %} package: name: crisprme @@ -6,7 +6,7 @@ package: source: url: https://github.com/pinellolab/CRISPRme/archive/refs/tags/v{{ version }}.tar.gz - sha256: a2d8d374365ba90eeb81548b16b589f23bc9ee184cca447306efc12b3d1a97f8 + sha256: 788cca9caff4d9c3a3c7ace21a62891d052bd23513addd72c34dc577dde1e375 build: run_exports: From 21a49316a7221f3ba7c210d91a768da0c0d95e19 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 7 Aug 2024 08:11:45 -0400 Subject: [PATCH 0829/1589] Update r-oncopharmadb to 1.7.0 (#49872) --- recipes/r-oncopharmadb/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/r-oncopharmadb/meta.yaml b/recipes/r-oncopharmadb/meta.yaml index bbfbdc7933bbf..999f9600bc26a 100644 --- a/recipes/r-oncopharmadb/meta.yaml +++ b/recipes/r-oncopharmadb/meta.yaml @@ -1,5 +1,5 @@ {% set name = "r-oncopharmadb" %} -{% set version = "1.5.1" %} +{% set version = "1.7.0" %} {% set github = "https://github.com/sigven/oncoPharmaDB" %} package: @@ -8,7 +8,7 @@ package: source: url: https://github.com/sigven/pharmOncoX/archive/refs/tags/{{ version }}.tar.gz - sha256: 7765b9122063aeacd96db0c536141ab2e23a116a84e313b7264d707a09c92316 + sha256: 001e9b133028b00df90fa7081ad315fcb28be671ac7477cf6b689f0e0ca539fb build: number: 0 From 7478d57aa04e42ed438f2d3d66e2a77b63fd0a1e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 7 Aug 2024 10:37:58 -0400 Subject: [PATCH 0830/1589] Update sonicparanoid to 2.0.8 (#49866) --- recipes/sonicparanoid/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sonicparanoid/meta.yaml b/recipes/sonicparanoid/meta.yaml index bbcd6ab1811bf..8a7c121c39ac8 100644 --- a/recipes/sonicparanoid/meta.yaml +++ b/recipes/sonicparanoid/meta.yaml @@ -1,6 +1,6 @@ {% set name = "sonicparanoid" %} -{% set version = "2.0.7" %} -{% set sha256 = "634f4fa00d65c6c1c83a2bee35acaeabc097463d7b58099e523725b71e6d1a1b" %} +{% set version = "2.0.8" %} +{% set sha256 = "3649ca513f3ad72f495ccd3aa9871ca9e7bdc0bef21b4efa9e93eeae405c24c2" %} package: name: {{ name|lower }} From c6ffe3f80cc463ce1c104436490d8a4bef8427e9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 7 Aug 2024 10:39:30 -0400 Subject: [PATCH 0831/1589] Update hybkit to 0.3.6 (#49873) --- recipes/hybkit/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/hybkit/meta.yaml b/recipes/hybkit/meta.yaml index e350da1a32f29..ccf29b84b5449 100644 --- a/recipes/hybkit/meta.yaml +++ b/recipes/hybkit/meta.yaml @@ -1,5 +1,5 @@ {% set name = "hybkit" %} -{% set version = "0.3.4" %} +{% set version = "0.3.6" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/RenneLab/hybkit/archive/v{{ version }}.tar.gz - sha256: 6f42b1e116dd668b5fd2847691bc6b78cf641f9c1aae91ca752e6df6d18022cd + sha256: 8b977039da3c6f915215111f9f9c591734f8a18aa447a23c7c3b442caacface8 build: noarch: python From 01850fb9302f3649cc8b6bed3a3a75a8cb695eaa Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 7 Aug 2024 18:25:58 +0300 Subject: [PATCH 0832/1589] metamdbg: add linux-aarch64 support (#49833) * metamdbg: add linux-aarch64 support Signed-off-by: Martin Tzvetanov Grigorov * Use libgomp instead of openmp for Linux Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/metamdbg/build.sh | 3 ++- recipes/metamdbg/meta.yaml | 11 +++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/recipes/metamdbg/build.sh b/recipes/metamdbg/build.sh index 6ca4ef93a91f9..70ccacb85cb1e 100644 --- a/recipes/metamdbg/build.sh +++ b/recipes/metamdbg/build.sh @@ -1,5 +1,6 @@ #!/bin/bash +set -xe mkdir -p $PREFIX/bin @@ -9,6 +10,6 @@ mkdir build cd build cmake .. -make +make -j ${CPU_COUNT} cp ./bin/metaMDBG $PREFIX/bin diff --git a/recipes/metamdbg/meta.yaml b/recipes/metamdbg/meta.yaml index 3d46090812f17..1465c0636bde5 100644 --- a/recipes/metamdbg/meta.yaml +++ b/recipes/metamdbg/meta.yaml @@ -10,7 +10,7 @@ source: build: skip: True # [osx] - number: 0 + number: 1 run_exports: - {{ pin_subpackage('metamdbg', max_pin="x.x") }} @@ -21,11 +21,11 @@ requirements: - make host: - zlib - - openmp + - libgomp run: - zlib - - openmp - - minimap2 =2.24 + - libgomp + - minimap2 =2.28 - time =1.8 test: @@ -37,3 +37,6 @@ about: license: MIT summary: 'MetaMDBG: a lightweight assembler for long and accurate metagenomics reads.' +extra: + additional-platforms: + - linux-aarch64 From ee027f14dc21a4d227fa3a742f5224939655e692 Mon Sep 17 00:00:00 2001 From: Li Song Date: Wed, 7 Aug 2024 11:26:10 -0400 Subject: [PATCH 0833/1589] Add arm64 support to Chromap (#49816) * Add arm64 to Chromap * chromap: Use sse2neon.h for aarch64/arm64 support Signed-off-by: Martin Tzvetanov Grigorov * Fix the path to the patch * Update recipes/chromap/build.sh --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Grigorov --- recipes/chromap/build.sh | 14 +- recipes/chromap/chromap-aarch64.patch | 9339 +++++++++++++++++++++++++ recipes/chromap/meta.yaml | 9 +- 3 files changed, 9359 insertions(+), 3 deletions(-) create mode 100644 recipes/chromap/chromap-aarch64.patch diff --git a/recipes/chromap/build.sh b/recipes/chromap/build.sh index 85c7748feac5e..fd60e56ba057e 100644 --- a/recipes/chromap/build.sh +++ b/recipes/chromap/build.sh @@ -1,5 +1,15 @@ #!/bin/bash -# -msse4.1 needed for _mm_min_epi32 -make CXX=$CXX CXXFLAGS="-O3 -Wall -I$PREFIX/include -std=c++11 -msse4.1 -fopenmp" LDFLAGS="-L$PREFIX/lib -lm -lz" + +set -xe +case $(uname -m) in + x86_64) + # -msse4.1 needed for _mm_min_epi32 + ARCH_OPTS="-msse4.1" + ;; + *) + ;; +esac + +make -j ${CPU_COUNT} CXX=$CXX CXXFLAGS="-O3 -Wall -I$PREFIX/include -std=c++11 ${ARCH_OPTS} -fopenmp" LDFLAGS="-L$PREFIX/lib -lm -lz" mkdir -p $PREFIX/bin mv chromap $PREFIX/bin diff --git a/recipes/chromap/chromap-aarch64.patch b/recipes/chromap/chromap-aarch64.patch new file mode 100644 index 0000000000000..f7683e7c8badc --- /dev/null +++ b/recipes/chromap/chromap-aarch64.patch @@ -0,0 +1,9339 @@ +diff --git c/src/alignment.cc i/src/alignment.cc +index 8abb4a6..a71f434 100644 +--- c/src/alignment.cc ++++ i/src/alignment.cc +@@ -1,6 +1,10 @@ + #include "alignment.h" + ++#ifdef __ARM_NEON ++#include "sse2neon.h" ++#else + #include ++#endif + + namespace chromap { + +diff --git c/src/ksw.cc i/src/ksw.cc +index 26cdb04..a5b7432 100644 +--- c/src/ksw.cc ++++ i/src/ksw.cc +@@ -26,7 +26,12 @@ + #include + #include + #include ++#ifdef __ARM_NEON ++#include "sse2neon.h" ++#else + #include ++#endif ++ + #include "ksw.h" + #include "sequence_batch.h" + +diff --git c/src/sse2neon.h i/src/sse2neon.h +new file mode 100644 +index 0000000..2b12721 +--- /dev/null ++++ i/src/sse2neon.h +@@ -0,0 +1,9301 @@ ++#ifndef SSE2NEON_H ++#define SSE2NEON_H ++ ++/* ++ * sse2neon is freely redistributable under the MIT License. ++ * ++ * Copyright (c) 2015-2024 SSE2NEON Contributors. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a copy ++ * of this software and associated documentation files (the "Software"), to deal ++ * in the Software without restriction, including without limitation the rights ++ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ++ * copies of the Software, and to permit persons to whom the Software is ++ * furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice shall be included in ++ * all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++ * SOFTWARE. ++ */ ++ ++// This header file provides a simple API translation layer ++// between SSE intrinsics to their corresponding Arm/Aarch64 NEON versions ++// ++// Contributors to this work are: ++// John W. Ratcliff ++// Brandon Rowlett ++// Ken Fast ++// Eric van Beurden ++// Alexander Potylitsin ++// Hasindu Gamaarachchi ++// Jim Huang ++// Mark Cheng ++// Malcolm James MacLeod ++// Devin Hussey (easyaspi314) ++// Sebastian Pop ++// Developer Ecosystem Engineering ++// Danila Kutenin ++// François Turban (JishinMaster) ++// Pei-Hsuan Hung ++// Yang-Hao Yuan ++// Syoyo Fujita ++// Brecht Van Lommel ++// Jonathan Hue ++// Cuda Chen ++// Aymen Qader ++// Anthony Roberts ++ ++/* Tunable configurations */ ++ ++/* Enable precise implementation of math operations ++ * This would slow down the computation a bit, but gives consistent result with ++ * x86 SSE. (e.g. would solve a hole or NaN pixel in the rendering result) ++ */ ++/* _mm_min|max_ps|ss|pd|sd */ ++#ifndef SSE2NEON_PRECISE_MINMAX ++#define SSE2NEON_PRECISE_MINMAX (0) ++#endif ++/* _mm_rcp_ps */ ++#ifndef SSE2NEON_PRECISE_DIV ++#define SSE2NEON_PRECISE_DIV (0) ++#endif ++/* _mm_sqrt_ps and _mm_rsqrt_ps */ ++#ifndef SSE2NEON_PRECISE_SQRT ++#define SSE2NEON_PRECISE_SQRT (0) ++#endif ++/* _mm_dp_pd */ ++#ifndef SSE2NEON_PRECISE_DP ++#define SSE2NEON_PRECISE_DP (0) ++#endif ++ ++/* Enable inclusion of windows.h on MSVC platforms ++ * This makes _mm_clflush functional on windows, as there is no builtin. ++ */ ++#ifndef SSE2NEON_INCLUDE_WINDOWS_H ++#define SSE2NEON_INCLUDE_WINDOWS_H (0) ++#endif ++ ++/* compiler specific definitions */ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma push_macro("FORCE_INLINE") ++#pragma push_macro("ALIGN_STRUCT") ++#define FORCE_INLINE static inline __attribute__((always_inline)) ++#define ALIGN_STRUCT(x) __attribute__((aligned(x))) ++#define _sse2neon_likely(x) __builtin_expect(!!(x), 1) ++#define _sse2neon_unlikely(x) __builtin_expect(!!(x), 0) ++#elif defined(_MSC_VER) ++#if _MSVC_TRADITIONAL ++#error Using the traditional MSVC preprocessor is not supported! Use /Zc:preprocessor instead. ++#endif ++#ifndef FORCE_INLINE ++#define FORCE_INLINE static inline ++#endif ++#ifndef ALIGN_STRUCT ++#define ALIGN_STRUCT(x) __declspec(align(x)) ++#endif ++#define _sse2neon_likely(x) (x) ++#define _sse2neon_unlikely(x) (x) ++#else ++#pragma message("Macro name collisions may happen with unsupported compilers.") ++#endif ++ ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma push_macro("FORCE_INLINE_OPTNONE") ++#define FORCE_INLINE_OPTNONE static inline __attribute__((optimize("O0"))) ++#elif defined(__clang__) ++#pragma push_macro("FORCE_INLINE_OPTNONE") ++#define FORCE_INLINE_OPTNONE static inline __attribute__((optnone)) ++#else ++#define FORCE_INLINE_OPTNONE FORCE_INLINE ++#endif ++ ++#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ < 10 ++#warning "GCC versions earlier than 10 are not supported." ++#endif ++ ++/* C language does not allow initializing a variable with a function call. */ ++#ifdef __cplusplus ++#define _sse2neon_const static const ++#else ++#define _sse2neon_const const ++#endif ++ ++#include ++#include ++ ++#if defined(_WIN32) ++/* Definitions for _mm_{malloc,free} are provided by ++ * from both MinGW-w64 and MSVC. ++ */ ++#define SSE2NEON_ALLOC_DEFINED ++#endif ++ ++/* If using MSVC */ ++#ifdef _MSC_VER ++#include ++#if SSE2NEON_INCLUDE_WINDOWS_H ++#include ++#include ++#endif ++ ++#if !defined(__cplusplus) ++#error SSE2NEON only supports C++ compilation with this compiler ++#endif ++ ++#ifdef SSE2NEON_ALLOC_DEFINED ++#include ++#endif ++ ++#if (defined(_M_AMD64) || defined(__x86_64__)) || \ ++ (defined(_M_ARM64) || defined(__arm64__)) ++#define SSE2NEON_HAS_BITSCAN64 ++#endif ++#endif ++ ++#if defined(__GNUC__) || defined(__clang__) ++#define _sse2neon_define0(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define1(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define2(type, a, b, body) \ ++ __extension__({ \ ++ type _a = (a), _b = (b); \ ++ body \ ++ }) ++#define _sse2neon_return(ret) (ret) ++#else ++#define _sse2neon_define0(type, a, body) [=](type _a) { body }(a) ++#define _sse2neon_define1(type, a, body) [](type _a) { body }(a) ++#define _sse2neon_define2(type, a, b, body) \ ++ [](type _a, type _b) { body }((a), (b)) ++#define _sse2neon_return(ret) return ret ++#endif ++ ++#define _sse2neon_init(...) \ ++ { \ ++ __VA_ARGS__ \ ++ } ++ ++/* Compiler barrier */ ++#if defined(_MSC_VER) ++#define SSE2NEON_BARRIER() _ReadWriteBarrier() ++#else ++#define SSE2NEON_BARRIER() \ ++ do { \ ++ __asm__ __volatile__("" ::: "memory"); \ ++ (void) 0; \ ++ } while (0) ++#endif ++ ++/* Memory barriers ++ * __atomic_thread_fence does not include a compiler barrier; instead, ++ * the barrier is part of __atomic_load/__atomic_store's "volatile-like" ++ * semantics. ++ */ ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) ++#include ++#endif ++ ++FORCE_INLINE void _sse2neon_smp_mb(void) ++{ ++ SSE2NEON_BARRIER(); ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && \ ++ !defined(__STDC_NO_ATOMICS__) ++ atomic_thread_fence(memory_order_seq_cst); ++#elif defined(__GNUC__) || defined(__clang__) ++ __atomic_thread_fence(__ATOMIC_SEQ_CST); ++#else /* MSVC */ ++ __dmb(_ARM64_BARRIER_ISH); ++#endif ++} ++ ++/* Architecture-specific build options */ ++/* FIXME: #pragma GCC push_options is only available on GCC */ ++#if defined(__GNUC__) ++#if defined(__arm__) && __ARM_ARCH == 7 ++/* According to ARM C Language Extensions Architecture specification, ++ * __ARM_NEON is defined to a value indicating the Advanced SIMD (NEON) ++ * architecture supported. ++ */ ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error "You must enable NEON instructions (e.g. -mfpu=neon) to use SSE2NEON." ++#endif ++#if !defined(__clang__) ++#pragma GCC push_options ++#pragma GCC target("fpu=neon") ++#endif ++#elif defined(__aarch64__) || defined(_M_ARM64) ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#pragma GCC target("+simd") ++#endif ++#elif __ARM_ARCH == 8 ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error \ ++ "You must enable NEON instructions (e.g. -mfpu=neon-fp-armv8) to use SSE2NEON." ++#endif ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#endif ++#else ++#error \ ++ "Unsupported target. Must be either ARMv7-A+NEON or ARMv8-A \ ++(you could try setting target explicitly with -march or -mcpu)" ++#endif ++#endif ++ ++#include ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) && (__ARM_ARCH == 8) ++#if defined __has_include && __has_include() ++#include ++#endif ++#endif ++ ++/* Apple Silicon cache lines are double of what is commonly used by Intel, AMD ++ * and other Arm microarchitectures use. ++ * From sysctl -a on Apple M1: ++ * hw.cachelinesize: 128 ++ */ ++#if defined(__APPLE__) && (defined(__aarch64__) || defined(__arm64__)) ++#define SSE2NEON_CACHELINE_SIZE 128 ++#else ++#define SSE2NEON_CACHELINE_SIZE 64 ++#endif ++ ++/* Rounding functions require either Aarch64 instructions or libm fallback */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#include ++#endif ++ ++/* On ARMv7, some registers, such as PMUSERENR and PMCCNTR, are read-only ++ * or even not accessible in user mode. ++ * To write or access to these registers in user mode, ++ * we have to perform syscall instead. ++ */ ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) ++#include ++#endif ++ ++/* "__has_builtin" can be used to query support for built-in functions ++ * provided by gcc/clang and other compilers that support it. ++ */ ++#ifndef __has_builtin /* GCC prior to 10 or non-clang compilers */ ++/* Compatibility with gcc <= 9 */ ++#if defined(__GNUC__) && (__GNUC__ <= 9) ++#define __has_builtin(x) HAS##x ++#define HAS__builtin_popcount 1 ++#define HAS__builtin_popcountll 1 ++ ++// __builtin_shuffle introduced in GCC 4.7.0 ++#if (__GNUC__ >= 5) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) ++#define HAS__builtin_shuffle 1 ++#else ++#define HAS__builtin_shuffle 0 ++#endif ++ ++#define HAS__builtin_shufflevector 0 ++#define HAS__builtin_nontemporal_store 0 ++#else ++#define __has_builtin(x) 0 ++#endif ++#endif ++ ++/** ++ * MACRO for shuffle parameter for _mm_shuffle_ps(). ++ * Argument fp3 is a digit[0123] that represents the fp from argument "b" ++ * of mm_shuffle_ps that will be placed in fp3 of result. fp2 is the same ++ * for fp2 in result. fp1 is a digit[0123] that represents the fp from ++ * argument "a" of mm_shuffle_ps that will be places in fp1 of result. ++ * fp0 is the same for fp0 of result. ++ */ ++#define _MM_SHUFFLE(fp3, fp2, fp1, fp0) \ ++ (((fp3) << 6) | ((fp2) << 4) | ((fp1) << 2) | ((fp0))) ++ ++#if __has_builtin(__builtin_shufflevector) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __builtin_shufflevector(a, b, __VA_ARGS__) ++#elif __has_builtin(__builtin_shuffle) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __extension__({ \ ++ type tmp = {__VA_ARGS__}; \ ++ __builtin_shuffle(a, b, tmp); \ ++ }) ++#endif ++ ++#ifdef _sse2neon_shuffle ++#define vshuffle_s16(a, b, ...) _sse2neon_shuffle(int16x4_t, a, b, __VA_ARGS__) ++#define vshuffleq_s16(a, b, ...) _sse2neon_shuffle(int16x8_t, a, b, __VA_ARGS__) ++#define vshuffle_s32(a, b, ...) _sse2neon_shuffle(int32x2_t, a, b, __VA_ARGS__) ++#define vshuffleq_s32(a, b, ...) _sse2neon_shuffle(int32x4_t, a, b, __VA_ARGS__) ++#define vshuffle_s64(a, b, ...) _sse2neon_shuffle(int64x1_t, a, b, __VA_ARGS__) ++#define vshuffleq_s64(a, b, ...) _sse2neon_shuffle(int64x2_t, a, b, __VA_ARGS__) ++#endif ++ ++/* Rounding mode macros. */ ++#define _MM_FROUND_TO_NEAREST_INT 0x00 ++#define _MM_FROUND_TO_NEG_INF 0x01 ++#define _MM_FROUND_TO_POS_INF 0x02 ++#define _MM_FROUND_TO_ZERO 0x03 ++#define _MM_FROUND_CUR_DIRECTION 0x04 ++#define _MM_FROUND_NO_EXC 0x08 ++#define _MM_FROUND_RAISE_EXC 0x00 ++#define _MM_FROUND_NINT (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_FLOOR (_MM_FROUND_TO_NEG_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_CEIL (_MM_FROUND_TO_POS_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_TRUNC (_MM_FROUND_TO_ZERO | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_RINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_NEARBYINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_NO_EXC) ++#define _MM_ROUND_NEAREST 0x0000 ++#define _MM_ROUND_DOWN 0x2000 ++#define _MM_ROUND_UP 0x4000 ++#define _MM_ROUND_TOWARD_ZERO 0x6000 ++/* Flush zero mode macros. */ ++#define _MM_FLUSH_ZERO_MASK 0x8000 ++#define _MM_FLUSH_ZERO_ON 0x8000 ++#define _MM_FLUSH_ZERO_OFF 0x0000 ++/* Denormals are zeros mode macros. */ ++#define _MM_DENORMALS_ZERO_MASK 0x0040 ++#define _MM_DENORMALS_ZERO_ON 0x0040 ++#define _MM_DENORMALS_ZERO_OFF 0x0000 ++ ++/* indicate immediate constant argument in a given range */ ++#define __constrange(a, b) const ++ ++/* A few intrinsics accept traditional data types like ints or floats, but ++ * most operate on data types that are specific to SSE. ++ * If a vector type ends in d, it contains doubles, and if it does not have ++ * a suffix, it contains floats. An integer vector type can contain any type ++ * of integer, from chars to shorts to unsigned long longs. ++ */ ++typedef int64x1_t __m64; ++typedef float32x4_t __m128; /* 128-bit vector containing 4 floats */ ++// On ARM 32-bit architecture, the float64x2_t is not supported. ++// The data type __m128d should be represented in a different way for related ++// intrinsic conversion. ++#if defined(__aarch64__) || defined(_M_ARM64) ++typedef float64x2_t __m128d; /* 128-bit vector containing 2 doubles */ ++#else ++typedef float32x4_t __m128d; ++#endif ++typedef int64x2_t __m128i; /* 128-bit vector containing integers */ ++ ++// Some intrinsics operate on unaligned data types. ++typedef int16_t ALIGN_STRUCT(1) unaligned_int16_t; ++typedef int32_t ALIGN_STRUCT(1) unaligned_int32_t; ++typedef int64_t ALIGN_STRUCT(1) unaligned_int64_t; ++ ++// __int64 is defined in the Intrinsics Guide which maps to different datatype ++// in different data model ++#if !(defined(_WIN32) || defined(_WIN64) || defined(__int64)) ++#if (defined(__x86_64__) || defined(__i386__)) ++#define __int64 long long ++#else ++#define __int64 int64_t ++#endif ++#endif ++ ++/* type-safe casting between types */ ++ ++#define vreinterpretq_m128_f16(x) vreinterpretq_f32_f16(x) ++#define vreinterpretq_m128_f32(x) (x) ++#define vreinterpretq_m128_f64(x) vreinterpretq_f32_f64(x) ++ ++#define vreinterpretq_m128_u8(x) vreinterpretq_f32_u8(x) ++#define vreinterpretq_m128_u16(x) vreinterpretq_f32_u16(x) ++#define vreinterpretq_m128_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128_s8(x) vreinterpretq_f32_s8(x) ++#define vreinterpretq_m128_s16(x) vreinterpretq_f32_s16(x) ++#define vreinterpretq_m128_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_f16_m128(x) vreinterpretq_f16_f32(x) ++#define vreinterpretq_f32_m128(x) (x) ++#define vreinterpretq_f64_m128(x) vreinterpretq_f64_f32(x) ++ ++#define vreinterpretq_u8_m128(x) vreinterpretq_u8_f32(x) ++#define vreinterpretq_u16_m128(x) vreinterpretq_u16_f32(x) ++#define vreinterpretq_u32_m128(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_s8_m128(x) vreinterpretq_s8_f32(x) ++#define vreinterpretq_s16_m128(x) vreinterpretq_s16_f32(x) ++#define vreinterpretq_s32_m128(x) vreinterpretq_s32_f32(x) ++#define vreinterpretq_s64_m128(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_m128i_s8(x) vreinterpretq_s64_s8(x) ++#define vreinterpretq_m128i_s16(x) vreinterpretq_s64_s16(x) ++#define vreinterpretq_m128i_s32(x) vreinterpretq_s64_s32(x) ++#define vreinterpretq_m128i_s64(x) (x) ++ ++#define vreinterpretq_m128i_u8(x) vreinterpretq_s64_u8(x) ++#define vreinterpretq_m128i_u16(x) vreinterpretq_s64_u16(x) ++#define vreinterpretq_m128i_u32(x) vreinterpretq_s64_u32(x) ++#define vreinterpretq_m128i_u64(x) vreinterpretq_s64_u64(x) ++ ++#define vreinterpretq_f32_m128i(x) vreinterpretq_f32_s64(x) ++#define vreinterpretq_f64_m128i(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_s8_m128i(x) vreinterpretq_s8_s64(x) ++#define vreinterpretq_s16_m128i(x) vreinterpretq_s16_s64(x) ++#define vreinterpretq_s32_m128i(x) vreinterpretq_s32_s64(x) ++#define vreinterpretq_s64_m128i(x) (x) ++ ++#define vreinterpretq_u8_m128i(x) vreinterpretq_u8_s64(x) ++#define vreinterpretq_u16_m128i(x) vreinterpretq_u16_s64(x) ++#define vreinterpretq_u32_m128i(x) vreinterpretq_u32_s64(x) ++#define vreinterpretq_u64_m128i(x) vreinterpretq_u64_s64(x) ++ ++#define vreinterpret_m64_s8(x) vreinterpret_s64_s8(x) ++#define vreinterpret_m64_s16(x) vreinterpret_s64_s16(x) ++#define vreinterpret_m64_s32(x) vreinterpret_s64_s32(x) ++#define vreinterpret_m64_s64(x) (x) ++ ++#define vreinterpret_m64_u8(x) vreinterpret_s64_u8(x) ++#define vreinterpret_m64_u16(x) vreinterpret_s64_u16(x) ++#define vreinterpret_m64_u32(x) vreinterpret_s64_u32(x) ++#define vreinterpret_m64_u64(x) vreinterpret_s64_u64(x) ++ ++#define vreinterpret_m64_f16(x) vreinterpret_s64_f16(x) ++#define vreinterpret_m64_f32(x) vreinterpret_s64_f32(x) ++#define vreinterpret_m64_f64(x) vreinterpret_s64_f64(x) ++ ++#define vreinterpret_u8_m64(x) vreinterpret_u8_s64(x) ++#define vreinterpret_u16_m64(x) vreinterpret_u16_s64(x) ++#define vreinterpret_u32_m64(x) vreinterpret_u32_s64(x) ++#define vreinterpret_u64_m64(x) vreinterpret_u64_s64(x) ++ ++#define vreinterpret_s8_m64(x) vreinterpret_s8_s64(x) ++#define vreinterpret_s16_m64(x) vreinterpret_s16_s64(x) ++#define vreinterpret_s32_m64(x) vreinterpret_s32_s64(x) ++#define vreinterpret_s64_m64(x) (x) ++ ++#define vreinterpret_f32_m64(x) vreinterpret_f32_s64(x) ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f64_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f64_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) vreinterpretq_f64_f32(x) ++#define vreinterpretq_m128d_f64(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f64(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f64(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f64(x) ++ ++#define vreinterpretq_f64_m128d(x) (x) ++#define vreinterpretq_f32_m128d(x) vreinterpretq_f32_f64(x) ++#else ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_m128d_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_f32_m128d(x) (x) ++#endif ++ ++// A struct is defined in this header file called 'SIMDVec' which can be used ++// by applications which attempt to access the contents of an __m128 struct ++// directly. It is important to note that accessing the __m128 struct directly ++// is bad coding practice by Microsoft: @see: ++// https://learn.microsoft.com/en-us/cpp/cpp/m128 ++// ++// However, some legacy source code may try to access the contents of an __m128 ++// struct directly so the developer can use the SIMDVec as an alias for it. Any ++// casting must be done manually by the developer, as you cannot cast or ++// otherwise alias the base NEON data type for intrinsic operations. ++// ++// union intended to allow direct access to an __m128 variable using the names ++// that the MSVC compiler provides. This union should really only be used when ++// trying to access the members of the vector as integer values. GCC/clang ++// allow native access to the float members through a simple array access ++// operator (in C since 4.6, in C++ since 4.8). ++// ++// Ideally direct accesses to SIMD vectors should not be used since it can cause ++// a performance hit. If it really is needed however, the original __m128 ++// variable can be aliased with a pointer to this union and used to access ++// individual components. The use of this union should be hidden behind a macro ++// that is used throughout the codebase to access the members instead of always ++// declaring this type of variable. ++typedef union ALIGN_STRUCT(16) SIMDVec { ++ float m128_f32[4]; // as floats - DON'T USE. Added for convenience. ++ int8_t m128_i8[16]; // as signed 8-bit integers. ++ int16_t m128_i16[8]; // as signed 16-bit integers. ++ int32_t m128_i32[4]; // as signed 32-bit integers. ++ int64_t m128_i64[2]; // as signed 64-bit integers. ++ uint8_t m128_u8[16]; // as unsigned 8-bit integers. ++ uint16_t m128_u16[8]; // as unsigned 16-bit integers. ++ uint32_t m128_u32[4]; // as unsigned 32-bit integers. ++ uint64_t m128_u64[2]; // as unsigned 64-bit integers. ++} SIMDVec; ++ ++// casting using SIMDVec ++#define vreinterpretq_nth_u64_m128i(x, n) (((SIMDVec *) &x)->m128_u64[n]) ++#define vreinterpretq_nth_u32_m128i(x, n) (((SIMDVec *) &x)->m128_u32[n]) ++#define vreinterpretq_nth_u8_m128i(x, n) (((SIMDVec *) &x)->m128_u8[n]) ++ ++/* SSE macros */ ++#define _MM_GET_FLUSH_ZERO_MODE _sse2neon_mm_get_flush_zero_mode ++#define _MM_SET_FLUSH_ZERO_MODE _sse2neon_mm_set_flush_zero_mode ++#define _MM_GET_DENORMALS_ZERO_MODE _sse2neon_mm_get_denormals_zero_mode ++#define _MM_SET_DENORMALS_ZERO_MODE _sse2neon_mm_set_denormals_zero_mode ++ ++// Function declaration ++// SSE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void); ++FORCE_INLINE __m128 _mm_move_ss(__m128, __m128); ++FORCE_INLINE __m128 _mm_or_ps(__m128, __m128); ++FORCE_INLINE __m128 _mm_set_ps1(float); ++FORCE_INLINE __m128 _mm_setzero_ps(void); ++// SSE2 ++FORCE_INLINE __m128i _mm_and_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_castps_si128(__m128); ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128); ++FORCE_INLINE __m128d _mm_move_sd(__m128d, __m128d); ++FORCE_INLINE __m128i _mm_or_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_set_epi32(int, int, int, int); ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t, int64_t); ++FORCE_INLINE __m128d _mm_set_pd(double, double); ++FORCE_INLINE __m128i _mm_set1_epi32(int); ++FORCE_INLINE __m128i _mm_setzero_si128(void); ++// SSE4.1 ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d); ++FORCE_INLINE __m128 _mm_ceil_ps(__m128); ++FORCE_INLINE __m128d _mm_floor_pd(__m128d); ++FORCE_INLINE __m128 _mm_floor_ps(__m128); ++FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d, int); ++FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128, int); ++// SSE4.2 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t, uint8_t); ++ ++/* Backwards compatibility for compilers with lack of specific type support */ ++ ++// Older gcc does not define vld1q_u8_x4 type ++#if defined(__GNUC__) && !defined(__clang__) && \ ++ ((__GNUC__ <= 13 && defined(__arm__)) || \ ++ (__GNUC__ == 10 && __GNUC_MINOR__ < 3 && defined(__aarch64__)) || \ ++ (__GNUC__ <= 9 && defined(__aarch64__))) ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ uint8x16x4_t ret; ++ ret.val[0] = vld1q_u8(p + 0); ++ ret.val[1] = vld1q_u8(p + 16); ++ ret.val[2] = vld1q_u8(p + 32); ++ ret.val[3] = vld1q_u8(p + 48); ++ return ret; ++} ++#else ++// Wraps vld1q_u8_x4 ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ return vld1q_u8_x4(p); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddv u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ const uint64x1_t v1 = vpaddl_u32(vpaddl_u16(vpaddl_u8(v8))); ++ return vget_lane_u8(vreinterpret_u8_u64(v1), 0); ++} ++#else ++// Wraps vaddv_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ return vaddv_u8(v8); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ uint8x8_t tmp = vpadd_u8(vget_low_u8(a), vget_high_u8(a)); ++ uint8_t res = 0; ++ for (int i = 0; i < 8; ++i) ++ res += tmp[i]; ++ return res; ++} ++#else ++// Wraps vaddvq_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ return vaddvq_u8(a); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u16 variant */ ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ uint32x4_t m = vpaddlq_u16(a); ++ uint64x2_t n = vpaddlq_u32(m); ++ uint64x1_t o = vget_low_u64(n) + vget_high_u64(n); ++ ++ return vget_lane_u32((uint32x2_t) o, 0); ++} ++#else ++// Wraps vaddvq_u16 ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ return vaddvq_u16(a); ++} ++#endif ++ ++/* Function Naming Conventions ++ * The naming convention of SSE intrinsics is straightforward. A generic SSE ++ * intrinsic function is given as follows: ++ * _mm__ ++ * ++ * The parts of this format are given as follows: ++ * 1. describes the operation performed by the intrinsic ++ * 2. identifies the data type of the function's primary arguments ++ * ++ * This last part, , is a little complicated. It identifies the ++ * content of the input values, and can be set to any of the following values: ++ * + ps - vectors contain floats (ps stands for packed single-precision) ++ * + pd - vectors contain doubles (pd stands for packed double-precision) ++ * + epi8/epi16/epi32/epi64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * signed integers ++ * + epu8/epu16/epu32/epu64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * unsigned integers ++ * + si128 - unspecified 128-bit vector or 256-bit vector ++ * + m128/m128i/m128d - identifies input vector types when they are different ++ * than the type of the returned vector ++ * ++ * For example, _mm_setzero_ps. The _mm implies that the function returns ++ * a 128-bit vector. The _ps at the end implies that the argument vectors ++ * contain floats. ++ * ++ * A complete example: Byte Shuffle - pshufb (_mm_shuffle_epi8) ++ * // Set packed 16-bit integers. 128 bits, 8 short, per 16 bits ++ * __m128i v_in = _mm_setr_epi16(1, 2, 3, 4, 5, 6, 7, 8); ++ * // Set packed 8-bit integers ++ * // 128 bits, 16 chars, per 8 bits ++ * __m128i v_perm = _mm_setr_epi8(1, 0, 2, 3, 8, 9, 10, 11, ++ * 4, 5, 12, 13, 6, 7, 14, 15); ++ * // Shuffle packed 8-bit integers ++ * __m128i v_out = _mm_shuffle_epi8(v_in, v_perm); // pshufb ++ */ ++ ++/* Constants for use with _mm_prefetch. */ ++enum _mm_hint { ++ _MM_HINT_NTA = 0, /* load data to L1 and L2 cache, mark it as NTA */ ++ _MM_HINT_T0 = 1, /* load data to L1 and L2 cache */ ++ _MM_HINT_T1 = 2, /* load data to L2 cache only */ ++ _MM_HINT_T2 = 3, /* load data to L2 cache only, mark it as NTA */ ++}; ++ ++// The bit field mapping to the FPCR(floating-point control register) ++typedef struct { ++ uint16_t res0; ++ uint8_t res1 : 6; ++ uint8_t bit22 : 1; ++ uint8_t bit23 : 1; ++ uint8_t bit24 : 1; ++ uint8_t res2 : 7; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32_t res3; ++#endif ++} fpcr_bitfield; ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of b and places it into the high end of the result. ++FORCE_INLINE __m128 _mm_shuffle_ps_1032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in high ++// end of result takes the higher two 32 bit values from b and swaps them and ++// places in low end of result. ++FORCE_INLINE __m128 _mm_shuffle_ps_2301(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b23 = vrev64_f32(vget_high_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b23)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0321(__m128 a, __m128 b) ++{ ++ float32x2_t a21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a21, b03)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2103(__m128 a, __m128 b) ++{ ++ float32x2_t a03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a03, b21)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0101(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b01)); ++} ++ ++// keeps the low 64 bits of b in the low and puts the high 64 bits of a in the ++// high ++FORCE_INLINE __m128 _mm_shuffle_ps_3210(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0011(__m128 a, __m128 b) ++{ ++ float32x2_t a11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a11, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0022(__m128 a, __m128 b) ++{ ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a22, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2200(__m128 a, __m128 b) ++{ ++ float32x2_t a00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a00, b22)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_3202(__m128 a, __m128 b) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t a02 = vset_lane_f32(a0, a22, 1); /* TODO: use vzip ?*/ ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a02, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1133(__m128 a, __m128 b) ++{ ++ float32x2_t a33 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a33, b11)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b20)); ++} ++ ++// For MSVC, we check only if it is ARM64, as every single ARM64 processor ++// supported by WoA has crypto extensions. If this changes in the future, ++// this can be verified via the runtime-only method of: ++// IsProcessorFeaturePresent(PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE) ++#if (defined(_M_ARM64) && !defined(__clang__)) || \ ++ (defined(__ARM_FEATURE_CRYPTO) && \ ++ (defined(__aarch64__) || __has_builtin(__builtin_arm_crypto_vmullp64))) ++// Wraps vmull_p64 ++FORCE_INLINE uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly64_t a = vget_lane_p64(vreinterpret_p64_u64(_a), 0); ++ poly64_t b = vget_lane_p64(vreinterpret_p64_u64(_b), 0); ++#if defined(_MSC_VER) ++ __n64 a1 = {a}, b1 = {b}; ++ return vreinterpretq_u64_p128(vmull_p64(a1, b1)); ++#else ++ return vreinterpretq_u64_p128(vmull_p64(a, b)); ++#endif ++} ++#else // ARMv7 polyfill ++// ARMv7/some A64 lacks vmull_p64, but it has vmull_p8. ++// ++// vmull_p8 calculates 8 8-bit->16-bit polynomial multiplies, but we need a ++// 64-bit->128-bit polynomial multiply. ++// ++// It needs some work and is somewhat slow, but it is still faster than all ++// known scalar methods. ++// ++// Algorithm adapted to C from ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/, which is adapted ++// from "Fast Software Polynomial Multiplication on ARM Processors Using the ++// NEON Engine" by Danilo Camara, Conrado Gouvea, Julio Lopez and Ricardo Dahab ++// (https://hal.inria.fr/hal-01506572) ++static uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly8x8_t a = vreinterpret_p8_u64(_a); ++ poly8x8_t b = vreinterpret_p8_u64(_b); ++ ++ // Masks ++ uint8x16_t k48_32 = vcombine_u8(vcreate_u8(0x0000ffffffffffff), ++ vcreate_u8(0x00000000ffffffff)); ++ uint8x16_t k16_00 = vcombine_u8(vcreate_u8(0x000000000000ffff), ++ vcreate_u8(0x0000000000000000)); ++ ++ // Do the multiplies, rotating with vext to get all combinations ++ uint8x16_t d = vreinterpretq_u8_p16(vmull_p8(a, b)); // D = A0 * B0 ++ uint8x16_t e = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 1))); // E = A0 * B1 ++ uint8x16_t f = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 1), b)); // F = A1 * B0 ++ uint8x16_t g = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 2))); // G = A0 * B2 ++ uint8x16_t h = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 2), b)); // H = A2 * B0 ++ uint8x16_t i = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 3))); // I = A0 * B3 ++ uint8x16_t j = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 3), b)); // J = A3 * B0 ++ uint8x16_t k = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 4))); // L = A0 * B4 ++ ++ // Add cross products ++ uint8x16_t l = veorq_u8(e, f); // L = E + F ++ uint8x16_t m = veorq_u8(g, h); // M = G + H ++ uint8x16_t n = veorq_u8(i, j); // N = I + J ++ ++ // Interleave. Using vzip1 and vzip2 prevents Clang from emitting TBL ++ // instructions. ++#if defined(__aarch64__) ++ uint8x16_t lm_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t lm_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t nk_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++ uint8x16_t nk_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++#else ++ uint8x16_t lm_p0 = vcombine_u8(vget_low_u8(l), vget_low_u8(m)); ++ uint8x16_t lm_p1 = vcombine_u8(vget_high_u8(l), vget_high_u8(m)); ++ uint8x16_t nk_p0 = vcombine_u8(vget_low_u8(n), vget_low_u8(k)); ++ uint8x16_t nk_p1 = vcombine_u8(vget_high_u8(n), vget_high_u8(k)); ++#endif ++ // t0 = (L) (P0 + P1) << 8 ++ // t1 = (M) (P2 + P3) << 16 ++ uint8x16_t t0t1_tmp = veorq_u8(lm_p0, lm_p1); ++ uint8x16_t t0t1_h = vandq_u8(lm_p1, k48_32); ++ uint8x16_t t0t1_l = veorq_u8(t0t1_tmp, t0t1_h); ++ ++ // t2 = (N) (P4 + P5) << 24 ++ // t3 = (K) (P6 + P7) << 32 ++ uint8x16_t t2t3_tmp = veorq_u8(nk_p0, nk_p1); ++ uint8x16_t t2t3_h = vandq_u8(nk_p1, k16_00); ++ uint8x16_t t2t3_l = veorq_u8(t2t3_tmp, t2t3_h); ++ ++ // De-interleave ++#if defined(__aarch64__) ++ uint8x16_t t0 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t1 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t2 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++ uint8x16_t t3 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++#else ++ uint8x16_t t1 = vcombine_u8(vget_high_u8(t0t1_l), vget_high_u8(t0t1_h)); ++ uint8x16_t t0 = vcombine_u8(vget_low_u8(t0t1_l), vget_low_u8(t0t1_h)); ++ uint8x16_t t3 = vcombine_u8(vget_high_u8(t2t3_l), vget_high_u8(t2t3_h)); ++ uint8x16_t t2 = vcombine_u8(vget_low_u8(t2t3_l), vget_low_u8(t2t3_h)); ++#endif ++ // Shift the cross products ++ uint8x16_t t0_shift = vextq_u8(t0, t0, 15); // t0 << 8 ++ uint8x16_t t1_shift = vextq_u8(t1, t1, 14); // t1 << 16 ++ uint8x16_t t2_shift = vextq_u8(t2, t2, 13); // t2 << 24 ++ uint8x16_t t3_shift = vextq_u8(t3, t3, 12); // t3 << 32 ++ ++ // Accumulate the products ++ uint8x16_t cross1 = veorq_u8(t0_shift, t1_shift); ++ uint8x16_t cross2 = veorq_u8(t2_shift, t3_shift); ++ uint8x16_t mix = veorq_u8(d, cross1); ++ uint8x16_t r = veorq_u8(mix, cross2); ++ return vreinterpretq_u64_u8(r); ++} ++#endif // ARMv7 polyfill ++ ++// C equivalent: ++// __m128i _mm_shuffle_epi32_default(__m128i a, ++// __constrange(0, 255) int imm) { ++// __m128i ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = a[(imm >> 4) & 0x03]; ret[3] = a[(imm >> 6) & 0x03]; ++// return ret; ++// } ++#define _mm_shuffle_epi32_default(a, imm) \ ++ vreinterpretq_m128i_s32(vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), \ ++ ((imm) >> 2) & 0x3), \ ++ vmovq_n_s32(vgetq_lane_s32( \ ++ vreinterpretq_s32_m128i(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of a and places it into the high end of the result. ++FORCE_INLINE __m128i _mm_shuffle_epi_1032(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in low end ++// of result takes the higher two 32 bit values from a and swaps them and places ++// in high end of result. ++FORCE_INLINE __m128i _mm_shuffle_epi_2301(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a23 = vrev64_s32(vget_high_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a23)); ++} ++ ++// rotates the least significant 32 bits into the most significant 32 bits, and ++// shifts the rest down ++FORCE_INLINE __m128i _mm_shuffle_epi_0321(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 1)); ++} ++ ++// rotates the most significant 32 bits into the least significant 32 bits, and ++// shifts the rest up ++FORCE_INLINE __m128i _mm_shuffle_epi_2103(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 3)); ++} ++ ++// gets the lower 64 bits of a, and places it in the upper 64 bits ++// gets the lower 64 bits of a and places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1010(__m128i a) ++{ ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a10, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements, and places it in the ++// lower 64 bits gets the lower 64 bits of a, and places it in the upper 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1001(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements and places it in the ++// upper 64 bits gets the lower 64 bits of a, swaps the 0 and 1 elements, and ++// places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_0101(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_2211(__m128i a) ++{ ++ int32x2_t a11 = vdup_lane_s32(vget_low_s32(vreinterpretq_s32_m128i(a)), 1); ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ return vreinterpretq_m128i_s32(vcombine_s32(a11, a22)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_0122(__m128i a) ++{ ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a22, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_3332(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a33 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 1); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a33)); ++} ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32(vdupq_laneq_s32(vreinterpretq_s32_m128i(a), (imm))) ++#else ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vdupq_n_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)))) ++#endif ++ ++// NEON does not support a general purpose permute intrinsic. ++// Shuffle single-precision (32-bit) floating-point elements in a using the ++// control in imm8, and store the results in dst. ++// ++// C equivalent: ++// __m128 _mm_shuffle_ps_default(__m128 a, __m128 b, ++// __constrange(0, 255) int imm) { ++// __m128 ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = b[(imm >> 4) & 0x03]; ret[3] = b[(imm >> 6) & 0x03]; ++// return ret; ++// } ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_ps ++#define _mm_shuffle_ps_default(a, b, imm) \ ++ vreinterpretq_m128_f32(vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), ((imm) >> 2) & 0x3), \ ++ vmovq_n_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Shuffle 16-bit integers in the low 64 bits of a using the control in imm8. ++// Store the results in the low 64 bits of dst, with the high 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflelo_epi16 ++#define _mm_shufflelo_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t lowBits = vget_low_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, (imm) & (0x3)), ret, 0); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++// Shuffle 16-bit integers in the high 64 bits of a using the control in imm8. ++// Store the results in the high 64 bits of dst, with the low 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflehi_epi16 ++#define _mm_shufflehi_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t highBits = vget_high_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, (imm) & (0x3)), ret, 4); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 2) & 0x3), ret, \ ++ 5); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 4) & 0x3), ret, \ ++ 6); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 6) & 0x3), ret, \ ++ 7); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++/* MMX */ ++ ++//_mm_empty is a no-op on arm ++FORCE_INLINE void _mm_empty(void) {} ++ ++/* SSE */ ++ ++// Add packed single-precision (32-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ps ++FORCE_INLINE __m128 _mm_add_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Add the lower single-precision (32-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ss ++FORCE_INLINE __m128 _mm_add_ss(__m128 a, __m128 b) ++{ ++ float32_t b0 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++ float32x4_t value = vsetq_lane_f32(b0, vdupq_n_f32(0), 0); ++ // the upper values in the result must be the remnants of . ++ return vreinterpretq_m128_f32(vaddq_f32(a, value)); ++} ++ ++// Compute the bitwise AND of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_ps ++FORCE_INLINE __m128 _mm_and_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vandq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Compute the bitwise NOT of packed single-precision (32-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_ps ++FORCE_INLINE __m128 _mm_andnot_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vbicq_s32(vreinterpretq_s32_m128(b), ++ vreinterpretq_s32_m128(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu16 ++FORCE_INLINE __m64 _mm_avg_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16( ++ vrhadd_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu8 ++FORCE_INLINE __m64 _mm_avg_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vrhadd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ps ++FORCE_INLINE __m128 _mm_cmpeq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ss ++FORCE_INLINE __m128 _mm_cmpeq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpeq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ps ++FORCE_INLINE __m128 _mm_cmpge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ss ++FORCE_INLINE __m128 _mm_cmpge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ps ++FORCE_INLINE __m128 _mm_cmpgt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ss ++FORCE_INLINE __m128 _mm_cmpgt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpgt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ps ++FORCE_INLINE __m128 _mm_cmple_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ss ++FORCE_INLINE __m128 _mm_cmple_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmple_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ps ++FORCE_INLINE __m128 _mm_cmplt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ss ++FORCE_INLINE __m128 _mm_cmplt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmplt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ps ++FORCE_INLINE __m128 _mm_cmpneq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ss ++FORCE_INLINE __m128 _mm_cmpneq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpneq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ps ++FORCE_INLINE __m128 _mm_cmpnge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ss ++FORCE_INLINE __m128 _mm_cmpnge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ps ++FORCE_INLINE __m128 _mm_cmpngt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ss ++FORCE_INLINE __m128 _mm_cmpngt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpngt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ps ++FORCE_INLINE __m128 _mm_cmpnle_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ss ++FORCE_INLINE __m128 _mm_cmpnle_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnle_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ps ++FORCE_INLINE __m128 _mm_cmpnlt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ss ++FORCE_INLINE __m128 _mm_cmpnlt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnlt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ps ++// ++// See also: ++// http://stackoverflow.com/questions/8627331/what-does-ordered-unordered-comparison-mean ++// http://stackoverflow.com/questions/29349621/neon-isnanval-intrinsics ++FORCE_INLINE __m128 _mm_cmpord_ps(__m128 a, __m128 b) ++{ ++ // Note: NEON does not have ordered compare builtin ++ // Need to compare a eq a and b eq b to check for NaN ++ // Do AND of results to get final ++ uint32x4_t ceqaa = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t ceqbb = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vandq_u32(ceqaa, ceqbb)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ss ++FORCE_INLINE __m128 _mm_cmpord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpord_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ps ++FORCE_INLINE __m128 _mm_cmpunord_ps(__m128 a, __m128 b) ++{ ++ uint32x4_t f32a = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t f32b = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vmvnq_u32(vandq_u32(f32a, f32b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ss ++FORCE_INLINE __m128 _mm_cmpunord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpunord_ps(a, b)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_ss ++FORCE_INLINE int _mm_comieq_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_eq_b = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_eq_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_ss ++FORCE_INLINE int _mm_comige_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_ge_b = ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_ge_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_ss ++FORCE_INLINE int _mm_comigt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_gt_b = ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_gt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_ss ++FORCE_INLINE int _mm_comile_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_le_b = ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_le_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_ss ++FORCE_INLINE int _mm_comilt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_lt_b = ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_lt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_ss ++FORCE_INLINE int _mm_comineq_ss(__m128 a, __m128 b) ++{ ++ return !_mm_comieq_ss(a, b); ++} ++ ++// Convert packed signed 32-bit integers in b to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, and copy the upper 2 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_pi2ps ++FORCE_INLINE __m128 _mm_cvt_pi2ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ps2pi ++FORCE_INLINE __m64 _mm_cvt_ps2pi(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))))); ++#else ++ return vreinterpret_m64_s32(vcvt_s32_f32(vget_low_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION))))); ++#endif ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_si2ss ++FORCE_INLINE __m128 _mm_cvt_si2ss(__m128 a, int b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ss2si ++FORCE_INLINE int _mm_cvt_ss2si(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vgetq_lane_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))), ++ 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int32_t) data; ++#endif ++} ++ ++// Convert packed 16-bit integers in a to packed single-precision (32-bit) ++// floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi16_ps ++FORCE_INLINE __m128 _mm_cvtpi16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vmovl_s16(vreinterpret_s16_m64(a)))); ++} ++ ++// Convert packed 32-bit integers in b to packed single-precision (32-bit) ++// floating-point elements, store the results in the lower 2 elements of dst, ++// and copy the upper 2 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_ps ++FORCE_INLINE __m128 _mm_cvtpi32_ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, then convert the packed signed 32-bit integers in b to ++// single-precision (32-bit) floating-point element, and store the results in ++// the upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32x2_ps ++FORCE_INLINE __m128 _mm_cvtpi32x2_ps(__m64 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vcombine_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b)))); ++} ++ ++// Convert the lower packed 8-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi8_ps ++FORCE_INLINE __m128 _mm_cvtpi8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vmovl_s16(vget_low_s16(vmovl_s8(vreinterpret_s8_m64(a)))))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 16-bit integers, and store the results in dst. Note: this intrinsic ++// will generate 0x7FFF, rather than 0x8000, for input values between 0x7FFF and ++// 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi16 ++FORCE_INLINE __m64 _mm_cvtps_pi16(__m128 a) ++{ ++ return vreinterpret_m64_s16( ++ vqmovn_s32(vreinterpretq_s32_m128i(_mm_cvtps_epi32(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi32 ++#define _mm_cvtps_pi32(a) _mm_cvt_ps2pi(a) ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 8-bit integers, and store the results in lower 4 elements of dst. ++// Note: this intrinsic will generate 0x7F, rather than 0x80, for input values ++// between 0x7F and 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi8 ++FORCE_INLINE __m64 _mm_cvtps_pi8(__m128 a) ++{ ++ return vreinterpret_m64_s8(vqmovn_s16( ++ vcombine_s16(vreinterpret_s16_m64(_mm_cvtps_pi16(a)), vdup_n_s16(0)))); ++} ++ ++// Convert packed unsigned 16-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu16_ps ++FORCE_INLINE __m128 _mm_cvtpu16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_u32(vmovl_u16(vreinterpret_u16_m64(a)))); ++} ++ ++// Convert the lower packed unsigned 8-bit integers in a to packed ++// single-precision (32-bit) floating-point elements, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu8_ps ++FORCE_INLINE __m128 _mm_cvtpu8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_u32( ++ vmovl_u16(vget_low_u16(vmovl_u8(vreinterpret_u8_m64(a)))))); ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_ss ++#define _mm_cvtsi32_ss(a, b) _mm_cvt_si2ss(a, b) ++ ++// Convert the signed 64-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_ss ++FORCE_INLINE __m128 _mm_cvtsi64_ss(__m128 a, int64_t b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Copy the lower single-precision (32-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_f32 ++FORCE_INLINE float _mm_cvtss_f32(__m128 a) ++{ ++ return vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si32 ++#define _mm_cvtss_si32(a) _mm_cvt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si64 ++FORCE_INLINE int64_t _mm_cvtss_si64(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return (int64_t) vgetq_lane_f32(vrndiq_f32(vreinterpretq_f32_m128(a)), 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int64_t) data; ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ps2pi ++FORCE_INLINE __m64 _mm_cvtt_ps2pi(__m128 a) ++{ ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ss2si ++FORCE_INLINE int _mm_cvtt_ss2si(__m128 a) ++{ ++ return vgetq_lane_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)), 0); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_pi32 ++#define _mm_cvttps_pi32(a) _mm_cvtt_ps2pi(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si32 ++#define _mm_cvttss_si32(a) _mm_cvtt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si64 ++FORCE_INLINE int64_t _mm_cvttss_si64(__m128 a) ++{ ++ return (int64_t) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Divide packed single-precision (32-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise division intrinsic, we implement ++// division by multiplying a by b's reciprocal before using the Newton-Raphson ++// method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ps ++FORCE_INLINE __m128 _mm_div_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vdivq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(b)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(a), recip)); ++#endif ++} ++ ++// Divide the lower single-precision (32-bit) floating-point element in a by the ++// lower single-precision (32-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper 3 packed elements from a to ++// the upper elements of dst. ++// Warning: ARMv7-A does not produce the same result compared to Intel and not ++// IEEE-compliant. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ss ++FORCE_INLINE __m128 _mm_div_ss(__m128 a, __m128 b) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_div_ps(a, b)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_pi16 ++#define _mm_extract_pi16(a, imm) \ ++ (int32_t) vget_lane_u16(vreinterpret_u16_m64(a), (imm)) ++ ++// Free aligned memory that was allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_free ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void _mm_free(void *addr) ++{ ++ free(addr); ++} ++#endif ++ ++FORCE_INLINE uint64_t _sse2neon_get_fpcr(void) ++{ ++ uint64_t value; ++#if defined(_MSC_VER) ++ value = _ReadStatusReg(ARM64_FPCR); ++#else ++ __asm__ __volatile__("mrs %0, FPCR" : "=r"(value)); /* read */ ++#endif ++ return value; ++} ++ ++FORCE_INLINE void _sse2neon_set_fpcr(uint64_t value) ++{ ++#if defined(_MSC_VER) ++ _WriteStatusReg(ARM64_FPCR, value); ++#else ++ __asm__ __volatile__("msr FPCR, %0" ::"r"(value)); /* write */ ++#endif ++} ++ ++// Macro: Get the flush zero bits from the MXCSR control and status register. ++// The flush zero may contain any of the following flags: _MM_FLUSH_ZERO_ON or ++// _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_FLUSH_ZERO_MODE ++FORCE_INLINE unsigned int _sse2neon_mm_get_flush_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_FLUSH_ZERO_ON : _MM_FLUSH_ZERO_OFF; ++} ++ ++// Macro: Get the rounding mode bits from the MXCSR control and status register. ++// The rounding mode may contain any of the following flags: _MM_ROUND_NEAREST, ++// _MM_ROUND_DOWN, _MM_ROUND_UP, _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_ROUNDING_MODE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ if (r.field.bit22) { ++ return r.field.bit23 ? _MM_ROUND_TOWARD_ZERO : _MM_ROUND_UP; ++ } else { ++ return r.field.bit23 ? _MM_ROUND_DOWN : _MM_ROUND_NEAREST; ++ } ++} ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_pi16 ++#define _mm_insert_pi16(a, b, imm) \ ++ vreinterpret_m64_s16(vset_lane_s16((b), vreinterpret_s16_m64(a), (imm))) ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps ++FORCE_INLINE __m128 _mm_load_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// ++// dst[31:0] := MEM[mem_addr+31:mem_addr] ++// dst[63:32] := MEM[mem_addr+31:mem_addr] ++// dst[95:64] := MEM[mem_addr+31:mem_addr] ++// dst[127:96] := MEM[mem_addr+31:mem_addr] ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps1 ++#define _mm_load_ps1 _mm_load1_ps ++ ++// Load a single-precision (32-bit) floating-point element from memory into the ++// lower of dst, and zero the upper 3 elements. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ss ++FORCE_INLINE __m128 _mm_load_ss(const float *p) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(*p, vdupq_n_f32(0), 0)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_ps ++FORCE_INLINE __m128 _mm_load1_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_dup_f32(p)); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// upper 2 elements of dst, and copy the lower 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pi ++FORCE_INLINE __m128 _mm_loadh_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vget_low_f32(a), vld1_f32((const float32_t *) p))); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// lower 2 elements of dst, and copy the upper 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pi ++FORCE_INLINE __m128 _mm_loadl_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vld1_f32((const float32_t *) p), vget_high_f32(a))); ++} ++ ++// Load 4 single-precision (32-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_ps ++FORCE_INLINE __m128 _mm_loadr_ps(const float *p) ++{ ++ float32x4_t v = vrev64q_f32(vld1q_f32(p)); ++ return vreinterpretq_m128_f32(vextq_f32(v, v, 2)); ++} ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_ps ++FORCE_INLINE __m128 _mm_loadu_ps(const float *p) ++{ ++ // for neon, alignment doesn't matter, so _mm_load_ps and _mm_loadu_ps are ++ // equivalent for neon ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load unaligned 16-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si16 ++FORCE_INLINE __m128i _mm_loadu_si16(const void *p) ++{ ++ return vreinterpretq_m128i_s16( ++ vsetq_lane_s16(*(const unaligned_int16_t *) p, vdupq_n_s16(0), 0)); ++} ++ ++// Load unaligned 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si64 ++FORCE_INLINE __m128i _mm_loadu_si64(const void *p) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(*(const unaligned_int64_t *) p, vdupq_n_s64(0), 0)); ++} ++ ++// Allocate size bytes of memory, aligned to the alignment specified in align, ++// and return a pointer to the allocated memory. _mm_free should be used to free ++// memory that is allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_malloc ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void *_mm_malloc(size_t size, size_t align) ++{ ++ void *ptr; ++ if (align == 1) ++ return malloc(size); ++ if (align == 2 || (sizeof(void *) == 8 && align == 4)) ++ align = sizeof(void *); ++ if (!posix_memalign(&ptr, align, size)) ++ return ptr; ++ return NULL; ++} ++#endif ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmove_si64 ++FORCE_INLINE void _mm_maskmove_si64(__m64 a, __m64 mask, char *mem_addr) ++{ ++ int8x8_t shr_mask = vshr_n_s8(vreinterpret_s8_m64(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x8_t masked = ++ vbsl_s8(vreinterpret_u8_s8(shr_mask), vreinterpret_s8_m64(a), ++ vreinterpret_s8_u64(vget_low_u64(vreinterpretq_u64_m128(b)))); ++ vst1_s8((int8_t *) mem_addr, masked); ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_maskmovq ++#define _m_maskmovq(a, mask, mem_addr) _mm_maskmove_si64(a, mask, mem_addr) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pi16 ++FORCE_INLINE __m64 _mm_max_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmax_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) maximum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ps ++FORCE_INLINE __m128 _mm_max_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcgtq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vmaxq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pu8 ++FORCE_INLINE __m64 _mm_max_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmax_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) maximum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ss ++FORCE_INLINE __m128 _mm_max_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_max_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pi16 ++FORCE_INLINE __m64 _mm_min_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmin_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) minimum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ps ++FORCE_INLINE __m128 _mm_min_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcltq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vminq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pu8 ++FORCE_INLINE __m64 _mm_min_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmin_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) minimum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ss ++FORCE_INLINE __m128 _mm_min_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_min_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the lower single-precision (32-bit) floating-point element from b to the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_ss ++FORCE_INLINE __m128 _mm_move_ss(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(vgetq_lane_f32(vreinterpretq_f32_m128(b), 0), ++ vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the upper 2 single-precision (32-bit) floating-point elements from b to ++// the lower 2 elements of dst, and copy the upper 2 elements from a to the ++// upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehl_ps ++FORCE_INLINE __m128 _mm_movehl_ps(__m128 a, __m128 b) ++{ ++#if defined(aarch64__) ++ return vreinterpretq_m128_u64( ++ vzip2q_u64(vreinterpretq_u64_m128(b), vreinterpretq_u64_m128(a))); ++#else ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(b32, a32)); ++#endif ++} ++ ++// Move the lower 2 single-precision (32-bit) floating-point elements from b to ++// the upper 2 elements of dst, and copy the lower 2 elements from a to the ++// lower 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movelh_ps ++FORCE_INLINE __m128 _mm_movelh_ps(__m128 __A, __m128 __B) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(__A)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(__B)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pi8 ++FORCE_INLINE int _mm_movemask_pi8(__m64 a) ++{ ++ uint8x8_t input = vreinterpret_u8_m64(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int8_t shift[8] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint8x8_t tmp = vshr_n_u8(input, 7); ++ return vaddv_u8(vshl_u8(tmp, vld1_s8(shift))); ++#else ++ // Refer the implementation of `_mm_movemask_epi8` ++ uint16x4_t high_bits = vreinterpret_u16_u8(vshr_n_u8(input, 7)); ++ uint32x2_t paired16 = ++ vreinterpret_u32_u16(vsra_n_u16(high_bits, high_bits, 7)); ++ uint8x8_t paired32 = ++ vreinterpret_u8_u32(vsra_n_u32(paired16, paired16, 14)); ++ return vget_lane_u8(paired32, 0) | ((int) vget_lane_u8(paired32, 4) << 4); ++#endif ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed single-precision (32-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_ps ++FORCE_INLINE int _mm_movemask_ps(__m128 a) ++{ ++ uint32x4_t input = vreinterpretq_u32_m128(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int32_t shift[4] = {0, 1, 2, 3}; ++ uint32x4_t tmp = vshrq_n_u32(input, 31); ++ return vaddvq_u32(vshlq_u32(tmp, vld1q_s32(shift))); ++#else ++ // Uses the exact same method as _mm_movemask_epi8, see that for details. ++ // Shift out everything but the sign bits with a 32-bit unsigned shift ++ // right. ++ uint64x2_t high_bits = vreinterpretq_u64_u32(vshrq_n_u32(input, 31)); ++ // Merge the two pairs together with a 64-bit unsigned shift right + add. ++ uint8x16_t paired = ++ vreinterpretq_u8_u64(vsraq_n_u64(high_bits, high_bits, 31)); ++ // Extract the result. ++ return vgetq_lane_u8(paired, 0) | (vgetq_lane_u8(paired, 8) << 2); ++#endif ++} ++ ++// Multiply packed single-precision (32-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ps ++FORCE_INLINE_OPTNONE __m128 _mm_mul_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vmulq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Multiply the lower single-precision (32-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ss ++FORCE_INLINE __m128 _mm_mul_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_mul_ps(a, b)); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_pu16 ++FORCE_INLINE __m64 _mm_mulhi_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16(vshrn_n_u32( ++ vmull_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b)), 16)); ++} ++ ++// Compute the bitwise OR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_ps ++FORCE_INLINE __m128 _mm_or_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vorrq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgb ++#define _m_pavgb(a, b) _mm_avg_pu8(a, b) ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgw ++#define _m_pavgw(a, b) _mm_avg_pu16(a, b) ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pextrw ++#define _m_pextrw(a, imm) _mm_extract_pi16(a, imm) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_pinsrw ++#define _m_pinsrw(a, i, imm) _mm_insert_pi16(a, i, imm) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxsw ++#define _m_pmaxsw(a, b) _mm_max_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxub ++#define _m_pmaxub(a, b) _mm_max_pu8(a, b) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminsw ++#define _m_pminsw(a, b) _mm_min_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminub ++#define _m_pminub(a, b) _mm_min_pu8(a, b) ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmovmskb ++#define _m_pmovmskb(a) _mm_movemask_pi8(a) ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmulhuw ++#define _m_pmulhuw(a, b) _mm_mulhi_pu16(a, b) ++ ++// Fetch the line of data from memory that contains address p to a location in ++// the cache hierarchy specified by the locality hint i. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_prefetch ++FORCE_INLINE void _mm_prefetch(char const *p, int i) ++{ ++ (void) i; ++#if defined(_MSC_VER) ++ switch (i) { ++ case _MM_HINT_NTA: ++ __prefetch2(p, 1); ++ break; ++ case _MM_HINT_T0: ++ __prefetch2(p, 0); ++ break; ++ case _MM_HINT_T1: ++ __prefetch2(p, 2); ++ break; ++ case _MM_HINT_T2: ++ __prefetch2(p, 4); ++ break; ++ } ++#else ++ switch (i) { ++ case _MM_HINT_NTA: ++ __builtin_prefetch(p, 0, 0); ++ break; ++ case _MM_HINT_T0: ++ __builtin_prefetch(p, 0, 3); ++ break; ++ case _MM_HINT_T1: ++ __builtin_prefetch(p, 0, 2); ++ break; ++ case _MM_HINT_T2: ++ __builtin_prefetch(p, 0, 1); ++ break; ++ } ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_psadbw ++#define _m_psadbw(a, b) _mm_sad_pu8(a, b) ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pshufw ++#define _m_pshufw(a, imm) _mm_shuffle_pi16(a, imm) ++ ++// Compute the approximate reciprocal of packed single-precision (32-bit) ++// floating-point elements in a, and store the results in dst. The maximum ++// relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ps ++FORCE_INLINE __m128 _mm_rcp_ps(__m128 in) ++{ ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(in)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#if SSE2NEON_PRECISE_DIV ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#endif ++ return vreinterpretq_m128_f32(recip); ++} ++ ++// Compute the approximate reciprocal of the lower single-precision (32-bit) ++// floating-point element in a, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ss ++FORCE_INLINE __m128 _mm_rcp_ss(__m128 a) ++{ ++ return _mm_move_ss(a, _mm_rcp_ps(a)); ++} ++ ++// Compute the approximate reciprocal square root of packed single-precision ++// (32-bit) floating-point elements in a, and store the results in dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ps ++FORCE_INLINE __m128 _mm_rsqrt_ps(__m128 in) ++{ ++ float32x4_t out = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Generate masks for detecting whether input has any 0.0f/-0.0f ++ // (which becomes positive/negative infinity by IEEE-754 arithmetic rules). ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t neg_inf = vdupq_n_u32(0xFF800000); ++ const uint32x4_t has_pos_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(out)); ++ const uint32x4_t has_neg_zero = ++ vceqq_u32(neg_inf, vreinterpretq_u32_f32(out)); ++ ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#if SSE2NEON_PRECISE_SQRT ++ // Additional Netwon-Raphson iteration for accuracy ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#endif ++ ++ // Set output vector element to infinity/negative-infinity if ++ // the corresponding input vector element is 0.0f/-0.0f. ++ out = vbslq_f32(has_pos_zero, (float32x4_t) pos_inf, out); ++ out = vbslq_f32(has_neg_zero, (float32x4_t) neg_inf, out); ++ ++ return vreinterpretq_m128_f32(out); ++} ++ ++// Compute the approximate reciprocal square root of the lower single-precision ++// (32-bit) floating-point element in a, store the result in the lower element ++// of dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ss ++FORCE_INLINE __m128 _mm_rsqrt_ss(__m128 in) ++{ ++ return vsetq_lane_f32(vgetq_lane_f32(_mm_rsqrt_ps(in), 0), in, 0); ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_pu8 ++FORCE_INLINE __m64 _mm_sad_pu8(__m64 a, __m64 b) ++{ ++ uint64x1_t t = vpaddl_u32(vpaddl_u16( ++ vpaddl_u8(vabd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))))); ++ return vreinterpret_m64_u16( ++ vset_lane_u16((int) vget_lane_u64(t, 0), vdup_n_u16(0), 0)); ++} ++ ++// Macro: Set the flush zero bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The flush zero may contain any of the ++// following flags: _MM_FLUSH_ZERO_ON or _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_FLUSH_ZERO_MODE ++FORCE_INLINE void _sse2neon_mm_set_flush_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_FLUSH_ZERO_MASK) == _MM_FLUSH_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps ++FORCE_INLINE __m128 _mm_set_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {x, y, z, w}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps1 ++FORCE_INLINE __m128 _mm_set_ps1(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Macro: Set the rounding mode bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The rounding mode may contain any of ++// the following flags: _MM_ROUND_NEAREST, _MM_ROUND_DOWN, _MM_ROUND_UP, ++// _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_ROUNDING_MODE ++FORCE_INLINE void _MM_SET_ROUNDING_MODE(int rounding) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ switch (rounding) { ++ case _MM_ROUND_TOWARD_ZERO: ++ r.field.bit22 = 1; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_DOWN: ++ r.field.bit22 = 0; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_UP: ++ r.field.bit22 = 1; ++ r.field.bit23 = 0; ++ break; ++ default: //_MM_ROUND_NEAREST ++ r.field.bit22 = 0; ++ r.field.bit23 = 0; ++ } ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Copy single-precision (32-bit) floating-point element a to the lower element ++// of dst, and zero the upper 3 elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ss ++FORCE_INLINE __m128 _mm_set_ss(float a) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(a, vdupq_n_f32(0), 0)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_ps ++FORCE_INLINE __m128 _mm_set1_ps(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Set the MXCSR control and status register with the value in unsigned 32-bit ++// integer a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setcsr ++// FIXME: _mm_setcsr() implementation supports changing the rounding mode only. ++FORCE_INLINE void _mm_setcsr(unsigned int a) ++{ ++ _MM_SET_ROUNDING_MODE(a); ++} ++ ++// Get the unsigned 32-bit value of the MXCSR control and status register. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_getcsr ++// FIXME: _mm_getcsr() implementation supports reading the rounding mode only. ++FORCE_INLINE unsigned int _mm_getcsr(void) ++{ ++ return _MM_GET_ROUNDING_MODE(); ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_ps ++FORCE_INLINE __m128 _mm_setr_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {w, z, y, x}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Return vector of type __m128 with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_ps ++FORCE_INLINE __m128 _mm_setzero_ps(void) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(0)); ++} ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi16 ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pi16(a, imm) \ ++ vreinterpret_m64_s16(vshuffle_s16( \ ++ vreinterpret_s16_m64(a), vreinterpret_s16_m64(a), (imm & 0x3), \ ++ ((imm >> 2) & 0x3), ((imm >> 4) & 0x3), ((imm >> 6) & 0x3))) ++#else ++#define _mm_shuffle_pi16(a, imm) \ ++ _sse2neon_define1( \ ++ __m64, a, int16x4_t ret; \ ++ ret = vmov_n_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), (imm) & (0x3))); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpret_m64_s16(ret));) ++#endif ++ ++// Perform a serializing operation on all store-to-memory instructions that were ++// issued prior to this instruction. Guarantees that every store instruction ++// that precedes, in program order, is globally visible before any store ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sfence ++FORCE_INLINE void _mm_sfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory and store-to-memory ++// instructions that were issued prior to this instruction. Guarantees that ++// every memory access that precedes, in program order, the memory fence ++// instruction is globally visible before any memory instruction which follows ++// the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mfence ++FORCE_INLINE void _mm_mfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory instructions that ++// were issued prior to this instruction. Guarantees that every load instruction ++// that precedes, in program order, is globally visible before any load ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lfence ++FORCE_INLINE void _mm_lfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// FORCE_INLINE __m128 _mm_shuffle_ps(__m128 a, __m128 b, __constrange(0,255) ++// int imm) ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_ps(a, b, imm) \ ++ __extension__({ \ ++ float32x4_t _input1 = vreinterpretq_f32_m128(a); \ ++ float32x4_t _input2 = vreinterpretq_f32_m128(b); \ ++ float32x4_t _shuf = \ ++ vshuffleq_s32(_input1, _input2, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ (((imm) >> 4) & 0x3) + 4, (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128_f32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_ps(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128, a, b, __m128 ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_1032(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_ps_2301(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_ps_0321(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_ps_2103(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_movelh_ps(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_1001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_ps_0101(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 1, 0): \ ++ ret = _mm_shuffle_ps_3210(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 1, 1): \ ++ ret = _mm_shuffle_ps_0011(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 2, 2): \ ++ ret = _mm_shuffle_ps_0022(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 0, 0): \ ++ ret = _mm_shuffle_ps_2200(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 0, 2): \ ++ ret = _mm_shuffle_ps_3202(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 3, 2): \ ++ ret = _mm_movehl_ps(_b, _a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 3, 3): \ ++ ret = _mm_shuffle_ps_1133(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 1, 0): \ ++ ret = _mm_shuffle_ps_2010(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_2001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_2032(_a, _b); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_ps_default(_a, _b, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Compute the square root of packed single-precision (32-bit) floating-point ++// elements in a, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise square root intrinsic, we implement ++// square root by multiplying input in with its reciprocal square root before ++// using the Newton-Raphson method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ps ++FORCE_INLINE __m128 _mm_sqrt_ps(__m128 in) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) && !SSE2NEON_PRECISE_SQRT ++ return vreinterpretq_m128_f32(vsqrtq_f32(vreinterpretq_f32_m128(in))); ++#else ++ float32x4_t recip = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Test for vrsqrteq_f32(0) -> positive infinity case. ++ // Change to zero, so that s * 1/sqrt(s) result is zero too. ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t div_by_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(recip)); ++ recip = vreinterpretq_f32_u32( ++ vandq_u32(vmvnq_u32(div_by_zero), vreinterpretq_u32_f32(recip))); ++ ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ ++ // sqrt(s) = s * 1/sqrt(s) ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(in), recip)); ++#endif ++} ++ ++// Compute the square root of the lower single-precision (32-bit) floating-point ++// element in a, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ss ++FORCE_INLINE __m128 _mm_sqrt_ss(__m128 in) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_sqrt_ps(in)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(in), 0)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps ++FORCE_INLINE void _mm_store_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps1 ++FORCE_INLINE void _mm_store_ps1(float *p, __m128 a) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ vst1q_f32(p, vdupq_n_f32(a0)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ss ++FORCE_INLINE void _mm_store_ss(float *p, __m128 a) ++{ ++ vst1q_lane_f32(p, vreinterpretq_f32_m128(a), 0); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store1_ps ++#define _mm_store1_ps _mm_store_ps1 ++ ++// Store the upper 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pi ++FORCE_INLINE void _mm_storeh_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_high_f32(a)); ++} ++ ++// Store the lower 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pi ++FORCE_INLINE void _mm_storel_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_low_f32(a)); ++} ++ ++// Store 4 single-precision (32-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_ps ++FORCE_INLINE void _mm_storer_ps(float *p, __m128 a) ++{ ++ float32x4_t tmp = vrev64q_f32(vreinterpretq_f32_m128(a)); ++ float32x4_t rev = vextq_f32(tmp, tmp, 2); ++ vst1q_f32(p, rev); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_ps ++FORCE_INLINE void _mm_storeu_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Stores 16-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si16 ++FORCE_INLINE void _mm_storeu_si16(void *p, __m128i a) ++{ ++ vst1q_lane_s16((int16_t *) p, vreinterpretq_s16_m128i(a), 0); ++} ++ ++// Stores 64-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si64 ++FORCE_INLINE void _mm_storeu_si64(void *p, __m128i a) ++{ ++ vst1q_lane_s64((int64_t *) p, vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Store 64-bits of integer data from a into memory using a non-temporal memory ++// hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pi ++FORCE_INLINE void _mm_stream_pi(__m64 *p, __m64 a) ++{ ++ vst1_s64((int64_t *) p, vreinterpret_s64_m64(a)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating- ++// point elements) from a into memory using a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_ps ++FORCE_INLINE void _mm_stream_ps(float *p, __m128 a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (float32x4_t *) p); ++#else ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++#endif ++} ++ ++// Subtract packed single-precision (32-bit) floating-point elements in b from ++// packed single-precision (32-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ps ++FORCE_INLINE __m128 _mm_sub_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Subtract the lower single-precision (32-bit) floating-point element in b from ++// the lower single-precision (32-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper 3 packed elements from ++// a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ss ++FORCE_INLINE __m128 _mm_sub_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_sub_ps(a, b)); ++} ++ ++// Macro: Transpose the 4x4 matrix formed by the 4 rows of single-precision ++// (32-bit) floating-point elements in row0, row1, row2, and row3, and store the ++// transposed matrix in these vectors (row0 now contains column 0, etc.). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=MM_TRANSPOSE4_PS ++#define _MM_TRANSPOSE4_PS(row0, row1, row2, row3) \ ++ do { \ ++ float32x4x2_t ROW01 = vtrnq_f32(row0, row1); \ ++ float32x4x2_t ROW23 = vtrnq_f32(row2, row3); \ ++ row0 = vcombine_f32(vget_low_f32(ROW01.val[0]), \ ++ vget_low_f32(ROW23.val[0])); \ ++ row1 = vcombine_f32(vget_low_f32(ROW01.val[1]), \ ++ vget_low_f32(ROW23.val[1])); \ ++ row2 = vcombine_f32(vget_high_f32(ROW01.val[0]), \ ++ vget_high_f32(ROW23.val[0])); \ ++ row3 = vcombine_f32(vget_high_f32(ROW01.val[1]), \ ++ vget_high_f32(ROW23.val[1])); \ ++ } while (0) ++ ++// according to the documentation, these intrinsics behave the same as the ++// non-'u' versions. We'll just alias them here. ++#define _mm_ucomieq_ss _mm_comieq_ss ++#define _mm_ucomige_ss _mm_comige_ss ++#define _mm_ucomigt_ss _mm_comigt_ss ++#define _mm_ucomile_ss _mm_comile_ss ++#define _mm_ucomilt_ss _mm_comilt_ss ++#define _mm_ucomineq_ss _mm_comineq_ss ++ ++// Return vector of type __m128i with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_undefined_si128 ++FORCE_INLINE __m128i _mm_undefined_si128(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128i a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_si128(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Return vector of type __m128 with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_ps ++FORCE_INLINE __m128 _mm_undefined_ps(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128 a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_ps(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the high half a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_ps ++FORCE_INLINE __m128 _mm_unpackhi_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_ps ++FORCE_INLINE __m128 _mm_unpacklo_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Compute the bitwise XOR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_ps ++FORCE_INLINE __m128 _mm_xor_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ veorq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++/* SSE2 */ ++ ++// Add packed 16-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi16 ++FORCE_INLINE __m128i _mm_add_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed 32-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi32 ++FORCE_INLINE __m128i _mm_add_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vaddq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Add packed 64-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi64 ++FORCE_INLINE __m128i _mm_add_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vaddq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Add packed 8-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi8 ++FORCE_INLINE __m128i _mm_add_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed double-precision (64-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_pd ++FORCE_INLINE __m128d _mm_add_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1] + db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add the lower double-precision (64-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper element from ++// a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_sd ++FORCE_INLINE __m128d _mm_add_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_add_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add 64-bit integers a and b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_si64 ++FORCE_INLINE __m64 _mm_add_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vadd_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Add packed signed 16-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi16 ++FORCE_INLINE __m128i _mm_adds_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed signed 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi8 ++FORCE_INLINE __m128i _mm_adds_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed unsigned 16-bit integers in a and b using saturation, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu16 ++FORCE_INLINE __m128i _mm_adds_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqaddq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Add packed unsigned 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu8 ++FORCE_INLINE __m128i _mm_adds_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compute the bitwise AND of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_pd ++FORCE_INLINE __m128d _mm_and_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vandq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_si128 ++FORCE_INLINE __m128i _mm_and_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vandq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compute the bitwise NOT of packed double-precision (64-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_pd ++FORCE_INLINE __m128d _mm_andnot_pd(__m128d a, __m128d b) ++{ ++ // *NOTE* argument swap ++ return vreinterpretq_m128d_s64( ++ vbicq_s64(vreinterpretq_s64_m128d(b), vreinterpretq_s64_m128d(a))); ++} ++ ++// Compute the bitwise NOT of 128 bits (representing integer data) in a and then ++// AND with b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_si128 ++FORCE_INLINE __m128i _mm_andnot_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vbicq_s32(vreinterpretq_s32_m128i(b), ++ vreinterpretq_s32_m128i(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu16 ++FORCE_INLINE __m128i _mm_avg_epu16(__m128i a, __m128i b) ++{ ++ return (__m128i) vrhaddq_u16(vreinterpretq_u16_m128i(a), ++ vreinterpretq_u16_m128i(b)); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu8 ++FORCE_INLINE __m128i _mm_avg_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vrhaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bslli_si128 ++#define _mm_bslli_si128(a, imm) _mm_slli_si128(a, imm) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bsrli_si128 ++#define _mm_bsrli_si128(a, imm) _mm_srli_si128(a, imm) ++ ++// Cast vector of type __m128d to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_ps ++FORCE_INLINE __m128 _mm_castpd_ps(__m128d a) ++{ ++ return vreinterpretq_m128_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128d to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_si128 ++FORCE_INLINE __m128i _mm_castpd_si128(__m128d a) ++{ ++ return vreinterpretq_m128i_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128 to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_pd ++FORCE_INLINE __m128d _mm_castps_pd(__m128 a) ++{ ++ return vreinterpretq_m128d_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128 to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_si128 ++FORCE_INLINE __m128i _mm_castps_si128(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128i to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_pd ++FORCE_INLINE __m128d _mm_castsi128_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vreinterpretq_f64_m128i(a)); ++#else ++ return vreinterpretq_m128d_f32(vreinterpretq_f32_m128i(a)); ++#endif ++} ++ ++// Cast vector of type __m128i to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_ps ++FORCE_INLINE __m128 _mm_castsi128_ps(__m128i a) ++{ ++ return vreinterpretq_m128_s32(vreinterpretq_s32_m128i(a)); ++} ++ ++// Invalidate and flush the cache line that contains p from all levels of the ++// cache hierarchy. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clflush ++#if defined(__APPLE__) ++#include ++#endif ++FORCE_INLINE void _mm_clflush(void const *p) ++{ ++ (void) p; ++ ++ /* sys_icache_invalidate is supported since macOS 10.5. ++ * However, it does not work on non-jailbroken iOS devices, although the ++ * compilation is successful. ++ */ ++#if defined(__APPLE__) ++ sys_icache_invalidate((void *) (uintptr_t) p, SSE2NEON_CACHELINE_SIZE); ++#elif defined(__GNUC__) || defined(__clang__) ++ uintptr_t ptr = (uintptr_t) p; ++ __builtin___clear_cache((char *) ptr, ++ (char *) ptr + SSE2NEON_CACHELINE_SIZE); ++#elif (_MSC_VER) && SSE2NEON_INCLUDE_WINDOWS_H ++ FlushInstructionCache(GetCurrentProcess(), p, SSE2NEON_CACHELINE_SIZE); ++#endif ++} ++ ++// Compare packed 16-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi16 ++FORCE_INLINE __m128i _mm_cmpeq_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vceqq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed 32-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi32 ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vceqq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed 8-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi8 ++FORCE_INLINE __m128i _mm_cmpeq_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vceqq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_pd ++FORCE_INLINE __m128d _mm_cmpeq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_sd ++FORCE_INLINE __m128d _mm_cmpeq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpeq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_pd ++FORCE_INLINE __m128d _mm_cmpge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) >= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_sd ++FORCE_INLINE __m128d _mm_cmpge_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpge_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi16 ++FORCE_INLINE __m128i _mm_cmpgt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcgtq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi32 ++FORCE_INLINE __m128i _mm_cmpgt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcgtq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi8 ++FORCE_INLINE __m128i _mm_cmpgt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcgtq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_pd ++FORCE_INLINE __m128d _mm_cmpgt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_sd ++FORCE_INLINE __m128d _mm_cmpgt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpgt_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_pd ++FORCE_INLINE __m128d _mm_cmple_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) <= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_sd ++FORCE_INLINE __m128d _mm_cmple_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmple_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtw instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi16 ++FORCE_INLINE __m128i _mm_cmplt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcltq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtd instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi32 ++FORCE_INLINE __m128i _mm_cmplt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcltq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtb instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi8 ++FORCE_INLINE __m128i _mm_cmplt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcltq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_pd ++FORCE_INLINE __m128d _mm_cmplt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_sd ++FORCE_INLINE __m128d _mm_cmplt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmplt_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_pd ++FORCE_INLINE __m128d _mm_cmpneq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_s32(vmvnq_s32(vreinterpretq_s32_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vmvnq_u32(vandq_u32(cmp, swapped))); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_sd ++FORCE_INLINE __m128d _mm_cmpneq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpneq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_pd ++FORCE_INLINE __m128d _mm_cmpnge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) >= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) >= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_sd ++FORCE_INLINE __m128d _mm_cmpnge_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnge_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_cmpngt_pd ++FORCE_INLINE __m128d _mm_cmpngt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) > (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) > (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_sd ++FORCE_INLINE __m128d _mm_cmpngt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpngt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_pd ++FORCE_INLINE __m128d _mm_cmpnle_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) <= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) <= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_sd ++FORCE_INLINE __m128d _mm_cmpnle_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnle_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_pd ++FORCE_INLINE __m128d _mm_cmpnlt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) < (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) < (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_sd ++FORCE_INLINE __m128d _mm_cmpnlt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnlt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_pd ++FORCE_INLINE __m128d _mm_cmpord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Excluding NaNs, any two floating point numbers can be compared. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_u64(vandq_u64(not_nan_a, not_nan_b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_sd ++FORCE_INLINE __m128d _mm_cmpord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_pd ++FORCE_INLINE __m128d _mm_cmpunord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Two NaNs are not equal in comparison operation. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_s32( ++ vmvnq_s32(vreinterpretq_s32_u64(vandq_u64(not_nan_a, not_nan_b)))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_sd ++FORCE_INLINE __m128d _mm_cmpunord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpunord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_sd ++FORCE_INLINE int _mm_comige_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgeq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 >= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_sd ++FORCE_INLINE int _mm_comigt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgtq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 > *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_sd ++FORCE_INLINE int _mm_comile_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcleq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 <= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_sd ++FORCE_INLINE int _mm_comilt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcltq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 < *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_sd ++FORCE_INLINE int _mm_comieq_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vceqq_f64(a, b), 0) & 0x1; ++#else ++ uint32x4_t a_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(a)); ++ uint32x4_t b_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(b), vreinterpretq_u32_m128d(b)); ++ uint32x4_t a_and_b_not_nan = vandq_u32(a_not_nan, b_not_nan); ++ uint32x4_t a_eq_b = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint64x2_t and_results = vandq_u64(vreinterpretq_u64_u32(a_and_b_not_nan), ++ vreinterpretq_u64_u32(a_eq_b)); ++ return vgetq_lane_u64(and_results, 0) & 0x1; ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_sd ++FORCE_INLINE int _mm_comineq_sd(__m128d a, __m128d b) ++{ ++ return !_mm_comieq_sd(a, b); ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_pd ++FORCE_INLINE __m128d _mm_cvtepi32_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a))))); ++#else ++ double a0 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++ double a1 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_ps ++FORCE_INLINE __m128 _mm_cvtepi32_ps(__m128i a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_epi32 ++FORCE_INLINE_OPTNONE __m128i _mm_cvtpd_epi32(__m128d a) ++{ ++// vrnd32xq_f64 not supported on clang ++#if defined(__ARM_FEATURE_FRINT) && !defined(__clang__) ++ float64x2_t rounded = vrnd32xq_f64(vreinterpretq_f64_m128d(a)); ++ int64x2_t integers = vcvtq_s64_f64(rounded); ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vmovn_s64(integers), vdup_n_s32(0))); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) d1, (int32_t) d0); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_pi32 ++FORCE_INLINE_OPTNONE __m64 _mm_cvtpd_pi32(__m128d a) ++{ ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) d0, (int32_t) d1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed single-precision (32-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_ps ++FORCE_INLINE __m128 _mm_cvtpd_ps(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float32x2_t tmp = vcvt_f32_f64(vreinterpretq_f64_m128d(a)); ++ return vreinterpretq_m128_f32(vcombine_f32(tmp, vdup_n_f32(0))); ++#else ++ float a0 = (float) ((double *) &a)[0]; ++ float a1 = (float) ((double *) &a)[1]; ++ return _mm_set_ps(0, 0, a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_pd ++FORCE_INLINE __m128d _mm_cvtpi32_pd(__m64 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vreinterpret_s32_m64(a)))); ++#else ++ double a0 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 0); ++ double a1 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_epi32 ++// *NOTE*. The default rounding mode on SSE is 'round to even', which ARMv7-A ++// does not support! It is supported on ARMv8-A however. ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128 a) ++{ ++#if defined(__ARM_FEATURE_FRINT) ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vrnd32xq_f32(a))); ++#elif (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: ++ return vreinterpretq_m128i_s32(vcvtnq_s32_f32(a)); ++ case _MM_ROUND_DOWN: ++ return vreinterpretq_m128i_s32(vcvtmq_s32_f32(a)); ++ case _MM_ROUND_UP: ++ return vreinterpretq_m128i_s32(vcvtpq_s32_f32(a)); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(a)); ++ } ++#else ++ float *f = (float *) &a; ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128i_s32( ++ vbslq_s32(is_delta_half, r_even, r_normal)); ++ } ++ case _MM_ROUND_DOWN: ++ return _mm_set_epi32(floorf(f[3]), floorf(f[2]), floorf(f[1]), ++ floorf(f[0])); ++ case _MM_ROUND_UP: ++ return _mm_set_epi32(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ++ ceilf(f[0])); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return _mm_set_epi32((int32_t) f[3], (int32_t) f[2], (int32_t) f[1], ++ (int32_t) f[0]); ++ } ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed double-precision (64-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pd ++FORCE_INLINE __m128d _mm_cvtps_pd(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvt_f64_f32(vget_low_f32(vreinterpretq_f32_m128(a)))); ++#else ++ double a0 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ double a1 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Copy the lower double-precision (64-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_f64 ++FORCE_INLINE double _mm_cvtsd_f64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (double) vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0); ++#else ++ return ((double *) &a)[0]; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si32 ++FORCE_INLINE int32_t _mm_cvtsd_si32(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int32_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int32_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64 ++FORCE_INLINE int64_t _mm_cvtsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int64_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64x ++#define _mm_cvtsd_si64x _mm_cvtsd_si64 ++ ++// Convert the lower double-precision (64-bit) floating-point element in b to a ++// single-precision (32-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_ss ++FORCE_INLINE __m128 _mm_cvtsd_ss(__m128 a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32(vsetq_lane_f32( ++ vget_lane_f32(vcvt_f32_f64(vreinterpretq_f64_m128d(b)), 0), ++ vreinterpretq_f32_m128(a), 0)); ++#else ++ return vreinterpretq_m128_f32(vsetq_lane_f32((float) ((double *) &b)[0], ++ vreinterpretq_f32_m128(a), 0)); ++#endif ++} ++ ++// Copy the lower 32-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si32 ++FORCE_INLINE int _mm_cvtsi128_si32(__m128i a) ++{ ++ return vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64 ++FORCE_INLINE int64_t _mm_cvtsi128_si64(__m128i a) ++{ ++ return vgetq_lane_s64(vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Convert the signed 32-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_sd ++FORCE_INLINE __m128d _mm_cvtsi32_sd(__m128d a, int32_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Copy 32-bit integer a to the lower elements of dst, and zero the upper ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_si128 ++FORCE_INLINE __m128i _mm_cvtsi32_si128(int a) ++{ ++ return vreinterpretq_m128i_s32(vsetq_lane_s32(a, vdupq_n_s32(0), 0)); ++} ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_sd ++FORCE_INLINE __m128d _mm_cvtsi64_sd(__m128d a, int64_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_si128 ++FORCE_INLINE __m128i _mm_cvtsi64_si128(int64_t a) ++{ ++ return vreinterpretq_m128i_s64(vsetq_lane_s64(a, vdupq_n_s64(0), 0)); ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_si128 ++#define _mm_cvtsi64x_si128(a) _mm_cvtsi64_si128(a) ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_sd ++#define _mm_cvtsi64x_sd(a, b) _mm_cvtsi64_sd(a, b) ++ ++// Convert the lower single-precision (32-bit) floating-point element in b to a ++// double-precision (64-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_sd ++FORCE_INLINE __m128d _mm_cvtss_sd(__m128d a, __m128 b) ++{ ++ double d = (double) vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(d, vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &d, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_epi32 ++FORCE_INLINE __m128i _mm_cvttpd_epi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) a1, (int32_t) a0); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_pi32 ++FORCE_INLINE __m64 _mm_cvttpd_pi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) a0, (int32_t) a1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_epi32 ++FORCE_INLINE __m128i _mm_cvttps_epi32(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a))); ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si32 ++FORCE_INLINE int32_t _mm_cvttsd_si32(__m128d a) ++{ ++ double ret = *((double *) &a); ++ return (int32_t) ret; ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64 ++FORCE_INLINE int64_t _mm_cvttsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_s64(vcvtq_s64_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ double ret = *((double *) &a); ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64x ++#define _mm_cvttsd_si64x(a) _mm_cvttsd_si64(a) ++ ++// Divide packed double-precision (64-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_pd ++FORCE_INLINE __m128d _mm_div_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] / db[0]; ++ c[1] = da[1] / db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Divide the lower double-precision (64-bit) floating-point element in a by the ++// lower double-precision (64-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper element from a to the upper ++// element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_sd ++FORCE_INLINE __m128d _mm_div_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t tmp = ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1), tmp, 1)); ++#else ++ return _mm_move_sd(a, _mm_div_pd(a, b)); ++#endif ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi16 ++// FORCE_INLINE int _mm_extract_epi16(__m128i a, __constrange(0,8) int imm) ++#define _mm_extract_epi16(a, imm) \ ++ vgetq_lane_u16(vreinterpretq_u16_m128i(a), (imm)) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi16 ++// FORCE_INLINE __m128i _mm_insert_epi16(__m128i a, int b, ++// __constrange(0,8) int imm) ++#define _mm_insert_epi16(a, b, imm) \ ++ vreinterpretq_m128i_s16( \ ++ vsetq_lane_s16((b), vreinterpretq_s16_m128i(a), (imm))) ++ ++// Load 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd ++FORCE_INLINE __m128d _mm_load_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64(p)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], fp[2], fp[3]}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd1 ++#define _mm_load_pd1 _mm_load1_pd ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower of dst, and zero the upper element. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_sd ++FORCE_INLINE __m128d _mm_load_sd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(*p, vdupq_n_f64(0), 0)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], 0, 0}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_si128 ++FORCE_INLINE __m128i _mm_load_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const int32_t *) p)); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_pd ++FORCE_INLINE __m128d _mm_load1_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_dup_f64(p)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(const int64_t *) p)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// upper element of dst, and copy the lower element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pd ++FORCE_INLINE __m128d _mm_loadh_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vget_low_f64(vreinterpretq_f64_m128d(a)), vld1_f64(p))); ++#else ++ return vreinterpretq_m128d_f32(vcombine_f32( ++ vget_low_f32(vreinterpretq_f32_m128d(a)), vld1_f32((const float *) p))); ++#endif ++} ++ ++// Load 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_epi64 ++FORCE_INLINE __m128i _mm_loadl_epi64(__m128i const *p) ++{ ++ /* Load the lower 64 bits of the value pointed to by p into the ++ * lower 64 bits of the result, zeroing the upper 64 bits of the result. ++ */ ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vld1_s32((int32_t const *) p), vcreate_s32(0))); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower element of dst, and copy the upper element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pd ++FORCE_INLINE __m128d _mm_loadl_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vld1_f64(p), vget_high_f64(vreinterpretq_f64_m128d(a)))); ++#else ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vld1_f32((const float *) p), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++#endif ++} ++ ++// Load 2 double-precision (64-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_pd ++FORCE_INLINE __m128d _mm_loadr_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t v = vld1q_f64(p); ++ return vreinterpretq_m128d_f64(vextq_f64(v, v, 1)); ++#else ++ int64x2_t v = vld1q_s64((const int64_t *) p); ++ return vreinterpretq_m128d_s64(vextq_s64(v, v, 1)); ++#endif ++} ++ ++// Loads two double-precision from unaligned memory, floating-point values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_pd ++FORCE_INLINE __m128d _mm_loadu_pd(const double *p) ++{ ++ return _mm_load_pd(p); ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si128 ++FORCE_INLINE __m128i _mm_loadu_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const unaligned_int32_t *) p)); ++} ++ ++// Load unaligned 32-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si32 ++FORCE_INLINE __m128i _mm_loadu_si32(const void *p) ++{ ++ return vreinterpretq_m128i_s32( ++ vsetq_lane_s32(*(const unaligned_int32_t *) p, vdupq_n_s32(0), 0)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Horizontally add adjacent pairs of intermediate ++// 32-bit integers, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_madd_epi16 ++FORCE_INLINE __m128i _mm_madd_epi16(__m128i a, __m128i b) ++{ ++ int32x4_t low = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t high = ++ vmull_high_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b)); ++ ++ return vreinterpretq_m128i_s32(vpaddq_s32(low, high)); ++#else ++ int32x4_t high = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ int32x2_t low_sum = vpadd_s32(vget_low_s32(low), vget_high_s32(low)); ++ int32x2_t high_sum = vpadd_s32(vget_low_s32(high), vget_high_s32(high)); ++ ++ return vreinterpretq_m128i_s32(vcombine_s32(low_sum, high_sum)); ++#endif ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. mem_addr does not need to be aligned ++// on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmoveu_si128 ++FORCE_INLINE void _mm_maskmoveu_si128(__m128i a, __m128i mask, char *mem_addr) ++{ ++ int8x16_t shr_mask = vshrq_n_s8(vreinterpretq_s8_m128i(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x16_t masked = ++ vbslq_s8(vreinterpretq_u8_s8(shr_mask), vreinterpretq_s8_m128i(a), ++ vreinterpretq_s8_m128(b)); ++ vst1q_s8((int8_t *) mem_addr, masked); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi16 ++FORCE_INLINE __m128i _mm_max_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmaxq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu8 ++FORCE_INLINE __m128i _mm_max_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vmaxq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pd ++FORCE_INLINE __m128d _mm_max_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcgtq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vmaxq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? a1 : b1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_sd ++FORCE_INLINE __m128d _mm_max_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_max_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] > db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi16 ++FORCE_INLINE __m128i _mm_min_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vminq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu8 ++FORCE_INLINE __m128i _mm_min_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vminq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pd ++FORCE_INLINE __m128d _mm_min_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcltq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vminq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? a1 : b1; ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_sd ++FORCE_INLINE __m128d _mm_min_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_min_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] < db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to the lower element of dst, and zero the ++// upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_epi64 ++FORCE_INLINE __m128i _mm_move_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(0, vreinterpretq_s64_m128i(a), 1)); ++} ++ ++// Move the lower double-precision (64-bit) floating-point element from b to the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_sd ++FORCE_INLINE __m128d _mm_move_sd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vget_low_f32(vreinterpretq_f32_m128d(b)), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_epi8 ++FORCE_INLINE int _mm_movemask_epi8(__m128i a) ++{ ++ // Use increasingly wide shifts+adds to collect the sign bits ++ // together. ++ // Since the widening shifts would be rather confusing to follow in little ++ // endian, everything will be illustrated in big endian order instead. This ++ // has a different result - the bits would actually be reversed on a big ++ // endian machine. ++ ++ // Starting input (only half the elements are shown): ++ // 89 ff 1d c0 00 10 99 33 ++ uint8x16_t input = vreinterpretq_u8_m128i(a); ++ ++ // Shift out everything but the sign bits with an unsigned shift right. ++ // ++ // Bytes of the vector:: ++ // 89 ff 1d c0 00 10 99 33 ++ // \ \ \ \ \ \ \ \ high_bits = (uint16x4_t)(input >> 7) ++ // | | | | | | | | ++ // 01 01 00 01 00 00 01 00 ++ // ++ // Bits of first important lane(s): ++ // 10001001 (89) ++ // \______ ++ // | ++ // 00000001 (01) ++ uint16x8_t high_bits = vreinterpretq_u16_u8(vshrq_n_u8(input, 7)); ++ ++ // Merge the even lanes together with a 16-bit unsigned shift right + add. ++ // 'xx' represents garbage data which will be ignored in the final result. ++ // In the important bytes, the add functions like a binary OR. ++ // ++ // 01 01 00 01 00 00 01 00 ++ // \_ | \_ | \_ | \_ | paired16 = (uint32x4_t)(input + (input >> 7)) ++ // \| \| \| \| ++ // xx 03 xx 01 xx 00 xx 02 ++ // ++ // 00000001 00000001 (01 01) ++ // \_______ | ++ // \| ++ // xxxxxxxx xxxxxx11 (xx 03) ++ uint32x4_t paired16 = ++ vreinterpretq_u32_u16(vsraq_n_u16(high_bits, high_bits, 7)); ++ ++ // Repeat with a wider 32-bit shift + add. ++ // xx 03 xx 01 xx 00 xx 02 ++ // \____ | \____ | paired32 = (uint64x1_t)(paired16 + (paired16 >> ++ // 14)) ++ // \| \| ++ // xx xx xx 0d xx xx xx 02 ++ // ++ // 00000011 00000001 (03 01) ++ // \\_____ || ++ // '----.\|| ++ // xxxxxxxx xxxx1101 (xx 0d) ++ uint64x2_t paired32 = ++ vreinterpretq_u64_u32(vsraq_n_u32(paired16, paired16, 14)); ++ ++ // Last, an even wider 64-bit shift + add to get our result in the low 8 bit ++ // lanes. xx xx xx 0d xx xx xx 02 ++ // \_________ | paired64 = (uint8x8_t)(paired32 + (paired32 >> ++ // 28)) ++ // \| ++ // xx xx xx xx xx xx xx d2 ++ // ++ // 00001101 00000010 (0d 02) ++ // \ \___ | | ++ // '---. \| | ++ // xxxxxxxx 11010010 (xx d2) ++ uint8x16_t paired64 = ++ vreinterpretq_u8_u64(vsraq_n_u64(paired32, paired32, 28)); ++ ++ // Extract the low 8 bits from each 64-bit lane with 2 8-bit extracts. ++ // xx xx xx xx xx xx xx d2 ++ // || return paired64[0] ++ // d2 ++ // Note: Little endian would return the correct value 4b (01001011) instead. ++ return vgetq_lane_u8(paired64, 0) | ((int) vgetq_lane_u8(paired64, 8) << 8); ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed double-precision (64-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pd ++FORCE_INLINE int _mm_movemask_pd(__m128d a) ++{ ++ uint64x2_t input = vreinterpretq_u64_m128d(a); ++ uint64x2_t high_bits = vshrq_n_u64(input, 63); ++ return (int) (vgetq_lane_u64(high_bits, 0) | ++ (vgetq_lane_u64(high_bits, 1) << 1)); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movepi64_pi64 ++FORCE_INLINE __m64 _mm_movepi64_pi64(__m128i a) ++{ ++ return vreinterpret_m64_s64(vget_low_s64(vreinterpretq_s64_m128i(a))); ++} ++ ++// Copy the 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movpi64_epi64 ++FORCE_INLINE __m128i _mm_movpi64_epi64(__m64 a) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vreinterpret_s64_m64(a), vdup_n_s64(0))); ++} ++ ++// Multiply the low unsigned 32-bit integers from each packed 64-bit element in ++// a and b, and store the unsigned 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epu32 ++FORCE_INLINE __m128i _mm_mul_epu32(__m128i a, __m128i b) ++{ ++ // vmull_u32 upcasts instead of masking, so we downcast. ++ uint32x2_t a_lo = vmovn_u64(vreinterpretq_u64_m128i(a)); ++ uint32x2_t b_lo = vmovn_u64(vreinterpretq_u64_m128i(b)); ++ return vreinterpretq_m128i_u64(vmull_u32(a_lo, b_lo)); ++} ++ ++// Multiply packed double-precision (64-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_pd ++FORCE_INLINE __m128d _mm_mul_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vmulq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] * db[0]; ++ c[1] = da[1] * db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Multiply the lower double-precision (64-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper element ++// from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_mul_sd ++FORCE_INLINE __m128d _mm_mul_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_mul_pd(a, b)); ++} ++ ++// Multiply the low unsigned 32-bit integers from a and b, and store the ++// unsigned 64-bit result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_su32 ++FORCE_INLINE __m64 _mm_mul_su32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u64(vget_low_u64( ++ vmull_u32(vreinterpret_u32_m64(a), vreinterpret_u32_m64(b)))); ++} ++ ++// Multiply the packed signed 16-bit integers in a and b, producing intermediate ++// 32-bit integers, and store the high 16 bits of the intermediate integers in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epi16 ++FORCE_INLINE __m128i _mm_mulhi_epi16(__m128i a, __m128i b) ++{ ++ /* FIXME: issue with large values because of result saturation */ ++ // int16x8_t ret = vqdmulhq_s16(vreinterpretq_s16_m128i(a), ++ // vreinterpretq_s16_m128i(b)); /* =2*a*b */ return ++ // vreinterpretq_m128i_s16(vshrq_n_s16(ret, 1)); ++ int16x4_t a3210 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b3210 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab3210 = vmull_s16(a3210, b3210); /* 3333222211110000 */ ++ int16x4_t a7654 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b7654 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab7654 = vmull_s16(a7654, b7654); /* 7777666655554444 */ ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_s32(ab3210), vreinterpretq_u16_s32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epu16 ++FORCE_INLINE __m128i _mm_mulhi_epu16(__m128i a, __m128i b) ++{ ++ uint16x4_t a3210 = vget_low_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b3210 = vget_low_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab3210 = vmull_u16(a3210, b3210); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32x4_t ab7654 = ++ vmull_high_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ uint16x8_t r = vuzp2q_u16(vreinterpretq_u16_u32(ab3210), ++ vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r); ++#else ++ uint16x4_t a7654 = vget_high_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b7654 = vget_high_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab7654 = vmull_u16(a7654, b7654); ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_u32(ab3210), vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++#endif ++} ++ ++// Multiply the packed 16-bit integers in a and b, producing intermediate 32-bit ++// integers, and store the low 16 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi16 ++FORCE_INLINE __m128i _mm_mullo_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmulq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compute the bitwise OR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_or_pd ++FORCE_INLINE __m128d _mm_or_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vorrq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise OR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_si128 ++FORCE_INLINE __m128i _mm_or_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vorrq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi16 ++FORCE_INLINE __m128i _mm_packs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vqmovn_s16(vreinterpretq_s16_m128i(a)), ++ vqmovn_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi32 ++FORCE_INLINE __m128i _mm_packs_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vqmovn_s32(vreinterpretq_s32_m128i(a)), ++ vqmovn_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi16 ++FORCE_INLINE __m128i _mm_packus_epi16(const __m128i a, const __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcombine_u8(vqmovun_s16(vreinterpretq_s16_m128i(a)), ++ vqmovun_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Pause the processor. This is typically used in spin-wait loops and depending ++// on the x86 processor typical values are in the 40-100 cycle range. The ++// 'yield' instruction isn't a good fit because it's effectively a nop on most ++// Arm cores. Experience with several databases has shown has shown an 'isb' is ++// a reasonable approximation. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_pause ++FORCE_INLINE void _mm_pause(void) ++{ ++#if defined(_MSC_VER) ++ __isb(_ARM64_BARRIER_SY); ++#else ++ __asm__ __volatile__("isb\n"); ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce two ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of 64-bit elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_epu8 ++FORCE_INLINE __m128i _mm_sad_epu8(__m128i a, __m128i b) ++{ ++ uint16x8_t t = vpaddlq_u8(vabdq_u8((uint8x16_t) a, (uint8x16_t) b)); ++ return vreinterpretq_m128i_u64(vpaddlq_u32(vpaddlq_u16(t))); ++} ++ ++// Set packed 16-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi16 ++FORCE_INLINE __m128i _mm_set_epi16(short i7, ++ short i6, ++ short i5, ++ short i4, ++ short i3, ++ short i2, ++ short i1, ++ short i0) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {i0, i1, i2, i3, i4, i5, i6, i7}; ++ return vreinterpretq_m128i_s16(vld1q_s16(data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi32 ++FORCE_INLINE __m128i _mm_set_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i0, i1, i2, i3}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64 ++FORCE_INLINE __m128i _mm_set_epi64(__m64 i1, __m64 i2) ++{ ++ return _mm_set_epi64x(vget_lane_s64(i1, 0), vget_lane_s64(i2, 0)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64x ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t i1, int64_t i2) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vcreate_s64(i2), vcreate_s64(i1))); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi8 ++FORCE_INLINE __m128i _mm_set_epi8(signed char b15, ++ signed char b14, ++ signed char b13, ++ signed char b12, ++ signed char b11, ++ signed char b10, ++ signed char b9, ++ signed char b8, ++ signed char b7, ++ signed char b6, ++ signed char b5, ++ signed char b4, ++ signed char b3, ++ signed char b2, ++ signed char b1, ++ signed char b0) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd ++FORCE_INLINE __m128d _mm_set_pd(double e1, double e0) ++{ ++ double ALIGN_STRUCT(16) data[2] = {e0, e1}; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64((float64_t *) data)); ++#else ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) data)); ++#endif ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd1 ++#define _mm_set_pd1 _mm_set1_pd ++ ++// Copy double-precision (64-bit) floating-point element a to the lower element ++// of dst, and zero the upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_sd ++FORCE_INLINE __m128d _mm_set_sd(double a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(a, vdupq_n_f64(0), 0)); ++#else ++ return _mm_set_pd(0, a); ++#endif ++} ++ ++// Broadcast 16-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi16 ++FORCE_INLINE __m128i _mm_set1_epi16(short w) ++{ ++ return vreinterpretq_m128i_s16(vdupq_n_s16(w)); ++} ++ ++// Broadcast 32-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi32 ++FORCE_INLINE __m128i _mm_set1_epi32(int _i) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(_i)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64 ++FORCE_INLINE __m128i _mm_set1_epi64(__m64 _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_lane_s64(_i, 0)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64x ++FORCE_INLINE __m128i _mm_set1_epi64x(int64_t _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_n_s64(_i)); ++} ++ ++// Broadcast 8-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi8 ++FORCE_INLINE __m128i _mm_set1_epi8(signed char w) ++{ ++ return vreinterpretq_m128i_s8(vdupq_n_s8(w)); ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_pd ++FORCE_INLINE __m128d _mm_set1_pd(double d) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(d)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(int64_t *) &d)); ++#endif ++} ++ ++// Set packed 16-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi16 ++FORCE_INLINE __m128i _mm_setr_epi16(short w0, ++ short w1, ++ short w2, ++ short w3, ++ short w4, ++ short w5, ++ short w6, ++ short w7) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {w0, w1, w2, w3, w4, w5, w6, w7}; ++ return vreinterpretq_m128i_s16(vld1q_s16((int16_t *) data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi32 ++FORCE_INLINE __m128i _mm_setr_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i3, i2, i1, i0}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi64 ++FORCE_INLINE __m128i _mm_setr_epi64(__m64 e1, __m64 e0) ++{ ++ return vreinterpretq_m128i_s64(vcombine_s64(e1, e0)); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi8 ++FORCE_INLINE __m128i _mm_setr_epi8(signed char b0, ++ signed char b1, ++ signed char b2, ++ signed char b3, ++ signed char b4, ++ signed char b5, ++ signed char b6, ++ signed char b7, ++ signed char b8, ++ signed char b9, ++ signed char b10, ++ signed char b11, ++ signed char b12, ++ signed char b13, ++ signed char b14, ++ signed char b15) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_pd ++FORCE_INLINE __m128d _mm_setr_pd(double e1, double e0) ++{ ++ return _mm_set_pd(e0, e1); ++} ++ ++// Return vector of type __m128d with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_pd ++FORCE_INLINE __m128d _mm_setzero_pd(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(0)); ++#else ++ return vreinterpretq_m128d_f32(vdupq_n_f32(0)); ++#endif ++} ++ ++// Return vector of type __m128i with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_si128 ++FORCE_INLINE __m128i _mm_setzero_si128(void) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(0)); ++} ++ ++// Shuffle 32-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi32 ++// FORCE_INLINE __m128i _mm_shuffle_epi32(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shuffle_epi32(a, imm) \ ++ __extension__({ \ ++ int32x4_t _input = vreinterpretq_s32_m128i(a); \ ++ int32x4_t _shuf = \ ++ vshuffleq_s32(_input, _input, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ ((imm) >> 4) & 0x3, ((imm) >> 6) & 0x3); \ ++ vreinterpretq_m128i_s32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_epi32(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, __m128i ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_epi_1032(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_epi_2301(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_epi_0321(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_epi_2103(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_shuffle_epi_1010(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_epi_1001(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_epi_0101(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 1, 1): \ ++ ret = _mm_shuffle_epi_2211(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 2, 2): \ ++ ret = _mm_shuffle_epi_0122(_a); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 2): \ ++ ret = _mm_shuffle_epi_3332(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 0, 0): \ ++ ret = _mm_shuffle_epi32_splat(_a, 0); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 1, 1): \ ++ ret = _mm_shuffle_epi32_splat(_a, 1); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 2, 2): \ ++ ret = _mm_shuffle_epi32_splat(_a, 2); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 3): \ ++ ret = _mm_shuffle_epi32_splat(_a, 3); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_epi32_default(_a, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Shuffle double-precision (64-bit) floating-point elements using the control ++// in imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pd ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pd(a, b, imm8) \ ++ vreinterpretq_m128d_s64( \ ++ vshuffleq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b), \ ++ imm8 & 0x1, ((imm8 & 0x2) >> 1) + 2)) ++#else ++#define _mm_shuffle_pd(a, b, imm8) \ ++ _mm_castsi128_pd(_mm_set_epi64x( \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(b), (imm8 & 0x2) >> 1), \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(a), imm8 & 0x1))) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflehi_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflehi_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = \ ++ vshuffleq_s16(_input, _input, 0, 1, 2, 3, ((imm) & (0x3)) + 4, \ ++ (((imm) >> 2) & 0x3) + 4, (((imm) >> 4) & 0x3) + 4, \ ++ (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflehi_epi16(a, imm) _mm_shufflehi_epi16_function((a), (imm)) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflelo_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflelo_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = vshuffleq_s16( \ ++ _input, _input, ((imm) & (0x3)), (((imm) >> 2) & 0x3), \ ++ (((imm) >> 4) & 0x3), (((imm) >> 6) & 0x3), 4, 5, 6, 7); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflelo_epi16(a, imm) _mm_shufflelo_epi16_function((a), (imm)) ++#endif ++ ++// Shift packed 16-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi16 ++FORCE_INLINE __m128i _mm_sll_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16((int16_t) c); ++ return vreinterpretq_m128i_s16(vshlq_s16(vreinterpretq_s16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi32 ++FORCE_INLINE __m128i _mm_sll_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32((int32_t) c); ++ return vreinterpretq_m128i_s32(vshlq_s32(vreinterpretq_s32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi64 ++FORCE_INLINE __m128i _mm_sll_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64((int64_t) c); ++ return vreinterpretq_m128i_s64(vshlq_s64(vreinterpretq_s64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi16 ++FORCE_INLINE __m128i _mm_slli_epi16(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~15)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16(vreinterpretq_s16_m128i(a), vdupq_n_s16(imm))); ++} ++ ++// Shift packed 32-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi32 ++FORCE_INLINE __m128i _mm_slli_epi32(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~31)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32(vreinterpretq_s32_m128i(a), vdupq_n_s32(imm))); ++} ++ ++// Shift packed 64-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi64 ++FORCE_INLINE __m128i _mm_slli_epi64(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~63)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s64( ++ vshlq_s64(vreinterpretq_s64_m128i(a), vdupq_n_s64(imm))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_si128 ++#define _mm_slli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely(imm == 0)) ret = vreinterpretq_s8_m128i(_a); \ ++ else if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vdupq_n_s8(0), vreinterpretq_s8_m128i(_a), \ ++ ((imm <= 0 || imm > 15) ? 0 : (16 - imm))); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Compute the square root of packed double-precision (64-bit) floating-point ++// elements in a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_pd ++FORCE_INLINE __m128d _mm_sqrt_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsqrtq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double a0 = sqrt(((double *) &a)[0]); ++ double a1 = sqrt(((double *) &a)[1]); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Compute the square root of the lower double-precision (64-bit) floating-point ++// element in b, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_sd ++FORCE_INLINE __m128d _mm_sqrt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_sqrt_pd(b)); ++#else ++ return _mm_set_pd(((double *) &a)[1], sqrt(((double *) &b)[0])); ++#endif ++} ++ ++// Shift packed 16-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi16 ++FORCE_INLINE __m128i _mm_sra_epi16(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_cmplt_epi16(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16((int16x8_t) a, vdupq_n_s16((int) -c))); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi32 ++FORCE_INLINE __m128i _mm_sra_epi32(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_cmplt_epi32(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32((int32x4_t) a, vdupq_n_s32((int) -c))); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in sign ++// bits, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi16 ++FORCE_INLINE __m128i _mm_srai_epi16(__m128i a, int imm) ++{ ++ const int count = (imm & ~15) ? 15 : imm; ++ return (__m128i) vshlq_s16((int16x8_t) a, vdupq_n_s16(-count)); ++} ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi32 ++// FORCE_INLINE __m128i _mm_srai_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srai_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) == 0)) { \ ++ ret = _a; \ ++ } else if (_sse2neon_likely(0 < (imm) && (imm) < 32)) { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshlq_s32(vreinterpretq_s32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } else { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshrq_n_s32(vreinterpretq_s32_m128i(_a), 31)); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 16-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi16 ++FORCE_INLINE __m128i _mm_srl_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16(-(int16_t) c); ++ return vreinterpretq_m128i_u16(vshlq_u16(vreinterpretq_u16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi32 ++FORCE_INLINE __m128i _mm_srl_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32(-(int32_t) c); ++ return vreinterpretq_m128i_u32(vshlq_u32(vreinterpretq_u32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi64 ++FORCE_INLINE __m128i _mm_srl_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64(-(int64_t) c); ++ return vreinterpretq_m128i_u64(vshlq_u64(vreinterpretq_u64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi16 ++#define _mm_srli_epi16(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~15)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u16( \ ++ vshlq_u16(vreinterpretq_u16_m128i(_a), vdupq_n_s16(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi32 ++// FORCE_INLINE __m128i _mm_srli_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srli_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~31)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u32( \ ++ vshlq_u32(vreinterpretq_u32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 64-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi64 ++#define _mm_srli_epi64(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~63)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u64( \ ++ vshlq_u64(vreinterpretq_u64_m128i(_a), vdupq_n_s64(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_si128 ++#define _mm_srli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vreinterpretq_s8_m128i(_a), vdupq_n_s8(0), \ ++ (imm > 15 ? 0 : imm)); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd ++FORCE_INLINE void _mm_store_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64((float64_t *) mem_addr, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_f32((float32_t *) mem_addr, vreinterpretq_f32_m128d(a)); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd1 ++FORCE_INLINE void _mm_store_pd1(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x1_t a_low = vget_low_f64(vreinterpretq_f64_m128d(a)); ++ vst1q_f64((float64_t *) mem_addr, ++ vreinterpretq_f64_m128d(vcombine_f64(a_low, a_low))); ++#else ++ float32x2_t a_low = vget_low_f32(vreinterpretq_f32_m128d(a)); ++ vst1q_f32((float32_t *) mem_addr, ++ vreinterpretq_f32_m128d(vcombine_f32(a_low, a_low))); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_store_sd ++FORCE_INLINE void _mm_store_sd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_u64((uint64_t *) mem_addr, vget_low_u64(vreinterpretq_u64_m128d(a))); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_si128 ++FORCE_INLINE void _mm_store_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#expand=9,526,5601&text=_mm_store1_pd ++#define _mm_store1_pd _mm_store_pd1 ++ ++// Store the upper double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pd ++FORCE_INLINE void _mm_storeh_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_high_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_high_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 64-bit integer from the first element of a into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_epi64 ++FORCE_INLINE void _mm_storel_epi64(__m128i *a, __m128i b) ++{ ++ vst1_u64((uint64_t *) a, vget_low_u64(vreinterpretq_u64_m128i(b))); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pd ++FORCE_INLINE void _mm_storel_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_low_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 2 double-precision (64-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_pd ++FORCE_INLINE void _mm_storer_pd(double *mem_addr, __m128d a) ++{ ++ float32x4_t f = vreinterpretq_f32_m128d(a); ++ _mm_store_pd(mem_addr, vreinterpretq_m128d_f32(vextq_f32(f, f, 2))); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_pd ++FORCE_INLINE void _mm_storeu_pd(double *mem_addr, __m128d a) ++{ ++ _mm_store_pd(mem_addr, a); ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si128 ++FORCE_INLINE void _mm_storeu_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store 32-bit integer from the first element of a into memory. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si32 ++FORCE_INLINE void _mm_storeu_si32(void *p, __m128i a) ++{ ++ vst1q_lane_s32((int32_t *) p, vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory using a non-temporal memory hint. mem_addr must ++// be aligned on a 16-byte boundary or a general-protection exception may be ++// generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pd ++FORCE_INLINE void _mm_stream_pd(double *p, __m128d a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (__m128d *) p); ++#elif defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64(p, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128d(a)); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory using a non-temporal memory ++// hint. mem_addr must be aligned on a 16-byte boundary or a general-protection ++// exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si128 ++FORCE_INLINE void _mm_stream_si128(__m128i *p, __m128i a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, p); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128i(a)); ++#endif ++} ++ ++// Store 32-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si32 ++FORCE_INLINE void _mm_stream_si32(int *p, int a) ++{ ++ vst1q_lane_s32((int32_t *) p, vdupq_n_s32(a), 0); ++} ++ ++// Store 64-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si64 ++FORCE_INLINE void _mm_stream_si64(__int64 *p, __int64 a) ++{ ++ vst1_s64((int64_t *) p, vdup_n_s64((int64_t) a)); ++} ++ ++// Subtract packed 16-bit integers in b from packed 16-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi16 ++FORCE_INLINE __m128i _mm_sub_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed 32-bit integers in b from packed 32-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi32 ++FORCE_INLINE __m128i _mm_sub_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Subtract packed 64-bit integers in b from packed 64-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi64 ++FORCE_INLINE __m128i _mm_sub_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vsubq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Subtract packed 8-bit integers in b from packed 8-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi8 ++FORCE_INLINE __m128i _mm_sub_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed double-precision (64-bit) floating-point elements in b from ++// packed double-precision (64-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_sub_pd ++FORCE_INLINE __m128d _mm_sub_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] - db[0]; ++ c[1] = da[1] - db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Subtract the lower double-precision (64-bit) floating-point element in b from ++// the lower double-precision (64-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_sd ++FORCE_INLINE __m128d _mm_sub_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_sub_pd(a, b)); ++} ++ ++// Subtract 64-bit integer b from 64-bit integer a, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_si64 ++FORCE_INLINE __m64 _mm_sub_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vsub_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Subtract packed signed 16-bit integers in b from packed 16-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi16 ++FORCE_INLINE __m128i _mm_subs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed signed 8-bit integers in b from packed 8-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi8 ++FORCE_INLINE __m128i _mm_subs_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed unsigned 16-bit integers in b from packed unsigned 16-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu16 ++FORCE_INLINE __m128i _mm_subs_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqsubq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Subtract packed unsigned 8-bit integers in b from packed unsigned 8-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu8 ++FORCE_INLINE __m128i _mm_subs_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqsubq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++#define _mm_ucomieq_sd _mm_comieq_sd ++#define _mm_ucomige_sd _mm_comige_sd ++#define _mm_ucomigt_sd _mm_comigt_sd ++#define _mm_ucomile_sd _mm_comile_sd ++#define _mm_ucomilt_sd _mm_comilt_sd ++#define _mm_ucomineq_sd _mm_comineq_sd ++ ++// Return vector of type __m128d with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_pd ++FORCE_INLINE __m128d _mm_undefined_pd(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128d a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_pd(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi16 ++FORCE_INLINE __m128i _mm_unpackhi_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip2q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi32 ++FORCE_INLINE __m128i _mm_unpackhi_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip2q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_high_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi64 ++FORCE_INLINE __m128i _mm_unpackhi_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip2q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_h = vget_high_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_h = vget_high_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_h, b_h)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the high half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi8 ++FORCE_INLINE __m128i _mm_unpackhi_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip2q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the high half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_pd ++FORCE_INLINE __m128d _mm_unpackhi_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip2q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_high_s64(vreinterpretq_s64_m128d(a)), ++ vget_high_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi16 ++FORCE_INLINE __m128i _mm_unpacklo_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip1q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi32 ++FORCE_INLINE __m128i _mm_unpacklo_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip1q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_low_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi64 ++FORCE_INLINE __m128i _mm_unpacklo_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip1q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_l = vget_low_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_l = vget_low_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_l, b_l)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi8 ++FORCE_INLINE __m128i _mm_unpacklo_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip1q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_pd ++FORCE_INLINE __m128d _mm_unpacklo_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip1q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_low_s64(vreinterpretq_s64_m128d(a)), ++ vget_low_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Compute the bitwise XOR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_pd ++FORCE_INLINE __m128d _mm_xor_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ veorq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise XOR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_si128 ++FORCE_INLINE __m128i _mm_xor_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ veorq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++/* SSE3 */ ++ ++// Alternatively add and subtract packed double-precision (64-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_addsub_pd ++FORCE_INLINE __m128d _mm_addsub_pd(__m128d a, __m128d b) ++{ ++ _sse2neon_const __m128d mask = _mm_set_pd(1.0f, -1.0f); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vfmaq_f64(vreinterpretq_f64_m128d(a), ++ vreinterpretq_f64_m128d(b), ++ vreinterpretq_f64_m128d(mask))); ++#else ++ return _mm_add_pd(_mm_mul_pd(b, mask), a); ++#endif ++} ++ ++// Alternatively add and subtract packed single-precision (32-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=addsub_ps ++FORCE_INLINE __m128 _mm_addsub_ps(__m128 a, __m128 b) ++{ ++ _sse2neon_const __m128 mask = _mm_setr_ps(-1.0f, 1.0f, -1.0f, 1.0f); ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_FMA) /* VFPv4+ */ ++ return vreinterpretq_m128_f32(vfmaq_f32(vreinterpretq_f32_m128(a), ++ vreinterpretq_f32_m128(mask), ++ vreinterpretq_f32_m128(b))); ++#else ++ return _mm_add_ps(_mm_mul_ps(b, mask), a); ++#endif ++} ++ ++// Horizontally add adjacent pairs of double-precision (64-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pd ++FORCE_INLINE __m128d _mm_hadd_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vpaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[] = {da[0] + da[1], db[0] + db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of single-precision (32-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_ps ++FORCE_INLINE __m128 _mm_hadd_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vpaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vpadd_f32(a10, a32), vpadd_f32(b10, b32))); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of double-precision (64-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pd ++FORCE_INLINE __m128d _mm_hsub_pd(__m128d _a, __m128d _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vuzp1q_f64(a, b), vuzp2q_f64(a, b))); ++#else ++ double *da = (double *) &_a; ++ double *db = (double *) &_b; ++ double c[] = {da[0] - da[1], db[0] - db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of single-precision (32-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_ps ++FORCE_INLINE __m128 _mm_hsub_ps(__m128 _a, __m128 _b) ++{ ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vuzp1q_f32(a, b), vuzp2q_f32(a, b))); ++#else ++ float32x4x2_t c = vuzpq_f32(a, b); ++ return vreinterpretq_m128_f32(vsubq_f32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Load 128-bits of integer data from unaligned memory into dst. This intrinsic ++// may perform better than _mm_loadu_si128 when the data crosses a cache line ++// boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lddqu_si128 ++#define _mm_lddqu_si128 _mm_loadu_si128 ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loaddup_pd ++#define _mm_loaddup_pd _mm_load1_pd ++ ++// Duplicate the low double-precision (64-bit) floating-point element from a, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movedup_pd ++FORCE_INLINE __m128d _mm_movedup_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdupq_laneq_f64(vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_u64( ++ vdupq_n_u64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0))); ++#endif ++} ++ ++// Duplicate odd-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehdup_ps ++FORCE_INLINE __m128 _mm_movehdup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 1, 1, 3, 3)); ++#else ++ float32_t a1 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ float32_t a3 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 3); ++ float ALIGN_STRUCT(16) data[4] = {a1, a1, a3, a3}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Duplicate even-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_moveldup_ps ++FORCE_INLINE __m128 _mm_moveldup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 0, 0, 2, 2)); ++#else ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32_t a2 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 2); ++ float ALIGN_STRUCT(16) data[4] = {a0, a0, a2, a2}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++/* SSSE3 */ ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi16 ++FORCE_INLINE __m128i _mm_abs_epi16(__m128i a) ++{ ++ return vreinterpretq_m128i_s16(vabsq_s16(vreinterpretq_s16_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi32 ++FORCE_INLINE __m128i _mm_abs_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32(vabsq_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi8 ++FORCE_INLINE __m128i _mm_abs_epi8(__m128i a) ++{ ++ return vreinterpretq_m128i_s8(vabsq_s8(vreinterpretq_s8_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi16 ++FORCE_INLINE __m64 _mm_abs_pi16(__m64 a) ++{ ++ return vreinterpret_m64_s16(vabs_s16(vreinterpret_s16_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi32 ++FORCE_INLINE __m64 _mm_abs_pi32(__m64 a) ++{ ++ return vreinterpret_m64_s32(vabs_s32(vreinterpret_s32_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi8 ++FORCE_INLINE __m64 _mm_abs_pi8(__m64 a) ++{ ++ return vreinterpret_m64_s8(vabs_s8(vreinterpret_s8_m64(a))); ++} ++ ++// Concatenate 16-byte blocks in a and b into a 32-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 16 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_epi8 ++#if defined(__GNUC__) && !defined(__clang__) ++#define _mm_alignr_epi8(a, b, imm) \ ++ __extension__({ \ ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); \ ++ uint8x16_t _b = vreinterpretq_u8_m128i(b); \ ++ __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) \ ++ ret = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) \ ++ ret = _mm_srli_si128(a, imm >= 16 ? imm - 16 : 0); \ ++ else \ ++ ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(_b, _a, imm < 16 ? imm : 0)); \ ++ ret; \ ++ }) ++ ++#else ++#define _mm_alignr_epi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, uint8x16_t __a = vreinterpretq_u8_m128i(_a); \ ++ uint8x16_t __b = vreinterpretq_u8_m128i(_b); __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) ret = \ ++ vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) ret = \ ++ _mm_srli_si128(_a, imm >= 16 ? imm - 16 : 0); \ ++ else ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(__b, __a, imm < 16 ? imm : 0)); \ ++ _sse2neon_return(ret);) ++ ++#endif ++ ++// Concatenate 8-byte blocks in a and b into a 16-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 8 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_pi8 ++#define _mm_alignr_pi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m64, a, b, __m64 ret; if (_sse2neon_unlikely((imm) >= 16)) { \ ++ ret = vreinterpret_m64_s8(vdup_n_s8(0)); \ ++ } else { \ ++ uint8x8_t tmp_low; \ ++ uint8x8_t tmp_high; \ ++ if ((imm) >= 8) { \ ++ const int idx = (imm) -8; \ ++ tmp_low = vreinterpret_u8_m64(_a); \ ++ tmp_high = vdup_n_u8(0); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } else { \ ++ const int idx = (imm); \ ++ tmp_low = vreinterpret_u8_m64(_b); \ ++ tmp_high = vreinterpret_u8_m64(_a); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } \ ++ } _sse2neon_return(ret);) ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi16 ++FORCE_INLINE __m128i _mm_hadd_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16(vpaddq_s16(a, b)); ++#else ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(vget_low_s16(a), vget_high_s16(a)), ++ vpadd_s16(vget_low_s16(b), vget_high_s16(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi32 ++FORCE_INLINE __m128i _mm_hadd_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32(vpaddq_s32(a, b)); ++#else ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vpadd_s32(vget_low_s32(a), vget_high_s32(a)), ++ vpadd_s32(vget_low_s32(b), vget_high_s32(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi16 ++FORCE_INLINE __m64 _mm_hadd_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vpadd_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi32 ++FORCE_INLINE __m64 _mm_hadd_pi32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s32( ++ vpadd_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_epi16 ++FORCE_INLINE __m128i _mm_hadds_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ return vreinterpretq_s64_s16( ++ vqaddq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ // Interleave using vshrn/vmovn ++ // [a0|a2|a4|a6|b0|b2|b4|b6] ++ // [a1|a3|a5|a7|b1|b3|b5|b7] ++ int16x8_t ab0246 = vcombine_s16(vmovn_s32(a), vmovn_s32(b)); ++ int16x8_t ab1357 = vcombine_s16(vshrn_n_s32(a, 16), vshrn_n_s32(b, 16)); ++ // Saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(ab0246, ab1357)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_pi16 ++FORCE_INLINE __m64 _mm_hadds_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_s64_s16(vqadd_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t res = vuzp_s16(a, b); ++ return vreinterpret_s64_s16(vqadd_s16(res.val[0], res.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi16 ++FORCE_INLINE __m128i _mm_hsub_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi32 ++FORCE_INLINE __m128i _mm_hsub_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vuzp1q_s32(a, b), vuzp2q_s32(a, b))); ++#else ++ int32x4x2_t c = vuzpq_s32(a, b); ++ return vreinterpretq_m128i_s32(vsubq_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pi16 ++FORCE_INLINE __m64 _mm_hsub_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_hsub_pi32 ++FORCE_INLINE __m64 _mm_hsub_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s32(vsub_s32(vuzp1_s32(a, b), vuzp2_s32(a, b))); ++#else ++ int32x2x2_t c = vuzp_s32(a, b); ++ return vreinterpret_m64_s32(vsub_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_epi16 ++FORCE_INLINE __m128i _mm_hsubs_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vqsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_pi16 ++FORCE_INLINE __m64 _mm_hsubs_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vqsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vqsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, ++// and pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_epi16 ++FORCE_INLINE __m128i _mm_maddubs_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ int16x8_t tl = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_low_u8(a))), ++ vmovl_s8(vget_low_s8(b))); ++ int16x8_t th = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_high_u8(a))), ++ vmovl_s8(vget_high_s8(b))); ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vuzp1q_s16(tl, th), vuzp2q_s16(tl, th))); ++#else ++ // This would be much simpler if x86 would choose to zero extend OR sign ++ // extend, not both. This could probably be optimized better. ++ uint16x8_t a = vreinterpretq_u16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // Zero extend a ++ int16x8_t a_odd = vreinterpretq_s16_u16(vshrq_n_u16(a, 8)); ++ int16x8_t a_even = vreinterpretq_s16_u16(vbicq_u16(a, vdupq_n_u16(0xff00))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x8_t b_even = vshrq_n_s16(vshlq_n_s16(b, 8), 8); ++ int16x8_t b_odd = vshrq_n_s16(b, 8); ++ ++ // multiply ++ int16x8_t prod1 = vmulq_s16(a_even, b_even); ++ int16x8_t prod2 = vmulq_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(prod1, prod2)); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, and ++// pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_pi16 ++FORCE_INLINE __m64 _mm_maddubs_pi16(__m64 _a, __m64 _b) ++{ ++ uint16x4_t a = vreinterpret_u16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // Zero extend a ++ int16x4_t a_odd = vreinterpret_s16_u16(vshr_n_u16(a, 8)); ++ int16x4_t a_even = vreinterpret_s16_u16(vand_u16(a, vdup_n_u16(0xff))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x4_t b_even = vshr_n_s16(vshl_n_s16(b, 8), 8); ++ int16x4_t b_odd = vshr_n_s16(b, 8); ++ ++ // multiply ++ int16x4_t prod1 = vmul_s16(a_even, b_even); ++ int16x4_t prod2 = vmul_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpret_m64_s16(vqadd_s16(prod1, prod2)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Shift right by 15 bits while rounding up, and store ++// the packed 16-bit integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_epi16 ++FORCE_INLINE __m128i _mm_mulhrs_epi16(__m128i a, __m128i b) ++{ ++ // Has issues due to saturation ++ // return vreinterpretq_m128i_s16(vqrdmulhq_s16(a, b)); ++ ++ // Multiply ++ int32x4_t mul_lo = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int32x4_t mul_hi = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ // Rounding narrowing shift right ++ // narrow = (int16_t)((mul + 16384) >> 15); ++ int16x4_t narrow_lo = vrshrn_n_s32(mul_lo, 15); ++ int16x4_t narrow_hi = vrshrn_n_s32(mul_hi, 15); ++ ++ // Join together ++ return vreinterpretq_m128i_s16(vcombine_s16(narrow_lo, narrow_hi)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Truncate each intermediate integer to the 18 most ++// significant bits, round by adding 1, and store bits [16:1] to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_pi16 ++FORCE_INLINE __m64 _mm_mulhrs_pi16(__m64 a, __m64 b) ++{ ++ int32x4_t mul_extend = ++ vmull_s16((vreinterpret_s16_m64(a)), (vreinterpret_s16_m64(b))); ++ ++ // Rounding narrowing shift right ++ return vreinterpret_m64_s16(vrshrn_n_s32(mul_extend, 15)); ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi8 ++FORCE_INLINE __m128i _mm_shuffle_epi8(__m128i a, __m128i b) ++{ ++ int8x16_t tbl = vreinterpretq_s8_m128i(a); // input a ++ uint8x16_t idx = vreinterpretq_u8_m128i(b); // input b ++ uint8x16_t idx_masked = ++ vandq_u8(idx, vdupq_n_u8(0x8F)); // avoid using meaningless bits ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8(vqtbl1q_s8(tbl, idx_masked)); ++#elif defined(__GNUC__) ++ int8x16_t ret; ++ // %e and %f represent the even and odd D registers ++ // respectively. ++ __asm__ __volatile__( ++ "vtbl.8 %e[ret], {%e[tbl], %f[tbl]}, %e[idx]\n" ++ "vtbl.8 %f[ret], {%e[tbl], %f[tbl]}, %f[idx]\n" ++ : [ret] "=&w"(ret) ++ : [tbl] "w"(tbl), [idx] "w"(idx_masked)); ++ return vreinterpretq_m128i_s8(ret); ++#else ++ // use this line if testing on aarch64 ++ int8x8x2_t a_split = {vget_low_s8(tbl), vget_high_s8(tbl)}; ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vtbl2_s8(a_split, vget_low_u8(idx_masked)), ++ vtbl2_s8(a_split, vget_high_u8(idx_masked)))); ++#endif ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi8 ++FORCE_INLINE __m64 _mm_shuffle_pi8(__m64 a, __m64 b) ++{ ++ const int8x8_t controlMask = ++ vand_s8(vreinterpret_s8_m64(b), vdup_n_s8((int8_t) (0x1 << 7 | 0x07))); ++ int8x8_t res = vtbl1_s8(vreinterpret_s8_m64(a), controlMask); ++ return vreinterpret_m64_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed ++// 16-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi16 ++FORCE_INLINE __m128i _mm_sign_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x8_t ltMask = vreinterpretq_u16_s16(vshrq_n_s16(b, 15)); ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqzq_s16(b)); ++#else ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqq_s16(b, vdupq_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s16(a) equals to negative ++ // 'a') based on ltMask ++ int16x8_t masked = vbslq_s16(ltMask, vnegq_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x8_t res = vbicq_s16(masked, zeroMask); ++ return vreinterpretq_m128i_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed ++// 32-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi32 ++FORCE_INLINE __m128i _mm_sign_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x4_t ltMask = vreinterpretq_u32_s32(vshrq_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqzq_s32(b)); ++#else ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqq_s32(b, vdupq_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s32(a) equals to negative ++ // 'a') based on ltMask ++ int32x4_t masked = vbslq_s32(ltMask, vnegq_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x4_t res = vbicq_s32(masked, zeroMask); ++ return vreinterpretq_m128i_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed ++// 8-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi8 ++FORCE_INLINE __m128i _mm_sign_epi8(__m128i _a, __m128i _b) ++{ ++ int8x16_t a = vreinterpretq_s8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x16_t ltMask = vreinterpretq_u8_s8(vshrq_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqzq_s8(b)); ++#else ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqq_s8(b, vdupq_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s8(a) return negative 'a') ++ // based on ltMask ++ int8x16_t masked = vbslq_s8(ltMask, vnegq_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x16_t res = vbicq_s8(masked, zeroMask); ++ ++ return vreinterpretq_m128i_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed 16-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi16 ++FORCE_INLINE __m64 _mm_sign_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x4_t ltMask = vreinterpret_u16_s16(vshr_n_s16(b, 15)); ++ ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceqz_s16(b)); ++#else ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceq_s16(b, vdup_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s16(a) return negative 'a') ++ // based on ltMask ++ int16x4_t masked = vbsl_s16(ltMask, vneg_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x4_t res = vbic_s16(masked, zeroMask); ++ ++ return vreinterpret_m64_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed 32-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi32 ++FORCE_INLINE __m64 _mm_sign_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x2_t ltMask = vreinterpret_u32_s32(vshr_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceqz_s32(b)); ++#else ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceq_s32(b, vdup_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s32(a) return negative 'a') ++ // based on ltMask ++ int32x2_t masked = vbsl_s32(ltMask, vneg_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x2_t res = vbic_s32(masked, zeroMask); ++ ++ return vreinterpret_m64_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed 8-bit integer ++// in b is negative, and store the results in dst. Element in dst are zeroed out ++// when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi8 ++FORCE_INLINE __m64 _mm_sign_pi8(__m64 _a, __m64 _b) ++{ ++ int8x8_t a = vreinterpret_s8_m64(_a); ++ int8x8_t b = vreinterpret_s8_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x8_t ltMask = vreinterpret_u8_s8(vshr_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceqz_s8(b)); ++#else ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceq_s8(b, vdup_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s8(a) return negative 'a') ++ // based on ltMask ++ int8x8_t masked = vbsl_s8(ltMask, vneg_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x8_t res = vbic_s8(masked, zeroMask); ++ ++ return vreinterpret_m64_s8(res); ++} ++ ++/* SSE4.1 */ ++ ++// Blend packed 16-bit integers from a and b using control mask imm8, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_epi16 ++// FORCE_INLINE __m128i _mm_blend_epi16(__m128i a, __m128i b, ++// __constrange(0,255) int imm) ++#define _mm_blend_epi16(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, \ ++ const uint16_t _mask[8] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 1)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 2)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 3)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 4)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 5)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 6)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 7)) ? (uint16_t) -1 : 0x0); \ ++ uint16x8_t _mask_vec = vld1q_u16(_mask); \ ++ uint16x8_t __a = vreinterpretq_u16_m128i(_a); \ ++ uint16x8_t __b = vreinterpretq_u16_m128i(_b); _sse2neon_return( \ ++ vreinterpretq_m128i_u16(vbslq_u16(_mask_vec, __b, __a)));) ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using control mask imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_pd ++#define _mm_blend_pd(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128d, a, b, \ ++ const uint64_t _mask[2] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? ~UINT64_C(0) : UINT64_C(0), \ ++ ((imm) & (1 << 1)) ? ~UINT64_C(0) : UINT64_C(0)); \ ++ uint64x2_t _mask_vec = vld1q_u64(_mask); \ ++ uint64x2_t __a = vreinterpretq_u64_m128d(_a); \ ++ uint64x2_t __b = vreinterpretq_u64_m128d(_b); _sse2neon_return( \ ++ vreinterpretq_m128d_u64(vbslq_u64(_mask_vec, __b, __a)));) ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_ps ++FORCE_INLINE __m128 _mm_blend_ps(__m128 _a, __m128 _b, const char imm8) ++{ ++ const uint32_t ALIGN_STRUCT(16) ++ data[4] = {((imm8) & (1 << 0)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0}; ++ uint32x4_t mask = vld1q_u32(data); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Blend packed 8-bit integers from a and b using mask, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_epi8 ++FORCE_INLINE __m128i _mm_blendv_epi8(__m128i _a, __m128i _b, __m128i _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint8x16_t mask = ++ vreinterpretq_u8_s8(vshrq_n_s8(vreinterpretq_s8_m128i(_mask), 7)); ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ uint8x16_t b = vreinterpretq_u8_m128i(_b); ++ return vreinterpretq_m128i_u8(vbslq_u8(mask, b, a)); ++} ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_pd ++FORCE_INLINE __m128d _mm_blendv_pd(__m128d _a, __m128d _b, __m128d _mask) ++{ ++ uint64x2_t mask = ++ vreinterpretq_u64_s64(vshrq_n_s64(vreinterpretq_s64_m128d(_mask), 63)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64(vbslq_f64(mask, b, a)); ++#else ++ uint64x2_t a = vreinterpretq_u64_m128d(_a); ++ uint64x2_t b = vreinterpretq_u64_m128d(_b); ++ return vreinterpretq_m128d_u64(vbslq_u64(mask, b, a)); ++#endif ++} ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_ps ++FORCE_INLINE __m128 _mm_blendv_ps(__m128 _a, __m128 _b, __m128 _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint32x4_t mask = ++ vreinterpretq_u32_s32(vshrq_n_s32(vreinterpretq_s32_m128(_mask), 31)); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a up ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_pd ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndpq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(ceil(f[1]), ceil(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a up to ++// an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ps ++FORCE_INLINE __m128 _mm_ceil_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndpq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ceilf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b up to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_sd ++FORCE_INLINE __m128d _mm_ceil_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_ceil_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b up to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ss ++FORCE_INLINE __m128 _mm_ceil_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_ceil_ps(b)); ++} ++ ++// Compare packed 64-bit integers in a and b for equality, and store the results ++// in dst ++FORCE_INLINE __m128i _mm_cmpeq_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vceqq_u64(vreinterpretq_u64_m128i(a), vreinterpretq_u64_m128i(b))); ++#else ++ // ARMv7 lacks vceqq_u64 ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128i_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Sign extend packed 16-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi32 ++FORCE_INLINE __m128i _mm_cvtepi16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vmovl_s16(vget_low_s16(vreinterpretq_s16_m128i(a)))); ++} ++ ++// Sign extend packed 16-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi64 ++FORCE_INLINE __m128i _mm_cvtepi16_epi64(__m128i a) ++{ ++ int16x8_t s16x8 = vreinterpretq_s16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Sign extend packed 32-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_epi64 ++FORCE_INLINE __m128i _mm_cvtepi32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a)))); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 16-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi16 ++FORCE_INLINE __m128i _mm_cvtepi8_epi16(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ return vreinterpretq_m128i_s16(s16x8); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi32 ++FORCE_INLINE __m128i _mm_cvtepi8_epi32(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_s32(s32x4); ++} ++ ++// Sign extend packed 8-bit integers in the low 8 bytes of a to packed 64-bit ++// integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi64 ++FORCE_INLINE __m128i _mm_cvtepi8_epi64(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi32 ++FORCE_INLINE __m128i _mm_cvtepu16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_u32( ++ vmovl_u16(vget_low_u16(vreinterpretq_u16_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi64 ++FORCE_INLINE __m128i _mm_cvtepu16_epi64(__m128i a) ++{ ++ uint16x8_t u16x8 = vreinterpretq_u16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Zero extend packed unsigned 32-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu32_epi64 ++FORCE_INLINE __m128i _mm_cvtepu32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_u64( ++ vmovl_u32(vget_low_u32(vreinterpretq_u32_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 16-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi16 ++FORCE_INLINE __m128i _mm_cvtepu8_epi16(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx HGFE DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0H0G 0F0E 0D0C 0B0A */ ++ return vreinterpretq_m128i_u16(u16x8); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi32 ++FORCE_INLINE __m128i _mm_cvtepu8_epi32(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_u32(u32x4); ++} ++ ++// Zero extend packed unsigned 8-bit integers in the low 8 bytes of a to packed ++// 64-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi64 ++FORCE_INLINE __m128i _mm_cvtepu8_epi64(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Conditionally multiply the packed double-precision (64-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, and ++// conditionally store the sum in dst using the low 4 bits of imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_pd ++FORCE_INLINE __m128d _mm_dp_pd(__m128d a, __m128d b, const int imm) ++{ ++ // Generate mask value from constant immediate bit value ++ const int64_t bit0Mask = imm & 0x01 ? UINT64_MAX : 0; ++ const int64_t bit1Mask = imm & 0x02 ? UINT64_MAX : 0; ++#if !SSE2NEON_PRECISE_DP ++ const int64_t bit4Mask = imm & 0x10 ? UINT64_MAX : 0; ++ const int64_t bit5Mask = imm & 0x20 ? UINT64_MAX : 0; ++#endif ++ // Conditional multiplication ++#if !SSE2NEON_PRECISE_DP ++ __m128d mul = _mm_mul_pd(a, b); ++ const __m128d mulMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit5Mask, bit4Mask)); ++ __m128d tmp = _mm_and_pd(mul, mulMask); ++#else ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double d0 = (imm & 0x10) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 0) ++ : 0; ++ double d1 = (imm & 0x20) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 1) ++ : 0; ++#else ++ double d0 = (imm & 0x10) ? ((double *) &a)[0] * ((double *) &b)[0] : 0; ++ double d1 = (imm & 0x20) ? ((double *) &a)[1] * ((double *) &b)[1] : 0; ++#endif ++ __m128d tmp = _mm_set_pd(d1, d0); ++#endif ++ // Sum the products ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double sum = vpaddd_f64(vreinterpretq_f64_m128d(tmp)); ++#else ++ double sum = *((double *) &tmp) + *(((double *) &tmp) + 1); ++#endif ++ // Conditionally store the sum ++ const __m128d sumMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit1Mask, bit0Mask)); ++ __m128d res = _mm_and_pd(_mm_set_pd1(sum), sumMask); ++ return res; ++} ++ ++// Conditionally multiply the packed single-precision (32-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, ++// and conditionally store the sum in dst using the low 4 bits of imm. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_ps ++FORCE_INLINE __m128 _mm_dp_ps(__m128 a, __m128 b, const int imm) ++{ ++ float32x4_t elementwise_prod = _mm_mul_ps(a, b); ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ /* shortcuts */ ++ if (imm == 0xFF) { ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++ ++ if ((imm & 0x0F) == 0x0F) { ++ if (!(imm & (1 << 4))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 0); ++ if (!(imm & (1 << 5))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 1); ++ if (!(imm & (1 << 6))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 2); ++ if (!(imm & (1 << 7))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 3); ++ ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++#endif ++ ++ float s = 0.0f; ++ ++ if (imm & (1 << 4)) ++ s += vgetq_lane_f32(elementwise_prod, 0); ++ if (imm & (1 << 5)) ++ s += vgetq_lane_f32(elementwise_prod, 1); ++ if (imm & (1 << 6)) ++ s += vgetq_lane_f32(elementwise_prod, 2); ++ if (imm & (1 << 7)) ++ s += vgetq_lane_f32(elementwise_prod, 3); ++ ++ const float32_t res[4] = { ++ (imm & 0x1) ? s : 0.0f, ++ (imm & 0x2) ? s : 0.0f, ++ (imm & 0x4) ? s : 0.0f, ++ (imm & 0x8) ? s : 0.0f, ++ }; ++ return vreinterpretq_m128_f32(vld1q_f32(res)); ++} ++ ++// Extract a 32-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi32 ++// FORCE_INLINE int _mm_extract_epi32(__m128i a, __constrange(0,4) int imm) ++#define _mm_extract_epi32(a, imm) \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)) ++ ++// Extract a 64-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi64 ++// FORCE_INLINE __int64 _mm_extract_epi64(__m128i a, __constrange(0,2) int imm) ++#define _mm_extract_epi64(a, imm) \ ++ vgetq_lane_s64(vreinterpretq_s64_m128i(a), (imm)) ++ ++// Extract an 8-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. FORCE_INLINE int _mm_extract_epi8(__m128i a, ++// __constrange(0,16) int imm) ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi8 ++#define _mm_extract_epi8(a, imm) vgetq_lane_u8(vreinterpretq_u8_m128i(a), (imm)) ++ ++// Extracts the selected single-precision (32-bit) floating-point from a. ++// FORCE_INLINE int _mm_extract_ps(__m128 a, __constrange(0,4) int imm) ++#define _mm_extract_ps(a, imm) vgetq_lane_s32(vreinterpretq_s32_m128(a), (imm)) ++ ++// Round the packed double-precision (64-bit) floating-point elements in a down ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_pd ++FORCE_INLINE __m128d _mm_floor_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndmq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(floor(f[1]), floor(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a down ++// to an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ps ++FORCE_INLINE __m128 _mm_floor_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndmq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(floorf(f[3]), floorf(f[2]), floorf(f[1]), floorf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b down to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_sd ++FORCE_INLINE __m128d _mm_floor_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_floor_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b down to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ss ++FORCE_INLINE __m128 _mm_floor_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_floor_ps(b)); ++} ++ ++// Copy a to dst, and insert the 32-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi32 ++// FORCE_INLINE __m128i _mm_insert_epi32(__m128i a, int b, ++// __constrange(0,4) int imm) ++#define _mm_insert_epi32(a, b, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vsetq_lane_s32((b), vreinterpretq_s32_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the 64-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi64 ++// FORCE_INLINE __m128i _mm_insert_epi64(__m128i a, __int64 b, ++// __constrange(0,2) int imm) ++#define _mm_insert_epi64(a, b, imm) \ ++ vreinterpretq_m128i_s64( \ ++ vsetq_lane_s64((b), vreinterpretq_s64_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the lower 8-bit integer from i into dst at the ++// location specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi8 ++// FORCE_INLINE __m128i _mm_insert_epi8(__m128i a, int b, ++// __constrange(0,16) int imm) ++#define _mm_insert_epi8(a, b, imm) \ ++ vreinterpretq_m128i_s8(vsetq_lane_s8((b), vreinterpretq_s8_m128i(a), (imm))) ++ ++// Copy a to tmp, then insert a single-precision (32-bit) floating-point ++// element from b into tmp using the control in imm8. Store tmp to dst using ++// the mask in imm8 (elements are zeroed out when the corresponding bit is set). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=insert_ps ++#define _mm_insert_ps(a, b, imm8) \ ++ _sse2neon_define2( \ ++ __m128, a, b, \ ++ float32x4_t tmp1 = \ ++ vsetq_lane_f32(vgetq_lane_f32(_b, (imm8 >> 6) & 0x3), \ ++ vreinterpretq_f32_m128(_a), 0); \ ++ float32x4_t tmp2 = \ ++ vsetq_lane_f32(vgetq_lane_f32(tmp1, 0), \ ++ vreinterpretq_f32_m128(_a), ((imm8 >> 4) & 0x3)); \ ++ const uint32_t data[4] = \ ++ _sse2neon_init(((imm8) & (1 << 0)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0); \ ++ uint32x4_t mask = vld1q_u32(data); \ ++ float32x4_t all_zeros = vdupq_n_f32(0); \ ++ \ ++ _sse2neon_return(vreinterpretq_m128_f32( \ ++ vbslq_f32(mask, all_zeros, vreinterpretq_f32_m128(tmp2))));) ++ ++// Compare packed signed 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi32 ++FORCE_INLINE __m128i _mm_max_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmaxq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi8 ++FORCE_INLINE __m128i _mm_max_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vmaxq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu16 ++FORCE_INLINE __m128i _mm_max_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vmaxq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_max_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vmaxq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi32 ++FORCE_INLINE __m128i _mm_min_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vminq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi8 ++FORCE_INLINE __m128i _mm_min_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vminq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu16 ++FORCE_INLINE __m128i _mm_min_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vminq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_min_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vminq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Horizontally compute the minimum amongst the packed unsigned 16-bit integers ++// in a, store the minimum and index in dst, and zero the remaining bits in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_minpos_epu16 ++FORCE_INLINE __m128i _mm_minpos_epu16(__m128i a) ++{ ++ __m128i dst; ++ uint16_t min, idx = 0; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Find the minimum value ++ min = vminvq_u16(vreinterpretq_u16_m128i(a)); ++ ++ // Get the index of the minimum value ++ static const uint16_t idxv[] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint16x8_t minv = vdupq_n_u16(min); ++ uint16x8_t cmeq = vceqq_u16(minv, vreinterpretq_u16_m128i(a)); ++ idx = vminvq_u16(vornq_u16(vld1q_u16(idxv), cmeq)); ++#else ++ // Find the minimum value ++ __m64 tmp; ++ tmp = vreinterpret_m64_u16( ++ vmin_u16(vget_low_u16(vreinterpretq_u16_m128i(a)), ++ vget_high_u16(vreinterpretq_u16_m128i(a)))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ min = vget_lane_u16(vreinterpret_u16_m64(tmp), 0); ++ // Get the index of the minimum value ++ int i; ++ for (i = 0; i < 8; i++) { ++ if (min == vgetq_lane_u16(vreinterpretq_u16_m128i(a), 0)) { ++ idx = (uint16_t) i; ++ break; ++ } ++ a = _mm_srli_si128(a, 2); ++ } ++#endif ++ // Generate result ++ dst = _mm_setzero_si128(); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(min, vreinterpretq_u16_m128i(dst), 0)); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(idx, vreinterpretq_u16_m128i(dst), 1)); ++ return dst; ++} ++ ++// Compute the sum of absolute differences (SADs) of quadruplets of unsigned ++// 8-bit integers in a compared to those in b, and store the 16-bit results in ++// dst. Eight SADs are performed using one quadruplet from b and eight ++// quadruplets from a. One quadruplet is selected from b starting at on the ++// offset specified in imm8. Eight quadruplets are formed from sequential 8-bit ++// integers selected from a starting at the offset specified in imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mpsadbw_epu8 ++FORCE_INLINE __m128i _mm_mpsadbw_epu8(__m128i a, __m128i b, const int imm) ++{ ++ uint8x16_t _a, _b; ++ ++ switch (imm & 0x4) { ++ case 0: ++ // do nothing ++ _a = vreinterpretq_u8_m128i(a); ++ break; ++ case 4: ++ _a = vreinterpretq_u8_u32(vextq_u32(vreinterpretq_u32_m128i(a), ++ vreinterpretq_u32_m128i(a), 1)); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ switch (imm & 0x3) { ++ case 0: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 0))); ++ break; ++ case 1: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 1))); ++ break; ++ case 2: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 2))); ++ break; ++ case 3: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 3))); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ int16x8_t c04, c15, c26, c37; ++ uint8x8_t low_b = vget_low_u8(_b); ++ c04 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a), low_b)); ++ uint8x16_t _a_1 = vextq_u8(_a, _a, 1); ++ c15 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_1), low_b)); ++ uint8x16_t _a_2 = vextq_u8(_a, _a, 2); ++ c26 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_2), low_b)); ++ uint8x16_t _a_3 = vextq_u8(_a, _a, 3); ++ c37 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_3), low_b)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // |0|4|2|6| ++ c04 = vpaddq_s16(c04, c26); ++ // |1|5|3|7| ++ c15 = vpaddq_s16(c15, c37); ++ ++ int32x4_t trn1_c = ++ vtrn1q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ int32x4_t trn2_c = ++ vtrn2q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ return vreinterpretq_m128i_s16(vpaddq_s16(vreinterpretq_s16_s32(trn1_c), ++ vreinterpretq_s16_s32(trn2_c))); ++#else ++ int16x4_t c01, c23, c45, c67; ++ c01 = vpadd_s16(vget_low_s16(c04), vget_low_s16(c15)); ++ c23 = vpadd_s16(vget_low_s16(c26), vget_low_s16(c37)); ++ c45 = vpadd_s16(vget_high_s16(c04), vget_high_s16(c15)); ++ c67 = vpadd_s16(vget_high_s16(c26), vget_high_s16(c37)); ++ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(c01, c23), vpadd_s16(c45, c67))); ++#endif ++} ++ ++// Multiply the low signed 32-bit integers from each packed 64-bit element in ++// a and b, and store the signed 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epi32 ++FORCE_INLINE __m128i _mm_mul_epi32(__m128i a, __m128i b) ++{ ++ // vmull_s32 upcasts instead of masking, so we downcast. ++ int32x2_t a_lo = vmovn_s64(vreinterpretq_s64_m128i(a)); ++ int32x2_t b_lo = vmovn_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vmull_s32(a_lo, b_lo)); ++} ++ ++// Multiply the packed 32-bit integers in a and b, producing intermediate 64-bit ++// integers, and store the low 32 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi32 ++FORCE_INLINE __m128i _mm_mullo_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmulq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi32 ++FORCE_INLINE __m128i _mm_packus_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcombine_u16(vqmovun_s32(vreinterpretq_s32_m128i(a)), ++ vqmovun_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_pd ++FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d a, int rounding) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndnq_f64(vreinterpretq_f64_m128d(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_pd(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_pd(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndq_f64(vreinterpretq_f64_m128d(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128d_f64(vrndiq_f64(vreinterpretq_f64_m128d(a))); ++ } ++#else ++ double *v_double = (double *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ double res[2], tmp; ++ for (int i = 0; i < 2; i++) { ++ tmp = (v_double[i] < 0) ? -v_double[i] : v_double[i]; ++ double roundDown = floor(tmp); // Round down value ++ double roundUp = ceil(tmp); // Round up value ++ double diffDown = tmp - roundDown; ++ double diffUp = roundUp - tmp; ++ if (diffDown < diffUp) { ++ /* If it's closer to the round down value, then use it */ ++ res[i] = roundDown; ++ } else if (diffDown > diffUp) { ++ /* If it's closer to the round up value, then use it */ ++ res[i] = roundUp; ++ } else { ++ /* If it's equidistant between round up and round down value, ++ * pick the one which is an even number */ ++ double half = roundDown / 2; ++ if (half != floor(half)) { ++ /* If the round down value is odd, return the round up value ++ */ ++ res[i] = roundUp; ++ } else { ++ /* If the round up value is odd, return the round down value ++ */ ++ res[i] = roundDown; ++ } ++ } ++ res[i] = (v_double[i] < 0) ? -res[i] : res[i]; ++ } ++ return _mm_set_pd(res[1], res[0]); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_pd(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_pd(a); ++ } ++ return _mm_set_pd(v_double[1] > 0 ? floor(v_double[1]) : ceil(v_double[1]), ++ v_double[0] > 0 ? floor(v_double[0]) : ceil(v_double[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed single-precision ++// floating-point elements in dst. ++// software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_round_ps ++FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128 a, int rounding) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndnq_f32(vreinterpretq_f32_m128(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_ps(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_ps(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndq_f32(vreinterpretq_f32_m128(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128_f32(vrndiq_f32(vreinterpretq_f32_m128(a))); ++ } ++#else ++ float *v_float = (float *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vbslq_s32(is_delta_half, r_even, r_normal))); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_ps(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_ps(a); ++ } ++ return _mm_set_ps(v_float[3] > 0 ? floorf(v_float[3]) : ceilf(v_float[3]), ++ v_float[2] > 0 ? floorf(v_float[2]) : ceilf(v_float[2]), ++ v_float[1] > 0 ? floorf(v_float[1]) : ceilf(v_float[1]), ++ v_float[0] > 0 ? floorf(v_float[0]) : ceilf(v_float[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b using ++// the rounding parameter, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_sd ++FORCE_INLINE __m128d _mm_round_sd(__m128d a, __m128d b, int rounding) ++{ ++ return _mm_move_sd(a, _mm_round_pd(b, rounding)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b using ++// the rounding parameter, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. Rounding is done according to the ++// rounding[3:0] parameter, which can be one of: ++// (_MM_FROUND_TO_NEAREST_INT |_MM_FROUND_NO_EXC) // round to nearest, and ++// suppress exceptions ++// (_MM_FROUND_TO_NEG_INF |_MM_FROUND_NO_EXC) // round down, and ++// suppress exceptions ++// (_MM_FROUND_TO_POS_INF |_MM_FROUND_NO_EXC) // round up, and suppress ++// exceptions ++// (_MM_FROUND_TO_ZERO |_MM_FROUND_NO_EXC) // truncate, and suppress ++// exceptions _MM_FROUND_CUR_DIRECTION // use MXCSR.RC; see ++// _MM_SET_ROUNDING_MODE ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_ss ++FORCE_INLINE __m128 _mm_round_ss(__m128 a, __m128 b, int rounding) ++{ ++ return _mm_move_ss(a, _mm_round_ps(b, rounding)); ++} ++ ++// Load 128-bits of integer data from memory into dst using a non-temporal ++// memory hint. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_load_si128 ++FORCE_INLINE __m128i _mm_stream_load_si128(__m128i *p) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ return __builtin_nontemporal_load(p); ++#else ++ return vreinterpretq_m128i_s64(vld1q_s64((int64_t *) p)); ++#endif ++} ++ ++// Compute the bitwise NOT of a and then AND with a 128-bit vector containing ++// all 1's, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_ones ++FORCE_INLINE int _mm_test_all_ones(__m128i a) ++{ ++ return (uint64_t) (vgetq_lane_s64(a, 0) & vgetq_lane_s64(a, 1)) == ++ ~(uint64_t) 0; ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_zeros ++FORCE_INLINE int _mm_test_all_zeros(__m128i a, __m128i mask) ++{ ++ int64x2_t a_and_mask = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(mask)); ++ return !(vgetq_lane_s64(a_and_mask, 0) | vgetq_lane_s64(a_and_mask, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute ++// the bitwise NOT of a and then AND with mask, and set CF to 1 if the result is ++// zero, otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_test_mix_ones_zero ++// Note: Argument names may be wrong in the Intel intrinsics guide. ++FORCE_INLINE int _mm_test_mix_ones_zeros(__m128i a, __m128i mask) ++{ ++ uint64x2_t v = vreinterpretq_u64_m128i(a); ++ uint64x2_t m = vreinterpretq_u64_m128i(mask); ++ ++ // find ones (set-bits) and zeros (clear-bits) under clip mask ++ uint64x2_t ones = vandq_u64(m, v); ++ uint64x2_t zeros = vbicq_u64(m, v); ++ ++ // If both 128-bit variables are populated (non-zero) then return 1. ++ // For comparison purposes, first compact each var down to 32-bits. ++ uint32x2_t reduced = vpmax_u32(vqmovn_u64(ones), vqmovn_u64(zeros)); ++ ++ // if folding minimum is non-zero then both vars must be non-zero ++ return (vget_lane_u32(vpmin_u32(reduced, reduced), 0) != 0); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the CF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testc_si128 ++FORCE_INLINE int _mm_testc_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vbicq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testnzc_si128 ++#define _mm_testnzc_si128(a, b) _mm_test_mix_ones_zeros(a, b) ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the ZF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testz_si128 ++FORCE_INLINE int _mm_testz_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++/* SSE4.2 */ ++ ++static const uint16_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask16b[8] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++static const uint8_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask8b[16] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++ ++/* specify the source data format */ ++#define _SIDD_UBYTE_OPS 0x00 /* unsigned 8-bit characters */ ++#define _SIDD_UWORD_OPS 0x01 /* unsigned 16-bit characters */ ++#define _SIDD_SBYTE_OPS 0x02 /* signed 8-bit characters */ ++#define _SIDD_SWORD_OPS 0x03 /* signed 16-bit characters */ ++ ++/* specify the comparison operation */ ++#define _SIDD_CMP_EQUAL_ANY 0x00 /* compare equal any: strchr */ ++#define _SIDD_CMP_RANGES 0x04 /* compare ranges */ ++#define _SIDD_CMP_EQUAL_EACH 0x08 /* compare equal each: strcmp */ ++#define _SIDD_CMP_EQUAL_ORDERED 0x0C /* compare equal ordered */ ++ ++/* specify the polarity */ ++#define _SIDD_POSITIVE_POLARITY 0x00 ++#define _SIDD_MASKED_POSITIVE_POLARITY 0x20 ++#define _SIDD_NEGATIVE_POLARITY 0x10 /* negate results */ ++#define _SIDD_MASKED_NEGATIVE_POLARITY \ ++ 0x30 /* negate results only before end of string */ ++ ++/* specify the output selection in _mm_cmpXstri */ ++#define _SIDD_LEAST_SIGNIFICANT 0x00 ++#define _SIDD_MOST_SIGNIFICANT 0x40 ++ ++/* specify the output selection in _mm_cmpXstrm */ ++#define _SIDD_BIT_MASK 0x00 ++#define _SIDD_UNIT_MASK 0x40 ++ ++/* Pattern Matching for C macros. ++ * https://github.com/pfultz2/Cloak/wiki/C-Preprocessor-tricks,-tips,-and-idioms ++ */ ++ ++/* catenate */ ++#define SSE2NEON_PRIMITIVE_CAT(a, ...) a##__VA_ARGS__ ++#define SSE2NEON_CAT(a, b) SSE2NEON_PRIMITIVE_CAT(a, b) ++ ++#define SSE2NEON_IIF(c) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_IIF_, c) ++/* run the 2nd parameter */ ++#define SSE2NEON_IIF_0(t, ...) __VA_ARGS__ ++/* run the 1st parameter */ ++#define SSE2NEON_IIF_1(t, ...) t ++ ++#define SSE2NEON_COMPL(b) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_COMPL_, b) ++#define SSE2NEON_COMPL_0 1 ++#define SSE2NEON_COMPL_1 0 ++ ++#define SSE2NEON_DEC(x) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_DEC_, x) ++#define SSE2NEON_DEC_1 0 ++#define SSE2NEON_DEC_2 1 ++#define SSE2NEON_DEC_3 2 ++#define SSE2NEON_DEC_4 3 ++#define SSE2NEON_DEC_5 4 ++#define SSE2NEON_DEC_6 5 ++#define SSE2NEON_DEC_7 6 ++#define SSE2NEON_DEC_8 7 ++#define SSE2NEON_DEC_9 8 ++#define SSE2NEON_DEC_10 9 ++#define SSE2NEON_DEC_11 10 ++#define SSE2NEON_DEC_12 11 ++#define SSE2NEON_DEC_13 12 ++#define SSE2NEON_DEC_14 13 ++#define SSE2NEON_DEC_15 14 ++#define SSE2NEON_DEC_16 15 ++ ++/* detection */ ++#define SSE2NEON_CHECK_N(x, n, ...) n ++#define SSE2NEON_CHECK(...) SSE2NEON_CHECK_N(__VA_ARGS__, 0, ) ++#define SSE2NEON_PROBE(x) x, 1, ++ ++#define SSE2NEON_NOT(x) SSE2NEON_CHECK(SSE2NEON_PRIMITIVE_CAT(SSE2NEON_NOT_, x)) ++#define SSE2NEON_NOT_0 SSE2NEON_PROBE(~) ++ ++#define SSE2NEON_BOOL(x) SSE2NEON_COMPL(SSE2NEON_NOT(x)) ++#define SSE2NEON_IF(c) SSE2NEON_IIF(SSE2NEON_BOOL(c)) ++ ++#define SSE2NEON_EAT(...) ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++#define SSE2NEON_WHEN(c) SSE2NEON_IF(c)(SSE2NEON_EXPAND, SSE2NEON_EAT) ++ ++/* recursion */ ++/* deferred expression */ ++#define SSE2NEON_EMPTY() ++#define SSE2NEON_DEFER(id) id SSE2NEON_EMPTY() ++#define SSE2NEON_OBSTRUCT(...) __VA_ARGS__ SSE2NEON_DEFER(SSE2NEON_EMPTY)() ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++ ++#define SSE2NEON_EVAL(...) \ ++ SSE2NEON_EVAL1(SSE2NEON_EVAL1(SSE2NEON_EVAL1(__VA_ARGS__))) ++#define SSE2NEON_EVAL1(...) \ ++ SSE2NEON_EVAL2(SSE2NEON_EVAL2(SSE2NEON_EVAL2(__VA_ARGS__))) ++#define SSE2NEON_EVAL2(...) \ ++ SSE2NEON_EVAL3(SSE2NEON_EVAL3(SSE2NEON_EVAL3(__VA_ARGS__))) ++#define SSE2NEON_EVAL3(...) __VA_ARGS__ ++ ++#define SSE2NEON_REPEAT(count, macro, ...) \ ++ SSE2NEON_WHEN(count) \ ++ (SSE2NEON_OBSTRUCT(SSE2NEON_REPEAT_INDIRECT)()( \ ++ SSE2NEON_DEC(count), macro, \ ++ __VA_ARGS__) SSE2NEON_OBSTRUCT(macro)(SSE2NEON_DEC(count), \ ++ __VA_ARGS__)) ++#define SSE2NEON_REPEAT_INDIRECT() SSE2NEON_REPEAT ++ ++#define SSE2NEON_SIZE_OF_byte 8 ++#define SSE2NEON_NUMBER_OF_LANES_byte 16 ++#define SSE2NEON_SIZE_OF_word 16 ++#define SSE2NEON_NUMBER_OF_LANES_word 8 ++ ++#define SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE(i, type) \ ++ mtx[i] = vreinterpretq_m128i_##type(vceqq_##type( \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)), \ ++ vreinterpretq_##type##_m128i(a))); ++ ++#define SSE2NEON_FILL_LANE(i, type) \ ++ vec_b[i] = \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)); ++ ++#define PCMPSTR_RANGES(a, b, mtx, data_type_prefix, type_prefix, size, \ ++ number_of_lanes, byte_or_word) \ ++ do { \ ++ SSE2NEON_CAT( \ ++ data_type_prefix, \ ++ SSE2NEON_CAT(size, \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(number_of_lanes, _t)))) \ ++ vec_b[number_of_lanes]; \ ++ __m128i mask = SSE2NEON_IIF(byte_or_word)( \ ++ vreinterpretq_m128i_u16(vdupq_n_u16(0xff)), \ ++ vreinterpretq_m128i_u32(vdupq_n_u32(0xffff))); \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, SSE2NEON_FILL_LANE, \ ++ SSE2NEON_CAT(type_prefix, size))) \ ++ for (int i = 0; i < number_of_lanes; i++) { \ ++ mtx[i] = SSE2NEON_CAT(vreinterpretq_m128i_u, \ ++ size)(SSE2NEON_CAT(vbslq_u, size)( \ ++ SSE2NEON_CAT(vreinterpretq_u, \ ++ SSE2NEON_CAT(size, _m128i))(mask), \ ++ SSE2NEON_CAT(vcgeq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))), \ ++ SSE2NEON_CAT(vcleq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))))); \ ++ } \ ++ } while (0) ++ ++#define PCMPSTR_EQ(a, b, mtx, size, number_of_lanes) \ ++ do { \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, \ ++ SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE, \ ++ SSE2NEON_CAT(u, size))) \ ++ } while (0) ++ ++#define SSE2NEON_CMP_EQUAL_ANY_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_any(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_any_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_RANGES_IMPL(type, data_type, us, byte_or_word) \ ++ static int _sse2neon_cmp_##us##type##_ranges(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_RANGES( \ ++ a, b, mtx, data_type, us, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), byte_or_word); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_ranges_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_EQUAL_ORDERED_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_ordered(__m128i a, int la, \ ++ __m128i b, int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_ordered_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type))))( \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), la, lb, mtx); \ ++ } ++ ++static int _sse2neon_aggregate_equal_any_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ int tmp = _sse2neon_vaddvq_u8(vreinterpretq_u8_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_equal_any_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ int tmp = _sse2neon_vaddvq_u16(vreinterpretq_u16_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ANY(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ANY(SSE2NEON_CMP_EQUAL_ANY_) ++ ++static int _sse2neon_aggregate_ranges_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ __m128i tmp = vreinterpretq_m128i_u32( ++ vshrq_n_u32(vreinterpretq_u32_m128i(mtx[j]), 16)); ++ uint32x4_t vec_res = vandq_u32(vreinterpretq_u32_m128i(mtx[j]), ++ vreinterpretq_u32_m128i(tmp)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int t = vaddvq_u32(vec_res) ? 1 : 0; ++#else ++ uint64x2_t sumh = vpaddlq_u32(vec_res); ++ int t = vgetq_lane_u64(sumh, 0) + vgetq_lane_u64(sumh, 1); ++#endif ++ res |= (t << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_ranges_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ __m128i tmp = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 8)); ++ uint16x8_t vec_res = vandq_u16(vreinterpretq_u16_m128i(mtx[j]), ++ vreinterpretq_u16_m128i(tmp)); ++ int t = _sse2neon_vaddvq_u16(vec_res) ? 1 : 0; ++ res |= (t << j); ++ } ++ return res; ++} ++ ++#define SSE2NEON_CMP_RANGES_IS_BYTE 1 ++#define SSE2NEON_CMP_RANGES_IS_WORD 0 ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_RANGES(prefix) \ ++ prefix##IMPL(byte, uint, u, prefix##IS_BYTE) \ ++ prefix##IMPL(byte, int, s, prefix##IS_BYTE) \ ++ prefix##IMPL(word, uint, u, prefix##IS_WORD) \ ++ prefix##IMPL(word, int, s, prefix##IS_WORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_RANGES(SSE2NEON_CMP_RANGES_) ++ ++#undef SSE2NEON_CMP_RANGES_IS_BYTE ++#undef SSE2NEON_CMP_RANGES_IS_WORD ++ ++static int _sse2neon_cmp_byte_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint8x16_t mtx = ++ vceqq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x10000 - (1 << la); ++ int tb = 0x10000 - (1 << lb); ++ uint8x8_t vec_mask, vec0_lo, vec0_hi, vec1_lo, vec1_hi; ++ uint8x8_t tmp_lo, tmp_hi, res_lo, res_hi; ++ vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ vec0_lo = vtst_u8(vdup_n_u8(m0), vec_mask); ++ vec0_hi = vtst_u8(vdup_n_u8(m0 >> 8), vec_mask); ++ vec1_lo = vtst_u8(vdup_n_u8(m1), vec_mask); ++ vec1_hi = vtst_u8(vdup_n_u8(m1 >> 8), vec_mask); ++ tmp_lo = vtst_u8(vdup_n_u8(tb), vec_mask); ++ tmp_hi = vtst_u8(vdup_n_u8(tb >> 8), vec_mask); ++ ++ res_lo = vbsl_u8(vec0_lo, vdup_n_u8(0), vget_low_u8(mtx)); ++ res_hi = vbsl_u8(vec0_hi, vdup_n_u8(0), vget_high_u8(mtx)); ++ res_lo = vbsl_u8(vec1_lo, tmp_lo, res_lo); ++ res_hi = vbsl_u8(vec1_hi, tmp_hi, res_hi); ++ res_lo = vand_u8(res_lo, vec_mask); ++ res_hi = vand_u8(res_hi, vec_mask); ++ ++ int res = _sse2neon_vaddv_u8(res_lo) + (_sse2neon_vaddv_u8(res_hi) << 8); ++ return res; ++} ++ ++static int _sse2neon_cmp_word_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint16x8_t mtx = ++ vceqq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x100 - (1 << la); ++ int tb = 0x100 - (1 << lb); ++ uint16x8_t vec_mask = vld1q_u16(_sse2neon_cmpestr_mask16b); ++ uint16x8_t vec0 = vtstq_u16(vdupq_n_u16(m0), vec_mask); ++ uint16x8_t vec1 = vtstq_u16(vdupq_n_u16(m1), vec_mask); ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(tb), vec_mask); ++ mtx = vbslq_u16(vec0, vdupq_n_u16(0), mtx); ++ mtx = vbslq_u16(vec1, tmp, mtx); ++ mtx = vandq_u16(mtx, vec_mask); ++ return _sse2neon_vaddvq_u16(mtx); ++} ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE 1 ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD 0 ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IMPL(size, number_of_lanes, data_type) \ ++ static int _sse2neon_aggregate_equal_ordered_##size##x##number_of_lanes( \ ++ int bound, int la, int lb, __m128i mtx[16]) \ ++ { \ ++ int res = 0; \ ++ int m1 = SSE2NEON_IIF(data_type)(0x10000, 0x100) - (1 << la); \ ++ uint##size##x8_t vec_mask = SSE2NEON_IIF(data_type)( \ ++ vld1_u##size(_sse2neon_cmpestr_mask##size##b), \ ++ vld1q_u##size(_sse2neon_cmpestr_mask##size##b)); \ ++ uint##size##x##number_of_lanes##_t vec1 = SSE2NEON_IIF(data_type)( \ ++ vcombine_u##size(vtst_u##size(vdup_n_u##size(m1), vec_mask), \ ++ vtst_u##size(vdup_n_u##size(m1 >> 8), vec_mask)), \ ++ vtstq_u##size(vdupq_n_u##size(m1), vec_mask)); \ ++ uint##size##x##number_of_lanes##_t vec_minusone = vdupq_n_u##size(-1); \ ++ uint##size##x##number_of_lanes##_t vec_zero = vdupq_n_u##size(0); \ ++ for (int j = 0; j < lb; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size(vbslq_u##size( \ ++ vec1, vec_minusone, vreinterpretq_u##size##_m128i(mtx[j]))); \ ++ } \ ++ for (int j = lb; j < bound; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size( \ ++ vbslq_u##size(vec1, vec_minusone, vec_zero)); \ ++ } \ ++ unsigned SSE2NEON_IIF(data_type)(char, short) *ptr = \ ++ (unsigned SSE2NEON_IIF(data_type)(char, short) *) mtx; \ ++ for (int i = 0; i < bound; i++) { \ ++ int val = 1; \ ++ for (int j = 0, k = i; j < bound - i && k < bound; j++, k++) \ ++ val &= ptr[k * bound + j]; \ ++ res += val << i; \ ++ } \ ++ return res; \ ++ } ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(prefix) \ ++ prefix##IMPL(8, 16, prefix##IS_UBYTE) \ ++ prefix##IMPL(16, 8, prefix##IS_UWORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(SSE2NEON_AGGREGATE_EQUAL_ORDER_) ++ ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(SSE2NEON_CMP_EQUAL_ORDERED_) ++ ++#define SSE2NEON_CMPESTR_LIST \ ++ _(CMP_UBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_UWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_SBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_SWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_UBYTE_RANGES, cmp_ubyte_ranges) \ ++ _(CMP_UWORD_RANGES, cmp_uword_ranges) \ ++ _(CMP_SBYTE_RANGES, cmp_sbyte_ranges) \ ++ _(CMP_SWORD_RANGES, cmp_sword_ranges) \ ++ _(CMP_UBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_UWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_SBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_SWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_UBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_UWORD_EQUAL_ORDERED, cmp_word_equal_ordered) \ ++ _(CMP_SBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_SWORD_EQUAL_ORDERED, cmp_word_equal_ordered) ++ ++enum { ++#define _(name, func_suffix) name, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++typedef int (*cmpestr_func_t)(__m128i a, int la, __m128i b, int lb); ++static cmpestr_func_t _sse2neon_cmpfunc_table[] = { ++#define _(name, func_suffix) _sse2neon_##func_suffix, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++ ++FORCE_INLINE int _sse2neon_sido_negative(int res, int lb, int imm8, int bound) ++{ ++ switch (imm8 & 0x30) { ++ case _SIDD_NEGATIVE_POLARITY: ++ res ^= 0xffffffff; ++ break; ++ case _SIDD_MASKED_NEGATIVE_POLARITY: ++ res ^= (1 << lb) - 1; ++ break; ++ default: ++ break; ++ } ++ ++ return res & ((bound == 8) ? 0xFF : 0xFFFF); ++} ++ ++FORCE_INLINE int _sse2neon_clz(unsigned int x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt = 0; ++ if (_BitScanReverse(&cnt, x)) ++ return 31 - cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_clz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctz(unsigned int x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt = 0; ++ if (_BitScanForward(&cnt, x)) ++ return cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_ctz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctzll(unsigned long long x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt; ++#if defined(SSE2NEON_HAS_BITSCAN64) ++ if (_BitScanForward64(&cnt, x)) ++ return (int) (cnt); ++#else ++ if (_BitScanForward(&cnt, (unsigned long) (x))) ++ return (int) cnt; ++ if (_BitScanForward(&cnt, (unsigned long) (x >> 32))) ++ return (int) (cnt + 32); ++#endif /* SSE2NEON_HAS_BITSCAN64 */ ++ return 64; ++#else /* assume GNU compatible compilers */ ++ return x != 0 ? __builtin_ctzll(x) : 64; ++#endif ++} ++ ++#define SSE2NEON_MIN(x, y) (x) < (y) ? (x) : (y) ++ ++#define SSE2NEON_CMPSTR_SET_UPPER(var, imm) \ ++ const int var = (imm & 0x01) ? 8 : 16 ++ ++#define SSE2NEON_CMPESTRX_LEN_PAIR(a, b, la, lb) \ ++ int tmp1 = la ^ (la >> 31); \ ++ la = tmp1 - (la >> 31); \ ++ int tmp2 = lb ^ (lb >> 31); \ ++ lb = tmp2 - (lb >> 31); \ ++ la = SSE2NEON_MIN(la, bound); \ ++ lb = SSE2NEON_MIN(lb, bound) ++ ++// Compare all pairs of character in string a and b, ++// then aggregate the result. ++// As the only difference of PCMPESTR* and PCMPISTR* is the way to calculate the ++// length of string, we use SSE2NEON_CMP{I,E}STRX_GET_LEN to get the length of ++// string a and b. ++#define SSE2NEON_COMP_AGG(a, b, la, lb, imm8, IE) \ ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); \ ++ SSE2NEON_##IE##_LEN_PAIR(a, b, la, lb); \ ++ int r2 = (_sse2neon_cmpfunc_table[imm8 & 0x0f])(a, la, b, lb); \ ++ r2 = _sse2neon_sido_negative(r2, lb, imm8, bound) ++ ++#define SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8) \ ++ return (r2 == 0) ? bound \ ++ : ((imm8 & 0x40) ? (31 - _sse2neon_clz(r2)) \ ++ : _sse2neon_ctz(r2)) ++ ++#define SSE2NEON_CMPSTR_GENERATE_MASK(dst) \ ++ __m128i dst = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ if (imm8 & 0x40) { \ ++ if (bound == 8) { \ ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(r2), \ ++ vld1q_u16(_sse2neon_cmpestr_mask16b)); \ ++ dst = vreinterpretq_m128i_u16(vbslq_u16( \ ++ tmp, vdupq_n_u16(-1), vreinterpretq_u16_m128i(dst))); \ ++ } else { \ ++ uint8x16_t vec_r2 = \ ++ vcombine_u8(vdup_n_u8(r2), vdup_n_u8(r2 >> 8)); \ ++ uint8x16_t tmp = \ ++ vtstq_u8(vec_r2, vld1q_u8(_sse2neon_cmpestr_mask8b)); \ ++ dst = vreinterpretq_m128i_u8( \ ++ vbslq_u8(tmp, vdupq_n_u8(-1), vreinterpretq_u8_m128i(dst))); \ ++ } \ ++ } else { \ ++ if (bound == 16) { \ ++ dst = vreinterpretq_m128i_u16( \ ++ vsetq_lane_u16(r2 & 0xffff, vreinterpretq_u16_m128i(dst), 0)); \ ++ } else { \ ++ dst = vreinterpretq_m128i_u8( \ ++ vsetq_lane_u8(r2 & 0xff, vreinterpretq_u8_m128i(dst), 0)); \ ++ } \ ++ } \ ++ return dst ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and returns 1 if b did not contain a null character and the ++// resulting mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestra ++FORCE_INLINE int _mm_cmpestra(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ int lb_cpy = lb; ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return !r2 & (lb_cpy > bound); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrc ++FORCE_INLINE int _mm_cmpestrc(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestri ++FORCE_INLINE int _mm_cmpestri(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrm ++FORCE_INLINE __m128i ++_mm_cmpestrm(__m128i a, int la, __m128i b, int lb, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestro ++FORCE_INLINE int _mm_cmpestro(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrs ++FORCE_INLINE int _mm_cmpestrs(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) lb; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrz ++FORCE_INLINE int _mm_cmpestrz(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) la; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return lb <= (bound - 1); ++} ++ ++#define SSE2NEON_CMPISTRX_LENGTH(str, len, imm8) \ ++ do { \ ++ if (imm8 & 0x01) { \ ++ uint16x8_t equal_mask_##str = \ ++ vceqq_u16(vreinterpretq_u16_m128i(str), vdupq_n_u16(0)); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 3; \ ++ } else { \ ++ uint16x8_t equal_mask_##str = vreinterpretq_u16_u8( \ ++ vceqq_u8(vreinterpretq_u8_m128i(str), vdupq_n_u8(0))); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 2; \ ++ } \ ++ } while (0) ++ ++#define SSE2NEON_CMPISTRX_LEN_PAIR(a, b, la, lb) \ ++ int la, lb; \ ++ do { \ ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); \ ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); \ ++ } while (0) ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if b did not contain a null character and the resulting ++// mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistra ++FORCE_INLINE int _mm_cmpistra(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return !r2 & (lb >= bound); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrc ++FORCE_INLINE int _mm_cmpistrc(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistri ++FORCE_INLINE int _mm_cmpistri(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrm ++FORCE_INLINE __m128i _mm_cmpistrm(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistro ++FORCE_INLINE int _mm_cmpistro(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrs ++FORCE_INLINE int _mm_cmpistrs(__m128i a, __m128i b, const int imm8) ++{ ++ (void) b; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int la; ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrz ++FORCE_INLINE int _mm_cmpistrz(__m128i a, __m128i b, const int imm8) ++{ ++ (void) a; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int lb; ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); ++ return lb <= (bound - 1); ++} ++ ++// Compares the 2 signed 64-bit integers in a and the 2 signed 64-bit integers ++// in b for greater than. ++FORCE_INLINE __m128i _mm_cmpgt_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vcgtq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ return vreinterpretq_m128i_s64(vshrq_n_s64( ++ vqsubq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)), ++ 63)); ++#endif ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 16-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u16 ++FORCE_INLINE uint32_t _mm_crc32_u16(uint32_t crc, uint16_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32ch %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32ch(crc, v); ++#else ++ crc = _mm_crc32_u8(crc, v & 0xff); ++ crc = _mm_crc32_u8(crc, (v >> 8) & 0xff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 32-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u32 ++FORCE_INLINE uint32_t _mm_crc32_u32(uint32_t crc, uint32_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cw %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cw(crc, v); ++#else ++ crc = _mm_crc32_u16(crc, v & 0xffff); ++ crc = _mm_crc32_u16(crc, (v >> 16) & 0xffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 64-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u64 ++FORCE_INLINE uint64_t _mm_crc32_u64(uint64_t crc, uint64_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cx %w[c], %w[c], %x[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cd((uint32_t) crc, v); ++#else ++ crc = _mm_crc32_u32((uint32_t) (crc), v & 0xffffffff); ++ crc = _mm_crc32_u32((uint32_t) (crc), (v >> 32) & 0xffffffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 8-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u8 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t crc, uint8_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cb %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cb(crc, v); ++#else ++ crc ^= v; ++#if defined(__ARM_FEATURE_CRYPTO) ++ // Adapted from: https://mary.rs/lab/crc32/ ++ // Barrent reduction ++ uint64x2_t orig = ++ vcombine_u64(vcreate_u64((uint64_t) (crc) << 24), vcreate_u64(0x0)); ++ uint64x2_t tmp = orig; ++ ++ // Polynomial P(x) of CRC32C ++ uint64_t p = 0x105EC76F1; ++ // Barrett Reduction (in bit-reflected form) constant mu_{64} = \lfloor ++ // 2^{64} / P(x) \rfloor = 0x11f91caf6 ++ uint64_t mu = 0x1dea713f1; ++ ++ // Multiply by mu_{64} ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(mu)); ++ // Divide by 2^{64} (mask away the unnecessary bits) ++ tmp = ++ vandq_u64(tmp, vcombine_u64(vcreate_u64(0xFFFFFFFF), vcreate_u64(0x0))); ++ // Multiply by P(x) (shifted left by 1 for alignment reasons) ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(p)); ++ // Subtract original from result ++ tmp = veorq_u64(tmp, orig); ++ ++ // Extract the 'lower' (in bit-reflected sense) 32 bits ++ crc = vgetq_lane_u32(vreinterpretq_u32_u64(tmp), 1); ++#else // Fall back to the generic table lookup approach ++ // Adapted from: https://create.stephan-brumme.com/crc32/ ++ // Apply half-byte comparison algorithm for the best ratio between ++ // performance and lookup table. ++ ++ // The lookup table just needs to store every 16th entry ++ // of the standard look-up table. ++ static const uint32_t crc32_half_byte_tbl[] = { ++ 0x00000000, 0x105ec76f, 0x20bd8ede, 0x30e349b1, 0x417b1dbc, 0x5125dad3, ++ 0x61c69362, 0x7198540d, 0x82f63b78, 0x92a8fc17, 0xa24bb5a6, 0xb21572c9, ++ 0xc38d26c4, 0xd3d3e1ab, 0xe330a81a, 0xf36e6f75, ++ }; ++ ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++#endif ++#endif ++ return crc; ++} ++ ++/* AES */ ++ ++#if !defined(__ARM_FEATURE_CRYPTO) && (!defined(_M_ARM64) || defined(__clang__)) ++/* clang-format off */ ++#define SSE2NEON_AES_SBOX(w) \ ++ { \ ++ w(0x63), w(0x7c), w(0x77), w(0x7b), w(0xf2), w(0x6b), w(0x6f), \ ++ w(0xc5), w(0x30), w(0x01), w(0x67), w(0x2b), w(0xfe), w(0xd7), \ ++ w(0xab), w(0x76), w(0xca), w(0x82), w(0xc9), w(0x7d), w(0xfa), \ ++ w(0x59), w(0x47), w(0xf0), w(0xad), w(0xd4), w(0xa2), w(0xaf), \ ++ w(0x9c), w(0xa4), w(0x72), w(0xc0), w(0xb7), w(0xfd), w(0x93), \ ++ w(0x26), w(0x36), w(0x3f), w(0xf7), w(0xcc), w(0x34), w(0xa5), \ ++ w(0xe5), w(0xf1), w(0x71), w(0xd8), w(0x31), w(0x15), w(0x04), \ ++ w(0xc7), w(0x23), w(0xc3), w(0x18), w(0x96), w(0x05), w(0x9a), \ ++ w(0x07), w(0x12), w(0x80), w(0xe2), w(0xeb), w(0x27), w(0xb2), \ ++ w(0x75), w(0x09), w(0x83), w(0x2c), w(0x1a), w(0x1b), w(0x6e), \ ++ w(0x5a), w(0xa0), w(0x52), w(0x3b), w(0xd6), w(0xb3), w(0x29), \ ++ w(0xe3), w(0x2f), w(0x84), w(0x53), w(0xd1), w(0x00), w(0xed), \ ++ w(0x20), w(0xfc), w(0xb1), w(0x5b), w(0x6a), w(0xcb), w(0xbe), \ ++ w(0x39), w(0x4a), w(0x4c), w(0x58), w(0xcf), w(0xd0), w(0xef), \ ++ w(0xaa), w(0xfb), w(0x43), w(0x4d), w(0x33), w(0x85), w(0x45), \ ++ w(0xf9), w(0x02), w(0x7f), w(0x50), w(0x3c), w(0x9f), w(0xa8), \ ++ w(0x51), w(0xa3), w(0x40), w(0x8f), w(0x92), w(0x9d), w(0x38), \ ++ w(0xf5), w(0xbc), w(0xb6), w(0xda), w(0x21), w(0x10), w(0xff), \ ++ w(0xf3), w(0xd2), w(0xcd), w(0x0c), w(0x13), w(0xec), w(0x5f), \ ++ w(0x97), w(0x44), w(0x17), w(0xc4), w(0xa7), w(0x7e), w(0x3d), \ ++ w(0x64), w(0x5d), w(0x19), w(0x73), w(0x60), w(0x81), w(0x4f), \ ++ w(0xdc), w(0x22), w(0x2a), w(0x90), w(0x88), w(0x46), w(0xee), \ ++ w(0xb8), w(0x14), w(0xde), w(0x5e), w(0x0b), w(0xdb), w(0xe0), \ ++ w(0x32), w(0x3a), w(0x0a), w(0x49), w(0x06), w(0x24), w(0x5c), \ ++ w(0xc2), w(0xd3), w(0xac), w(0x62), w(0x91), w(0x95), w(0xe4), \ ++ w(0x79), w(0xe7), w(0xc8), w(0x37), w(0x6d), w(0x8d), w(0xd5), \ ++ w(0x4e), w(0xa9), w(0x6c), w(0x56), w(0xf4), w(0xea), w(0x65), \ ++ w(0x7a), w(0xae), w(0x08), w(0xba), w(0x78), w(0x25), w(0x2e), \ ++ w(0x1c), w(0xa6), w(0xb4), w(0xc6), w(0xe8), w(0xdd), w(0x74), \ ++ w(0x1f), w(0x4b), w(0xbd), w(0x8b), w(0x8a), w(0x70), w(0x3e), \ ++ w(0xb5), w(0x66), w(0x48), w(0x03), w(0xf6), w(0x0e), w(0x61), \ ++ w(0x35), w(0x57), w(0xb9), w(0x86), w(0xc1), w(0x1d), w(0x9e), \ ++ w(0xe1), w(0xf8), w(0x98), w(0x11), w(0x69), w(0xd9), w(0x8e), \ ++ w(0x94), w(0x9b), w(0x1e), w(0x87), w(0xe9), w(0xce), w(0x55), \ ++ w(0x28), w(0xdf), w(0x8c), w(0xa1), w(0x89), w(0x0d), w(0xbf), \ ++ w(0xe6), w(0x42), w(0x68), w(0x41), w(0x99), w(0x2d), w(0x0f), \ ++ w(0xb0), w(0x54), w(0xbb), w(0x16) \ ++ } ++#define SSE2NEON_AES_RSBOX(w) \ ++ { \ ++ w(0x52), w(0x09), w(0x6a), w(0xd5), w(0x30), w(0x36), w(0xa5), \ ++ w(0x38), w(0xbf), w(0x40), w(0xa3), w(0x9e), w(0x81), w(0xf3), \ ++ w(0xd7), w(0xfb), w(0x7c), w(0xe3), w(0x39), w(0x82), w(0x9b), \ ++ w(0x2f), w(0xff), w(0x87), w(0x34), w(0x8e), w(0x43), w(0x44), \ ++ w(0xc4), w(0xde), w(0xe9), w(0xcb), w(0x54), w(0x7b), w(0x94), \ ++ w(0x32), w(0xa6), w(0xc2), w(0x23), w(0x3d), w(0xee), w(0x4c), \ ++ w(0x95), w(0x0b), w(0x42), w(0xfa), w(0xc3), w(0x4e), w(0x08), \ ++ w(0x2e), w(0xa1), w(0x66), w(0x28), w(0xd9), w(0x24), w(0xb2), \ ++ w(0x76), w(0x5b), w(0xa2), w(0x49), w(0x6d), w(0x8b), w(0xd1), \ ++ w(0x25), w(0x72), w(0xf8), w(0xf6), w(0x64), w(0x86), w(0x68), \ ++ w(0x98), w(0x16), w(0xd4), w(0xa4), w(0x5c), w(0xcc), w(0x5d), \ ++ w(0x65), w(0xb6), w(0x92), w(0x6c), w(0x70), w(0x48), w(0x50), \ ++ w(0xfd), w(0xed), w(0xb9), w(0xda), w(0x5e), w(0x15), w(0x46), \ ++ w(0x57), w(0xa7), w(0x8d), w(0x9d), w(0x84), w(0x90), w(0xd8), \ ++ w(0xab), w(0x00), w(0x8c), w(0xbc), w(0xd3), w(0x0a), w(0xf7), \ ++ w(0xe4), w(0x58), w(0x05), w(0xb8), w(0xb3), w(0x45), w(0x06), \ ++ w(0xd0), w(0x2c), w(0x1e), w(0x8f), w(0xca), w(0x3f), w(0x0f), \ ++ w(0x02), w(0xc1), w(0xaf), w(0xbd), w(0x03), w(0x01), w(0x13), \ ++ w(0x8a), w(0x6b), w(0x3a), w(0x91), w(0x11), w(0x41), w(0x4f), \ ++ w(0x67), w(0xdc), w(0xea), w(0x97), w(0xf2), w(0xcf), w(0xce), \ ++ w(0xf0), w(0xb4), w(0xe6), w(0x73), w(0x96), w(0xac), w(0x74), \ ++ w(0x22), w(0xe7), w(0xad), w(0x35), w(0x85), w(0xe2), w(0xf9), \ ++ w(0x37), w(0xe8), w(0x1c), w(0x75), w(0xdf), w(0x6e), w(0x47), \ ++ w(0xf1), w(0x1a), w(0x71), w(0x1d), w(0x29), w(0xc5), w(0x89), \ ++ w(0x6f), w(0xb7), w(0x62), w(0x0e), w(0xaa), w(0x18), w(0xbe), \ ++ w(0x1b), w(0xfc), w(0x56), w(0x3e), w(0x4b), w(0xc6), w(0xd2), \ ++ w(0x79), w(0x20), w(0x9a), w(0xdb), w(0xc0), w(0xfe), w(0x78), \ ++ w(0xcd), w(0x5a), w(0xf4), w(0x1f), w(0xdd), w(0xa8), w(0x33), \ ++ w(0x88), w(0x07), w(0xc7), w(0x31), w(0xb1), w(0x12), w(0x10), \ ++ w(0x59), w(0x27), w(0x80), w(0xec), w(0x5f), w(0x60), w(0x51), \ ++ w(0x7f), w(0xa9), w(0x19), w(0xb5), w(0x4a), w(0x0d), w(0x2d), \ ++ w(0xe5), w(0x7a), w(0x9f), w(0x93), w(0xc9), w(0x9c), w(0xef), \ ++ w(0xa0), w(0xe0), w(0x3b), w(0x4d), w(0xae), w(0x2a), w(0xf5), \ ++ w(0xb0), w(0xc8), w(0xeb), w(0xbb), w(0x3c), w(0x83), w(0x53), \ ++ w(0x99), w(0x61), w(0x17), w(0x2b), w(0x04), w(0x7e), w(0xba), \ ++ w(0x77), w(0xd6), w(0x26), w(0xe1), w(0x69), w(0x14), w(0x63), \ ++ w(0x55), w(0x21), w(0x0c), w(0x7d) \ ++ } ++/* clang-format on */ ++ ++/* X Macro trick. See https://en.wikipedia.org/wiki/X_Macro */ ++#define SSE2NEON_AES_H0(x) (x) ++static const uint8_t _sse2neon_sbox[256] = SSE2NEON_AES_SBOX(SSE2NEON_AES_H0); ++static const uint8_t _sse2neon_rsbox[256] = SSE2NEON_AES_RSBOX(SSE2NEON_AES_H0); ++#undef SSE2NEON_AES_H0 ++ ++/* x_time function and matrix multiply function */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#define SSE2NEON_XT(x) (((x) << 1) ^ ((((x) >> 7) & 1) * 0x1b)) ++#define SSE2NEON_MULTIPLY(x, y) \ ++ (((y & 1) * x) ^ ((y >> 1 & 1) * SSE2NEON_XT(x)) ^ \ ++ ((y >> 2 & 1) * SSE2NEON_XT(SSE2NEON_XT(x))) ^ \ ++ ((y >> 3 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))) ^ \ ++ ((y >> 4 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))))) ++#endif ++ ++// In the absence of crypto extensions, implement aesenc using regular NEON ++// intrinsics instead. See: ++// https://www.workofard.com/2017/01/accelerated-aes-for-the-arm64-linux-kernel/ ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/ and ++// for more information. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ /* shift rows */ ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ /* sub bytes */ ++ // Here, we separate the whole 256-bytes table into 4 64-bytes tables, and ++ // look up each of the table. After each lookup, we load the next table ++ // which locates at the next 64-bytes. In the meantime, the index in the ++ // table would be smaller than it was, so the index parameters of ++ // `vqtbx4q_u8()` need to be added the same constant as the loaded tables. ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ // 'w-0x40' equals to 'vsubq_u8(w, vdupq_n_u8(0x40))' ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ /* mix columns */ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ /* add round key */ ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A implementation for a table-based AES */ ++#define SSE2NEON_AES_B2W(b0, b1, b2, b3) \ ++ (((uint32_t) (b3) << 24) | ((uint32_t) (b2) << 16) | \ ++ ((uint32_t) (b1) << 8) | (uint32_t) (b0)) ++// multiplying 'x' by 2 in GF(2^8) ++#define SSE2NEON_AES_F2(x) ((x << 1) ^ (((x >> 7) & 1) * 0x011b /* WPOLY */)) ++// multiplying 'x' by 3 in GF(2^8) ++#define SSE2NEON_AES_F3(x) (SSE2NEON_AES_F2(x) ^ x) ++#define SSE2NEON_AES_U0(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F2(p), p, p, SSE2NEON_AES_F3(p)) ++#define SSE2NEON_AES_U1(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p, p) ++#define SSE2NEON_AES_U2(p) \ ++ SSE2NEON_AES_B2W(p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p) ++#define SSE2NEON_AES_U3(p) \ ++ SSE2NEON_AES_B2W(p, p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p)) ++ ++ // this generates a table containing every possible permutation of ++ // shift_rows() and sub_bytes() with mix_columns(). ++ static const uint32_t ALIGN_STRUCT(16) aes_table[4][256] = { ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U0), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U1), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U2), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U3), ++ }; ++#undef SSE2NEON_AES_B2W ++#undef SSE2NEON_AES_F2 ++#undef SSE2NEON_AES_F3 ++#undef SSE2NEON_AES_U0 ++#undef SSE2NEON_AES_U1 ++#undef SSE2NEON_AES_U2 ++#undef SSE2NEON_AES_U3 ++ ++ uint32_t x0 = _mm_cvtsi128_si32(a); // get a[31:0] ++ uint32_t x1 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); // get a[63:32] ++ uint32_t x2 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xAA)); // get a[95:64] ++ uint32_t x3 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); // get a[127:96] ++ ++ // finish the modulo addition step in mix_columns() ++ __m128i out = _mm_set_epi32( ++ (aes_table[0][x3 & 0xff] ^ aes_table[1][(x0 >> 8) & 0xff] ^ ++ aes_table[2][(x1 >> 16) & 0xff] ^ aes_table[3][x2 >> 24]), ++ (aes_table[0][x2 & 0xff] ^ aes_table[1][(x3 >> 8) & 0xff] ^ ++ aes_table[2][(x0 >> 16) & 0xff] ^ aes_table[3][x1 >> 24]), ++ (aes_table[0][x1 & 0xff] ^ aes_table[1][(x2 >> 8) & 0xff] ^ ++ aes_table[2][(x3 >> 16) & 0xff] ^ aes_table[3][x0 >> 24]), ++ (aes_table[0][x0 & 0xff] ^ aes_table[1][(x1 >> 8) & 0xff] ^ ++ aes_table[2][(x2 >> 16) & 0xff] ^ aes_table[3][x3 >> 24])); ++ ++ return _mm_xor_si128(out, RoundKey); ++#endif ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // inverse mix columns ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & ++ 0x1b); // multiplying 'v' by 2 in GF(2^8) ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ // inverse mix columns ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ // sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A implementation */ ++ uint8_t v[16] = { ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 0)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 5)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 10)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 15)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 4)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 9)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 14)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 3)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 8)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 13)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 2)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 7)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 12)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 1)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 6)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 11)], ++ }; ++ ++ return vreinterpretq_m128i_u8(vld1q_u8(v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (int i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++#if defined(__aarch64__) ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ uint8x16_t v = vreinterpretq_u8_m128i(a); ++ uint8x16_t w; ++ ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ // multiplying 'v' by 2 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ return vreinterpretq_m128i_u8(w); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ vst1q_u8((uint8_t *) v, vreinterpretq_u8_m128i(a)); ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)); ++#endif ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++// ++// Emits the Advanced Encryption Standard (AES) instruction aeskeygenassist. ++// This instruction generates a round key for AES encryption. See ++// https://kazakov.life/2017/11/01/cryptocurrency-mining-on-ios-devices/ ++// for details. ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++#if defined(__aarch64__) ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); ++ uint8x16_t v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), _a); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), _a - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), _a - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), _a - 0xc0); ++ ++ uint32x4_t v_u32 = vreinterpretq_u32_u8(v); ++ uint32x4_t ror_v = vorrq_u32(vshrq_n_u32(v_u32, 8), vshlq_n_u32(v_u32, 24)); ++ uint32x4_t ror_xor_v = veorq_u32(ror_v, vdupq_n_u32(rcon)); ++ ++ return vreinterpretq_m128i_u32(vtrn2q_u32(v_u32, ror_xor_v)); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint32_t X1 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); ++ uint32_t X3 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); ++ for (int i = 0; i < 4; ++i) { ++ ((uint8_t *) &X1)[i] = _sse2neon_sbox[((uint8_t *) &X1)[i]]; ++ ((uint8_t *) &X3)[i] = _sse2neon_sbox[((uint8_t *) &X3)[i]]; ++ } ++ return _mm_set_epi32(((X3 >> 8) | (X3 << 24)) ^ rcon, X3, ++ ((X1 >> 8) | (X1 << 24)) ^ rcon, X1); ++#endif ++} ++#undef SSE2NEON_AES_SBOX ++#undef SSE2NEON_AES_RSBOX ++ ++#if defined(__aarch64__) ++#undef SSE2NEON_XT ++#undef SSE2NEON_MULTIPLY ++#endif ++ ++#else /* __ARM_FEATURE_CRYPTO */ ++// Implements equivalent of 'aesenc' by combining AESE (with an empty key) and ++// AESMC and then manually applying the real key as an xor operation. This ++// unfortunately means an additional xor op; the compiler should be able to ++// optimize this away for repeated calls however. See ++// https://blog.michaelbrase.com/2018/05/08/emulating-x86-aes-intrinsics-on-armv8-a ++// for more details. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesmcq_u8(vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(b))); ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesimcq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return _mm_xor_si128(vreinterpretq_m128i_u8(vaeseq_u8( ++ vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ RoundKey); ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8( ++ veorq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++ return vreinterpretq_m128i_u8(vaesimcq_u8(vreinterpretq_u8_m128i(a))); ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst." ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++ // AESE does ShiftRows and SubBytes on A ++ uint8x16_t u8 = vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)); ++ ++#ifndef _MSC_VER ++ uint8x16_t dest = { ++ // Undo ShiftRows step from AESE and extract X1 and X3 ++ u8[0x4], u8[0x1], u8[0xE], u8[0xB], // SubBytes(X1) ++ u8[0x1], u8[0xE], u8[0xB], u8[0x4], // ROT(SubBytes(X1)) ++ u8[0xC], u8[0x9], u8[0x6], u8[0x3], // SubBytes(X3) ++ u8[0x9], u8[0x6], u8[0x3], u8[0xC], // ROT(SubBytes(X3)) ++ }; ++ uint32x4_t r = {0, (unsigned) rcon, 0, (unsigned) rcon}; ++ return vreinterpretq_m128i_u8(dest) ^ vreinterpretq_m128i_u32(r); ++#else ++ // We have to do this hack because MSVC is strictly adhering to the CPP ++ // standard, in particular C++03 8.5.1 sub-section 15, which states that ++ // unions must be initialized by their first member type. ++ ++ // As per the Windows ARM64 ABI, it is always little endian, so this works ++ __n128 dest{ ++ ((uint64_t) u8.n128_u8[0x4] << 0) | ((uint64_t) u8.n128_u8[0x1] << 8) | ++ ((uint64_t) u8.n128_u8[0xE] << 16) | ++ ((uint64_t) u8.n128_u8[0xB] << 24) | ++ ((uint64_t) u8.n128_u8[0x1] << 32) | ++ ((uint64_t) u8.n128_u8[0xE] << 40) | ++ ((uint64_t) u8.n128_u8[0xB] << 48) | ++ ((uint64_t) u8.n128_u8[0x4] << 56), ++ ((uint64_t) u8.n128_u8[0xC] << 0) | ((uint64_t) u8.n128_u8[0x9] << 8) | ++ ((uint64_t) u8.n128_u8[0x6] << 16) | ++ ((uint64_t) u8.n128_u8[0x3] << 24) | ++ ((uint64_t) u8.n128_u8[0x9] << 32) | ++ ((uint64_t) u8.n128_u8[0x6] << 40) | ++ ((uint64_t) u8.n128_u8[0x3] << 48) | ++ ((uint64_t) u8.n128_u8[0xC] << 56)}; ++ ++ dest.n128_u32[1] = dest.n128_u32[1] ^ rcon; ++ dest.n128_u32[3] = dest.n128_u32[3] ^ rcon; ++ ++ return dest; ++#endif ++} ++#endif ++ ++/* Others */ ++ ++// Perform a carry-less multiplication of two 64-bit integers, selected from a ++// and b according to imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clmulepi64_si128 ++FORCE_INLINE __m128i _mm_clmulepi64_si128(__m128i _a, __m128i _b, const int imm) ++{ ++ uint64x2_t a = vreinterpretq_u64_m128i(_a); ++ uint64x2_t b = vreinterpretq_u64_m128i(_b); ++ switch (imm & 0x11) { ++ case 0x00: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_low_u64(b))); ++ case 0x01: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_low_u64(b))); ++ case 0x10: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_high_u64(b))); ++ case 0x11: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_high_u64(b))); ++ default: ++ abort(); ++ } ++} ++ ++FORCE_INLINE unsigned int _sse2neon_mm_get_denormals_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_DENORMALS_ZERO_ON : _MM_DENORMALS_ZERO_OFF; ++} ++ ++// Count the number of bits set to 1 in unsigned 32-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u32 ++FORCE_INLINE int _mm_popcnt_u32(unsigned int a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcount) ++ return __builtin_popcount(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits(a); ++#else ++ return (int) vaddlv_u8(vcnt_u8(vcreate_u8((uint64_t) a))); ++#endif ++#else ++ uint32_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ ++ vst1_u32(&count, count32x2_val); ++ return count; ++#endif ++} ++ ++// Count the number of bits set to 1 in unsigned 64-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u64 ++FORCE_INLINE int64_t _mm_popcnt_u64(uint64_t a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcountll) ++ return __builtin_popcountll(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits64(a); ++#else ++ return (int64_t) vaddlv_u8(vcnt_u8(vcreate_u8(a))); ++#endif ++#else ++ uint64_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ uint64x1_t count64x1_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ count64x1_val = vpaddl_u32(count32x2_val); ++ vst1_u64(&count, count64x1_val); ++ return count; ++#endif ++} ++ ++FORCE_INLINE void _sse2neon_mm_set_denormals_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_DENORMALS_ZERO_MASK) == _MM_DENORMALS_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Return the current 64-bit value of the processor's time-stamp counter. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=rdtsc ++FORCE_INLINE uint64_t _rdtsc(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t val; ++ ++ /* According to ARM DDI 0487F.c, from Armv8.0 to Armv8.5 inclusive, the ++ * system counter is at least 56 bits wide; from Armv8.6, the counter ++ * must be 64 bits wide. So the system counter could be less than 64 ++ * bits wide and it is attributed with the flag 'cap_user_time_short' ++ * is true. ++ */ ++#if defined(_MSC_VER) ++ val = _ReadStatusReg(ARM64_SYSREG(3, 3, 14, 0, 2)); ++#else ++ __asm__ __volatile__("mrs %0, cntvct_el0" : "=r"(val)); ++#endif ++ ++ return val; ++#else ++ uint32_t pmccntr, pmuseren, pmcntenset; ++ // Read the user mode Performance Monitoring Unit (PMU) ++ // User Enable Register (PMUSERENR) access permissions. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c14, 0" : "=r"(pmuseren)); ++ if (pmuseren & 1) { // Allows reading PMUSERENR for user mode code. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c12, 1" : "=r"(pmcntenset)); ++ if (pmcntenset & 0x80000000UL) { // Is it counting? ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c13, 0" : "=r"(pmccntr)); ++ // The counter is set up to count every 64th cycle ++ return (uint64_t) (pmccntr) << 6; ++ } ++ } ++ ++ // Fallback to syscall as we can't enable PMUSERENR in user mode. ++ struct timeval tv; ++ gettimeofday(&tv, NULL); ++ return (uint64_t) (tv.tv_sec) * 1000000 + tv.tv_usec; ++#endif ++} ++ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma pop_macro("ALIGN_STRUCT") ++#pragma pop_macro("FORCE_INLINE") ++#pragma pop_macro("FORCE_INLINE_OPTNONE") ++#endif ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma GCC pop_options ++#endif ++ ++#endif diff --git a/recipes/chromap/meta.yaml b/recipes/chromap/meta.yaml index 05010a6f787c2..db405e9472056 100644 --- a/recipes/chromap/meta.yaml +++ b/recipes/chromap/meta.yaml @@ -5,13 +5,15 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('chromap', max_pin="x.x") }} source: url: https://github.com/haowenz/chromap/archive/refs/tags/v{{ version }}.tar.gz sha256: bea2fc76bd7d8931f69db0b63aef19e50070b24c0ab1415569b59d490fff42e8 + patches: + - chromap-aarch64.patch # [aarch64 or arm64] requirements: build: @@ -35,3 +37,8 @@ about: license_file: LICENSE summary: Fast alignment and preprocessing of chromatin profiles doc_url: https://zhanghaowen.com/chromap/ + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From b33e9c32707f401076f5d1f25a99d15473b32c3d Mon Sep 17 00:00:00 2001 From: Anna Zhukova Date: Wed, 7 Aug 2024 19:48:40 +0200 Subject: [PATCH 0834/1589] phylodeep recipe (#49595) * phylodeep recipe * clean up recipe * v0.4 using conda-available packages * fixed dependencies * matplotlib-base * changed tensorflow version * matplotlib version * matplotlib version * tensorflow, scikit-learn and matplot-lib versions * v0.6 with the README * add python to run section too --------- Co-authored-by: mencian --- recipes/phylodeep/meta.yaml | 63 +++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 recipes/phylodeep/meta.yaml diff --git a/recipes/phylodeep/meta.yaml b/recipes/phylodeep/meta.yaml new file mode 100644 index 0000000000000..ac320200a67f7 --- /dev/null +++ b/recipes/phylodeep/meta.yaml @@ -0,0 +1,63 @@ +{% set name = "phylodeep" %} +{% set version = "0.6" %} + +package: + name: "{{ name|lower }}" + version: "{{ version }}" + +source: + url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" + sha256: 9c8adff003651de7656f690c930a6e969c9f9e685b08e926d0f6263847ac4323 + +build: + number: 0 + noarch: python + entry_points: + - checkdeep = phylodeep.checkdeep:main + - modeldeep = phylodeep.modeldeep:main + - paramdeep = phylodeep.paramdeep:main + - subtree_picker = phylodeep.tree_utilities:subtree_picker_main + script: "{{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir" + run_exports: + - {{ pin_subpackage('phylodeep', max_pin="x.x") }} + +requirements: + host: + - pip + - python >=3.6 + run: + - python >=3.6 + - scikit-learn >=1.0,<1.3.0 + - tensorflow >=2.0.0 + - ete3 >=3.1.1,<=3.1.3 + - pandas >=1.0.0,<1.4.0 + - matplotlib-base >=3.0.2,<3.7.0 + - keras ==2.2.4 + - phylodeep_data_bd >=0.6 + - phylodeep_data_bdei >=0.4 + - phylodeep_data_bdss >=0.4 + +test: + imports: + - phylodeep + commands: + - checkdeep --help + - modeldeep --help + - paramdeep --help + - subtree_picker --help + +about: + home: "https://github.com/evolbioinfo/phylodeep" + summary: "Deep-learning parameter estimation and model selection from phylogenetic trees." + description: | + PhyloDeep is a python library for parameter estimation and model selection from phylogenetic trees, + based on deep learning. + license: "GPL-3.0-or-later" + license_family: GPL3 + license_file: LICENSE + doc_url: "https://github.com/evolbioinfo/phylodeep/blob/{{ version }}/README.md" + dev_url: "https://github.com/evolbioinfo/phylodeep" + +extra: + recipe-maintainers: + - annazhukova From 4104f15e5c1ea6764e2a722645fa3b9e68c808dd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 7 Aug 2024 13:48:49 -0400 Subject: [PATCH 0835/1589] Update get_homologues to 3.7.1 (#49876) * Update get_homologues to 3.7 * Update get_homologues to 3.7.1 --- recipes/get_homologues/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/get_homologues/meta.yaml b/recipes/get_homologues/meta.yaml index 989cdb036468d..0528198c7538b 100644 --- a/recipes/get_homologues/meta.yaml +++ b/recipes/get_homologues/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "3.6.3" %} -{% set sha256 = "b2f35bffae497ac764159a4786af820573c436a43ccd67b7ded8ac7e8d4a1a6f" %} +{% set version = "3.7.1" %} +{% set sha256 = "eeb9361695cafc35a1b92b29b647874713f85641218b1de5cddca551d334fe9d" %} package: name: get_homologues From 9fb7caa6cd7be8ee92391a2191b5cca3232c1046 Mon Sep 17 00:00:00 2001 From: Roberto Rossini <71787608+robomics@users.noreply.github.com> Date: Wed, 7 Aug 2024 19:51:09 +0200 Subject: [PATCH 0836/1589] hictkpy: enable osx-arm64 build (#49200) * Enable osx-arm64 build * Debugging --- recipes/hictkpy/build_failure.osx-64.yaml | 104 ---------------------- recipes/hictkpy/meta.yaml | 4 +- 2 files changed, 3 insertions(+), 105 deletions(-) delete mode 100644 recipes/hictkpy/build_failure.osx-64.yaml diff --git a/recipes/hictkpy/build_failure.osx-64.yaml b/recipes/hictkpy/build_failure.osx-64.yaml deleted file mode 100644 index 2edc9b8a419d3..0000000000000 --- a/recipes/hictkpy/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: c5aa91b5b109d0c9a825beb2ef6338e94f047a845e5424de084fb12467d9ada6 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - pysocks: 1.7.1-pyha2e5f31_6 conda-forge - python: 3.12.3-h1411813_0_cpython conda-forge - python-dateutil: 2.9.0-pyhd8ed1ab_0 conda-forge - python_abi: 3.12-4_cp312 conda-forge - pyyaml: 6.0.1-py312h104f124_1 conda-forge - readline: 8.2-h9e318b2_1 conda-forge - requests: 2.32.3-pyhd8ed1ab_0 conda-forge - rhash: 1.4.4-h0dc2134_0 conda-forge - sigtool: 0.1.3-h88f4db0_0 conda-forge - six: 1.16.0-pyh6c4a22f_0 conda-forge - spdlog: 1.13.0-h1a4aec9_0 conda-forge - tapi: 1100.0.11-h9ce4665_0 conda-forge - tk: 8.6.13-h1abcd95_1 conda-forge - tzdata: 2024a-h0c530f3_0 conda-forge - urllib3: 1.26.18-pyhd8ed1ab_0 conda-forge - xz: 5.2.6-h775f41a_0 conda-forge - yaml: 0.2.5-h0d85af4_2 conda-forge - zstd: 1.5.6-h915ae27_0 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache - Downloading source to cache: v0.0.5_e9576a1a71.tar.gz - Downloading https://github.com/paulsengroup/hictkpy/archive/refs/tags/v0.0.5.tar.gz - Success - /opt/mambaforge/envs/bioconda/conda-bld/hictkpy_1717517114516/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/bin/python: No module named pip - Extracting download - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - source tree in: /opt/mambaforge/envs/bioconda/conda-bld/hictkpy_1717517114516/work - export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/hictkpy_1717517114516/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - utils.check_call_env( - export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/hictkpy_1717517114516/_build_env - export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/hictkpy_1717517114516/work - INFO: activate_clang_osx-64.sh made the following environmental changes: - AR=x86_64-apple-darwin13.4.0-ar - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - AS=x86_64-apple-darwin13.4.0-as - CC=x86_64-apple-darwin13.4.0-clang - CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hictkpy-0.0.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms - CLANG=x86_64-apple-darwin13.4.0-clang - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/hictkpy_1717517114516/work/conda_build.sh']' returned non-zero exit status 1. - CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin - CMAKE_PREFIX_PATH=:$PREFIX - CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 - CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 - CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 - DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hictkpy-0.0.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - HOST=x86_64-apple-darwin13.4.0 - INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool - LD=x86_64-apple-darwin13.4.0-ld - LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib - LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib - LIBTOOL=x86_64-apple-darwin13.4.0-libtool - LIPO=x86_64-apple-darwin13.4.0-lipo - MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib - NM=x86_64-apple-darwin13.4.0-nm - NMEDIT=x86_64-apple-darwin13.4.0-nmedit - OBJC=x86_64-apple-darwin13.4.0-clang - OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - OTOOL=x86_64-apple-darwin13.4.0-otool - PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff - RANLIB=x86_64-apple-darwin13.4.0-ranlib - REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding - SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk - SEGEDIT=x86_64-apple-darwin13.4.0-segedit - SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table - SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack - SIZE=x86_64-apple-darwin13.4.0-size - STRINGS=x86_64-apple-darwin13.4.0-strings - STRIP=x86_64-apple-darwin13.4.0-strip - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 - ac_cv_func_malloc_0_nonnull=yes - ac_cv_func_realloc_0_nonnull=yes - build_alias=x86_64-apple-darwin13.4.0 - host_alias=x86_64-apple-darwin13.4.0 - INFO: activate_clangxx_osx-64.sh made the following environmental changes: - CLANGXX=x86_64-apple-darwin13.4.0-clang - CXX=x86_64-apple-darwin13.4.0-clang - CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hictkpy-0.0.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hictkpy-0.0.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - patching file CMakeLists.txt - patching file conanfile.txt - patching file pyproject.toml - -DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin -DPython_EXECUTABLE=$PREFIX/bin/python -# Last 100 lines of the build log. diff --git a/recipes/hictkpy/meta.yaml b/recipes/hictkpy/meta.yaml index 86e219bae94e2..084412b76ff50 100644 --- a/recipes/hictkpy/meta.yaml +++ b/recipes/hictkpy/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version }} build: - number: 1 + number: 2 skip: True # [py < 39] run_exports: - {{ pin_subpackage('hictkpy', max_pin='x.x') }} @@ -29,6 +29,7 @@ requirements: - spdlog >=1.12 host: - python + - pip - hdf5 >=1.12 - libdeflate - scikit-build-core @@ -69,3 +70,4 @@ extra: - doi:10.5281/zenodo.8220300 additional-platforms: - linux-aarch64 + - osx-arm64 From 0ec72420512cbc3fe736f1c339b6d0b5aae4ebea Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 7 Aug 2024 13:58:26 -0400 Subject: [PATCH 0837/1589] Update quantms-utils to 0.0.3 (#49879) --- recipes/quantms-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/quantms-utils/meta.yaml b/recipes/quantms-utils/meta.yaml index 5f5a7c9d3c17c..9cfcdd6318d2a 100644 --- a/recipes/quantms-utils/meta.yaml +++ b/recipes/quantms-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "quantms-utils" %} -{% set version = "0.0.2" %} +{% set version = "0.0.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/quantms_utils-{{ version }}.tar.gz - sha256: 295e4947e2cb3a4dc084854081d5e16255d422d03a7e41def531daf98317882a + sha256: d7b0ed0ea1ed83bc0095c59090368e3146561d14efcc3f9c61288741c9f46b78 build: entry_points: From efb58d0c2df855c5358dce72c695efb530a283fe Mon Sep 17 00:00:00 2001 From: Peter Cock Date: Wed, 7 Aug 2024 21:29:08 +0100 Subject: [PATCH 0838/1589] Fix mummer hashbang and build on macOS including ARM (#49870) * Fix perl hashbang (shebang) Closes #28209 * Build on osx again, plus osx-arm64 * Patch mummer to add explicit function declarations [osx] Aims to fix this error compiling on macOS (intel and arm) seen on the CI system: error: call to undeclared function 'getbranchinfostree'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration Tested locally by running make locally on macOS ARM64. * Use suggested sed syntax See https://bioconda.github.io/contributor/troubleshooting.html#perl-or-python-not-found * Avoid sed editing binary files In this case some of the files are Perl scripts (editing first line is intended), but others are compiled code. * Ensure only try sed on Perl scripts --- recipes/mummer/build.sh | 6 ++++ recipes/mummer/meta.yaml | 13 ++++--- .../patches/addleafcount_explicit.patch | 19 +++++++++++ .../mummer/patches/findmaxmat_explicit.patch | 34 +++++++++++++++++++ .../mummer/patches/findmumcand_explicit.patch | 19 +++++++++++ recipes/mummer/patches/linkloc_explicit.patch | 12 +++++++ .../mummer/patches/procmaxmat_explicit.patch | 19 +++++++++++ 7 files changed, 118 insertions(+), 4 deletions(-) create mode 100644 recipes/mummer/patches/addleafcount_explicit.patch create mode 100644 recipes/mummer/patches/findmaxmat_explicit.patch create mode 100644 recipes/mummer/patches/findmumcand_explicit.patch create mode 100644 recipes/mummer/patches/linkloc_explicit.patch create mode 100644 recipes/mummer/patches/procmaxmat_explicit.patch diff --git a/recipes/mummer/build.sh b/recipes/mummer/build.sh index 4b86465dad6b2..9fadf907e0146 100644 --- a/recipes/mummer/build.sh +++ b/recipes/mummer/build.sh @@ -48,6 +48,12 @@ for i in exact-tandems dnadiff mapview mummerplot nucmer promer run-mummer1 run- done for i in $binaries; do + if file $MUMMER_HOME/$i | grep "Perl script"; then + # fix hashbang lines to use conda's perl + sed -i.bak '1 s|^#!/.*/perl$|#!/usr/bin/env perl|g' $MUMMER_HOME/$i + rm -rf $MUMMER_HOME/$i.bak + fi + # ensure executable and setup symlink for binary chmod +x $MUMMER_HOME/$i ln -s "$MUMMER_HOME/$i" "$BINARY_HOME/$i" done diff --git a/recipes/mummer/meta.yaml b/recipes/mummer/meta.yaml index 9c8ecd737d370..99c3dee120de2 100644 --- a/recipes/mummer/meta.yaml +++ b/recipes/mummer/meta.yaml @@ -11,10 +11,14 @@ source: sha256: {{ sha256 }} patches: - patches/gnuplot_mouse_clipboardformat.patch + - patches/linkloc_explicit.patch # [osx] + - patches/addleafcount_explicit.patch # [osx] + - patches/findmumcand_explicit.patch # [osx] + - patches/findmaxmat_explicit.patch # [osx] + - patches/procmaxmat_explicit.patch # [osx] build: - number: 18 - skip: True # [osx] + number: 19 run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} @@ -24,9 +28,9 @@ requirements: - {{ compiler('c') }} - {{ compiler('cxx') }} host: - - perl # [not osx] + - perl run: - - perl # [not osx] + - perl test: commands: @@ -52,5 +56,6 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:mummer diff --git a/recipes/mummer/patches/addleafcount_explicit.patch b/recipes/mummer/patches/addleafcount_explicit.patch new file mode 100644 index 0000000000000..c697f885c4361 --- /dev/null +++ b/recipes/mummer/patches/addleafcount_explicit.patch @@ -0,0 +1,19 @@ +--- MUMmer3.23/src/kurtz/streesrc/addleafcount.c.old 2024-08-07 13:34:49 ++++ MUMmer3.23/src/kurtz/streesrc/addleafcount.c 2024-08-07 13:48:50 +@@ -13,6 +13,16 @@ + #include "spacedef.h" + #include "arraydef.h" + ++void getbranchinfostree(Suffixtree *stree,Uint whichinfo, ++ Branchinfo *branchinfo,Bref btptr); ++ ++Sint depthfirststree(Suffixtree *stree,Reference *startnode, ++ Sint (*processleaf)(Uint,Bref,void *), ++ BOOL (*processbranch1)(Bref,void *), ++ Sint (*processbranch2)(Bref,void *), ++ BOOL (*stoptraversal)(void *), ++ void *stopinfo,void *info); ++ + typedef struct + { + Suffixtree *stree; // suffix tree info diff --git a/recipes/mummer/patches/findmaxmat_explicit.patch b/recipes/mummer/patches/findmaxmat_explicit.patch new file mode 100644 index 0000000000000..78ceb0e257981 --- /dev/null +++ b/recipes/mummer/patches/findmaxmat_explicit.patch @@ -0,0 +1,34 @@ +--- MUMmer3.23/src/kurtz/mm3src/findmaxmat.c.old 2024-08-07 13:55:45 ++++ MUMmer3.23/src/kurtz/mm3src/findmaxmat.c 2024-08-07 14:03:39 +@@ -14,7 +14,31 @@ + #include "debugdef.h" + #include "spacedef.h" + #include "maxmatdef.h" ++ ++void linklocstree(Suffixtree *stree,Location *outloc,Location *inloc); ++ ++SYMBOL *scanprefixstree(Suffixtree *stree,Location *outloc, ++ Location *inloc,SYMBOL *left, ++ SYMBOL *right,Uint rescanlength); ++ ++SYMBOL *findprefixpathstree(Suffixtree *stree, ++ ArrayPathinfo *path, ++ Location *outloc, ++ Location *inloc, ++ SYMBOL *left,SYMBOL *right, ++ Uint rescanlength); + ++Sint depthfirststree(Suffixtree *stree,Reference *startnode, ++ Sint (*processleaf)(Uint,Bref,void *), ++ BOOL (*processbranch1)(Bref,void *), ++ Sint (*processbranch2)(Bref,void *), ++ BOOL (*stoptraversal)(void *), ++ void *stopinfo,void *info); ++ ++SYMBOL *scanprefixfromnodestree(Suffixtree *stree,Location *loc, ++ Bref btptr,SYMBOL *left, ++ SYMBOL *right,Uint rescanlength); ++ + //} + + /*EE diff --git a/recipes/mummer/patches/findmumcand_explicit.patch b/recipes/mummer/patches/findmumcand_explicit.patch new file mode 100644 index 0000000000000..141b3164973c4 --- /dev/null +++ b/recipes/mummer/patches/findmumcand_explicit.patch @@ -0,0 +1,19 @@ +--- MUMmer3.23/src/kurtz/mm3src/findmumcand.c.old 2024-08-07 13:42:47 ++++ MUMmer3.23/src/kurtz/mm3src/findmumcand.c 2024-08-07 13:54:04 +@@ -15,6 +15,16 @@ + #include "spacedef.h" + #include "maxmatdef.h" + ++void linklocstree(Suffixtree *stree,Location *outloc,Location *inloc); ++ ++SYMBOL *scanprefixfromnodestree(Suffixtree *stree,Location *loc, ++ Bref btptr,SYMBOL *left, ++ SYMBOL *right,Uint rescanlength); ++ ++SYMBOL *scanprefixstree(Suffixtree *stree,Location *outloc, ++ Location *inloc,SYMBOL *left, ++ SYMBOL *right,Uint rescanlength); ++ + //} + + /*EE diff --git a/recipes/mummer/patches/linkloc_explicit.patch b/recipes/mummer/patches/linkloc_explicit.patch new file mode 100644 index 0000000000000..96ad6ea4cb176 --- /dev/null +++ b/recipes/mummer/patches/linkloc_explicit.patch @@ -0,0 +1,12 @@ +--- MUMmer3.23/src/kurtz/streesrc/linkloc.c.old 2024-08-07 12:45:16 ++++ MUMmer3.23/src/kurtz/streesrc/linkloc.c 2024-08-07 13:48:38 +@@ -11,6 +11,9 @@ + #include "debugdef.h" + #include "streeacc.h" + ++void getbranchinfostree(Suffixtree *stree,Uint whichinfo, ++ Branchinfo *branchinfo,Bref btptr); ++ + void rescanstree(Suffixtree *stree,Location *loc, + Bref btptr,SYMBOL *left,SYMBOL *right) + { diff --git a/recipes/mummer/patches/procmaxmat_explicit.patch b/recipes/mummer/patches/procmaxmat_explicit.patch new file mode 100644 index 0000000000000..87252e37230ba --- /dev/null +++ b/recipes/mummer/patches/procmaxmat_explicit.patch @@ -0,0 +1,19 @@ +--- MUMmer3.23/src/kurtz/mm3src/procmaxmat.c.old 2024-08-07 14:05:17 ++++ MUMmer3.23/src/kurtz/mm3src/procmaxmat.c 2024-08-07 14:07:03 +@@ -19,6 +19,16 @@ + #include "spacedef.h" + #include "streedef.h" + #include "maxmatdef.h" ++ ++Uint getmaxtextlenstree(void); ++ ++Sint constructprogressstree(Suffixtree *stree,SYMBOL *text, ++ Uint textlen, ++ void (*progress)(Uint,void *), ++ void (*finalprogress)(void *), ++ void *info); ++ ++void freestree(Suffixtree *stree); + + //} + From 2025b21140a2fec791bff65e41736e8288de25e0 Mon Sep 17 00:00:00 2001 From: Roberto Rossini <71787608+robomics@users.noreply.github.com> Date: Wed, 7 Aug 2024 22:33:36 +0200 Subject: [PATCH 0839/1589] Remove stale build failure logs (#49878) --- .../hictk/build_failure.linux-aarch64.yaml | 104 ------------------ recipes/hictk/build_failure.osx-64.yaml | 104 ------------------ recipes/hictk/meta.yaml | 2 +- 3 files changed, 1 insertion(+), 209 deletions(-) delete mode 100644 recipes/hictk/build_failure.linux-aarch64.yaml delete mode 100644 recipes/hictk/build_failure.osx-64.yaml diff --git a/recipes/hictk/build_failure.linux-aarch64.yaml b/recipes/hictk/build_failure.linux-aarch64.yaml deleted file mode 100644 index 49cb43e2fe9a7..0000000000000 --- a/recipes/hictk/build_failure.linux-aarch64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 5def4a5bc1369a463033268d7ed2b6dc19d35b7407bb8c10c74902b523d2b014 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt - new_conflicts = self._maybe_raise_for_problems( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-aarch64: {MatchSpec("pysam"), MatchSpec("cooler==0.10.0=pyhdfd78af_0")} - Encountered problems while solving: - - package cooler-0.10.0-pyhdfd78af_0 requires pysam, but none of the providers can be installed - - Could not solve for environment specs - The following packages are incompatible - [32mcooler >=0.9.3 [0m is installable and it requires - [32mpysam [ |>0.8 ][0m, which requires - [32mlibdeflate >=1.18,<1.19.0a0 [0m, which can be installed; - [31mlibdeflate >=1.20,<1.21.0a0 [0m is not installable because it conflicts with any installable versions previously reported. - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions - precs = _install_actions(prefix, index, specs)["LINK"] - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions - txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction - unlink_precs, link_precs = self.solve_for_diff( - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff - final_precs = self.solve_final_state( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state - out_state = self._solving_loop(in_state, out_state, index) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop - solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt - new_conflicts = self._maybe_raise_for_problems( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-aarch64: {MatchSpec("pysam"), MatchSpec("cooler==0.10.0=pyhdfd78af_0")} - Encountered problems while solving: - - package cooler-0.10.0-pyhdfd78af_0 requires pysam, but none of the providers can be installed - - Could not solve for environment specs - The following packages are incompatible - [32mcooler >=0.9.3 [0m is installable and it requires - [32mpysam [ |>0.8 ][0m, which requires - [32mlibdeflate >=1.18,<1.19.0a0 [0m, which can be installed; - [31mlibdeflate >=1.20,<1.21.0a0 [0m is not installable because it conflicts with any installable versions previously reported. - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/conda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build - create_build_envs(top_level_pkg, notest) - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs - raise e - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs - environ.get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions - precs = _install_actions(prefix, index, specs)["LINK"] - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions - txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction - unlink_precs, link_precs = self.solve_for_diff( - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff - final_precs = self.solve_final_state( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state - out_state = self._solving_loop(in_state, out_state, index) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop - solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt - new_conflicts = self._maybe_raise_for_problems( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-aarch64: {MatchSpec("pysam"), MatchSpec("cooler==0.10.0=pyhdfd78af_0")} - Encountered problems while solving: - - package cooler-0.10.0-pyhdfd78af_0 requires pysam, but none of the providers can be installed - - Could not solve for environment specs - The following packages are incompatible - [32mcooler >=0.9.3 [0m is installable and it requires - [32mpysam [ |>0.8 ][0m, which requires - [32mlibdeflate >=1.18,<1.19.0a0 [0m, which can be installed; - [31mlibdeflate >=1.20,<1.21.0a0 [0m is not installable because it conflicts with any installable versions previously reported. -# Last 100 lines of the build log. diff --git a/recipes/hictk/build_failure.osx-64.yaml b/recipes/hictk/build_failure.osx-64.yaml deleted file mode 100644 index 9f4bd89807a52..0000000000000 --- a/recipes/hictk/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 5def4a5bc1369a463033268d7ed2b6dc19d35b7407bb8c10c74902b523d2b014 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |- - ac_cv_func_malloc_0_nonnull=yes - ac_cv_func_realloc_0_nonnull=yes - build_alias=x86_64-apple-darwin13.4.0 - host_alias=x86_64-apple-darwin13.4.0 - INFO: activate_clangxx_osx-64.sh made the following environmental changes: - CLANGXX=x86_64-apple-darwin13.4.0-clang - CXX=x86_64-apple-darwin13.4.0-clang - CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hictk-0.0.12 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hictk-0.0.12 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - patching file conanfile.txt - -- The C compiler identification is Clang 16.0.6 - -- The CXX compiler identification is Clang 16.0.6 - -- Detecting C compiler ABI info - -- Detecting C compiler ABI info - done - -- Check for working C compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped - -- Detecting C compile features - -- Detecting C compile features - done - -- Detecting CXX compiler ABI info - -- Detecting CXX compiler ABI info - done - -- Check for working CXX compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped - -- Detecting CXX compile features - -- Detecting CXX compile features - done - -- Developer mode is OFF. For developement, use -DENABLE_DEVELOPER_MODE:BOOL=ON. Building the project for the end-user... - -- Conan: Target declared 'bshoshany-thread-pool::bshoshany-thread-pool' - -- Conan: Target declared 'phmap' - -- Conan: Component target declared 'nonstd::span-lite' - -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success - -- Found Threads: TRUE - -- HIGHFIVE 2.9.0: (Re)Detecting Highfive dependencies (HIGHFIVE_USE_INSTALL_DEPS=NO) - -- Conan: Target declared 'phmap' - packages_from_this = build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - utils.check_call_env( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - -- Conan: Target declared 'phmap' - -- Conan: Target declared 'phmap' - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - -- Conan: Target declared 'bshoshany-thread-pool::bshoshany-thread-pool' - -- Conan: Target declared 'concurrentqueue::concurrentqueue' - -- Conan: Target declared 'phmap' - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/hictk_1717508836832/work/conda_build.sh']' returned non-zero exit status 2. - -- Conan: Target declared 'readerwriterqueue::readerwriterqueue' - -- Conan: Target declared 'phmap' - -- Building cli tools. - -- Conan: Target declared 'readerwriterqueue::readerwriterqueue' - -- Looking for C include filesystem - -- Looking for C include filesystem - found - -- Performing Test CXX_FILESYSTEM_NO_LINK_NEEDED - -- Performing Test CXX_FILESYSTEM_NO_LINK_NEEDED - Success - -- Building unit tests. - -- Downloading test dataset... - -- Configuring done (71.5s) - -- Generating done (0.3s) - -- Build files have been written to: $SRC_DIR/build - [ 1%] Building CXX object src/hictk/CMakeFiles/hictk.dir/main.cpp.o - [ 2%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli.cpp.o - [ 3%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli_balance.cpp.o - [ 4%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli_convert.cpp.o - [ 5%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli_dump.cpp.o - [ 6%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli_fix_mcool.cpp.o - [ 8%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli_load.cpp.o - [ 9%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli_merge.cpp.o - [ 10%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli_rename_chromosomes.cpp.o - [ 11%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli_validate.cpp.o - [ 12%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli_zoomify.cpp.o - [ 13%] Building CXX object src/hictk/CMakeFiles/hictk.dir/balance/balance.cpp.o - [ 15%] Building CXX object src/hictk/CMakeFiles/hictk.dir/convert/convert.cpp.o - [ 16%] Building CXX object src/hictk/CMakeFiles/hictk.dir/convert/cool_to_hic.cpp.o - [ 17%] Building CXX object src/hictk/CMakeFiles/hictk.dir/convert/hic_to_cool.cpp.o - [ 18%] Building CXX object src/hictk/CMakeFiles/hictk.dir/dump/dump.cpp.o - [ 19%] Building CXX object src/hictk/CMakeFiles/hictk.dir/dump/dump_common.cpp.o - [ 20%] Building CXX object src/hictk/CMakeFiles/hictk.dir/fix_mcool/fix_mcool.cpp.o - [ 22%] Building CXX object src/hictk/CMakeFiles/hictk.dir/load/load.cpp.o - [ 23%] Building CXX object src/hictk/CMakeFiles/hictk.dir/merge/merge.cpp.o - [ 24%] Building CXX object src/hictk/CMakeFiles/hictk.dir/rename_chromosomes/rename_chromosomes.cpp.o - [ 25%] Building CXX object src/hictk/CMakeFiles/hictk.dir/validate/validate.cpp.o - [ 26%] Building CXX object src/hictk/CMakeFiles/hictk.dir/zoomify/zoomify.cpp.o - [ 27%] Linking CXX executable hictk - [ 27%] Built target hictk - [ 29%] Building CXX object test/units/balancing/CMakeFiles/hictk_balancing_tests.dir/balancing_test.cpp.o - [ 30%] Linking CXX executable hictk_balancing_tests - [ 30%] Built target hictk_balancing_tests - [ 31%] Building CXX object test/units/bin_table/CMakeFiles/bin_table_tests.dir/bin_test.cpp.o - [ 32%] Building CXX object test/units/bin_table/CMakeFiles/bin_table_tests.dir/bin_table_test.cpp.o - [ 33%] Linking CXX executable bin_table_tests - [ 33%] Built target bin_table_tests - [ 34%] Building CXX object test/units/binary_buffer/CMakeFiles/hictk_binary_buffer_tests.dir/binary_buffer_test.cpp.o - [ 36%] Linking CXX executable hictk_binary_buffer_tests - [ 36%] Built target hictk_binary_buffer_tests - [ 37%] Building CXX object test/units/chromosome/CMakeFiles/hictk_chromosome_tests.dir/chromosome_test.cpp.o - [ 38%] Linking CXX executable hictk_chromosome_tests - [ 38%] Built target hictk_chromosome_tests - [ 39%] Building CXX object test/units/cooler/CMakeFiles/hictk_cooler_tests.dir/attribute_numeric_conversions_test.cpp.o - [ 40%] Building CXX object test/units/cooler/CMakeFiles/hictk_cooler_tests.dir/attribute_read_test.cpp.o -# Last 100 lines of the build log. diff --git a/recipes/hictk/meta.yaml b/recipes/hictk/meta.yaml index e0bfbfc37556e..42a5eb4d57b4a 100644 --- a/recipes/hictk/meta.yaml +++ b/recipes/hictk/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('hictk', max_pin='x') }} From de2f78548bba8ccc9284c5d7ac2c964e17ab2c75 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 7 Aug 2024 17:51:19 -0400 Subject: [PATCH 0840/1589] Update lsabgc to 1.0.6 (#49884) --- recipes/lsabgc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/lsabgc/meta.yaml b/recipes/lsabgc/meta.yaml index f55c6fb0d327f..97513540544b9 100644 --- a/recipes/lsabgc/meta.yaml +++ b/recipes/lsabgc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "lsabgc" %} -{% set version = "1.0.5" %} +{% set version = "1.0.6" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Kalan-Lab/lsaBGC-Pan/archive/refs/tags/v{{ version }}.tar.gz - sha256: c6354a39e64238d42c9f5d3e1464d78545f91d5231de2306d162cee6b36eb85f + sha256: d8511975151b5ed53c6268bdbca915bb4398e216be84e8a91729db2f13a422e8 build: number: 0 From 1e83d561cba96c1daf0bffead7047efb3bcda839 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 7 Aug 2024 20:18:25 -0400 Subject: [PATCH 0841/1589] Update gempipe to 1.34.0 (#49882) --- recipes/gempipe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gempipe/meta.yaml b/recipes/gempipe/meta.yaml index 80aaf1acc33f4..343b9cd4741a9 100755 --- a/recipes/gempipe/meta.yaml +++ b/recipes/gempipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.33.4" %} +{% set version = "1.34.0" %} package: name: "gempipe" @@ -7,7 +7,7 @@ package: source: url: https://github.com/lazzarigioele/gempipe/archive/v{{ version }}.tar.gz - sha256: ff9a7f7ab4faa2ac1ed0e77d3e9051034f6f5a98dea347bebdb978727ccb73ea + sha256: 59e71c796c348cef7de9a1c1db3eefef994e2e6e03a8cb686a66df43f002b67f build: From cbef086ebdbb4cc42c082b545d0f1825924cc887 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 7 Aug 2024 20:18:36 -0400 Subject: [PATCH 0842/1589] Update fwdpy11 to 0.24.1 (#49880) --- recipes/fwdpy11/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/fwdpy11/meta.yaml b/recipes/fwdpy11/meta.yaml index 6729780e4e7e6..848cd1006671e 100644 --- a/recipes/fwdpy11/meta.yaml +++ b/recipes/fwdpy11/meta.yaml @@ -1,5 +1,5 @@ {% set name = "fwdpy11" %} -{% set version = "0.24.0" %} +{% set version = "0.24.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/fwdpy11-{{ version }}.tar.gz - sha256: 1b7b0ad6a78ccb43ebc1d5dee43ae6542dc254543aad6aad3462165204afe3a0 + sha256: d0d0d3b9b504d47bd23cfedab39bc4978d2fb21a73e8645140a8c25e211e5800 build: skip: True # [py < 39 or py > 312] From d0f389f03021c0e876bd26b1408572af64c7f533 Mon Sep 17 00:00:00 2001 From: Kez Cleal <42997789+kcleal@users.noreply.github.com> Date: Thu, 8 Aug 2024 01:19:01 +0100 Subject: [PATCH 0843/1589] GW recipe update (#49874) * GW recipe update This is to try and fix missing EGL libs * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml --- recipes/gw/meta.yaml | 53 ++++++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 27 deletions(-) diff --git a/recipes/gw/meta.yaml b/recipes/gw/meta.yaml index d91101eaef266..914bd1e2fe317 100644 --- a/recipes/gw/meta.yaml +++ b/recipes/gw/meta.yaml @@ -1,37 +1,34 @@ - {% set version = "1.0.1" %} {% set sha256 = "aacd161bb7131d7874a75b2ed409ee22109be3f87dd062c5590c6d30d1503e68" %} - package: name: gw version: {{ version }} - source: url: https://github.com/kcleal/gw/archive/refs/tags/v{{ version }}.tar.gz sha256: {{ sha256 }} patches: - fix-linker-issues.patch # [linux] - build: - number: 1 + number: 2 run_exports: - - {{ pin_subpackage('gw', max_pin="x") }} + - {{ pin_subpackage('gw', max_pin="x") }} requirements: build: - make - {{ compiler('cxx') }} - - {{ cdt('xorg-x11-proto-devel') }} # [linux] - - {{ cdt('mesa-libgl-devel') }} # [linux] - - {{ cdt('mesa-dri-drivers') }} # [linux] - - {{ cdt('libselinux') }} # [linux] - - {{ cdt('libxdamage') }} # [linux] - - {{ cdt('libxxf86vm') }} # [linux] - - {{ cdt('libxfixes') }} # [linux] - - {{ cdt('libxext') }} # [linux] + # - sysroot_linux-64 >=2.17 + - {{ cdt('mesa-libgl-devel') }} # [linux] + - {{ cdt('mesa-libegl-devel') }} # [linux] + - {{ cdt('mesa-dri-drivers') }} # [linux] + - {{ cdt('libselinux') }} # [linux] + - {{ cdt('libxdamage') }} # [linux] + - {{ cdt('libxxf86vm') }} # [linux] + - {{ cdt('libxext') }} # [linux] + host: - fontconfig - libuuid @@ -42,19 +39,21 @@ requirements: - wget - unzip - freetype - - xorg-libxfixes # [linux] - - xorg-libx11 # [linux] - - xorg-libxcb # [linux] - - expat # [linux] + - xorg-libxfixes # [linux] + - xorg-libx11 # [linux] + - xorg-libxcb # [linux] + - expat # [linux] + run: - - {{ cdt('xorg-x11-proto-devel') }} # [linux] - - {{ cdt('mesa-libgl-devel') }} # [linux] - - {{ cdt('mesa-dri-drivers') }} # [linux] - - {{ cdt('libselinux') }} # [linux] - - {{ cdt('libxdamage') }} # [linux] - - {{ cdt('libxxf86vm') }} # [linux] - - {{ cdt('libxfixes') }} # [linux] - - {{ cdt('libxext') }} # [linux] + - xorg-libxfixes # [linux] + - xorg-libx11 # [linux] + - xorg-libxcb # [linux] + - {{ cdt('mesa-libgl-devel') }} # [linux] + - {{ cdt('mesa-libegl-devel') }} # [linux] + - {{ cdt('mesa-dri-drivers') }} # [linux] + #- mesa-libgl # [linux] + #- mesa-libegl # [linux] + #- mesa-dri-drivers # [linux] - glfw >=3.3 - htslib >=1.12 @@ -70,6 +69,6 @@ about: extra: container: - extended-base: True + extended-base: True recipe-maintainers: - kcleal From 85a7f6c9623eb0a02299064c38fc795c2a081d89 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 7 Aug 2024 19:54:40 -0500 Subject: [PATCH 0844/1589] Update sigProfilerPlotting (#49886) --- recipes/sigprofilerplotting/meta.yaml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/recipes/sigprofilerplotting/meta.yaml b/recipes/sigprofilerplotting/meta.yaml index 26a637ebc5fb5..efe1357184a46 100644 --- a/recipes/sigprofilerplotting/meta.yaml +++ b/recipes/sigprofilerplotting/meta.yaml @@ -1,29 +1,29 @@ -{% set name = "SigProfilerPlotting" %} -{% set version = "1.3.23" %} +{% set name = "sigProfilerPlotting" %} +{% set version = "1.3.24" %} package: name: {{ name|lower }} version: {{ version }} source: - url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/sigProfilerPlotting-{{ version }}.tar.gz - sha256: 867201902893dbca89444309229731b2294fdbf254dbd76ebd970ca36198b825 + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/sigprofilerplotting-{{ version }}.tar.gz + sha256: 99be52760ff9cac55d075035580d256a28e99e8dbd5a7c67f45f1451d4d8ffcd build: entry_points: - SigProfilerPlotting=sigProfilerPlotting.sigProfilerPlotting_CLI:main_function noarch: python - script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir number: 0 run_exports: - {{ pin_subpackage(name|lower, max_pin="x") }} requirements: host: - - python + - python >=3.7 - pip run: - - python + - python >=3.7 - matplotlib-base >=3.4.3 - pandas >=1.2.4,<2.0.0 - scikit-learn >=1.1.3 @@ -33,13 +33,13 @@ test: imports: - sigProfilerPlotting commands: - - pip check - SigProfilerPlotting plotSBS --help - requires: - - pip about: home: https://github.com/alexandrovlab/SigProfilerPlotting - summary: SigProfiler plotting tool + summary: "SigProfiler plotting tool." license: BSD-2-Clause + license_family: BSD license_file: LICENSE + dev_url: https://github.com/alexandrovlab/SigProfilerPlotting + doc_url: https://osf.io/2aj6t/wiki/home From 61032ca10143ed20fada57cecfcbec4229d9a1a6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 7 Aug 2024 20:54:47 -0400 Subject: [PATCH 0845/1589] Update sigprofilermatrixgenerator to 1.2.28 (#49881) * Update sigprofilermatrixgenerator to 1.2.28 * clean up recipe --------- Co-authored-by: mencian --- recipes/sigprofilermatrixgenerator/meta.yaml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/recipes/sigprofilermatrixgenerator/meta.yaml b/recipes/sigprofilermatrixgenerator/meta.yaml index feea8811d72e4..b1cb0a1741cbc 100644 --- a/recipes/sigprofilermatrixgenerator/meta.yaml +++ b/recipes/sigprofilermatrixgenerator/meta.yaml @@ -1,5 +1,5 @@ {% set name = "SigProfilerMatrixGenerator" %} -{% set version = "1.2.27" %} +{% set version = "1.2.28" %} package: name: {{ name|lower }} @@ -7,13 +7,13 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/SigProfilerMatrixGenerator-{{ version }}.tar.gz - sha256: c25d3e4c3de14b7a758da8c5a54e53d591899938e71234b1ea44d66c4eec744b + sha256: 4b909790ba1a284b4261b433839335868664da30f29ecf7c574f4ed969e673b9 build: entry_points: - SigProfilerMatrixGenerator=SigProfilerMatrixGenerator.scripts.SigProfilerMatrixGenerator_CLI:main_function noarch: python - script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir number: 0 run_exports: - {{ pin_subpackage(name|lower, max_pin="x") }} @@ -35,13 +35,12 @@ test: imports: - SigProfilerMatrixGenerator commands: - - pip check - SigProfilerMatrixGenerator install --help - requires: - - pip about: - home: https://github.com/AlexandrovLab/SigProfilerMatrixGenerator.git - summary: SigProfiler matrix generator tool + home: https://github.com/AlexandrovLab/SigProfilerMatrixGenerator + summary: "SigProfiler matrix generator tool." license: BSD-2-Clause + license_family: BSD license_file: LICENSE + dev_url: https://github.com/AlexandrovLab/SigProfilerMatrixGenerator From 0914a5baa04448099eb78a7f5ac8106e47aa92eb Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 7 Aug 2024 20:40:07 -0500 Subject: [PATCH 0846/1589] Update meme to 5.5.6 (#49887) --- recipes/meme/build.sh | 12 ++++-------- recipes/meme/meta.yaml | 18 +++++++++--------- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/recipes/meme/build.sh b/recipes/meme/build.sh index d421c84749228..7873b96820409 100644 --- a/recipes/meme/build.sh +++ b/recipes/meme/build.sh @@ -1,9 +1,6 @@ -#!/bin/bash -set -e +#!/bin/bash -ex -export MEME_ETC_DIR=${PREFIX}/etc -#HOME=/tmp cpanm CGI::Application -#HOME=/tmp cpanm XML::Parser::Expat --configure-args "EXPATLIBPATH=$PREFIX/lib" --configure-args "EXPATHINCPATH=$PREFIX/include" +export MEME_ETC_DIR="${PREFIX}/etc" autoreconf -i @@ -16,7 +13,7 @@ perl scripts/dependencies.pl --enable-build-libxml2 \ --enable-build-libxslt -make AM_CFLAGS='-DNAN="(0.0/0.0)"' -j4 +make AM_CFLAGS='-DNAN="(0.0/0.0)"' -j"${CPU_COUNT}" # tests will only work inside the build dir, but # https://github.com/conda/conda-build/issues/1453 @@ -35,6 +32,5 @@ if [ ${PY3K}==1 ]; then sed -i.bak '994s/dreme/dreme-py3/' ${PREFIX}/bin/meme-chip rm ${PREFIX}/bin/meme-chip.bak # Fix for dreme - cp scripts/*py3.py ${PREFIX}/lib/${PKG_NAME}-${PKG_VERSION}/python/ + cp -rf scripts/*py3.py ${PREFIX}/lib/${PKG_NAME}-${PKG_VERSION}/python/ fi - diff --git a/recipes/meme/meta.yaml b/recipes/meme/meta.yaml index 5e542248cf755..5e8ace3b3461a 100644 --- a/recipes/meme/meta.yaml +++ b/recipes/meme/meta.yaml @@ -1,6 +1,6 @@ {% set name = "MEME" %} -{% set version = "5.5.5" %} -{% set sha256 = "bebb4a176e72d62e3a2d5ba5f22439185bbc4bbf4769604fbca12dff8e1f739f" %} +{% set version = "5.5.6" %} +{% set sha256 = "8f719002c3a2177f6bb9da6861098ccf4f08b3006f002a88bb3afe9473596c67" %} package: name: {{ name|lower }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 detect_binary_files_with_prefix: True run_exports: - {{ pin_subpackage("meme", max_pin="x") }} @@ -25,7 +25,8 @@ requirements: - libtool host: - nodejs >=16.4.1 - - openmpi + - libgomp # [linux] + - llvm-openmp # [osx] - yaml - icu >=72.1,<73.0a0 - ghostscript @@ -74,15 +75,14 @@ test: - dreme -version about: - home: https://meme-suite.org + home: "https://meme-suite.org" license: Custom license_file: COPYING - summary: Motif-based sequence analysis tools + summary: "Motif-based sequence analysis tools." + doc_url: "https://meme-suite.org/meme/doc/overview.html" extra: - container: - # openmpi needs ssh/rsh - extended-base: true identifiers: - biotools:meme_suite - usegalaxy-eu:meme_dreme + - doi:10.1093/nar/gkv416 From 8334efeefb1eab1fc20e2527d09e29077cf99704 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 7 Aug 2024 20:42:16 -0500 Subject: [PATCH 0847/1589] yak: add aarch64/arm64 build (#49796) * yak: add aarch64/arm64 build * edit build.sh * edit build.sh * edit build.sh --- recipes/yak/build.sh | 14 +- recipes/yak/meta.yaml | 21 +- recipes/yak/yak.patch | 760 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 786 insertions(+), 9 deletions(-) create mode 100644 recipes/yak/yak.patch diff --git a/recipes/yak/build.sh b/recipes/yak/build.sh index c5001f0f716ee..f5b7e2bdc2652 100644 --- a/recipes/yak/build.sh +++ b/recipes/yak/build.sh @@ -1,6 +1,12 @@ -#!/bin/bash +#!/bin/bash -ex -mkdir -p $PREFIX/bin +mkdir -p ${PREFIX}/bin -make INCLUDES="-I$PREFIX/include" CFLAGS="-g -Wall -O2 -L$PREFIX/lib" -cp yak $PREFIX/bin +#install_name_tool error fix +if [[ "$(uname)" == Darwin ]]; then + export LDFLAGS="${LDFLAGS} -Wl,-rpath,${PREFIX}/lib -headerpad_max_install_names" +fi + +make INCLUDES="-I${PREFIX}/include" CFLAGS="${CFLAGS} -g -Wall -O3 -L${PREFIX}/lib" +cp -rf yak ${PREFIX}/bin +chmod 755 ${PREFIX}/bin/yak diff --git a/recipes/yak/meta.yaml b/recipes/yak/meta.yaml index a4147c53a2141..f44283997a96a 100644 --- a/recipes/yak/meta.yaml +++ b/recipes/yak/meta.yaml @@ -7,9 +7,13 @@ package: source: url: https://github.com/lh3/yak/archive/v{{ version }}.tar.gz sha256: a4237af25005eb8e7e721519c62d6bbcf203bf0a572506af63c3f6ecb6b11836 + patches: + - yak.patch build: - number: 4 + number: 5 + run_exports: + - {{ pin_subpackage('yak', max_pin="x.x") }} requirements: build: @@ -17,14 +21,21 @@ requirements: - {{ compiler('c') }} host: - zlib - run: - - zlib test: commands: - yak 2>&1 | grep 'Usage' about: - home: https://github.com/lh3/yak + home: "https://github.com/lh3/yak" license: MIT - summary: 'Yet another k-mer analyzer' + license_family: MIT + license_file: LICENSE.txt + summary: 'Yet another k-mer analyzer.' + dev_url: "https://github.com/lh3/yak" + doc_url: "https://github.com/lh3/yak/blob/v{{ version }}/README.md" + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 diff --git a/recipes/yak/yak.patch b/recipes/yak/yak.patch new file mode 100644 index 0000000000000..6343f0d11db87 --- /dev/null +++ b/recipes/yak/yak.patch @@ -0,0 +1,760 @@ +diff --git a/LICENSE.txt b/LICENSE.txt +new file mode 100644 +index 0000000..d7ac24e +--- /dev/null ++++ b/LICENSE.txt +@@ -0,0 +1,23 @@ ++The MIT License ++ ++Copyright (c) 2019- Dana-Farber Cancer Institute ++ ++Permission is hereby granted, free of charge, to any person obtaining ++a copy of this software and associated documentation files (the ++"Software"), to deal in the Software without restriction, including ++without limitation the rights to use, copy, modify, merge, publish, ++distribute, sublicense, and/or sell copies of the Software, and to ++permit persons to whom the Software is furnished to do so, subject to ++the following conditions: ++ ++The above copyright notice and this permission notice shall be ++included in all copies or substantial portions of the Software. ++ ++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ++EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS ++BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ++ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN ++CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++SOFTWARE. +diff --git a/Makefile b/Makefile +index 41c92f7..540b080 100644 +--- a/Makefile ++++ b/Makefile +@@ -2,7 +2,7 @@ CFLAGS= -g -Wall -O2 + CPPFLAGS= + INCLUDES= + OBJS= kthread.o bbf.o htab.o bseq.o misc.o sys.o 6gjdn.o \ +- count.o qv.o triobin.o trioeval.o inspect.o ++ count.o qv.o triobin.o trioeval.o inspect.o chkerr.o sexchr.o + PROG= yak + LIBS= -lm -lz -lpthread + +@@ -32,6 +32,7 @@ depend: + + bbf.o: yak.h + bseq.o: bseq.h kseq.h ++chkerr.o: kthread.h ketopt.h bseq.h yak-priv.h yak.h + count.o: kthread.h yak-priv.h yak.h kseq.h + htab.o: kthread.h yak-priv.h yak.h khashl.h + inspect.o: ketopt.h yak-priv.h yak.h +@@ -39,6 +40,7 @@ kthread.o: kthread.h + main.o: ketopt.h yak-priv.h yak.h + misc.o: yak-priv.h yak.h + qv.o: kthread.h yak-priv.h yak.h bseq.h ++sexchr.o: kthread.h ketopt.h bseq.h yak-priv.h yak.h + sys.o: yak-priv.h yak.h + triobin.o: kthread.h ketopt.h bseq.h yak-priv.h yak.h + trioeval.o: kthread.h ketopt.h bseq.h yak-priv.h yak.h +diff --git a/README.md b/README.md +index a467de7..f0c3c99 100644 +--- a/README.md ++++ b/README.md +@@ -26,8 +26,12 @@ cd yak && make + + # print k-mer histogram + ./yak inspect sr.yak > sr.hist +-# print k-mers (warning: large output) +-./yak inspect -p sr.yak > sr.kmers ++ ++# partition chrX/Y in human de novo assembly ++wget -O- 'https://zenodo.org/record/7882299/files/human-chrXY-yak.tar?download=1' | tar tf - ++./yak sexchr -K2g -t16 chrY-no-par.yak chrX-no-par.yak par.yak hap1.fa hap2.fa > cnt.txt ++./groupxy.pl cnt.txt|awk '$4==1'|cut -f2|seqtk subseq -l80 <(cat hap1.fa hap2.fa) - > new-hap1.fa ++./groupxy.pl cnt.txt|awk '$4==2'|cut -f2|seqtk subseq -l80 <(cat hap1.fa hap2.fa) - > new-hap2.fa + ``` + + ## Introduction +diff --git a/chkerr.c b/chkerr.c +new file mode 100644 +index 0000000..ed777f0 +--- /dev/null ++++ b/chkerr.c +@@ -0,0 +1,133 @@ ++#include ++#include ++#include ++#include "kthread.h" ++#include "ketopt.h" ++#include "bseq.h" ++#include "yak-priv.h" ++ ++typedef struct { ++ int k, n_threads, min_cnt, min_streak; ++ int64_t chunk_size; ++ bseq_file_t *fp; ++ const yak_ch_t *ch; ++} ce_shared_t; ++ ++typedef struct { ++ int n_seq; ++ ce_shared_t *aux; ++ bseq1_t *seq; ++} ce_step_t; ++ ++static void te_worker(void *_data, long k, int tid) ++{ ++ ce_step_t *t = (ce_step_t*)_data; ++ ce_shared_t *aux = t->aux; ++ bseq1_t *s = &t->seq[k]; ++ uint64_t x[4], mask; ++ int i, l, last, streak, shift; ++ if (aux->ch->k < 32) { ++ mask = (1ULL<<2*aux->ch->k) - 1; ++ shift = 2 * (aux->ch->k - 1); ++ } else { ++ mask = (1ULL<ch->k) - 1; ++ shift = aux->ch->k - 1; ++ } ++ last = -1, streak = 0; ++ for (i = l = 0, x[0] = x[1] = x[2] = x[3] = 0; i < s->l_seq; ++i) { ++ int cnt, c = seq_nt4_table[(uint8_t)s->seq[i]]; ++ if (c < 4) { ++ if (aux->ch->k < 32) { ++ x[0] = (x[0] << 2 | c) & mask; ++ x[1] = x[1] >> 2 | (uint64_t)(3 - c) << shift; ++ } else { ++ x[0] = (x[0] << 1 | (c&1)) & mask; ++ x[1] = (x[1] << 1 | (c>>1)) & mask; ++ x[2] = x[2] >> 1 | (uint64_t)(1 - (c&1)) << shift; ++ x[3] = x[3] >> 1 | (uint64_t)(1 - (c>>1)) << shift; ++ } ++ if (++l >= aux->k) { ++ uint64_t y; ++ if (aux->ch->k < 32) ++ y = yak_hash64(x[0] < x[1]? x[0] : x[1], mask); ++ else ++ y = yak_hash_long(x); ++ cnt = yak_ch_get(aux->ch, y); ++ if (cnt < aux->min_cnt) { ++ if (i != last + 1) { ++ if (streak > aux->min_streak) ++ printf("%s\t%d\t%d\t%d\n", s->name, last + 1 - aux->k - (streak - 1), last + 1, streak); ++ streak = 1; ++ } else ++streak; ++ last = i; ++ } ++ } ++ } else l = 0, x[0] = x[1] = x[2] = x[3] = 0; ++ } ++ if (streak > aux->min_streak) ++ printf("%s\t%d\t%d\t%d\n", s->name, last + 1 - aux->k - (streak - 1), last + 1, streak); ++} ++ ++static void *ce_pipeline(void *shared, int step, void *_data) ++{ ++ ce_shared_t *aux = (ce_shared_t*)shared; ++ if (step == 0) { ++ ce_step_t *s; ++ s = (ce_step_t*)calloc(1, sizeof(ce_step_t)); ++ s->seq = bseq_read(aux->fp, aux->chunk_size, 0, &s->n_seq); ++ s->aux = aux; ++ if (s->n_seq) { ++ fprintf(stderr, "[M::%s] read %d sequences\n", __func__, s->n_seq); ++ return s; ++ } else free(s); ++ } else if (step == 1) { ++ int i; ++ ce_step_t *s = (ce_step_t*)_data; ++ kt_for(aux->n_threads, te_worker, s, s->n_seq); ++ for (i = 0; i < s->n_seq; ++i) { ++ free(s->seq[i].name); free(s->seq[i].seq); free(s->seq[i].qual); ++ free(s->seq[i].comment); ++ } ++ free(s->seq); free(s); ++ } ++ return 0; ++} ++ ++int main_chkerr(int argc, char *argv[]) ++{ ++ ketopt_t o = KETOPT_INIT; ++ int c; ++ yak_ch_t *ch; ++ ce_shared_t aux; ++ ++ memset(&aux, 0, sizeof(ce_shared_t)); ++ aux.chunk_size = 1000000000; ++ aux.n_threads = 8, aux.min_cnt = 3, aux.min_streak = 5; ++ while ((c = ketopt(&o, argc, argv, 1, "t:c:s:", 0)) >= 0) { ++ if (c == 't') aux.n_threads = atoi(o.arg); ++ else if (c == 'c') aux.min_cnt = atoi(o.arg); ++ else if (c == 's') aux.min_streak = atoi(o.arg); ++ } ++ if (argc - o.ind < 2) { ++ fprintf(stderr, "Usage: yak chkerr [options] \n"); ++ fprintf(stderr, "Options:\n"); ++ fprintf(stderr, " -t INT number of threads [%d]\n", aux.n_threads); ++ fprintf(stderr, " -c INT min k-mer count [%d]\n", aux.min_cnt); ++ fprintf(stderr, " -s INT min k-mer streak [%d]\n", aux.min_streak); ++ return 1; ++ } ++ ++ ch = yak_ch_restore(argv[o.ind]); ++ ++ aux.k = ch->k; ++ aux.fp = bseq_open(argv[o.ind+1]); ++ if (aux.fp == 0) { ++ fprintf(stderr, "ERROR: fail to open file '%s'\n", argv[o.ind+1]); ++ exit(1); ++ } ++ aux.ch = ch; ++ kt_pipeline(2, ce_pipeline, &aux, 2); ++ bseq_close(aux.fp); ++ yak_ch_destroy(ch); ++ return 0; ++} +diff --git a/groupxy.pl b/groupxy.pl +new file mode 100755 +index 0000000..55a41f9 +--- /dev/null ++++ b/groupxy.pl +@@ -0,0 +1,48 @@ ++#!/usr/bin/perl ++ ++use strict; ++use warnings; ++use Getopt::Std; ++ ++my %opts = (s=>.7, c=>.3, r=>.9); ++getopts('s:c:r:', \%opts); ++die("Usage: sexchr.pl [-s $opts{s}] [-c $opts{c}] [-r $opts{r}] in.sexchr\n") if @ARGV == 0; ++ ++# read data ++my @a = (); ++while (<>) { ++ chomp; ++ my @t = split("\t"); ++ next if $t[0] ne 'S'; ++ push(@a, \@t); ++} ++ ++# assign sex chromosome for individual contigs ++my @c = (0, 0, 0, 0); ++for (@a) { ++ next if $_->[5] < $_->[4] * $opts{s}; ++ next if $_->[6] + $_->[7] < $_->[5] * $opts{c}; ++ $_->[3] = $_->[6] > ($_->[6] + $_->[7]) * $opts{r}? 3 : $_->[7] > ($_->[6] + $_->[7]) * $opts{r}? 4 : 0; ++ next if $_->[3] == 0; ++ my $hap = $_->[2] - 1; ++ $c[$hap<<1|0] += $_->[6]; ++ $c[$hap<<1|1] += $_->[7]; ++} ++ ++# determine which partition correspond to sexchr1 or sexchr2 ++my $max_chr = $c[0] + $c[2] > $c[1] + $c[3]? 0 : 1; ++my $type = ($c[0<<1|$max_chr] > $c[1<<1|$max_chr]? 0 : 1) ^ $max_chr; ++ ++# update partition ++for (@a) { ++ if ($_->[3] >= 3) { ++ $_->[3] -= 2; ++ } else { ++ $_->[3] = $type == 0? $_->[2] : 3 - $_->[2]; ++ } ++} ++ ++# print out ++for (@a) { ++ print join("\t", @$_), "\n"; ++} +diff --git a/htab.c b/htab.c +index 5075e54..1112816 100644 +--- a/htab.c ++++ b/htab.c +@@ -228,6 +228,10 @@ yak_ch_t *yak_ch_restore_core(yak_ch_t *ch0, const char *fn, int mode, ...) + mid_cnt = va_arg(ap, int); + if (ch0 == 0 && mode == YAK_LOAD_TRIOBIN2) + mode_err = 1; ++ } else if (mode == YAK_LOAD_SEXCHR1 || mode == YAK_LOAD_SEXCHR2 || mode == YAK_LOAD_SEXCHR3) { ++ assert(YAK_COUNTER_BITS >= 3); ++ if (ch0 == 0 && (mode == YAK_LOAD_SEXCHR2 || mode == YAK_LOAD_SEXCHR3)) ++ mode_err = 1; + } else mode_err = 1; + va_end(ap); + if (mode_err) return 0; +@@ -251,7 +255,7 @@ yak_ch_t *yak_ch_restore_core(yak_ch_t *ch0, const char *fn, int mode, ...) + for (i = 0; i < 1<pre; ++i) { + yak_ht_t *h = ch->h[i].h; + fread(t, 4, 2, fp); +- if (ch0 == 0) yak_ht_resize(h, t[0]); ++ yak_ht_resize(h, t[0]); + for (j = 0; j < t[1]; ++j) { + uint64_t key; + fread(&key, 8, 1, fp); +@@ -272,6 +276,14 @@ yak_ch_t *yak_ch_restore_core(yak_ch_t *ch0, const char *fn, int mode, ...) + if (absent) ++n_new; + else kh_key(h, k) = kh_key(h, k) | x; + } ++ } else if (mode == YAK_LOAD_SEXCHR1 || mode == YAK_LOAD_SEXCHR2 || mode == YAK_LOAD_SEXCHR3) { ++ int shift = mode == YAK_LOAD_SEXCHR1? 0 : mode == YAK_LOAD_SEXCHR2? 1 : 2, x = 1<= 0) { + if (c == 'k') opt.k = atoi(o.arg); + else if (c == 'p') opt.pre = atoi(o.arg); +- else if (c == 'K') opt.chunk_size = atoi(o.arg); ++ else if (c == 'K') opt.chunk_size = mm_parse_num(o.arg); + else if (c == 't') opt.n_thread = atoi(o.arg); + else if (c == 'b') opt.bf_shift = atoi(o.arg); + else if (c == 'H') opt.bf_n_hash = mm_parse_num(o.arg); +@@ -84,12 +73,13 @@ int main_qv(int argc, char *argv[]) + yak_qstat_t qs; + + yak_qopt_init(&opt); +- while ((c = ketopt(&o, argc, argv, 1, "K:t:l:f:pe:", 0)) >= 0) { ++ while ((c = ketopt(&o, argc, argv, 1, "K:t:l:f:pe:E", 0)) >= 0) { + if (c == 'K') opt.chunk_size = mm_parse_num(o.arg); + else if (c == 'l') opt.min_len = mm_parse_num(o.arg); + else if (c == 'f') opt.min_frac = atof(o.arg); + else if (c == 't') opt.n_threads = atoi(o.arg); + else if (c == 'p') opt.print_each = 1; ++ else if (c == 'E') opt.print_err_kmer = 1; + else if (c == 'e') opt.fpr = atof(o.arg); + } + if (argc - o.ind < 2) { +@@ -99,6 +89,7 @@ int main_qv(int argc, char *argv[]) + fprintf(stderr, " -f FLOAT min k-mer fraction [%g]\n", opt.min_frac); + fprintf(stderr, " -e FLOAT false positive rate [%g]\n", opt.fpr); + fprintf(stderr, " -p print QV for each sequence\n"); ++ fprintf(stderr, " -E print the positions of wrong k-mers\n"); + fprintf(stderr, " -t INT number of threads [%d]\n", opt.n_threads); + fprintf(stderr, " -K NUM batch size [1g]\n"); + return 1; +@@ -131,6 +122,8 @@ int main(int argc, char *argv[]) + extern int main_triobin(int argc, char *argv[]); + extern int main_trioeval(int argc, char *argv[]); + extern int main_inspect(int argc, char *argv[]); ++ extern int main_chkerr(int argc, char *argv[]); ++ extern int main_sexchr(int argc, char *argv[]); + int ret = 0, i; + yak_reset_realtime(); + if (argc == 1) { +@@ -141,6 +134,8 @@ int main(int argc, char *argv[]) + fprintf(stderr, " triobin trio binning\n"); + fprintf(stderr, " trioeval evaluate phasing accuracy with trio\n"); + fprintf(stderr, " inspect k-mer hash tables\n"); ++ fprintf(stderr, " chkerr check errors\n"); ++ fprintf(stderr, " sexchr count sex-chromosome-specific k-mers\n"); + fprintf(stderr, " version print version number\n"); + return 1; + } +@@ -149,6 +144,8 @@ int main(int argc, char *argv[]) + else if (strcmp(argv[1], "triobin") == 0) ret = main_triobin(argc-1, argv+1); + else if (strcmp(argv[1], "trioeval") == 0) ret = main_trioeval(argc-1, argv+1); + else if (strcmp(argv[1], "inspect") == 0) ret = main_inspect(argc-1, argv+1); ++ else if (strcmp(argv[1], "chkerr") == 0) ret = main_chkerr(argc-1, argv+1); ++ else if (strcmp(argv[1], "sexchr") == 0) ret = main_sexchr(argc-1, argv+1); + else if (strcmp(argv[1], "version") == 0) { + puts(YAKS_VERSION); + return 0; +diff --git a/qv.c b/qv.c +index 6fdf73b..12e25a0 100644 +--- a/qv.c ++++ b/qv.c +@@ -59,6 +59,9 @@ static void worker_qv(void *_data, long k, int tid) + t = yak_ch_get(qs->ch, y); + if (t < 0) t = 0; + if (t > 0) ++non0; ++ else if (qs->opt->print_err_kmer) { ++ printf("EK\t%s\t%d\n", s->name, i + 1 - qs->k); ++ } + b->s[tot++] = (uint64_t)i<<32 | t; + } + } else l = 0, x[0] = x[1] = 0; +@@ -229,8 +232,13 @@ int yak_qv_solve(const int64_t *hist, const int64_t *cnt, int kmer, double fpr, + // compute adjusted qv + for (c = 0, adj_sum = 0.0; c < n_cnt; ++c) + adj_sum += qs->adj_cnt[c]; +- assert(adj_sum <= (double)qs->tot); +- qs->err = qs->tot - adj_sum; +- qs->qv = -4.3429448190325175 * log(log(qs->tot / adj_sum) / kmer); ++ if (adj_sum <= (double)qs->tot) { ++ qs->err = qs->tot - adj_sum; ++ qs->qv = -4.3429448190325175 * log(log(qs->tot / adj_sum) / kmer); ++ } else { ++ fprintf(stderr, "WARNING: failed to estimate the calibrated QV\n"); ++ qs->err = 0; ++ qs->qv = qs->qv_raw; ++ } + return 0; + } +diff --git a/sexchr.c b/sexchr.c +new file mode 100644 +index 0000000..acf80e9 +--- /dev/null ++++ b/sexchr.c +@@ -0,0 +1,140 @@ ++#include ++#include ++#include ++#include "kthread.h" ++#include "ketopt.h" ++#include "bseq.h" ++#include "yak-priv.h" ++ ++#ifndef kroundup32 ++#define kroundup32(x) (--(x), (x)|=(x)>>1, (x)|=(x)>>2, (x)|=(x)>>4, (x)|=(x)>>8, (x)|=(x)>>16, ++(x)) ++#endif ++ ++static long sc_chunk_size = 1000000000L; ++ ++typedef struct { ++ int k, n_threads, hap; ++ bseq_file_t *fp; ++ const yak_ch_t *ch; ++ uint32_t m_info, n_info; ++} sc_shared_t; ++ ++typedef struct { ++ int n_seq; ++ sc_shared_t *aux; ++ bseq1_t *seq; ++} sc_step_t; ++ ++static void sc_worker(void *_data, long k, int tid) ++{ ++ sc_step_t *t = (sc_step_t*)_data; ++ sc_shared_t *aux = t->aux; ++ bseq1_t *s = &t->seq[k]; ++ uint64_t x[4], mask; ++ long n_k = 0, n_sexchr = 0, n_sex1 = 0, n_sex2 = 0; ++ int i, l, shift; ++ if (aux->ch->k < 32) { ++ mask = (1ULL<<2*aux->ch->k) - 1; ++ shift = 2 * (aux->ch->k - 1); ++ } else { ++ mask = (1ULL<ch->k) - 1; ++ shift = aux->ch->k - 1; ++ } ++ for (i = l = 0, x[0] = x[1] = x[2] = x[3] = 0; i < s->l_seq; ++i) { ++ int flag, c = seq_nt4_table[(uint8_t)s->seq[i]]; ++ if (c < 4) { ++ if (aux->ch->k < 32) { ++ x[0] = (x[0] << 2 | c) & mask; ++ x[1] = x[1] >> 2 | (uint64_t)(3 - c) << shift; ++ } else { ++ x[0] = (x[0] << 1 | (c&1)) & mask; ++ x[1] = (x[1] << 1 | (c>>1)) & mask; ++ x[2] = x[2] >> 1 | (uint64_t)(1 - (c&1)) << shift; ++ x[3] = x[3] >> 1 | (uint64_t)(1 - (c>>1)) << shift; ++ } ++ if (++l >= aux->k) { ++ uint64_t y; ++ if (aux->ch->k < 32) ++ y = yak_hash64(x[0] < x[1]? x[0] : x[1], mask); ++ else ++ y = yak_hash_long(x); ++ ++n_k; ++ flag = yak_ch_get(aux->ch, y); ++ if (flag > 0) { ++ ++n_sexchr; ++ if (flag == 1) ++n_sex1; ++ if (flag == 2) ++n_sex2; ++ } ++ } ++ } else l = 0, x[0] = x[1] = x[2] = x[3] = 0; ++ } ++ printf("S\t%s\t%d\t0\t%ld\t%ld\t%ld\t%ld\n", s->name, aux->hap, n_k, n_sexchr, n_sex1, n_sex2); ++} ++ ++static void *sc_pipeline(void *shared, int step, void *_data) ++{ ++ sc_shared_t *aux = (sc_shared_t*)shared; ++ if (step == 0) { ++ sc_step_t *s; ++ s = (sc_step_t*)calloc(1, sizeof(sc_step_t)); ++ s->seq = bseq_read(aux->fp, sc_chunk_size, 0, &s->n_seq); ++ s->aux = aux; ++ if (s->n_seq) { ++ fprintf(stderr, "[M::%s] read %d sequences\n", __func__, s->n_seq); ++ return s; ++ } else free(s); ++ } else if (step == 1) { ++ int i; ++ sc_step_t *s = (sc_step_t*)_data; ++ kt_for(aux->n_threads, sc_worker, s, s->n_seq); ++ for (i = 0; i < s->n_seq; ++i) { ++ free(s->seq[i].name); free(s->seq[i].seq); free(s->seq[i].qual); free(s->seq[i].comment); ++ } ++ free(s->seq); free(s); ++ } ++ return 0; ++} ++ ++int main_sexchr(int argc, char *argv[]) ++{ ++ ketopt_t o = KETOPT_INIT; ++ int i, c; ++ yak_ch_t *ch; ++ sc_shared_t aux; ++ ++ memset(&aux, 0, sizeof(sc_shared_t)); ++ aux.n_threads = 8; ++ while ((c = ketopt(&o, argc, argv, 1, "t:K:", 0)) >= 0) { ++ if (c == 't') aux.n_threads = atoi(o.arg); ++ else if (c == 'K') sc_chunk_size = mm_parse_num(o.arg); ++ } ++ if (argc - o.ind < 5) { ++ fprintf(stderr, "Usage: yak sexchr [options] \n"); ++ fprintf(stderr, "Options:\n"); ++ fprintf(stderr, " -t INT number of threads [%d]\n", aux.n_threads); ++ fprintf(stderr, " -K NUM chunk size [1g]\n"); ++ return 1; ++ } ++ ++ ch = yak_ch_restore_core(0, argv[o.ind], YAK_LOAD_SEXCHR1); ++ ch = yak_ch_restore_core(ch, argv[o.ind + 1], YAK_LOAD_SEXCHR2); ++ ch = yak_ch_restore_core(ch, argv[o.ind + 2], YAK_LOAD_SEXCHR3); ++ ++ printf("C\tS seqName originalHap 0 #k-mer #sexchr #sex1-specifc #sex2-specific\n"); ++ printf("C\n"); ++ ++ aux.k = ch->k; ++ aux.ch = ch; ++ for (i = 1; i <= 2; ++i) { ++ aux.hap = i; ++ aux.fp = bseq_open(argv[o.ind+i+2]); ++ if (aux.fp == 0) { ++ fprintf(stderr, "ERROR: fail to open file '%s'\n", argv[o.ind+i+2]); ++ exit(1); ++ } ++ kt_pipeline(2, sc_pipeline, &aux, 2); ++ bseq_close(aux.fp); ++ } ++ yak_ch_destroy(ch); ++ return 0; ++} +diff --git a/trioeval.c b/trioeval.c +index 02c6622..dbdde34 100644 +--- a/trioeval.c ++++ b/trioeval.c +@@ -10,7 +10,7 @@ + #define kroundup32(x) (--(x), (x)|=(x)>>1, (x)|=(x)>>2, (x)|=(x)>>4, (x)|=(x)>>8, (x)|=(x)>>16, ++(x)) + #endif + +-#define CHUNK_SIZE 200000000 ++#define CHUNK_SIZE 1000000000 + + typedef struct { + int nk, c[4], d[2]; +@@ -22,11 +22,12 @@ typedef struct { + } te_buf_t; + + typedef struct { +- int k, n_threads, min_n; ++ int k, n_threads, min_n, print_err, print_frag; + bseq_file_t *fp; + const yak_ch_t *ch; + te_buf_t *buf; + int64_t n_pair, n_site, n_switch, n_err; ++ int64_t n_par[2]; + } te_shared_t; + + typedef struct { +@@ -44,6 +45,7 @@ static void te_worker(void *_data, long k, int tid) + te_buf_t *b = &aux->buf[tid]; + uint64_t x[4], mask; + int i, l, shift, last; ++ int f_st, f_en, f_type, f_cnt; + if (aux->ch->k < 32) { + mask = (1ULL<<2*aux->ch->k) - 1; + shift = 2 * (aux->ch->k - 1); +@@ -86,20 +88,32 @@ static void te_worker(void *_data, long k, int tid) + } + } else l = 0, x[0] = x[1] = x[2] = x[3] = 0; + } ++ f_type = f_st = f_en = f_cnt = 0; + for (l = 0, i = 1, last = 0; i <= s->l_seq; ++i) { +- if (i == s->l_seq || b->s[i] != b->s[l]) { ++ if (i == s->l_seq || b->s[i] != b->s[l]) { // found a streak + if (b->s[l] > 0 && i - l >= aux->min_n) { // skip singletons + int n = (i - l + aux->k - 1) / aux->k; + int c = b->s[l] - 1; + t->cnt[k].c[c << 1 | c] += n - 1; + t->cnt[k].d[c] += n; +- if (last > 0) ++ if (last > 0) { + ++t->cnt[k].c[(last - 1) << 1 | c]; ++ if (aux->print_err && last - 1 != c) ++ printf("E\t%s\t%d\t%d\t%d\n", s->name, i, last, c+1); ++ } ++ if (f_type != b->s[l]) { ++ if (f_type > 0 && aux->print_frag) ++ printf("F\t%s\t%d\t%d\t%d\t%d\n", s->name, f_type, f_st, f_en, f_cnt); ++ f_type = b->s[l], f_st = l + 1 - aux->ch->k, f_cnt = 0; ++ } ++ ++f_cnt, f_en = i + 1; + last = b->s[l]; + } + l = i; + } + } ++ if (f_type > 0 && aux->print_frag) ++ printf("F\t%s\t%d\t%d\t%d\t%d\n", s->name, f_type, f_st, f_en, f_cnt); + } + + static void *te_pipeline(void *shared, int step, void *_data) +@@ -121,13 +135,15 @@ static void *te_pipeline(void *shared, int step, void *_data) + kt_for(aux->n_threads, te_worker, s, s->n_seq); + for (i = 0; i < s->n_seq; ++i) { + int *c = s->cnt[i].c, *d = s->cnt[i].d; ++ aux->n_par[0] += d[0]; ++ aux->n_par[1] += d[1]; + if (d[0] + d[1] >= 2) { + aux->n_pair += c[0] + c[1] + c[2] + c[3]; + aux->n_switch += c[1] + c[2]; + aux->n_site += d[0] + d[1]; + aux->n_err += d[0] < d[1]? d[0] : d[1]; + } +- printf("S\t%s\t%d\t%d\t%d\t%d\t%d\t%d\n", s->seq[i].name, d[0], d[1], c[0], c[1], c[2], c[3]); ++ printf("S\t%s\t%d\t%d\t%d\t%d\t%d\t%d\t%d\n", s->seq[i].name, d[0], d[1], c[0], c[1], c[2], c[3], s->seq[i].l_seq); + free(s->seq[i].name); free(s->seq[i].seq); free(s->seq[i].qual); free(s->seq[i].comment); + } + free(s->seq); free(s->cnt); free(s); +@@ -144,12 +160,14 @@ int main_trioeval(int argc, char *argv[]) + te_shared_t aux; + + memset(&aux, 0, sizeof(te_shared_t)); +- aux.n_threads = 8, aux.min_n = 2; +- while ((c = ketopt(&o, argc, argv, 1, "c:d:t:n:", 0)) >= 0) { ++ aux.n_threads = 8, aux.min_n = 2, aux.print_frag = 1; ++ while ((c = ketopt(&o, argc, argv, 1, "c:d:t:n:eF", 0)) >= 0) { + if (c == 'c') min_cnt = atoi(o.arg); + else if (c == 'd') mid_cnt = atoi(o.arg); + else if (c == 't') aux.n_threads = atoi(o.arg); + else if (c == 'n') aux.min_n = atoi(o.arg); ++ else if (c == 'e') aux.print_err = 1; ++ else if (c == 'F') aux.print_frag = 0; + } + if (argc - o.ind < 2) { + fprintf(stderr, "Usage: yak trioeval [options] \n"); +@@ -158,6 +176,7 @@ int main_trioeval(int argc, char *argv[]) + fprintf(stderr, " -d INT mid occurrence [%d]\n", mid_cnt); + fprintf(stderr, " -n INT min streak [%d]\n", aux.min_n); + fprintf(stderr, " -t INT number of threads [%d]\n", aux.n_threads); ++ fprintf(stderr, " -e print error positions (out of order)\n"); + return 1; + } + +@@ -173,6 +192,12 @@ int main_trioeval(int argc, char *argv[]) + fprintf(stderr, "ERROR: fail to open file '%s'\n", argv[o.ind+2]); + exit(1); + } ++ printf("C\tS seqName #patKmer #matKmer #pat-pat #pat-mat #mat-pat #mat-mat seqLen\n"); ++ printf("C\tF seqName type startPos endPos count\n"); ++ printf("C\tW #switchErr denominator switchErrRate\n"); ++ printf("C\tH #hammingErr denominator hammingErrRate\n"); ++ printf("C\tN #totPatKmer #totMatKmer errRate\n"); ++ printf("C\n"); + aux.ch = ch; + aux.buf = (te_buf_t*)calloc(aux.n_threads, sizeof(te_buf_t)); + kt_pipeline(2, te_pipeline, &aux, 2); +@@ -181,6 +206,7 @@ int main_trioeval(int argc, char *argv[]) + for (i = 0; i < aux.n_threads; ++i) free(aux.buf[i].s); + printf("W\t%ld\t%ld\t%.6f\n", (long)aux.n_switch, (long)aux.n_pair, (double)aux.n_switch/aux.n_pair); + printf("H\t%ld\t%ld\t%.6f\n", (long)aux.n_err, (long)aux.n_site, (double)aux.n_err/aux.n_site); ++ printf("N\t%ld\t%ld\t%.6f\n", (long)aux.n_par[0], (long)aux.n_par[1], (double)(aux.n_par[0] < aux.n_par[1]? aux.n_par[0] : aux.n_par[1]) / (aux.n_par[0] + aux.n_par[1])); + free(aux.buf); + return 0; + } +diff --git a/yak-priv.h b/yak-priv.h +index f6a3af7..ee7569b 100644 +--- a/yak-priv.h ++++ b/yak-priv.h +@@ -1,6 +1,7 @@ + #ifndef YAK_PRIV_H + #define YAK_PRIV_H + ++#include + #include "yak.h" + + #define CALLOC(ptr, len) ((ptr) = (__typeof__(ptr))calloc((len), sizeof(*(ptr)))) +@@ -42,4 +43,15 @@ void yak_reset_realtime(void); + double yak_realtime(void); + long yak_peakrss(void); + ++static inline int64_t mm_parse_num(const char *str) ++{ ++ double x; ++ char *p; ++ x = strtod(str, &p); ++ if (*p == 'G' || *p == 'g') x *= 1e9; ++ else if (*p == 'M' || *p == 'm') x *= 1e6; ++ else if (*p == 'K' || *p == 'k') x *= 1e3; ++ return (int64_t)(x + .499); ++} ++ + #endif +diff --git a/yak.h b/yak.h +index e71dacc..ab3d8ed 100644 +--- a/yak.h ++++ b/yak.h +@@ -1,7 +1,7 @@ + #ifndef YAK_H + #define YAK_H + +-#define YAKS_VERSION "0.1-r56" ++#define YAKS_VERSION "0.1-r69-dirty" + + #include + +@@ -16,6 +16,9 @@ + #define YAK_LOAD_ALL 1 + #define YAK_LOAD_TRIOBIN1 2 + #define YAK_LOAD_TRIOBIN2 3 ++#define YAK_LOAD_SEXCHR1 4 ++#define YAK_LOAD_SEXCHR2 5 ++#define YAK_LOAD_SEXCHR3 6 + + #define YAK_MAGIC "YAK\2" + +@@ -28,7 +31,7 @@ typedef struct { + } yak_copt_t; + + typedef struct { +- int32_t print_each; ++ int32_t print_each, print_err_kmer; + int32_t min_len; + int32_t n_threads; + double min_frac; From 4b3a8972d1ddf897f97959fa5832cf57fff425c3 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 7 Aug 2024 22:04:33 -0500 Subject: [PATCH 0848/1589] Add recipe for cytotrace2-python v0.0.1 (#49888) * Add recipe for cytotrace2-python v0.0.1 * add license_file * edit license --- recipes/cytotrace2-python/meta.yaml | 55 +++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 recipes/cytotrace2-python/meta.yaml diff --git a/recipes/cytotrace2-python/meta.yaml b/recipes/cytotrace2-python/meta.yaml new file mode 100644 index 0000000000000..a0e51187a6d66 --- /dev/null +++ b/recipes/cytotrace2-python/meta.yaml @@ -0,0 +1,55 @@ +{% set name = "cytotrace2-python" %} +{% set version = "0.0.1" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/digitalcytometry/cytotrace2/archive/refs/tags/v1.0.0.tar.gz + sha256: a0e238320fc0f310f6c16b1d2ad3fd2cc556e5ee3a04d24c490c4e46c34053e1 + +build: + number: 0 + entry_points: + - cytotrace2=cytotrace2_py.cytotrace2_py:run_cytotrace2 + noarch: python + script: cd cytotrace2_python && {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + run_exports: + - {{ pin_subpackage('cytotrace2-python', max_pin="x.x") }} + +requirements: + host: + - python >=3.9 + - pip + run: + - python >=3.9 + - anndata + - numpy + - pandas + - scanpy + - scipy + - scikit-learn + - pytorch + - r-rann + - r-seurat + - r-seuratobject + - r-matrix + - r-ggplot2 + - r-data.table + - r-dplyr + - r-argparse + +test: + imports: + - cytotrace2_py + commands: + - cytotrace2 --help + +about: + license: Custom + license_file: LICENSE + summary: "CytoTRACE 2 is an interpretable AI method for predicting cellular potency and absolute developmental potential from scRNA-seq data." + home: "https://github.com/digitalcytometry/cytotrace2" + dev_url: "https://github.com/digitalcytometry/cytotrace2" + doc_url: "https://github.com/digitalcytometry/cytotrace2/blob/v{{ version }}/cytotrace2_python/README.md" From 458e89fbcc0de1fe2f6f92b47e5dc5ba2ce44446 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 02:35:45 -0400 Subject: [PATCH 0849/1589] Update fgpyo to 0.6.0 (#49892) --- recipes/fgpyo/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/fgpyo/meta.yaml b/recipes/fgpyo/meta.yaml index 63a3a10fe4ea2..31d0d8e75cebd 100644 --- a/recipes/fgpyo/meta.yaml +++ b/recipes/fgpyo/meta.yaml @@ -1,5 +1,5 @@ {% set name = "fgpyo" %} -{% set version = "0.5.0" %} +{% set version = "0.6.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/fulcrumgenomics/{{ name }}/archive/refs/tags/{{ version }}.tar.gz - sha256: 875a189a0db739bd150b677a3b1c5a48489c83bc7da2cc405aee02a137ab7a04 + sha256: d9fce324aac3c932cd9253ded6d91c95f09f68729b203cbf9c5dfc429d46cd3a build: noarch: python From 89bf55f304479893c8572bf083b7064676f1ed2e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 05:35:03 -0400 Subject: [PATCH 0850/1589] Update piranha-polio to 1.3 (#49896) --- recipes/piranha-polio/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/piranha-polio/meta.yaml b/recipes/piranha-polio/meta.yaml index 679fe76aa8c46..d86440e1fc31c 100644 --- a/recipes/piranha-polio/meta.yaml +++ b/recipes/piranha-polio/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.2.5" %} +{% set version = "1.3" %} package: name: piranha-polio @@ -6,7 +6,7 @@ package: source: url: https://github.com/polio-nanopore/piranha/archive/refs/tags/{{ version }}.tar.gz - sha256: c6b9f8fdaab085bfbe75b2839d29dceb3e40c8af100379123f40eeebeb83c8fb + sha256: 99f845059fa92a87476d1e0d661459548b69c02921e3c397d5362b469a0f58ba build: number: 0 From ec250d3a51c2682cad3f74e13c7cbfc3adb72e6e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 05:35:54 -0400 Subject: [PATCH 0851/1589] Update vembrane to 1.0.6 (#49898) --- recipes/vembrane/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/vembrane/meta.yaml b/recipes/vembrane/meta.yaml index 5b3851289ab76..5081f8ba543dd 100644 --- a/recipes/vembrane/meta.yaml +++ b/recipes/vembrane/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.0.5" %} +{% set version = "1.0.6" %} package: name: vembrane @@ -6,7 +6,7 @@ package: source: url: https://pypi.io/packages/source/v/vembrane/vembrane-{{ version }}.tar.gz - sha256: c0afc7dc69dd32ac95c45ba679b5751c2d63170e4876dbc0ce860d44f6b6c18e + sha256: 941fcb10cc61c3d3fcaa87d1ab7e230c87f1ce625975402a0139eef0acc03fc2 build: number: 0 From 5a3d6cbc3cfe6f3c430492046f9b1280edf28886 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 05:47:26 -0400 Subject: [PATCH 0852/1589] Update locityper to 0.16.9 (#49897) --- recipes/locityper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/locityper/meta.yaml b/recipes/locityper/meta.yaml index 444882115ee1a..c8646c29778e6 100644 --- a/recipes/locityper/meta.yaml +++ b/recipes/locityper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "locityper" %} -{% set version = "0.16.8" %} +{% set version = "0.16.9" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/tprodanov/locityper/archive/refs/tags/v{{ version }}.tar.gz - sha256: 45676912a3a7a8d164f0e6c0c71697d21878baa476cd45b8bf4a2c9d9e5f018f + sha256: 388ebea85f9259f284b7b9215e28786c676aa89da57c2c78b74a76ad2506a14a build: number: 0 From 77557026bf9c792b2ef53c417d943b3f41eb2f98 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 06:45:09 -0400 Subject: [PATCH 0853/1589] Update fastqc-rs to 0.3.4 (#49895) * Update fastqc-rs to 0.3.4 * fastqc-rs: Fix linting issues and add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov --- recipes/fastqc-rs/meta.yaml | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/recipes/fastqc-rs/meta.yaml b/recipes/fastqc-rs/meta.yaml index e7049ad4f89f4..3a05e9698633c 100644 --- a/recipes/fastqc-rs/meta.yaml +++ b/recipes/fastqc-rs/meta.yaml @@ -1,24 +1,26 @@ -{% set version = "0.3.2" %} +{% set version = "0.3.4" %} package: name: fastqc-rs version: {{version}} build: - number: 2 + number: 0 + run_exports: + - {{ pin_subpackage('fastqc-rs', max_pin="x.x") }} source: url: https://github.com/fastqc-rs/fastqc-rs/archive/v{{ version }}.tar.gz - sha256: f2dc917e71d3408d88aa2372dc485dc58b5fb0d0af940f9f48fbecb8a34ca78d + sha256: 02b789b7194a56aeb529413462dc693f747847c7e2481a093e2f56d1eeb7e780 requirements: build: - - rust >=1.30 - clangdev - cmake - make - {{ compiler('c') }} - {{ compiler('cxx') }} + - {{ compiler('rust') }} - pkg-config host: - clangdev @@ -36,9 +38,13 @@ test: about: home: https://fastqc-rs.github.io license: MIT - summary: | - A fast quality control tool for FASTQ files written in rust. + license_file: LICENSE + summary: A fast quality control tool for FASTQ files written in rust. + dev_url: https://github.com/fastqc-rs/fastqc-rs extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - fxwiegand From 3a2eca38b7616ec674c052b76ae33d4388450cf1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 06:45:51 -0400 Subject: [PATCH 0854/1589] Update strainr2 to 2.1.0 (#49889) * Update strainr2 to 2.1.0 * Update strainr2 (#49891) * update file paths and include zlib in dependencies * specify library path for zlib * reorder linker flags in gcc * Remove zlib as a build dependency --------- Co-authored-by: Martin Grigorov --------- Co-authored-by: Kerim Heber <122597229+kheber@users.noreply.github.com> Co-authored-by: Martin Grigorov --- recipes/strainr2/build.sh | 16 ++++++++-------- recipes/strainr2/meta.yaml | 7 ++++--- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/recipes/strainr2/build.sh b/recipes/strainr2/build.sh index 1e72ed4dfcb40..ff3d646a151fa 100644 --- a/recipes/strainr2/build.sh +++ b/recipes/strainr2/build.sh @@ -2,17 +2,17 @@ mkdir -p "${PREFIX}/bin" -${CC} ${SRC_DIR}/subcontig.c -o subcontig -${CC} ${SRC_DIR}/hashcounter.c -o hashcounter +${CC} ${SRC_DIR}/src/subcontig.c -O3 -o subcontig +${CC} ${SRC_DIR}/src/hashcounter.c -I$PREFIX/include -L$PREFIX/lib -O3 -o hashcounter -lz -chmod +x $SRC_DIR/PreProcessR +chmod +x $SRC_DIR/src/PreProcessR chmod +x $SRC_DIR/subcontig chmod +x $SRC_DIR/hashcounter -chmod +x $SRC_DIR/Plot.R -chmod +x $SRC_DIR/StrainR +chmod +x $SRC_DIR/src/Plot.R +chmod +x $SRC_DIR/src/StrainR -cp $SRC_DIR/PreProcessR ${PREFIX}/bin/ +cp $SRC_DIR/src/PreProcessR ${PREFIX}/bin/ cp $SRC_DIR/subcontig ${PREFIX}/bin/ cp $SRC_DIR/hashcounter ${PREFIX}/bin/ -cp $SRC_DIR/Plot.R ${PREFIX}/bin/ -cp $SRC_DIR/StrainR ${PREFIX}/bin/ +cp $SRC_DIR/src/Plot.R ${PREFIX}/bin/ +cp $SRC_DIR/src/StrainR ${PREFIX}/bin/ diff --git a/recipes/strainr2/meta.yaml b/recipes/strainr2/meta.yaml index d92319912b1b0..fb508093f4d78 100644 --- a/recipes/strainr2/meta.yaml +++ b/recipes/strainr2/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.0.0" %} +{% set version = "2.1.0" %} package: name: strainr2 @@ -6,10 +6,10 @@ package: source: url: https://github.com/BisanzLab/StrainR2/archive/v{{ version }}.tar.gz - sha256: 00ddd426e6d27e461c806282107503d93472a93c71c24e82069bf78be1d31a89 + sha256: 4683de73b3a6cb1c764a0e3adfd92e0eca61aa14dee09e87b9a75af5053e1eb0 build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage("strainr2", max_pin="x") }} @@ -20,6 +20,7 @@ requirements: - r-base >=4.2.0 - r-optparse - r-tidyverse + - zlib run: - bbmap - fastp From 9890c78f3efb56829cb3faacb3c73a3f6f095ed0 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 08:54:31 -0400 Subject: [PATCH 0855/1589] Update deeplc to 3.0.2 (#49900) --- recipes/deeplc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/deeplc/meta.yaml b/recipes/deeplc/meta.yaml index eab5e428730fa..48ccf93f12be5 100644 --- a/recipes/deeplc/meta.yaml +++ b/recipes/deeplc/meta.yaml @@ -1,6 +1,6 @@ {% set name = "DeepLC" %} -{% set version = "2.2.38" %} -{% set sha256 = "9c66dd629246ce422ca57a8628c122765770c8eeebdc2f6a71a8f88d9a9193a5" %} +{% set version = "3.0.2" %} +{% set sha256 = "35f8f25503896241febcdd92a3a93ddecc53ad9b8ec3992afec220586ff445f4" %} package: name: {{ name|lower }} From b6882ae238522ff3fe04e361e668c2aea45f89d3 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 09:40:35 -0400 Subject: [PATCH 0856/1589] Update monsda to 1.2.8 (#49909) --- recipes/monsda/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/monsda/meta.yaml b/recipes/monsda/meta.yaml index c6342c5d30b90..a0454d15ae606 100644 --- a/recipes/monsda/meta.yaml +++ b/recipes/monsda/meta.yaml @@ -1,6 +1,6 @@ {% set name = "MONSDA" %} -{% set version = "1.2.7" %} -{% set sha256 = "6a3b15a4c5eb3ab74d7bad0313cfbc59bb7af22b02994de38c6440a0e0071cba" %} +{% set version = "1.2.8" %} +{% set sha256 = "dcfb363649328568fef304d25bb0278155f94e954b207d8f841a452fdaf67024" %} package: name: "{{ name|lower }}" From 34ee79806678285580cbb09711e60d3972d4dd5f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 09:49:13 -0400 Subject: [PATCH 0857/1589] Update apscale to 2.0.0 (#49907) --- recipes/apscale/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/apscale/meta.yaml b/recipes/apscale/meta.yaml index 35804d0fc32bf..a4de9ccb2f8b3 100644 --- a/recipes/apscale/meta.yaml +++ b/recipes/apscale/meta.yaml @@ -1,5 +1,5 @@ {% set name = "apscale" %} -{% set version = "1.7.1" %} +{% set version = "2.0.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/apscale-{{ version }}.tar.gz - sha256: 99ea723823313e33ee69373fbb9b12d7a62765fe6d74c9f69d61a2d4dc2ea69f + sha256: b35420dcee33578d16b5762341f8cf4726bfb58eccb91b6ace17fdef11664923 build: entry_points: From 230ec088234de0221c3c0b9d0293f842e4c1a0ec Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 09:49:39 -0400 Subject: [PATCH 0858/1589] Update deeplc to 3.0.4 (#49908) --- recipes/deeplc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/deeplc/meta.yaml b/recipes/deeplc/meta.yaml index 48ccf93f12be5..919c9d54b1ae7 100644 --- a/recipes/deeplc/meta.yaml +++ b/recipes/deeplc/meta.yaml @@ -1,6 +1,6 @@ {% set name = "DeepLC" %} -{% set version = "3.0.2" %} -{% set sha256 = "35f8f25503896241febcdd92a3a93ddecc53ad9b8ec3992afec220586ff445f4" %} +{% set version = "3.0.4" %} +{% set sha256 = "8d139190c1a9fee692f595d8fdff889b52a1f61da87c7a1cfc6e8997dbd3a93c" %} package: name: {{ name|lower }} From fb6903b4246879082dbcd993ff8dc8c34e2c0fef Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 09:50:04 -0400 Subject: [PATCH 0859/1589] Update fraposa-pgsc to 1.0.1 (#49910) --- recipes/fraposa-pgsc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/fraposa-pgsc/meta.yaml b/recipes/fraposa-pgsc/meta.yaml index 5babab25225b0..5bd517ff1f269 100644 --- a/recipes/fraposa-pgsc/meta.yaml +++ b/recipes/fraposa-pgsc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "fraposa-pgsc" %} -{% set version = "1.0.0" %} +{% set version = "1.0.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/fraposa_pgsc-{{ version }}.tar.gz - sha256: a21ce6c8d90752f23d3694dbbd69060a7dabaeb6ac29d0ecc27c0435b7fce0a7 + sha256: 385508f2ebb25d1cf6a27811011c3771121863f6f90b613913e473eab5ce7383 build: entry_points: From 605a055562252bd4c4f33b6d15b390be6137e669 Mon Sep 17 00:00:00 2001 From: Peter Cock Date: Thu, 8 Aug 2024 16:01:25 +0100 Subject: [PATCH 0860/1589] Update fastani to build osx-arm64 (#49911) * Build fastani on max osx-arm64 * MacOS wasn't finding M4 --- recipes/fastani/build.sh | 2 ++ recipes/fastani/meta.yaml | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/recipes/fastani/build.sh b/recipes/fastani/build.sh index 8008be92c6a0a..a52e240621bd5 100644 --- a/recipes/fastani/build.sh +++ b/recipes/fastani/build.sh @@ -7,6 +7,8 @@ export CPP_INCLUDE_PATH=${PREFIX}/include export CPLUS_INCLUDE_PATH=${PREFIX}/include export CXX_INCLUDE_PATH=${PREFIX}/include +export M4=${BUILD_PREFIX}/bin/m4 + mkdir -p $PREFIX/bin ./bootstrap.sh diff --git a/recipes/fastani/meta.yaml b/recipes/fastani/meta.yaml index 82c05c4c98336..eb471a88b27f4 100644 --- a/recipes/fastani/meta.yaml +++ b/recipes/fastani/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version }} build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage('fastani', max_pin="x") }} @@ -49,4 +49,5 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 + - osx-arm64 From 7fed02622d074ea2b7786af12ac003b6a3f0f3fc Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 14:22:13 -0400 Subject: [PATCH 0861/1589] Update zdb to 1.3.3 (#49918) --- recipes/zdb/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/zdb/meta.yaml b/recipes/zdb/meta.yaml index 007604596b270..cdfd987fa4d37 100644 --- a/recipes/zdb/meta.yaml +++ b/recipes/zdb/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.3.2" %} +{% set version = "1.3.3" %} package: name: zdb @@ -11,8 +11,8 @@ build: - {{ pin_subpackage('zdb', max_pin="x.x") }} source: - url: https://github.com/metagenlab/zDB/archive/refs/tags/v1.3.2.tar.gz - sha256: bd2f4e132376f78e6fe0a28f9be003dd35a0b0d86d2880a39e5a25d9778e0d3e + url: https://github.com/metagenlab/zDB/archive/refs/tags/v1.3.3.tar.gz + sha256: 9f5e29d3730740c2e60fb275db709916ef54d3a2c3e4cf54ae448e9add14bb49 requirements: run: From 73380c36f35e81e348b9c210cc009381912b5cba Mon Sep 17 00:00:00 2001 From: Gavin Douglas Date: Thu, 8 Aug 2024 14:22:27 -0400 Subject: [PATCH 0862/1589] Update Picrust2 v2.5.3 (#49920) * Bump to v2.5.3 * lint error fixes --- recipes/picrust2/meta.yaml | 20 ++++++++++++-------- recipes/picrust2/post-link.sh | 8 ++++---- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/recipes/picrust2/meta.yaml b/recipes/picrust2/meta.yaml index 0a197f6654f6b..f2b495f7e56f6 100644 --- a/recipes/picrust2/meta.yaml +++ b/recipes/picrust2/meta.yaml @@ -1,15 +1,17 @@ {% set name = "picrust2" %} -{% set version = "2.5.2" %} +{% set version = "2.5.3" %} package: name: "{{ name|lower }}" version: "{{ version | replace('-', '_') }}" source: - url: https://github.com/picrust/picrust2/archive/refs/tags/v2.5.2.tar.gz - sha256: a8c3832bf759233b52b41c56a0ffef72491e431fee347a7c05695596c76a1a4c + url: https://github.com/picrust/picrust2/archive/refs/tags/v2.5.3.tar.gz + sha256: b8dfab3b961d7bafd9ceafaeb3ce95cc66c61d3c5e51325e79574d6e0c2b1e40 build: + run_exports: + - {{ pin_subpackage('picrust2', max_pin="x.x") }} number: 0 noarch: python script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed -vv " @@ -18,26 +20,28 @@ requirements: host: - cython - pip - - python >=3.5,<3.9 + - python >=3.5 run: - biom-format >=2.1.10 + - dendropy 4.5.2 - epa-ng 0.3.8 - - gappa 0.8.0 + - gappa >=0.8.0,<=0.8.5 - glpk >=4.65 - h5py >=2.10.0 - hmmer >=3.1b2,<=3.2.1 + - jinja2 >=2.11.3 - joblib >=1.0.1 - numpy >=1.19.5 - pandas >=1.1.5 - - python >=3.5,<3.9 + - python >=3.5 - pytest >=4.4.1 - pytest-cov >=2.6.1 - r-base >=3.5.1 - r-castor >=1.7.2 - scipy >=1.2.1 - - sepp 4.3.10 + - sepp 4.4.0 - wget - + test: commands: - add_descriptions.py -h > /dev/null diff --git a/recipes/picrust2/post-link.sh b/recipes/picrust2/post-link.sh index c84fa20b56125..e7ffd8b392170 100644 --- a/recipes/picrust2/post-link.sh +++ b/recipes/picrust2/post-link.sh @@ -1,9 +1,9 @@ #!/bin/bash -FN="v2.5.2.tar.gz" -TARBALL_DIR="picrust2-2.5.2" -URL="https://github.com/picrust/picrust2/archive/v2.5.2.tar.gz" -SHA256="a8c3832bf759233b52b41c56a0ffef72491e431fee347a7c05695596c76a1a4c" +FN="v2.5.3.tar.gz" +TARBALL_DIR="picrust2-2.5.3" +URL="https://github.com/picrust/picrust2/archive/v2.5.3.tar.gz" +SHA256="b8dfab3b961d7bafd9ceafaeb3ce95cc66c61d3c5e51325e79574d6e0c2b1e40" # Create staging area. STAGING=$PREFIX/staging From 19fffe6d75e633ec0cc48b5f09ca95fef58e9c78 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 8 Aug 2024 21:30:41 +0300 Subject: [PATCH 0863/1589] fastme: add aarch64/arm64 builds (#49905) * fastme: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * Reset the build number * Export M4 for osx-arm64 --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/fastme/build.sh | 5 ++++- recipes/fastme/meta.yaml | 21 ++++++++++++++------- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/recipes/fastme/build.sh b/recipes/fastme/build.sh index 2817a50021413..43ffe694346e6 100644 --- a/recipes/fastme/build.sh +++ b/recipes/fastme/build.sh @@ -1,6 +1,9 @@ #!/bin/bash +set -xe + +export M4=${BUILD_PREFIX}/bin/m4 autoreconf -ifv ./configure --prefix=${PREFIX} -make -j4 +make -j ${CPU_COUNT} make install diff --git a/recipes/fastme/meta.yaml b/recipes/fastme/meta.yaml index 04aa30baef6a7..fa70f80f4d49e 100644 --- a/recipes/fastme/meta.yaml +++ b/recipes/fastme/meta.yaml @@ -1,16 +1,18 @@ {% set name = "fastme" %} -{% set version = "2.1.6.1" %} -{% set sha256 = "fae0609576873cb137ad4f63529b3ccba8f747b857c23c7870236aba440076ca" %} +{% set version = "2.1.6.3" %} +{% set sha256 = "d49ff78cca7b76eadf8443efb33f071a7e8a152618ffa3d8e790f167d0a0b176" %} package: name: {{ name|lower }} version: {{ version }} build: - number: 3 + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} source: - url: https://gite.lirmm.fr/atgc/FastME/-/archive/v2.1.6.1/FastME-v2.1.6.1.tar.gz + url: https://gite.lirmm.fr/atgc/FastME/-/archive/v{{ version }}/FastME-v{{ version }}.tar.gz sha256: {{ sha256 }} requirements: @@ -28,11 +30,16 @@ test: about: home: http://www.atgc-montpellier.fr/fastme/binaries.php summary: a comprehensive, accurate and fast distance-based phylogeny inference program. - license: GPLv3 - license_family: GPL - license_file: '{{ environ["RECIPE_DIR"] }}/LICENSE' + license: GPL-3.0-only + license_family: GPL3 + license_file: LICENSE + dev_url: https://gite.lirmm.fr/atgc/FastME/ + doc_url: http://www.atgc-montpellier.fr/fastme/usersguide.php extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 identifiers: - biotools:fastme - doi:10.1093/molbev/msv150 From aa036951193d3049907ce772ffb02fd3579d1438 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 15:24:29 -0400 Subject: [PATCH 0864/1589] Update quantms-utils to 0.0.4 (#49922) --- recipes/quantms-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/quantms-utils/meta.yaml b/recipes/quantms-utils/meta.yaml index 9cfcdd6318d2a..e327ae907a0f9 100644 --- a/recipes/quantms-utils/meta.yaml +++ b/recipes/quantms-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "quantms-utils" %} -{% set version = "0.0.3" %} +{% set version = "0.0.4" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/quantms_utils-{{ version }}.tar.gz - sha256: d7b0ed0ea1ed83bc0095c59090368e3146561d14efcc3f9c61288741c9f46b78 + sha256: 627a5eac7b32f6fc2fcdbaf64459eec2d55ddff5bbe573a0f86e44c7f986ba35 build: entry_points: From 823032a14a61a65ad94d48fc1a73bc4d80dacb1a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 16:10:51 -0400 Subject: [PATCH 0865/1589] Update deeplc to 3.0.6 (#49913) --- recipes/deeplc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/deeplc/meta.yaml b/recipes/deeplc/meta.yaml index 919c9d54b1ae7..149359954cb97 100644 --- a/recipes/deeplc/meta.yaml +++ b/recipes/deeplc/meta.yaml @@ -1,6 +1,6 @@ {% set name = "DeepLC" %} -{% set version = "3.0.4" %} -{% set sha256 = "8d139190c1a9fee692f595d8fdff889b52a1f61da87c7a1cfc6e8997dbd3a93c" %} +{% set version = "3.0.6" %} +{% set sha256 = "54ae9ec71cdddb6793c00b18ea72552e5cf5066c1759cd969b73a54f6b910bfa" %} package: name: {{ name|lower }} From 68058b36998ab1648841c939c4c5df7fe0f16b36 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 16:11:17 -0400 Subject: [PATCH 0866/1589] Update apscale to 2.0.2 (#49914) --- recipes/apscale/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/apscale/meta.yaml b/recipes/apscale/meta.yaml index a4de9ccb2f8b3..d94036e9d34ce 100644 --- a/recipes/apscale/meta.yaml +++ b/recipes/apscale/meta.yaml @@ -1,5 +1,5 @@ {% set name = "apscale" %} -{% set version = "2.0.0" %} +{% set version = "2.0.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/apscale-{{ version }}.tar.gz - sha256: b35420dcee33578d16b5762341f8cf4726bfb58eccb91b6ace17fdef11664923 + sha256: 13d32ad87c1cf2d161bd577421e848006de8bcbb831aab15e5ecd3a5b6fc4563 build: entry_points: From f17453a6e1a2ed34fc0278ff1199ac8f78b36f13 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 16:12:10 -0400 Subject: [PATCH 0867/1589] Update im2deep to 0.1.9 (#49915) --- recipes/im2deep/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/im2deep/meta.yaml b/recipes/im2deep/meta.yaml index 80ba742c8e0f8..f06f10a404b31 100644 --- a/recipes/im2deep/meta.yaml +++ b/recipes/im2deep/meta.yaml @@ -1,6 +1,6 @@ {% set name = "im2deep" %} -{% set version = "0.1.8" %} -{% set sha256 = "cd671e843c850f8deb8682872890f0555e9d250ef5351239e4f29f2b49d519ee" %} +{% set version = "0.1.9" %} +{% set sha256 = "713d6ef509f91367607f64e8cba95987062730101a314932a2f01a632e1d35aa" %} package: name: {{ name|lower }} From 251a3c4648a44c2905c7d98e657a56c1cecf2a27 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 16:12:35 -0400 Subject: [PATCH 0868/1589] Update fraposa-pgsc to 1.0.2 (#49916) --- recipes/fraposa-pgsc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/fraposa-pgsc/meta.yaml b/recipes/fraposa-pgsc/meta.yaml index 5bd517ff1f269..111722c775d10 100644 --- a/recipes/fraposa-pgsc/meta.yaml +++ b/recipes/fraposa-pgsc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "fraposa-pgsc" %} -{% set version = "1.0.1" %} +{% set version = "1.0.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/fraposa_pgsc-{{ version }}.tar.gz - sha256: 385508f2ebb25d1cf6a27811011c3771121863f6f90b613913e473eab5ce7383 + sha256: 227fd14a7b82859597dd484828de74c7ab8f22d08ea51a7dc7cf6ca1a4827033 build: entry_points: From 3b195e6f0051ad87f7afe50e767af25e0c4c579f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 16:13:05 -0400 Subject: [PATCH 0869/1589] Update cgpbigwig to 1.7.0 (#49917) --- recipes/cgpbigwig/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/cgpbigwig/meta.yaml b/recipes/cgpbigwig/meta.yaml index d2bfb03682261..6b1022168b253 100644 --- a/recipes/cgpbigwig/meta.yaml +++ b/recipes/cgpbigwig/meta.yaml @@ -1,18 +1,18 @@ -{% set version = "1.6.0" %} +{% set version = "1.7.0" %} package: name: cgpbigwig version: {{ version }} build: - number: 9 + number: 0 skip: True # [osx] run_exports: - {{ pin_subpackage('cgpbigwig', max_pin="x") }} source: url: https://github.com/cancerit/cgpBigWig/archive/{{ version }}.tar.gz - sha256: d92a27f34a7a58cc16adc7244a97d53d98e0efd5fac1f676ef18181e47fc7b0d + sha256: d1dff8cdf35b8ffa231b999e79c44f8a4897e469224652da50d2a116c45b2b8b requirements: build: @@ -44,4 +44,4 @@ test: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 From 6cf9a85cde282d2f3867941660450b9fae5713c7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 16:18:00 -0400 Subject: [PATCH 0870/1589] Update hiphase to 1.4.3 (#49925) --- recipes/hiphase/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/hiphase/meta.yaml b/recipes/hiphase/meta.yaml index 20a752dc5fa27..e87bc330fe6a5 100644 --- a/recipes/hiphase/meta.yaml +++ b/recipes/hiphase/meta.yaml @@ -1,6 +1,6 @@ {% set name = "hiphase" %} -{% set version = "1.4.2" %} -{% set hiphase_sha256 = "8e57dda28458286a8991be1e9466371c37d28557985fb3af160e3dd16388e925" %} +{% set version = "1.4.3" %} +{% set hiphase_sha256 = "e573cae2d0f90cbbf99171b1a9aa9e8e06104f54ccc93e40898354257b7f16c5" %} package: name: {{ name }} From 2a8f35af67f2f01f50fa2892ae6b2d004ce391bb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 20:24:54 -0400 Subject: [PATCH 0871/1589] Update mycotools to 0.31.46 (#49931) --- recipes/mycotools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mycotools/meta.yaml b/recipes/mycotools/meta.yaml index 13bac43437c45..300daef358a6b 100644 --- a/recipes/mycotools/meta.yaml +++ b/recipes/mycotools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mycotools" %} -{% set version = "0.31.45" %} +{% set version = "0.31.46" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mycotools-{{ version }}.tar.gz - sha256: 6754e065060db21fb68296bbe3ab008010eaf3b5c464664db737dd37e3fc02c5 + sha256: 54aa3ee22d7ee95fbc3826681f54a18f33bab7d1e1fd34471085dcff39804991 build: entry_points: From dba7ee1bcccca2b32adaf3b3cd6b21e84c1de75e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 20:25:03 -0400 Subject: [PATCH 0872/1589] Update segul to 0.22.1 (#49927) --- recipes/segul/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/segul/meta.yaml b/recipes/segul/meta.yaml index a64eb2fd5a37c..98e5f7721f857 100644 --- a/recipes/segul/meta.yaml +++ b/recipes/segul/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.22.0" %} +{% set version = "0.22.1" %} package: name: segul @@ -6,7 +6,7 @@ package: source: url: https://github.com/hhandika/segul/archive/refs/tags/v{{ version }}.tar.gz - sha256: aa50dcfda557262f0a29a8e6be915c327392a10944492b21b42467306d53ed24 + sha256: 5d33058149e00551f219e6d92a9156d89643551c47fac18ed688aec022b8afdd build: number: 0 From 31868c5ed47134f4d1fd00b98537236bf2368258 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 20:26:58 -0400 Subject: [PATCH 0873/1589] Update deeplcretrainer to 1.0.0 (#49901) --- recipes/deeplcretrainer/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/deeplcretrainer/meta.yaml b/recipes/deeplcretrainer/meta.yaml index 635792b35745b..27dd7f6bf8b00 100644 --- a/recipes/deeplcretrainer/meta.yaml +++ b/recipes/deeplcretrainer/meta.yaml @@ -1,6 +1,6 @@ {% set name = "DeepLCRetrainer" %} -{% set version = "0.2.12" %} -{% set sha256 = "bd31124518f6b5d1f1ec2f0983c0885b44e235b93134cc61c5eab52e2519bdff" %} +{% set version = "1.0.0" %} +{% set sha256 = "a12d46baec788b46437692f941260ec8956aaa55618030c26ebf2d1681f69954" %} package: name: {{ name|lower }} From 88af89d32daf83e5ad8d1c5ffa93cdb6bdede508 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 9 Aug 2024 03:27:39 +0300 Subject: [PATCH 0874/1589] nextpolish2: add aarch64/arm64 builds (#49893) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/nextpolish2/build.sh | 2 +- recipes/nextpolish2/meta.yaml | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/recipes/nextpolish2/build.sh b/recipes/nextpolish2/build.sh index 5e20a67b60e44..4c85d7f615175 100644 --- a/recipes/nextpolish2/build.sh +++ b/recipes/nextpolish2/build.sh @@ -1,4 +1,4 @@ -#!/bin/bash -euo +#!/bin/bash -exuo # build statically linked binary with Rust RUST_BACKTRACE=1 cargo install --verbose --path . --root "${PREFIX}" diff --git a/recipes/nextpolish2/meta.yaml b/recipes/nextpolish2/meta.yaml index c90c5f20d41d2..714e5aab5d652 100644 --- a/recipes/nextpolish2/meta.yaml +++ b/recipes/nextpolish2/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 5f94cfabae5d38397a33c118f572246070707aa23f7b2ab831fd255710f50280 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('nextpolish2', max_pin="x.x") }} @@ -40,6 +40,9 @@ about: doc_url: "https://github.com/Nextomics/NextPolish2/blob/{{ version }}/README.md" extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - moold identifiers: From 799d6dba8f4753c8097ac2f544076ca85a90e944 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 9 Aug 2024 03:27:49 +0300 Subject: [PATCH 0875/1589] rust-ncbitaxonomy: add aarch64/arm64 builds (#49902) * rust-ncbitaxonomy: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * Update recipes/rust-ncbitaxonomy/meta.yaml --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/rust-ncbitaxonomy/build.sh | 4 +++- recipes/rust-ncbitaxonomy/meta.yaml | 12 ++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/recipes/rust-ncbitaxonomy/build.sh b/recipes/rust-ncbitaxonomy/build.sh index bfdd53f18dd16..07f397dca273a 100755 --- a/recipes/rust-ncbitaxonomy/build.sh +++ b/recipes/rust-ncbitaxonomy/build.sh @@ -1,4 +1,6 @@ -#!/bin/bash -euo +#!/bin/bash + +set -xeuo if [ "$(uname)" == "Darwin" ]; then # Apparently the Home variable isn't set correctly diff --git a/recipes/rust-ncbitaxonomy/meta.yaml b/recipes/rust-ncbitaxonomy/meta.yaml index 7d66502eb9824..103f0d6352d75 100644 --- a/recipes/rust-ncbitaxonomy/meta.yaml +++ b/recipes/rust-ncbitaxonomy/meta.yaml @@ -7,7 +7,9 @@ package: version: "{{ version }}" build: - number: 4 + number: 5 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} source: url: "https://github.com/pvanheus/ncbitaxonomy/archive/{{ version }}.tar.gz" @@ -16,7 +18,7 @@ source: requirements: build: - {{ compiler('c') }} - - rust >=1.43 + - {{ compiler('rust') }} host: - sqlite run: @@ -32,5 +34,11 @@ about: home: https://github.com/pvanheus/ncbitaxonomy doc_url: "https://docs.rs/crate/ncbitaxonomy/{{ version }}" license: MIT + license_file: LICENSE summary: | A Rust crate for working with a local copy of the NCBI Taxonomy database, which provides utilities for taxonomic filtering. + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 \ No newline at end of file From d48ac3abb557f1580854d279128810b0c864efdb Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 9 Aug 2024 03:28:18 +0300 Subject: [PATCH 0876/1589] parafly: add linux-aarch64 build (#49851) * parafly: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * parafly: The recipe needs CXX, not CC Signed-off-by: Martin Tzvetanov Grigorov * parafly: remove `-m64` for aarch64/arm64 Signed-off-by: Martin Tzvetanov Grigorov * parafly: Add -fopenmp to CXXFLAGS Signed-off-by: Martin Tzvetanov Grigorov * Add llvm-openmp for osx and libgomp for linux Signed-off-by: Martin Tzvetanov Grigorov * Use libcxx 16.* for OSX builds Signed-off-by: Martin Tzvetanov Grigorov * parafly: Do not build osx-arm64. It still breaks Signed-off-by: Martin Tzvetanov Grigorov * Skip OSX altogether It does not build Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/parafly/build.sh | 5 ++++- recipes/parafly/meta.yaml | 15 +++++++++++++-- recipes/parafly/parafly-aarch64.patch | 11 +++++++++++ 4 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 recipes/parafly/parafly-aarch64.patch diff --git a/build-fail-blacklist b/build-fail-blacklist index f9e833ba2f1ce..b5321fddab0a4 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -359,7 +359,6 @@ recipes/megagta # Unknown issues recipes/cmv recipes/fwdpp -recipes/parafly recipes/smashbenchmarking recipes/saffrontree diff --git a/recipes/parafly/build.sh b/recipes/parafly/build.sh index 14413e4aa02ca..11933133c32cf 100644 --- a/recipes/parafly/build.sh +++ b/recipes/parafly/build.sh @@ -1,4 +1,7 @@ #!/bin/bash + +set -xe + ./configure --prefix=$PREFIX -make install +make -j ${CPU_COUNT} CXX="${CXX}" CXXFLAGS="${CXXFLAGS} -pedantic -fopenmp -Wall -Wextra -Wno-long-long -Wno-deprecated" install cp $PREFIX/bin/ParaFly $PREFIX diff --git a/recipes/parafly/meta.yaml b/recipes/parafly/meta.yaml index 8ed8685215b79..bb7fa4c6d6d1b 100644 --- a/recipes/parafly/meta.yaml +++ b/recipes/parafly/meta.yaml @@ -5,15 +5,22 @@ package: source: url: http://downloads.sourceforge.net/project/parafly/parafly-r2013-01-21.tgz sha256: 64cf7ac2d4af0801b78d58f4057a1489d76b2b8ae59c78997f434d1239fa4abe + patches: + - parafly-aarch64.patch # [aarch64 or arm64] build: - number: 2 + skip: True # [osx] + number: 3 + run_exports: + - {{ pin_subpackage("parafly", max_pin=None) }} requirements: build: - make - - {{ compiler('c') }} + - {{ compiler('cxx') }} host: + - llvm-openmp # [osx] + - libgomp # [linux] - zlib run: - zlib @@ -26,3 +33,7 @@ about: home: http://parafly.sourceforge.net/ license: The Broad Institute (own license thingy) summary: Given a file containing a list of unix commands, multithreading is used to process the commands in parallel on a single server. Success/failure is captured, and failed commands are retained and reported. + +extra: + additional-platforms: + - linux-aarch64 diff --git a/recipes/parafly/parafly-aarch64.patch b/recipes/parafly/parafly-aarch64.patch new file mode 100644 index 0000000000000..d6336c05dcde2 --- /dev/null +++ b/recipes/parafly/parafly-aarch64.patch @@ -0,0 +1,11 @@ +--- a/configure 2024-08-06 18:16:49.448814938 +0300 ++++ b/configure 2024-08-06 18:17:03.665713668 +0300 +@@ -3016,7 +3016,7 @@ + + + #AC_OPENMP # requires autoconf >= 2.62 +-AM_CXXFLAGS=-m64 ++AM_CXXFLAGS= + + case $CXX in + g++*) AM_CXXFLAGS="-pedantic -fopenmp -Wall -Wextra -Wno-long-long -Wno-deprecated $AM_CXXFLAGS" From ed89debf0750b66eb86f455084f96e719749f916 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 21:10:13 -0400 Subject: [PATCH 0877/1589] Update pyani to 0.2.13 (#49924) * Update pyani to 0.2.13 * add run_exports --------- Co-authored-by: mencian --- recipes/pyani/meta.yaml | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/recipes/pyani/meta.yaml b/recipes/pyani/meta.yaml index b615cc7c9b19b..f1f82a9ce5b49 100644 --- a/recipes/pyani/meta.yaml +++ b/recipes/pyani/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pyani" %} -{% set version = "0.2.12" %} +{% set version = "0.2.13" %} package: name: {{ name|lower }} @@ -7,24 +7,25 @@ package: source: url: https://github.com/widdowquinn/{{ name|lower }}/archive/v{{ version }}.tar.gz - sha256: 31bac50843d3af54cf273a4388f4f87bffb0688082e4e3179ea1640aa208626d + sha256: e8dc2f7ece2e0788c7a61e9d5814d137849d722ee25dfa556d25f35d7bdd8b76 build: number: 0 noarch: python - script: "{{ PYTHON }} -m pip install . --no-deps -vv" + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" + run_exports: + - {{ pin_subpackage('pyani', max_pin="x.x") }} requirements: host: - - python >3 - - setuptools - + - python >=3.7 + - pip run: - - python >3 + - python >=3.7 - biopython - matplotlib-base - pandas - - seaborn + - seaborn-base - scipy - numpy - mummer @@ -39,8 +40,15 @@ test: - genbank_get_genomes_by_taxon.py -h about: - home: http://widdowquinn.github.io/pyani/ + home: "https://github.com/widdowquinn/pyani" license: MIT license_file: LICENSE summary: 'pyani provides a package and script for calculation of genome-scale average nucleotide identity.' license_family: MIT + dev_url: "https://github.com/widdowquinn/pyani" + doc_url: "https://widdowquinn.github.io/pyani" + +extra: + identifiers: + - doi:10.1039/C5AY02550H + - biotools:pyani From 1cf54da0298a866dbd28ef1c040d325dab288389 Mon Sep 17 00:00:00 2001 From: Arjun Prasad Date: Thu, 8 Aug 2024 21:11:16 -0400 Subject: [PATCH 0878/1589] Add NCBI StxTyper (#49883) * bug fix release * Updated to fix database issues * Update ncbi-amrfinderplus to 3.6.4 * Fix for missing python3.7 issue Fix for issue https://github.com/bioconda/bioconda-utils/issues/642 Suggested by @thermokarst https://github.com/bioconda/bioconda-utils/issues/642#issuecomment-600884997 * Initial commit for ncbi-stxtyper * Update sha256sum * Fix run_exports versioning * pin_compatible -> pin_subpackage * Update sha256sum * Handle that test_stxtyper.sh was not u+x * Attempt to fix / debug tests * Another attempt to fix tests by directory change * Add some debugging code * Gave up trying to get a realistic test to run Couldn't figure out where the distribution was to run tests included with the distribution --------- Co-authored-by: BiocondaBot <47040946+BiocondaBot@users.noreply.github.com> --- recipes/ncbi-stxtyper/build.sh | 23 +++++++++++++++++ recipes/ncbi-stxtyper/meta.yaml | 44 +++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100755 recipes/ncbi-stxtyper/build.sh create mode 100644 recipes/ncbi-stxtyper/meta.yaml diff --git a/recipes/ncbi-stxtyper/build.sh b/recipes/ncbi-stxtyper/build.sh new file mode 100755 index 0000000000000..34aa84ada3b2d --- /dev/null +++ b/recipes/ncbi-stxtyper/build.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +# fix error because of gnu++17 features. Suggested by https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk +# CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY" + +echo +echo "Starting build.sh" +echo +echo "SRC_DIR=$SRC_DIR" +echo "pwd -P" +pwd -P +echo "ls -l" +ls -l + +# note that for version 3.7 the make command should be: +make CXX="$CXX $LDFLAGS" CPPFLAGS="$CXXFLAGS" PREFIX="$PREFIX" + +#echo "make CXX=\"$CXX $LDFLAGS\" CPPFLAGS=\"$CXXFLAGS\" PREFIX=\"$PREFIX\" DEFAULT_DB_DIR=\"$PREFIX/share/amrfinderplus/data\"" + +#make CXX="$CXX $LDFLAGS" CPPFLAGS="$CXXFLAGS" PREFIX=$PREFIX DEFAULT_DB_DIR="$PREFIX/share/amrfinderplus/data" +make install bindir=$PREFIX/bin + +echo "build.sh done" diff --git a/recipes/ncbi-stxtyper/meta.yaml b/recipes/ncbi-stxtyper/meta.yaml new file mode 100644 index 0000000000000..22955929e7a18 --- /dev/null +++ b/recipes/ncbi-stxtyper/meta.yaml @@ -0,0 +1,44 @@ +{% set version = "1.0.24" %} +{% set sha256 = "54ddeb7ec1a052c141c32eea402c816f0515f47b7f0a5afeb054e410f9a4576f" %} + +package: + name: ncbi-stxtyper + version: {{ version }} + +source: + url: https://github.com/ncbi/stxtyper/archive/v{{ version }}.tar.gz + sha256: {{ sha256 }} + +build: + number: 0 + run_exports: + - {{ pin_compatible('ncbi-amrfinderplus', max_pin="x.x") }} + +requirements: + build: + - make + - {{ compiler('cxx') }} + host: + - coreutils + run: + - blast >=2.9 + +test: + commands: + - echo "PREFIX=$PREFIX CONDA_PREFIX=$CONDA_PREFIX SRC_DIR=$SRC_DIR" # for debugging + - stxtyper --help + - fasta_check -help + - fasta_extract -help + +about: + home: https://github.com/ncbi/stxtyper + license: Public Domain + license_file: LICENSE + summary: StxTyper identifies and types Stx operons from assembled genomic sequence. + description: | + This software and the included database use a standardized algorithm to accurately type both known and unknown Shiga toxin operons from assembled genomic sequence + doc_url: https://github.com/ncbi/stxtyper + +extra: + recipe-maintainers: + - evolarjun From 3a0d41dc32684a1c027cbd98138505ea149f8f5a Mon Sep 17 00:00:00 2001 From: Cameron Roots <38054423+croots@users.noreply.github.com> Date: Thu, 8 Aug 2024 20:40:17 -0500 Subject: [PATCH 0879/1589] Add Promoter-Calculator (#49929) * Add recipe (grayskull + pinning) * Fix pin naming * Fix summary and license * clean up recipe --------- Co-authored-by: mencian --- recipes/promotercalculator/meta.yaml | 48 ++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 recipes/promotercalculator/meta.yaml diff --git a/recipes/promotercalculator/meta.yaml b/recipes/promotercalculator/meta.yaml new file mode 100644 index 0000000000000..ef929a32415d8 --- /dev/null +++ b/recipes/promotercalculator/meta.yaml @@ -0,0 +1,48 @@ +{% set name = "promotercalculator" %} +{% set version = "1.2.4" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/promotercalculator-{{ version }}.tar.gz + sha256: 8ab36fa50266b5e1fa958a7e331e6c352a68d09d255931dfa9c319fc3e856b49 + +build: + entry_points: + - promoter-calculator = promoter_calculator.cli:main + noarch: python + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + number: 0 + run_exports: + - {{ pin_subpackage("promotercalculator", max_pin="x") }} + +requirements: + host: + - python + - pip + run: + - python + - biopython + - numpy + - scikit-learn + - scipy + +test: + imports: + - promoter_calculator + commands: + - promoter-calculator --help + +about: + home: https://github.com/barricklab/promoter-calculator + summary: "Promoter-Calculator (Barrick Lab Fork)" + license: GPL-3.0-or-later + license_family: GPL3 + license_file: LICENSE + dev_url: https://github.com/barricklab/promoter-calculator + +extra: + recipe-maintainers: + - croots From dd9fb4523c81483b5963ba98d2e4c143706b4144 Mon Sep 17 00:00:00 2001 From: Cameron Roots <38054423+croots@users.noreply.github.com> Date: Thu, 8 Aug 2024 20:40:25 -0500 Subject: [PATCH 0880/1589] Add RhoTermPredict (#49926) * Add RhoTermPredict (Grayskull generated) * Run-exports semantic versioning * Fix duplicate key * clean up recipe --------- Co-authored-by: mencian --- recipes/rhotermpredict/meta.yaml | 46 ++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 recipes/rhotermpredict/meta.yaml diff --git a/recipes/rhotermpredict/meta.yaml b/recipes/rhotermpredict/meta.yaml new file mode 100644 index 0000000000000..3a12f2a870cd3 --- /dev/null +++ b/recipes/rhotermpredict/meta.yaml @@ -0,0 +1,46 @@ +{% set name = "rhotermpredict" %} +{% set version = "3.4" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/rhotermpredict-{{ version }}.tar.gz + sha256: 15a45581595e647e0f9dca31df45a5820144d2d5a5097bb61102bc57134acc36 + +build: + entry_points: + - rhotermpredict = rhotermpredict.algorithm:main + noarch: python + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + number: 0 + run_exports: + - {{ pin_subpackage("rhotermpredict", max_pin="x") }} + +requirements: + host: + - python + - pip + run: + - python + - numpy >=1.15.4 + - biopython >=0.1.0 + +test: + imports: + - rhotermpredict + commands: + - rhotermpredict --help + +about: + home: https://github.com/barricklab/RhoTermPredict + summary: "RhoTermPredict (Barrick Lab Fork)" + license: AGPL-3.0-or-later + license_family: AGPL + license_file: LICENSE + dev_url: https://github.com/barricklab/RhoTermPredict + +extra: + recipe-maintainers: + - croots From d4c829c3280b2a02b9697b3849393a562a2512d8 Mon Sep 17 00:00:00 2001 From: Michael Michael Date: Fri, 9 Aug 2024 13:40:41 +1200 Subject: [PATCH 0881/1589] Add build recipe for commec (#49890) * Added build recipe for commec * remove unecessary build section --------- Co-authored-by: mencian --- recipes/commec/meta.yaml | 55 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 recipes/commec/meta.yaml diff --git a/recipes/commec/meta.yaml b/recipes/commec/meta.yaml new file mode 100644 index 0000000000000..676f15e6479c5 --- /dev/null +++ b/recipes/commec/meta.yaml @@ -0,0 +1,55 @@ +{% set name = "commec" %} +{% set version = "0.1.2" %} +{% set sha256 = "33e99060dca151cb9d5481f47e02f1b5276b2cdf61804e7093f0cfc32bef1188" %} + +package: + name: "{{ name }}" + version: "{{ version }}" + +source: + url: https://github.com/ibbis-screening/common-mechanism/archive/refs/tags/v{{version}}.tar.gz + sha256: {{ sha256 }} + +build: + number: 0 + noarch: python + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" + run_exports: + # consider using "x.x.x" rather than "x.x", or "x" considering alpha software and liklihood of change. + - {{ pin_subpackage('commec', max_pin="x.x") }} + +requirements: + host: + - python >=3.1 + - pip >=24 + run: + - python >=3.1 + # Runtime Python dependencies + - biopython >=1.8 + - numpy >=2.0.0 + - pandas >=2.2 + - pytaxonkit >=0.8 + # Runtime non-Python dependencies + - bedtools >=2.31 + - blast >=2.16 + - emboss >=6.6 + - diamond >=0.9 + - hmmer >=3.4 + - infernal >=1.1 + - parallel >=20240722 + - perl-list-moreutils >=0.430 + - taxonkit >=0.17 + +test: + commands: + - commec screen --help + - commec flag --help + - commec split --help + +about: + home: https://github.com/ibbis-screening/common-mechanism + license: MIT + license_family: MIT + doc_url: https://github.com/ibbis-screening/common-mechanism/wiki + summary: "commec: a free, open-source, globally available tool for DNA sequence screening" + dev_url: https://github.com/ibbis-screening/common-mechanism From 5523fb992e217dd0ec324594dd5574a70721ee58 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 21:57:31 -0400 Subject: [PATCH 0882/1589] Update resfinder to 4.6.0 (#49903) * Update resfinder to 4.6.0 * add pdm-backend * clean up recipe * clean up recipe --------- Co-authored-by: mencian --- recipes/resfinder/build.sh | 13 +++++++++---- recipes/resfinder/meta.yaml | 17 +++++++++-------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/recipes/resfinder/build.sh b/recipes/resfinder/build.sh index 3c65803ffd5ac..db6efb53eddcb 100644 --- a/recipes/resfinder/build.sh +++ b/recipes/resfinder/build.sh @@ -1,6 +1,8 @@ -#!/bin/bash +#!/bin/bash -ex -${PYTHON} -m pip install . -vvv --no-deps --no-build-isolation +mkdir -p ${PREFIX}/bin + +${PYTHON} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir # create folder for database download target=${PREFIX}/share/${PKG_NAME}-${PKG_VERSION} @@ -8,8 +10,8 @@ mkdir -p ${target}/db/ touch ${target}/db/.empty # copy script to download database -cp ${RECIPE_DIR}/download-db.sh ${PREFIX}/bin -chmod +x ${PREFIX}/bin/download-db.sh +cp -rf ${RECIPE_DIR}/download-db.sh ${PREFIX}/bin +chmod 0755 ${PREFIX}/bin/download-db.sh # set RESFINDER_DB variable on env activation mkdir -p ${PREFIX}/etc/conda/activate.d ${PREFIX}/etc/conda/deactivate.d @@ -20,3 +22,6 @@ EOF cat <> ${PREFIX}/etc/conda/deactivate.d/resfinder.sh unset RESFINDER_DB EOF + +chmod 0755 ${SP_DIR}/resfinder/run_resfinder.py +cp -rf ${SP_DIR}/resfinder/run_resfinder.py ${PREFIX}/bin/ diff --git a/recipes/resfinder/meta.yaml b/recipes/resfinder/meta.yaml index 6614f72cec293..b05f847f72c98 100644 --- a/recipes/resfinder/meta.yaml +++ b/recipes/resfinder/meta.yaml @@ -1,5 +1,5 @@ {% set name = "resfinder" %} -{% set version = "4.5.0" %} +{% set version = "4.6.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/resfinder-{{ version }}.tar.gz - sha256: 7c2ad096c2f5f746607c4433d327f890776aba996f86112dc4527fc3c2bc0ec4 + sha256: ca682ad8760c9cfbb1163235ce5bdb7c018d5b910937ac8f747d605309ce3c40 patches: - python_path.patch @@ -19,12 +19,11 @@ build: requirements: host: - - python >=3.8 + - python >=3.9 - pip - - pdm-pep517 >=0.12.0 + - pdm-backend run: - - python >=3.8 - # Needs cgelib in conda-forge/bioconda + - python >=3.9 - cgelib >=0.7.3 - cgecore ==1.5.6 - tabulate >=0.8.9 @@ -39,14 +38,16 @@ test: imports: - resfinder commands: - - python -m resfinder --help + - "run_resfinder.py --help" about: - home: https://bitbucket.org/genomicepidemiology/resfinder + home: "https://bitbucket.org/genomicepidemiology/resfinder" summary: "ResFinder identifies acquired antimicrobial resistance genes in total or partial sequenced isolates of bacteria." license: Apache-2.0 license_family: APACHE license_file: LICENSE + dev_url: "https://bitbucket.org/genomicepidemiology/resfinder" + doc_url: "https://bitbucket.org/genomicepidemiology/resfinder/src/master/README.md" extra: notes: "ResFinder requires databases that can be downloaded with download-db.sh." From e446597817d8985784f2759bf413606cf50c6949 Mon Sep 17 00:00:00 2001 From: Daniel Anderson <43540934+Danderson123@users.noreply.github.com> Date: Fri, 9 Aug 2024 04:12:58 +0200 Subject: [PATCH 0883/1589] Recipe for dingII (#49923) * ding recipe * Create recipe for dingII * Delete recipes/ding directory * Rename dingII to ding * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Rename meta.yaml to meta.yaml * Update meta.yaml * Update meta.yaml * Rename meta.yaml to meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * clean up recipe --------- Co-authored-by: mencian --- recipes/dingii/meta.yaml | 49 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 recipes/dingii/meta.yaml diff --git a/recipes/dingii/meta.yaml b/recipes/dingii/meta.yaml new file mode 100644 index 0000000000000..bc78c1938465d --- /dev/null +++ b/recipes/dingii/meta.yaml @@ -0,0 +1,49 @@ +{% set version = "0.0.1" %} +{% set name = "dingII" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/Danderson123/{{ name|lower }}/archive/v{{ version }}.tar.gz + sha256: 60a35ad2b5cf04b50ac0723d3841e903b23e7dbe071f483ebe0afb1192106140 + +build: + number: 0 + noarch: python + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv + entry_points: + - dingII = dingII.__main__:main + run_exports: + - {{ pin_subpackage("dingii", max_pin="x.x") }} + +requirements: + host: + - python >=3.8 + - poetry-core >=1.0.0 + - pip + run: + - python >=3.8 + - networkx >=3.1 + +test: + imports: + - dingII + commands: + - dingII --help + +about: + home: "https://gitlab.ub.uni-bielefeld.de/gi/dingiiofficial" + summary: 'Computing the Rearrangement Distance of Natural Genomes.' + license: MIT + license_family: MIT + license_file: LICENSE + dev_url: "https://gitlab.ub.uni-bielefeld.de/gi/dingiiofficial" + doc_url: "https://gitlab.ub.uni-bielefeld.de/gi/dingiiofficial/-/blob/main/README.md" + +extra: + recipe-maintainers: + - leobkmer + identifiers: + - doi:10.48550/arXiv.2001.02139 From f945fa0aa0edf1255e5cdda16c721c4a0c7ef777 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 22:24:39 -0400 Subject: [PATCH 0884/1589] Update cogent3 to 2024.7.19a3 (#49932) * Update cogent3 to 2024.7.19a3 * clean up recipe * clean up recipe --------- Co-authored-by: mencian --- recipes/cogent3/meta.yaml | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/recipes/cogent3/meta.yaml b/recipes/cogent3/meta.yaml index d475b58bcaa0b..c9a318f6eb0fc 100644 --- a/recipes/cogent3/meta.yaml +++ b/recipes/cogent3/meta.yaml @@ -1,5 +1,5 @@ {% set name = "cogent3" %} -{% set version = "2024.7.19a1" %} +{% set version = "2024.7.19a3" %} package: name: {{ name|lower }} @@ -7,22 +7,23 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: fdf62233b60eb28e16a7aa8a58abdc6b98b594a596b220316875cb3d31f34dda + sha256: 9a022315e02b4f5febe01f3377a921fdadcfce2bf85c85e7a69aaeeddfe98c59 build: noarch: python - script: {{ PYTHON }} -m pip install . -vv + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv number: 0 run_exports: - {{ pin_subpackage(name, max_pin=None) }} requirements: host: - - python >=3.9, <3.12 + - python >=3.9,<3.13 - pip - - flit-core >=3.2, <4 + - flit-core >=3.2,<4 run: - - python >=3.9, <3.12 + - python >=3.9,<3.13 + - charset-normalizer - scipy - chardet - numpy @@ -38,10 +39,13 @@ test: - cogent3 about: - home: https://pypi.org/project/cogent3/ + home: "https://github.com/cogent3/cogent3" summary: 'COmparative GENomics Toolkit 3: genomic sequence analysis within notebooks or on compute systems with 1000s of CPUs.' - license: BSD-3-Clause + license: "BSD-3-Clause" + license_family: BSD license_file: LICENSE + dev_url: "https://github.com/cogent3/cogent3" + doc_url: "https://github.com/cogent3/cogent3/blob/{{ version }}/README.md" extra: recipe-maintainers: From 05053c90163b1ac804e2ec51346b41200ae505b4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 23:28:51 -0400 Subject: [PATCH 0885/1589] Update harpy to 1.5 (#49930) * Update harpy to 1.5 * clean up recipe * clean up recipe * edit meta.yaml * revert apptainer --------- Co-authored-by: mencian --- recipes/harpy/meta.yaml | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index 7447eeb08d075..700b7f7c6c316 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.4.2" %} -{% set sha256 = "8e8beb3e0782fb9eac2bdeba4896ecdd46a690b8472ff8699684e65c77f6043d" %} +{% set version = "1.5" %} +{% set sha256 = "ae5aa811bff42620f5b8adb1d39f41a9d7e63f332b846b5f6b389e55892c9552" %} package: name: harpy @@ -10,32 +10,34 @@ source: sha256: '{{ sha256 }}' build: - skip: True # [osx] number: 0 - missing_dso_whitelist: - - /lib64/libstdc++.so.6 - - /lib64/libc.so.6 + skip: True # [osx or py < 39] + script_env: + - SETUPTOOLS_SCM_PRETEND_VERSION={{ version }} run_exports: - - {{ pin_subpackage('harpy', max_pin="x.x") }} + - {{ pin_subpackage('harpy', max_pin="x") }} script: | mkdir -p ${PREFIX}/bin - "${CXX}" src/harpy/bin/extractReads.cpp -O3 -o ${PREFIX}/bin/extractReads - ${PYTHON} -m pip install . --no-deps -vvv - chmod +x src/harpy/bin/* - cp src/harpy/bin/* ${PREFIX}/bin/ + "${CXX}" harpy/bin/extractReads.cpp -O3 -o ${PREFIX}/bin/extractReads + ${PYTHON} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv + chmod 0755 harpy/bin/* + cp -rf harpy/bin/* ${PREFIX}/bin/ + entry_points: + - harpy = harpy.__main__:cli requirements: build: - {{ compiler('cxx') }} host: - - python =3.12 + - python - pip + - setuptools-scm >=3.4 run: - apptainer - bcftools =1.20 - pandas - pysam - - python >3.10 + - python - rich-click - snakemake-minimal >7 - samtools =1.20 @@ -48,7 +50,7 @@ test: - "harpy --version" about: - home: "https://github.com/pdimens/harpy/" + home: "https://github.com/pdimens/harpy" license: GPL-3.0-or-later license_family: GPL3 license_file: LICENSE @@ -60,13 +62,11 @@ about: to Snakemake directly. With an emphasis on user-friendliness, parallelization, transparency, and reproducibility, Harpy aims to quickly handle data processing so that you can focus more on analyzing your data. - doc_url: https://pdimens.github.io/harpy/ - dev_url: https://github.com/pdimens/harpy + doc_url: "https://pdimens.github.io/harpy" + dev_url: "https://github.com/pdimens/harpy" extra: additional-platforms: - linux-aarch64 recipe-maintainers: - pdimens - skip-lints: - - should_be_noarch_generic From 5bcc61c9d33110ea300fcd93a5be59a7be781ae9 Mon Sep 17 00:00:00 2001 From: Mariia Zelenskaia <102167492+mariia-zelenskaia@users.noreply.github.com> Date: Fri, 9 Aug 2024 06:02:43 +0200 Subject: [PATCH 0886/1589] use semantic nomenclature for the TransAnnot versions (#49875) * use semantic nomenclature for the TransAnnot versions * Use 3.0.0 as a version Signed-off-by: Martin Tzvetanov Grigorov * Use 3-e15e316 for the package url Signed-off-by: Martin Tzvetanov Grigorov * clean up recipe * clean up recipe * clean up recipe --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov Co-authored-by: mencian --- recipes/transannot/build.sh | 28 ++++++++++++++++++------- recipes/transannot/meta.yaml | 40 ++++++++++++++++++------------------ 2 files changed, 41 insertions(+), 27 deletions(-) diff --git a/recipes/transannot/build.sh b/recipes/transannot/build.sh index ae429591a47eb..8f7d428ac11e6 100644 --- a/recipes/transannot/build.sh +++ b/recipes/transannot/build.sh @@ -1,6 +1,11 @@ -#!/bin/bash -e +#!/bin/bash -ex -set -xe +mkdir -p build && pushd build + +export INCLUDES="-I${PREFIX}/include" +export LIBPATH="-L${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CXXFLAGS="${CXXFLAGS} -O3 -I${PREFIX}/include" case $(uname -m) in aarch64) @@ -11,8 +16,17 @@ case $(uname -m) in ;; esac -mkdir build -cd build -cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DHAVE_TESTS=0 -DHAVE_MPI=0 "${ARCH_OPTS}" -DVERSION_OVERRIDE="${PKG_VERSION}" .. -make -j${CPU_COUNT} ${VERBOSE_CM} -make install +if [ "$(uname)" == "Darwin" ]; then + export CMAKE_EXTRA="-DCMAKE_FIND_FRAMEWORK=NEVER -DCMAKE_FIND_APPBUNDLE=NEVER -Wno-dev" +else + export CMAKE_EXTRA="-Wno-dev" +fi + +cmake -S .. -B . -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ + -DCMAKE_BUILD_TYPE=RELEASE \ + -DHAVE_TESTS=0 -DHAVE_MPI=0 "${ARCH_OPTS}" \ + -DVERSION_OVERRIDE="${PKG_VERSION}" \ + "${CMAKE_EXTRA}" + +cmake --build . --target install -j ${CPU_COUNT} -v +popd diff --git a/recipes/transannot/meta.yaml b/recipes/transannot/meta.yaml index 068bb67a93dbe..315da17189512 100644 --- a/recipes/transannot/meta.yaml +++ b/recipes/transannot/meta.yaml @@ -1,49 +1,49 @@ -{% set version = "3-70b2a60" %} -{% set sha256 = "3b1d2f28362004378528755b8b4e0b8dc45b51cc60562816258bdf16d9cda08d" %} +{% set name = "transannot" %} +{% set version = "3.0.0" %} +{% set sha256 = "6835fc3cc77aafd273abc8f2b4d8213b251b199ff7dd5ae9fa7e1dd19579ae41" %} package: - name: transannot - version: {{ version|replace("-", ".") }} + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/soedinglab/{{ name }}/archive/refs/tags/3-e15e316.tar.gz + sha256: {{ sha256 }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('transannot', max_pin="x") }} -source: - url: https://github.com/soedinglab/transannot/archive/{{ version }}.tar.gz - sha256: {{ sha256 }} - requirements: build: - {{ compiler('c') }} - {{ compiler('cxx') }} - cmake - make + host: - llvm-openmp # [osx] - libgomp # [linux] - host: - - perl - gawk - zlib - bzip2 run: - aria2 - wget - - gawk - - zlib - - bzip2 + - perl test: commands: - - transannot > /dev/null + - "transannot > /dev/null" about: - home: https://github.com/soedinglab/transannot - summary: "TransAnnot: a fast transcriptome annotation pipeline" - license: GPL-3.0-or-later - license_family: GPL - license_file: LICENSE.md + home: "https://github.com/soedinglab/transannot" + summary: "TransAnnot: a fast transcriptome annotation pipeline." + license: "GPL-3.0-or-later" + license_family: GPL3 + license_file: "LICENSE.md" + dev_url: "https://github.com/soedinglab/transannot" + doc_url: "https://github.com/soedinglab/transannot/blob/master/README.md" extra: identifiers: From e4422e24ba90678ee177f8908f90abc11c2db26e Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Thu, 8 Aug 2024 23:52:20 -0500 Subject: [PATCH 0887/1589] bifrost: add aarch64/arm64 build (#49933) * bifrost: add aarch64/arm64 build * add additional platforms * edit build.sh --- recipes/bifrost/build.sh | 35 +++++++++++++++++++++++++---------- recipes/bifrost/meta.yaml | 18 ++++++++++-------- 2 files changed, 35 insertions(+), 18 deletions(-) diff --git a/recipes/bifrost/build.sh b/recipes/bifrost/build.sh index 7e8ce5cc81850..eb160feeb9e96 100644 --- a/recipes/bifrost/build.sh +++ b/recipes/bifrost/build.sh @@ -1,16 +1,31 @@ -#!/bin/bash +#!/bin/bash -ex -mkdir build -pushd build +export INCLUDES="-I${PREFIX}/include" +export LIBPATH="-L${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" -# Cmake is having trouble finding the sysroot with conda so we're giving it a little help... -if [[ ${HOST} =~ .*darwin.* ]]; then - cmake -DCMAKE_BUILD_TYPE=Release -DCOMPILATION_ARCH=OFF -DCMAKE_INSTALL_PREFIX=${PREFIX} -DCMAKE_OSX_SYSROOT="${CONDA_BUILD_SYSROOT}" .. +export CXXFLAGS="${CXXFLAGS} -O3 -D_FILE_OFFSET_BITS=64 -I${PREFIX}/include" + +ARCH=$(uname -m) +case ${ARCH} in + x86_64) ARCH_FLAGS="-DCOMPILATION_ARCH=OFF" ;; + aarch64) ARCH_FLAGS="-DCOMPILATION_ARCH=OFF" ;; + *) ARCH_FLAGS="-DCOMPILATION_ARCH=ON" ;; +esac + +if [ `uname` == Darwin ]; then + export CONFIG_ARGS="-DCMAKE_OSX_SYSROOT=${CONDA_BUILD_SYSROOT} -DCMAKE_FIND_FRAMEWORK=NEVER -DCMAKE_FIND_APPBUNDLE=NEVER" + export LDFLAGS="${LDFLAGS} -Wl,-rpath,${PREFIX}/lib" else - cmake -DCMAKE_BUILD_TYPE=Release -DCOMPILATION_ARCH=OFF -DCMAKE_INSTALL_PREFIX=${PREFIX} -DCMAKE_TOOLCHAIN_FILE="${RECIPE_DIR}/cross-linux.cmake" .. + export CONFIG_ARGS="-DCMAKE_TOOLCHAIN_FILE=${RECIPE_DIR}/cross-linux.cmake" fi -make VERBOSE=1 -make install +cmake -S . -B build \ + -DCMAKE_INSTALL_PREFIX=${PREFIX} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_CXX_COMPILER="${CXX}" \ + -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ + "${CONFIG_ARGS}" \ + "${ARCH_FLAGS}" -popd +cmake --build build --target install -j "${CPU_COUNT}" -v diff --git a/recipes/bifrost/meta.yaml b/recipes/bifrost/meta.yaml index 8ee624077f1c1..1dc9bb202eea2 100644 --- a/recipes/bifrost/meta.yaml +++ b/recipes/bifrost/meta.yaml @@ -10,7 +10,7 @@ source: sha256: e1b2491328b0cc1a32e433a8a9780f05547fa4b8d674b58abdda9ac8809f5341 build: - number: 0 + number: 1 # v1.3.0 breaks Bifrost Index File (.bfi) compatibility with previous Bifrost versions run_exports: - {{ pin_subpackage('bifrost', max_pin="x.x") }} @@ -24,22 +24,24 @@ requirements: host: - zlib - pthread-stubs - run: - - zlib - - pthread-stubs test: commands: - - Bifrost --version + - "Bifrost --version" about: - home: https://github.com/pmelsted/bifrost - license: BSD-2-Clause + home: "https://github.com/pmelsted/bifrost" + license: "BSD-2-Clause" license_family: BSD license_file: LICENSE - summary: Highly parallel construction and indexing of colored and compacted de Bruijn graphs + summary: "Highly parallel construction and indexing of colored and compacted de Bruijn graphs." + dev_url: "https://github.com/pmelsted/bifrost" + doc_url: "https://github.com/pmelsted/bifrost/blob/v{{ version }}/README.md" extra: identifiers: - doi:10.1101/695338 - biotools:bifrost + additional-platforms: + - linux-aarch64 + - osx-arm64 From e95e09bb92914fb03e9b0fda68f7b645999e66ed Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Fri, 9 Aug 2024 00:41:58 -0500 Subject: [PATCH 0888/1589] ratatosk: add aarch64 build (#49935) --- recipes/ratatosk/build.sh | 32 +++++++++++++++----------------- recipes/ratatosk/meta.yaml | 19 +++++++++++++------ 2 files changed, 28 insertions(+), 23 deletions(-) diff --git a/recipes/ratatosk/build.sh b/recipes/ratatosk/build.sh index de6321ef19764..b9db46d931856 100644 --- a/recipes/ratatosk/build.sh +++ b/recipes/ratatosk/build.sh @@ -1,27 +1,25 @@ -#!/bin/bash -set -x +#!/bin/bash -ex -export INCLUDE_PATH="${PREFIX}/include" -export LIBRARY_PATH="${PREFIX}/lib" +mkdir -p "${PREFIX}/bin" + +export INCLUDES="-I${PREFIX}/include" +export LIBPATH="-L${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" -export CXXFLAGS="${CXXFLAGS} -O3 -D_FILE_OFFSET_BITS=64" +export CXXFLAGS="${CXXFLAGS} -O3 -D_FILE_OFFSET_BITS=64 -I${PREFIX}/include" -if [ `uname` == Darwin ]; then - # See https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk for -D_LIBCPP_DISABLE_AVAILABILITY - export CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY" - export CONFIG_ARGS="-DCMAKE_INSTALL_PREFIX=${PREFIX} -DCMAKE_FIND_FRAMEWORK=NEVER -DCMAKE_FIND_APPBUNDLE=NEVER" - else - export CONFIG_ARGS="-DCMAKE_INSTALL_PREFIX=${PREFIX}" +if [[ `uname` == Darwin ]]; then + export CONFIG_ARGS="-DCMAKE_FIND_FRAMEWORK=NEVER -DCMAKE_FIND_APPBUNDLE=NEVER" + export LDFLAGS="${LDFLAGS} -Wl,-rpath,${PREFIX}/lib" +else + export CONFIG_ARGS="" fi -mkdir -p "${PREFIX}/bin" - cmake -S . -B build \ - "${CONFIG_ARGS}" \ + -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_C_COMPILER="${CC}" \ -DCMAKE_CXX_COMPILER="${CXX}" \ - -DCMAKE_CXX_FLAGS="${CXXFLAGS}" + -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ + "${CONFIG_ARGS}" -cmake --build build/ --target install -j "${CPU_COUNT}" +cmake --build build/ --target install -j "${CPU_COUNT}" -v diff --git a/recipes/ratatosk/meta.yaml b/recipes/ratatosk/meta.yaml index bb8c9634d72bd..1a89715c74931 100644 --- a/recipes/ratatosk/meta.yaml +++ b/recipes/ratatosk/meta.yaml @@ -11,13 +11,15 @@ source: sha256: {{ sha256 }} patches: - cmakelists.patch -- url: https://github.com/pmelsted/bifrost/archive/refs/tags/v1.2.1.tar.gz - sha256: fe93080ef3ea71ff009fc206b5c17dd40fbfd18293000621a83d7d947dfedf1a +- url: https://github.com/pmelsted/bifrost/archive/refs/tags/v1.3.5.tar.gz + sha256: e1b2491328b0cc1a32e433a8a9780f05547fa4b8d674b58abdda9ac8809f5341 folder: Bifrost build: - number: 0 + number: 1 skip: True # [osx] + run_exports: + - {{ pin_subpackage('ratatosk', max_pin="x.x") }} requirements: build: @@ -34,12 +36,17 @@ test: - 'Ratatosk index --help' about: - home: https://github.com/DecodeGenetics/Ratatosk - license: BSD-2-Clause + home: "https://github.com/DecodeGenetics/Ratatosk" + license: "BSD-2-Clause" + license_family: BSD license_file: LICENSE - summary: "Hybrid error correction of long reads using colored de Bruijn graphs" + summary: "Hybrid error correction of long reads using colored de Bruijn graphs." + dev_url: "https://github.com/DecodeGenetics/Ratatosk" + doc_url: "https://github.com/DecodeGenetics/Ratatosk/blob/v{{ version }}/README.md" extra: identifiers: - biotools:ratatosk - doi:10.1186/s13059-020-02244-4 + additional-platforms: + - linux-aarch64 From 0ca9885238b6f4573444c73d90429c088fd853b7 Mon Sep 17 00:00:00 2001 From: Ruben Vorderman Date: Fri, 9 Aug 2024 10:13:40 +0200 Subject: [PATCH 0889/1589] Update NanoPlot to 1.43.0 (#49936) * Update NanoPlot to 1.43.0 * provide the correct URL --- recipes/nanoplot/meta.yaml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/recipes/nanoplot/meta.yaml b/recipes/nanoplot/meta.yaml index b40260be1a127..203e3d77fef6d 100644 --- a/recipes/nanoplot/meta.yaml +++ b/recipes/nanoplot/meta.yaml @@ -1,12 +1,12 @@ -{% set version = "1.42.0" %} +{% set version = "1.43.0" %} package: name: nanoplot version: {{ version }} source: - url: https://pypi.io/packages/source/n/nanoplot/NanoPlot-{{ version }}.tar.gz - sha256: 0f8fd2cffd33a346b3306716058c6cb4091c931e8ab502f10b17a28749e8b6d9 + url: https://files.pythonhosted.org/packages/5f/95/8db2c1dfa964fdf85f708e8986a0f49ed6e8f0787c4a24ad01a84dded3c8/nanoplot-{{ version }}.tar.gz + sha256: 0f94096d689b552c32fd7246ad87cb6d5e5e2499dad5acc551091e0ff67f48df build: entry_points: @@ -28,8 +28,7 @@ requirements: - scipy - python-dateutil - libpng - - nanoget >=1.18.1 - - nanomath >=1.0.0 + - nanoget >=1.19.1 - plotly >=5.4.0 - pyarrow - python-kaleido From 85a8f505a0a252fa45b50972946055bce002852b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 9 Aug 2024 07:12:58 -0400 Subject: [PATCH 0890/1589] Update ms2query to 1.5.2 (#49938) --- recipes/ms2query/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ms2query/meta.yaml b/recipes/ms2query/meta.yaml index d7cc514c1073a..85bdb718e29af 100644 --- a/recipes/ms2query/meta.yaml +++ b/recipes/ms2query/meta.yaml @@ -1,6 +1,6 @@ {% set name = "ms2query" %} -{% set version = "1.5.1" %} -{% set sha256 = "cb1e46a18fa9bc75530975512f1e9fba40d1199d4e7203a4562261afd7b3f9bd" %} +{% set version = "1.5.2" %} +{% set sha256 = "91ab116457aea8c3e7dd9486d41e78134edd5953941cf64cda327b22cb44a736" %} package: name: {{ name|lower }} From 8cb1d90cc0ee91c138a5f3adda3baa1884a2c2c5 Mon Sep 17 00:00:00 2001 From: Jonas Scheid <43858870+jonasscheid@users.noreply.github.com> Date: Fri, 9 Aug 2024 15:38:01 +0200 Subject: [PATCH 0891/1589] Bump comet-ms version (#49941) --- recipes/comet-ms/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/comet-ms/meta.yaml b/recipes/comet-ms/meta.yaml index 66057b41ec387..addbd48fa6ffe 100644 --- a/recipes/comet-ms/meta.yaml +++ b/recipes/comet-ms/meta.yaml @@ -1,20 +1,20 @@ {% set name = "comet-ms" %} -{% set version = "2023012" %} -{% set md5 = "d60433652e5a5e682288ddbdfb014eb4" %} +{% set version = "2024011" %} +{% set md5 = "3f0dc29582792620b0cc916c2117965f" %} package: name: {{ name }} version: {{ version }} source: - url: https://github.com/UWPR/Comet/archive/refs/tags/v2023.01.2.zip + url: https://github.com/UWPR/Comet/archive/refs/tags/v2024.01.1.zip md5: {{ md5 }} build: run_exports: - {{ pin_subpackage('comet-ms', max_pin=None) }} skip: True # [osx] - number: 1 + number: 0 requirements: build: From 23be1371b3b8d6a46d80a0bbadc87c754a2b1192 Mon Sep 17 00:00:00 2001 From: Ruben Vorderman Date: Fri, 9 Aug 2024 15:56:58 +0200 Subject: [PATCH 0892/1589] Use a versioned URL for downloading (#49942) --- recipes/nanoplot/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/nanoplot/meta.yaml b/recipes/nanoplot/meta.yaml index 203e3d77fef6d..af69dc565bfdf 100644 --- a/recipes/nanoplot/meta.yaml +++ b/recipes/nanoplot/meta.yaml @@ -5,13 +5,13 @@ package: version: {{ version }} source: - url: https://files.pythonhosted.org/packages/5f/95/8db2c1dfa964fdf85f708e8986a0f49ed6e8f0787c4a24ad01a84dded3c8/nanoplot-{{ version }}.tar.gz + url: https://pypi.io/packages/source/n/nanoplot/nanoplot-{{ version }}.tar.gz sha256: 0f94096d689b552c32fd7246ad87cb6d5e5e2499dad5acc551091e0ff67f48df build: entry_points: - NanoPlot=nanoplot.NanoPlot:main - number: 0 + number: 1 noarch: python run_exports: - {{ pin_subpackage("nanoplot", max_pin="x.x") }} From 4667ae26edfda41389ca2595bd7d62cedb9d8e7c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 9 Aug 2024 12:06:05 -0400 Subject: [PATCH 0893/1589] Update pyani to 0.2.13.1 (#49937) * Update pyani to 0.2.13.1 * Add five dependencies Co-authored-by: Peter Cock --- recipes/pyani/meta.yaml | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/recipes/pyani/meta.yaml b/recipes/pyani/meta.yaml index f1f82a9ce5b49..36b375deb00aa 100644 --- a/recipes/pyani/meta.yaml +++ b/recipes/pyani/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pyani" %} -{% set version = "0.2.13" %} +{% set version = "0.2.13.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/widdowquinn/{{ name|lower }}/archive/v{{ version }}.tar.gz - sha256: e8dc2f7ece2e0788c7a61e9d5814d137849d722ee25dfa556d25f35d7bdd8b76 + sha256: 98c2bb205eb286bd53b27d0deacd01ad25f00dd2483a91ba19765203af03d9ef build: number: 0 @@ -23,14 +23,19 @@ requirements: run: - python >=3.7 - biopython + - blast + - blast-legacy # [not osx] + - intervaltree - matplotlib-base + - mummer + - namedlist + - networkx + - numpy - pandas - - seaborn-base - scipy - - numpy - - mummer - - blast - - blast-legacy # [not osx] + - seaborn-base + - sqlalchemy + - tqdm test: imports: From 4e89edd5521a7e767e2933c491540fd25cb96347 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 9 Aug 2024 15:14:42 -0400 Subject: [PATCH 0894/1589] Update pbstarphase to 0.13.2 (#49951) --- recipes/pbstarphase/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pbstarphase/meta.yaml b/recipes/pbstarphase/meta.yaml index 7eb2b16bcdfc7..315dbe59df582 100644 --- a/recipes/pbstarphase/meta.yaml +++ b/recipes/pbstarphase/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pbstarphase" %} -{% set version = "0.13.1" %} -{% set sha256 = "1808901a0c3c29093733046ec343122905980566423773e64e8df29060ae6721" %} +{% set version = "0.13.2" %} +{% set sha256 = "648297e149009d7658c9425d56bbc23a6f6c051192f5dc88dc7a8f7383be9122" %} package: name: {{ name }} From ee02bce19cb4f053ff0190e506675c9702b79723 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 9 Aug 2024 16:42:01 -0400 Subject: [PATCH 0895/1589] Update sequali to 0.11.0 (#49948) --- recipes/sequali/meta.yaml | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/recipes/sequali/meta.yaml b/recipes/sequali/meta.yaml index 69fccabe0a7f7..85a72ca5e63d3 100644 --- a/recipes/sequali/meta.yaml +++ b/recipes/sequali/meta.yaml @@ -1,5 +1,5 @@ {% set name = "sequali" %} -{% set version = "0.10.0" %} +{% set version = "0.11.0" %} package: name: "{{ name|lower }}" @@ -7,24 +7,26 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: c43b38a212c80bfd3f44bb0beeb37f62c9cb298698f2c876e5231cfb6faa34e1 + sha256: 7a166a196d31681b92f893f4d5cac876acf28f972ce292f218ee0ad81deba39c build: - number: 1 + number: 0 entry_points: - sequali=sequali.__main__:main - sequali-report=sequali.__main__:sequali_report + script_env: + - SETUPTOOLS_SCM_PRETEND_VERSION={{ version }} run_exports: - {{ pin_subpackage('sequali', max_pin="x.x") }} - script: "{{ PYTHON }} -m pip install . -vv" - + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" requirements: build: - "{{ compiler('c') }}" - - pip host: - python + - pip + - setuptools-scm >=8.0 run: - pygal >=3.0.4 - python @@ -40,7 +42,7 @@ test: about: home: "https://github.com/rhpvorderman/sequali" - license: "GNU Affero General Public v3 or later (AGPLv3+)" + license: "AGPL-3.0-or-later" license_family: AGPL license_file: LICENSE summary: "Fast sequencing quality metrics" @@ -50,4 +52,5 @@ about: extra: recipe-maintainers: - rhpvorderman - + identifiers: + - doi:10.5281/zenodo.10854010 From 7b42f79525c3c5321b11efea5324ffefbafe7493 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 10 Aug 2024 09:44:22 -0400 Subject: [PATCH 0896/1589] Update poolsnp to 1.0.1 (#49955) --- recipes/poolsnp/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/poolsnp/meta.yaml b/recipes/poolsnp/meta.yaml index 5f92f96931557..b477040292487 100644 --- a/recipes/poolsnp/meta.yaml +++ b/recipes/poolsnp/meta.yaml @@ -1,5 +1,5 @@ {% set name = "poolsnp" %} -{% set version = "1.0.0" %} +{% set version = "1.0.1" %} {% set github = "https://github.com/capoony/PoolSNP" %} package: @@ -8,7 +8,7 @@ package: source: url: "{{ github }}/archive/refs/tags/v.{{ version }}.tar.gz" - sha256: a73c61c7ef49be9bd1212ea8049fe617296b0a82b80e0338e2b78dc55105438f + sha256: a98003758e2f93f2c7dc907ad990594e7fa85ca5f3fd5a7b3bcbc6363fbb9571 requirements: host: @@ -37,4 +37,4 @@ about: extra: recipe-maintainers: - - abhilesh \ No newline at end of file + - abhilesh From 7d56256f5792bd10f30909a0d04b050f81e38d2f Mon Sep 17 00:00:00 2001 From: John Lees Date: Sat, 10 Aug 2024 14:45:59 +0100 Subject: [PATCH 0897/1589] Bump poppunk to v2.7.0 (#49943) --- recipes/poppunk/meta.yaml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/recipes/poppunk/meta.yaml b/recipes/poppunk/meta.yaml index fb5756890a9fc..802e0ca68a124 100644 --- a/recipes/poppunk/meta.yaml +++ b/recipes/poppunk/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.6.7" %} +{% set version = "2.7.0" %} {% set name = "PopPUNK" %} package: @@ -7,7 +7,7 @@ package: source: url: https://github.com/bacpop/{{ name|lower }}/archive/v{{ version }}.tar.gz - sha256: faa11756c6c7acc0df2ef50a1deaf27432f1e510219a7484cc16f92e44b2e179 + sha256: bba7cb9fad5027abc78fd6761755169ae999d3d86a96bdfbfe577a360f907067 build: number: 0 @@ -89,6 +89,7 @@ test: - poppunk_references --help - poppunk_mandrake --help - poppunk_info --help + - poppunk_lineages_from_strains --help about: home: https://poppunk.bacpop.org/ @@ -99,3 +100,8 @@ about: extra: identifiers: - doi:10.1101/gr.241455.118 + # enabling this would require arm64 packages for: mandrake, pp-sketchlib, + # rapidnj + # additional-platforms: + # - linux-aarch64 + # - osx-arm64 From 4281dfa244b7b4bccec91cc34e89d7ac863262b5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 10 Aug 2024 23:02:04 -0400 Subject: [PATCH 0898/1589] Update treetime to 0.11.4 (#49957) --- recipes/treetime/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/treetime/meta.yaml b/recipes/treetime/meta.yaml index ae44e4a810ad5..96041b068c5e5 100644 --- a/recipes/treetime/meta.yaml +++ b/recipes/treetime/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.11.3" %} -{% set sha256 = "c19b336691fcf3fddbb2b0e55000ff6d4aafca1f2bdf75b4ab39631a57a73e2b" %} +{% set version = "0.11.4" %} +{% set sha256 = "0b41c4a60e020ad7888693ebc4e7f8001df977243154bf577f1567a48f71b31c" %} package: name: treetime @@ -11,7 +11,7 @@ source: build: noarch: python - number: 1 + number: 0 script: {{ PYTHON }} -m pip install --no-deps --ignore-installed . -vvv entry_points: - treetime = treetime.__main__:main From b089fa3978c774270700049a52d24fa2182ca9d3 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 11 Aug 2024 10:14:58 -0400 Subject: [PATCH 0899/1589] Update igv-reports to 1.13.0 (#49958) --- recipes/igv-reports/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/igv-reports/meta.yaml b/recipes/igv-reports/meta.yaml index 1e69cef3c08a1..20b827500ef81 100644 --- a/recipes/igv-reports/meta.yaml +++ b/recipes/igv-reports/meta.yaml @@ -1,5 +1,5 @@ {% set name = "igv-reports" %} -{% set version = "1.12.0" %} +{% set version = "1.13.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 2a4bb08945e7872108a83037468249581b2fb42b2934cf33446971443175611d + sha256: 8f51312dd06a7dfa379dc61a25bf8b5dc8565fbe260bcae4ba5f98e79a17fbbf build: noarch: python From c1cf6044d2302819e5a78aa56c49e4d813bb7aa3 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 11 Aug 2024 10:16:52 -0400 Subject: [PATCH 0900/1589] Update quantms-utils to 0.0.5 (#49959) --- recipes/quantms-utils/meta.yaml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/recipes/quantms-utils/meta.yaml b/recipes/quantms-utils/meta.yaml index e327ae907a0f9..9adab27093c22 100644 --- a/recipes/quantms-utils/meta.yaml +++ b/recipes/quantms-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "quantms-utils" %} -{% set version = "0.0.4" %} +{% set version = "0.0.5" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/quantms_utils-{{ version }}.tar.gz - sha256: 627a5eac7b32f6fc2fcdbaf64459eec2d55ddff5bbe573a0f86e44c7f986ba35 + sha256: 068625b5d5ca37255b5f108fd52cf31a73387b4660ca6284bcf5853268b9a32a build: entry_points: @@ -26,10 +26,12 @@ requirements: - python >=3.7.0,<4.0.0 - click >=7.0 - pydantic >=1.10,<2 - - sdrf-pipelines >=0.0.26 - - pyopenms >=2.6.0 - - ms2rescore ==3.0.2 - - psm-utils ==0.8.0 + - sdrf-pipelines >=0.0.29 + - pyopenms >=2.9.1 + - ms2rescore ==3.0.3 + - psm-utils ==0.8.2 + - ms2pip ==4.0.0.dev8 + - deeplc ==2.2.38 - pandas >=1.0.0 - numpy From b5718d8b25c136a285a46e055bab04bedfd12254 Mon Sep 17 00:00:00 2001 From: Stefan Janssen Date: Sun, 11 Aug 2024 16:17:56 +0200 Subject: [PATCH 0901/1589] Syncmeta rnaalishapes (#49960) --- recipes/rnaalishapes/meta.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/recipes/rnaalishapes/meta.yaml b/recipes/rnaalishapes/meta.yaml index f9df163582cb8..17ef0ed23173e 100644 --- a/recipes/rnaalishapes/meta.yaml +++ b/recipes/rnaalishapes/meta.yaml @@ -1,19 +1,20 @@ -{% set version = "2.3.1" %} +{% set fold_grammars_version = "2.3.1" %} +{% set rnaalishapes_version = "2.5.0" %} {% set packagename = "rnaalishapes" %} {% set sha256 = "0c5b7d91893d0a23189f4af3602e18f110f030eac49a3658f7acede23596fde0" %} package: name: {{ packagename }} - version: 2.5.0 + version: {{ rnaalishapes_version }} source: sha256: {{ sha256 }} # the repository "fold-grammars" contains sources for several programs, i.e. pKiss, RNAshapes, ... # thus, the version number does not correspond to the {{ packagename }} version number - url: https://github.com/jlab/fold-grammars/archive/{{ version }}.tar.gz + url: https://github.com/jlab/fold-grammars/archive/{{ fold_grammars_version }}.tar.gz build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('rnaalishapes', max_pin="x") }} From b90d63cf302b227d5f2ffa15763d84429f0abc61 Mon Sep 17 00:00:00 2001 From: Stefan Janssen Date: Sun, 11 Aug 2024 16:18:28 +0200 Subject: [PATCH 0902/1589] Syncmeta pkiss (#49961) --- recipes/pkiss/meta.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/recipes/pkiss/meta.yaml b/recipes/pkiss/meta.yaml index 6e05c89596ce9..5bef440d7e10c 100644 --- a/recipes/pkiss/meta.yaml +++ b/recipes/pkiss/meta.yaml @@ -1,19 +1,20 @@ -{% set version = "2.3.1" %} +{% set fold_grammars_version = "2.3.1" %} +{% set pkiss_version = "2.3.0" %} {% set packagename = "pkiss" %} {% set sha256 = "0c5b7d91893d0a23189f4af3602e18f110f030eac49a3658f7acede23596fde0" %} package: name: {{ packagename }} - version: 2.3.0 + version: {{ pkiss_version }} source: sha256: {{ sha256 }} # the repository "fold-grammars" contains sources for several programs, i.e. pKiss, RNAshapes, ... # thus, the version number does not correspond to the {{ packagename }} version number - url: https://github.com/jlab/fold-grammars/archive/{{ version }}.tar.gz + url: https://github.com/jlab/fold-grammars/archive/{{ fold_grammars_version }}.tar.gz build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('pkiss', max_pin="x") }} From 5bf0b0db45aab3866c407d8647da0a22174700cc Mon Sep 17 00:00:00 2001 From: Stefan Janssen Date: Sun, 11 Aug 2024 16:18:59 +0200 Subject: [PATCH 0903/1589] Syncmeta palikiss (#49962) --- recipes/palikiss/meta.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/recipes/palikiss/meta.yaml b/recipes/palikiss/meta.yaml index 6d375b44938c5..556c317057398 100644 --- a/recipes/palikiss/meta.yaml +++ b/recipes/palikiss/meta.yaml @@ -1,19 +1,20 @@ -{% set version = "2.3.1" %} +{% set fold_grammars_version = "2.3.1" %} +{% set palikiss_version = "1.1.0" %} {% set packagename = "palikiss" %} {% set sha256 = "0c5b7d91893d0a23189f4af3602e18f110f030eac49a3658f7acede23596fde0" %} package: name: {{ packagename }} - version: 1.1.0 + version: {{ palikiss_version }} source: sha256: {{ sha256 }} # the repository "fold-grammars" contains sources for several programs, i.e. pKiss, RNAshapes, ... # thus, the version number does not correspond to the {{ packagename }} version number - url: https://github.com/jlab/fold-grammars/archive/{{ version }}.tar.gz + url: https://github.com/jlab/fold-grammars/archive/{{ fold_grammars_version }}.tar.gz build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('palikiss', max_pin="x") }} From 371b63bc9da1be4b2d01f3db324f163e8773a701 Mon Sep 17 00:00:00 2001 From: Stefan Janssen Date: Sun, 11 Aug 2024 16:42:10 +0200 Subject: [PATCH 0904/1589] Add acms (#49353) * using latest release of upstream * use recent gapc update with hopes to compile on OSX * add subrecipe for older version 4.3.10 (pinned in qiime2) which shall additionally expose upp.config * adding recipe for aCMs * fix hashsum and fix subpackage name * adding GHC as dependency * remove flag * using pre-release * fix version number * pre-release is using different URL :-/ * pin libiconf version for OSX * typo * skip OSX --- recipes/acms/build.sh | 6 +++++ recipes/acms/meta.yaml | 50 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 recipes/acms/build.sh create mode 100644 recipes/acms/meta.yaml diff --git a/recipes/acms/build.sh b/recipes/acms/build.sh new file mode 100644 index 0000000000000..00b12a00c829b --- /dev/null +++ b/recipes/acms/build.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +make -j ${CPU_COUNT} PREFIX=$PREFIX CC=$CC -C Misc/Applications/aCMs all +make PREFIX=$PREFIX CC=$CC -C Misc/Applications/aCMs install-program +make PREFIX=$PREFIX CC=$CC -C Misc/Applications/lib install +chmod 755 $PREFIX/bin/acmbuild* diff --git a/recipes/acms/meta.yaml b/recipes/acms/meta.yaml new file mode 100644 index 0000000000000..d3a8e129c7d2a --- /dev/null +++ b/recipes/acms/meta.yaml @@ -0,0 +1,50 @@ +{% set fold_grammars_version = "2.3.2" %} +{% set acms_version = "1.3.0" %} +{% set packagename = "acms" %} +{% set sha256 = "d3e6cc8d2ecd31d4764b41fea589b98c637ff227d7ab3dcfe66f2ad3f24dece5" %} + +package: + name: {{ packagename }} + version: 1.3.0 + +source: + sha256: {{ sha256 }} + # the repository "fold-grammars" contains sources for several programs, i.e. pKiss, RNAshapes, ... + # thus, the version number does not correspond to the {{ packagename }} version number + #url: https://github.com/jlab/fold-grammars/archive/{{ version }}.tar.gz + url: https://github.com/jlab/fold-grammars/archive/refs/tags/{{ fold_grammars_version }}.tar.gz + +build: + number: 0 + skip: True # [osx] + run_exports: + - {{ pin_subpackage('acms', max_pin="x") }} + +requirements: + build: + - make + - {{ compiler('cxx') }} + - ghc + host: + - perl + - bellmans-gapc >=2024.01.12 + - ghc + run: + - perl + - bellmans-gapc >=2024.01.12 + - ghc + +test: + commands: + - acmbuild -h + +about: + home: https://bibiserv.cebitec.uni-bielefeld.de/{{ packagename }} + license: 'GPL-3.0-or-later' + license_file: LICENSE + summary: 'Ambivalent Covariance Models (aCMs) are our prototypic suggestion to extend CMs with more than one consensus structure.' + +extra: + identifiers: + - doi:10.1186/s12859-015-0569-1 + - doi:10.1093/bioinformatics/btu649 From b4d3712c95d8a76a751aaaff12638a76dda6623c Mon Sep 17 00:00:00 2001 From: Peter Cock Date: Sun, 11 Aug 2024 16:33:46 +0100 Subject: [PATCH 0905/1589] Build gofasta on osx-arm64 (#49944) * Build gofasta on osx-arm64 Closes #49566 * Update recipes/gofasta/meta.yaml --------- Co-authored-by: Cornelius Roemer --- recipes/gofasta/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/gofasta/meta.yaml b/recipes/gofasta/meta.yaml index 64a8626a53d44..0064cbdb824bc 100644 --- a/recipes/gofasta/meta.yaml +++ b/recipes/gofasta/meta.yaml @@ -13,7 +13,7 @@ requirements: - {{ compiler('go-nocgo') }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('gofasta', max_pin="x") }} script: @@ -32,4 +32,5 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 + - osx-arm64 From 9a2e7e7ceb5fbb0184e6ded71a2e02329b12cea5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 12 Aug 2024 00:21:37 -0400 Subject: [PATCH 0906/1589] Update falco to 1.2.3 (#49965) --- recipes/falco/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/falco/meta.yaml b/recipes/falco/meta.yaml index 766c20816dbf0..33e07e1c9e50f 100644 --- a/recipes/falco/meta.yaml +++ b/recipes/falco/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.2.2" %} +{% set version = "1.2.3" %} package: name: falco @@ -13,7 +13,7 @@ build: source: url: https://github.com/smithlabcode/falco/releases/download/v{{ version }}/falco-{{ version }}.tar.gz - sha256: 09cfb96eb4292ba0ca48713634e9da48fbe07e57a4ae8f24f356583ed6b1028b + sha256: b2d4da736efecfa669ad555fbb69862bc7fb57dcf32efcb6c151c47f98b32b8a requirements: build: From ea2cfb7aa3817880d303ce513cd1b008041a1382 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 12 Aug 2024 00:22:05 -0400 Subject: [PATCH 0907/1589] Update planemo to 0.75.25 (#49964) --- recipes/planemo/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/planemo/meta.yaml b/recipes/planemo/meta.yaml index e37d7821ced54..49795bf1c67d6 100644 --- a/recipes/planemo/meta.yaml +++ b/recipes/planemo/meta.yaml @@ -1,6 +1,6 @@ {% set name = "planemo" %} -{% set version = "0.75.24" %} -{% set sha256 = "a0ee1ace9b5e2a9bf17c735d3b95236e9756921eded7cd9847717dd0adff6e42" %} +{% set version = "0.75.25" %} +{% set sha256 = "31c2dda28677094f2d4ced21fa590d80070c71c16c97c561cdd1ffbff139997e" %} package: name: {{ name|lower }} From bf724904c16d6de224e36cb289e3eff81725187f Mon Sep 17 00:00:00 2001 From: "UENO, M." Date: Mon, 12 Aug 2024 13:24:25 +0900 Subject: [PATCH 0908/1589] Adding pdbx (#49934) --- recipes/pdbx/build.sh | 6 +++++ recipes/pdbx/meta.yaml | 50 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 recipes/pdbx/build.sh create mode 100644 recipes/pdbx/meta.yaml diff --git a/recipes/pdbx/build.sh b/recipes/pdbx/build.sh new file mode 100644 index 0000000000000..6945b07878f50 --- /dev/null +++ b/recipes/pdbx/build.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +mkdir -p build +cd build +cmake ${SRC_DIR} ${CMAKE_ARGS} +make install diff --git a/recipes/pdbx/meta.yaml b/recipes/pdbx/meta.yaml new file mode 100644 index 0000000000000..de822ef290861 --- /dev/null +++ b/recipes/pdbx/meta.yaml @@ -0,0 +1,50 @@ +{% set name = "pdbx" %} +{% set org = "soedinglab" %} +{% set version = "1.0.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/eunos-1128/pdbx/archive/refs/tags/v{{ version }}.tar.gz + version: {{ version }} + sha256: 6b2c9e632b9b9ad1ac7a2683f9e3a50c778dda559507072839924ae0b2bea6a3 + +build: + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} + +requirements: + build: + - make + - cmake + - {{ compiler('c') }} + - {{ compiler('cxx') }} # [linux] + host: + - python + run: + - python + +test: + commands: + - PACKAGE_NAME={{ name }}; python3 -c "import pkg_resources; import sys; sys.exit(0 if pkg_resources.get_distribution('${PACKAGE_NAME}') else 1)" + +about: + home: https://github.com/{{ org }}/{{ name }} + summary: pdbx is a parser module in python for structures of the protein data bank in the mmcif format + license: GPL-3.0-or-later + license_family: GPL3 + license_file: LICENSE + description: | + Proper recognition to the [Protein Data Bank](http://mmcif.wwpdb.org/docs/sw-examples/python/html/index.html) + where this library for protein structures in the mmCIF format initially came from. + We modified the original library to support python3. + This fork is used by scripts in the HHsuite [on GitHub](https://github.com/soedinglab/hh-suite). + doc_url: https://github.com/{{ org }}/{{ name }}#readme + dev_url: https://github.com/{{ org }}/{{ name }} + +extra: + recipe-maintainers: + - eunos-1128 From 24b8c7c072f8b22c542af02ba4ab6b998fd3fb6e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 12 Aug 2024 01:17:57 -0400 Subject: [PATCH 0909/1589] Update phylofisher to 1.2.14 (#49956) * Update phylofisher to 1.2.14 * bump mafft to 7.525 --------- Co-authored-by: mencian --- recipes/phylofisher/meta.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/recipes/phylofisher/meta.yaml b/recipes/phylofisher/meta.yaml index 29979d4e64b53..c95b2662fea79 100644 --- a/recipes/phylofisher/meta.yaml +++ b/recipes/phylofisher/meta.yaml @@ -1,5 +1,5 @@ {% set name = "PhyloFisher" %} -{% set version = "1.2.13" %} +{% set version = "1.2.14" %} package: name: "{{ name|lower }}" @@ -7,12 +7,12 @@ package: source: url: "https://github.com/TheBrownLab/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz" - sha256: 0003e1820bbf84453edbf3cba68e01e2bd1c24a12608fe02bc01b1168efb5a1b + sha256: fd2c46cf1a49eb0fb83348dd280292f5f6b3a2541d76dd21f7e377e90be9dde5 build: noarch: python number: 0 - script: "{{ PYTHON }} -m pip install . --ignore-installed --no-deps -vvv" + script: "{{ PYTHON }} -m pip install . --no-build-isolation --no-deps --no-cache-dir -vvv" run_exports: - {{ pin_subpackage('phylofisher', max_pin='x') }} @@ -30,7 +30,7 @@ requirements: - hmmer =3.3 - diamond =2.0.15 - fasttree =2.1.10 - - mafft =7.520 + - mafft =7.525 - trimal =1.4.1 - blast - cd-hit =4.8.1 @@ -47,7 +47,7 @@ about: home: "https://github.com/TheBrownLab/PhyloFisher" license: MIT license_family: MIT - license_file: LICENSE.txt + license_file: "LICENSE.txt" summary: "A package for the creation, analysis, and visualization of eukaryotic phylogenomic datasets." - doc_url: https://thebrownlab.github.io/phylofisher-pages/ - dev_url: https://github.com/TheBrownLab/PhyloFisher + doc_url: "https://thebrownlab.github.io/phylofisher-pages" + dev_url: "https://github.com/TheBrownLab/PhyloFisher" From 55c4bff52ccb904705ca6a230123f3ecfd22db1f Mon Sep 17 00:00:00 2001 From: Cameron Roots <38054423+croots@users.noreply.github.com> Date: Mon, 12 Aug 2024 00:38:25 -0500 Subject: [PATCH 0910/1589] Add Cryptkeeper (#49949) * Add cryptkeeper * edit license --------- Co-authored-by: mencian --- recipes/cryptkeeper/meta.yaml | 50 +++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 recipes/cryptkeeper/meta.yaml diff --git a/recipes/cryptkeeper/meta.yaml b/recipes/cryptkeeper/meta.yaml new file mode 100644 index 0000000000000..bd612a21cc2c6 --- /dev/null +++ b/recipes/cryptkeeper/meta.yaml @@ -0,0 +1,50 @@ +{% set name = "cryptkeeper" %} +{% set version = "1.0.1" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/cryptkeeper-{{ version }}.tar.gz + sha256: 7e43d858043073a98903b890846636c3b7c9e5ce289fe97c00ff5734d47357e8 + +build: + entry_points: + - cryptkeeper = cryptkeeper.cryptkeeper:main + noarch: python + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + number: 0 + run_exports: + - {{ pin_subpackage("cryptkeeper", max_pin="x") }} + +requirements: + host: + - python >=3.9 + - pip + run: + - python >=3.9 + - ostir + - rhotermpredict + - promotercalculator + - bokeh + - biopython + +test: + imports: + - cryptkeeper + commands: + - cryptkeeper --help + +about: + home: https://github.com/barricklab/cryptkeeper + summary: "A negative design tool for predicting and visualizing undesired gene expression" + license: "GPL-3.0-only" + license_file: LICENSE + license_family: GPL3 + dev_url: https://github.com/barricklab/cryptkeeper + +extra: + recipe-maintainers: + - croots + - jeffreybarrick From 669dd9e5ccc8988672554a5cf2eece249575130e Mon Sep 17 00:00:00 2001 From: Patrik Smeds Date: Mon, 12 Aug 2024 08:03:52 +0200 Subject: [PATCH 0911/1589] feat: recipe to install tool sdust (#49954) * feat: recipe to install tool sdust * clean up recipe * edit meta.yaml --------- Co-authored-by: mencian --- recipes/sdust/build.sh | 13 +++++++++++++ recipes/sdust/meta.yaml | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 recipes/sdust/build.sh create mode 100644 recipes/sdust/meta.yaml diff --git a/recipes/sdust/build.sh b/recipes/sdust/build.sh new file mode 100644 index 0000000000000..7ff428c933942 --- /dev/null +++ b/recipes/sdust/build.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +set -x -e + +export CPATH=${PREFIX}/include + +mkdir -p "${PREFIX}/bin" + +make CC="$CC" -j ${CPU_COUNT} + +chmod 0755 sdust + +cp -rf sdust "${PREFIX}/bin" diff --git a/recipes/sdust/meta.yaml b/recipes/sdust/meta.yaml new file mode 100644 index 0000000000000..3f02219bfa557 --- /dev/null +++ b/recipes/sdust/meta.yaml @@ -0,0 +1,37 @@ +{% set version = "0.1" %} +{% set name = "sdust" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/lh3/sdust/archive/refs/tags/v{{ version }}.tar.gz + sha256: 0825a760fae884e65b2b024cc4f511e32e6c1698571c147daf5a61ba0dcac589 + +build: + number: 0 + run_exports: + - {{ pin_subpackage("sdust", max_pin="x.x") }} + +requirements: + build: + - make + - {{ compiler('cxx') }} + - zlib + host: + - zlib + +test: + commands: + - "sdust 2>&1 | grep 'Usage: sdust'" + +about: + home: "https://github.com/lh3/sdust" + dev_url: "https://github.com/lh3/sdust" + license: Unknown + summary: "Symmetric DUST for finding low-complexity regions in DNA sequences." + +extra: + recipe-maintainers: + - smeds From 673a902343a71488bcafa17c415633cefa3e00cc Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Mon, 12 Aug 2024 01:09:51 -0500 Subject: [PATCH 0912/1589] Add recipe for ropebwt3 v3.3 (#49967) * Add recipe for ropebwt3 v3.3 * edit tests --- recipes/ropebwt3/build.sh | 10 +++++++++ recipes/ropebwt3/meta.yaml | 42 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 recipes/ropebwt3/build.sh create mode 100644 recipes/ropebwt3/meta.yaml diff --git a/recipes/ropebwt3/build.sh b/recipes/ropebwt3/build.sh new file mode 100644 index 0000000000000..5937aa9f2776c --- /dev/null +++ b/recipes/ropebwt3/build.sh @@ -0,0 +1,10 @@ +#!/bin/bash -xe + +make -j ${CPU_COUNT} \ + CC="${CC}" \ + CFLAGS="${CFLAGS} -fcommon -g -Wall -Wc++-compat -O3" \ + LIBS="${LDFLAGS} -lz -lpthread -lm -fopenmp" + +mkdir -p "${PREFIX}/bin" +chmod 0755 ropebwt3 +mv ropebwt3 "${PREFIX}/bin/" diff --git a/recipes/ropebwt3/meta.yaml b/recipes/ropebwt3/meta.yaml new file mode 100644 index 0000000000000..9dda7bde10d1a --- /dev/null +++ b/recipes/ropebwt3/meta.yaml @@ -0,0 +1,42 @@ +{% set name = "ropebwt3" %} +{% set version = "3.3" %} + +package: + name: {{ name }} + version: {{ version }} + +build: + number: 0 + run_exports: + - {{ pin_subpackage('ropebwt3', max_pin="x") }} + +source: + url: https://github.com/lh3/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz + sha256: c16bc6d26c6cdb10b3b1cfdb06f3734c6020e62d72f8c33454eb36520b6c02d3 + +requirements: + build: + - make + - {{ compiler('c') }} + host: + - zlib + - libgomp # [linux] + - llvm-openmp # [osx] + +test: + commands: + - "ropebwt3 version /dev/null 2>&1" + +about: + home: "https://github.com/lh3/ropebwt3" + license: MIT + license_family: MIT + license_file: "LICENSE.txt" + summary: "Constructs the FM-index of a large DNA sequence set and searches for matches against the FM-index." + dev_url: "https://github.com/lh3/ropebwt3" + doc_url: "https://github.com/lh3/ropebwt3/blob/v{{ version }}/README.md" + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From f629d764e44b8f3a6e392416bce05ce19dcfb3ec Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 12 Aug 2024 04:40:47 -0400 Subject: [PATCH 0913/1589] Update graphbin2 to 1.3.2 (#49977) --- recipes/graphbin2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/graphbin2/meta.yaml b/recipes/graphbin2/meta.yaml index e1976a97ce5e1..d2123ff197adf 100644 --- a/recipes/graphbin2/meta.yaml +++ b/recipes/graphbin2/meta.yaml @@ -1,5 +1,5 @@ {% set name = "GraphBin2" %} -{% set version = "1.3.1" %} +{% set version = "1.3.2" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://github.com/metagentools/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz" - sha256: 4086cc93980a4c964da2b9d0ae84eaf3aa4a6b9c01aa23b2c2d965bf85cef5f2 + sha256: 5cb611d539ac2608cf262ea5db39e4d81bc7c9c1a53ea2f5a47fb5d8abcb848a build: number: 0 From c6e3d7a3773e07667b22ad525c72a34359699dd1 Mon Sep 17 00:00:00 2001 From: RolandFaure <64131971+RolandFaure@users.noreply.github.com> Date: Mon, 12 Aug 2024 10:45:50 +0200 Subject: [PATCH 0914/1589] Update HairSplitter version (#49971) * updated harisplitter * Pin libcxx to <18 for OSX Signed-off-by: Martin Tzvetanov Grigorov * Update SHA * update hairsplitter to 1.9.10 --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Grigorov --- recipes/hairsplitter/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/hairsplitter/meta.yaml b/recipes/hairsplitter/meta.yaml index 2b8fcd0ec6156..575d9c4c308cb 100644 --- a/recipes/hairsplitter/meta.yaml +++ b/recipes/hairsplitter/meta.yaml @@ -1,6 +1,7 @@ {% set name = "HairSplitter" %} -{% set version = "1.9.9" %} -{% set sha256 = "1eacdd1bf6a97a223c7a969ff9b77f1791e2866b1619c74f7badc89a9ce46dfe" %} +{% set version = "1.9.10" %} +{% set sha256 = "ab20c7700d9b4cc04fed68933a1c4081167c4c0dd560de7b19672a7fe39b50f8" %} + package: name: {{ name|lower }} From 2ff0063922bc1b835e5d1bdb553acb1dbbff7065 Mon Sep 17 00:00:00 2001 From: Redmar van den Berg <15814544+Redmar-van-den-Berg@users.noreply.github.com> Date: Mon, 12 Aug 2024 11:05:36 +0200 Subject: [PATCH 0915/1589] T1K requires curl to download the HLA refence files (#49976) --- recipes/t1k/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/t1k/meta.yaml b/recipes/t1k/meta.yaml index d1a157c3a6e45..0e4865512483a 100644 --- a/recipes/t1k/meta.yaml +++ b/recipes/t1k/meta.yaml @@ -5,7 +5,7 @@ package: version: '{{ version }}' build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('t1k', max_pin="x") }} @@ -24,6 +24,7 @@ requirements: run: - perl - python + - curl test: commands: From ef2896e7e9c5b989dcf85fd62679d152e24130b2 Mon Sep 17 00:00:00 2001 From: Stefan Janssen Date: Mon, 12 Aug 2024 11:25:21 +0200 Subject: [PATCH 0916/1589] Syncmeta rapidshapes (#49963) * using latest release of upstream * use recent gapc update with hopes to compile on OSX * add subrecipe for older version 4.3.10 (pinned in qiime2) which shall additionally expose upp.config * sync recipe with RNAshapes to avoid version number confusions * use latest package version --- recipes/rapidshapes/meta.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/recipes/rapidshapes/meta.yaml b/recipes/rapidshapes/meta.yaml index 33b9844539cdf..4d47e3bf59d6d 100644 --- a/recipes/rapidshapes/meta.yaml +++ b/recipes/rapidshapes/meta.yaml @@ -1,20 +1,21 @@ -{% set version = "2.3.2" %} +{% set fold_grammars_version = "2.3.2" %} +{% set rapidshapes_version = "2.1.0" %} {% set packagename = "rapidshapes" %} {% set sha256 = "d3e6cc8d2ecd31d4764b41fea589b98c637ff227d7ab3dcfe66f2ad3f24dece5" %} package: name: {{ packagename }} - version: 2.1.0 + version: {{ rapidshapes_version }} source: sha256: {{ sha256 }} # the repository "fold-grammars" contains sources for several programs, i.e. pKiss, RNAshapes, ... # thus, the version number does not correspond to the {{ packagename }} version number #url: https://github.com/jlab/fold-grammars/archive/{{ version }}.tar.gz - url: https://github.com/jlab/fold-grammars/archive/refs/tags/{{ version }}.tar.gz + url: https://github.com/jlab/fold-grammars/archive/refs/tags/{{ fold_grammars_version }}.tar.gz build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('rapidshapes', max_pin="x") }} From 562c6194a712ba9bbe3566fb0257af354f48ae12 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 12 Aug 2024 12:38:21 +0300 Subject: [PATCH 0917/1589] falco: add aarch64/arm64 builds (#49972) * falco: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * Export M4 for osx-arm64 --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/falco/build.sh | 6 +++++- recipes/falco/meta.yaml | 5 ++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/recipes/falco/build.sh b/recipes/falco/build.sh index fe81a6f4127d6..294c111775771 100644 --- a/recipes/falco/build.sh +++ b/recipes/falco/build.sh @@ -1,5 +1,9 @@ #!/bin/bash +set -xe + +export M4="$BUILD_PREFIX/bin/m4" + # add Configuration and example files to opt falco=$PREFIX/opt/falco mkdir -p $falco @@ -13,7 +17,7 @@ export LD_LIBRARY_PATH=$LIBRARY_PATH:${PREFIX}/lib cd $falco ./configure --prefix=$falco --enable-hts -make +make -j ${CPU_COUNT} make install for i in $(ls -1 | grep -v Configuration | grep -v bin); do diff --git a/recipes/falco/meta.yaml b/recipes/falco/meta.yaml index 33e07e1c9e50f..8acc3f753b796 100644 --- a/recipes/falco/meta.yaml +++ b/recipes/falco/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: # falco is currently not intended to be stable between minor versions (x.x). - {{ pin_subpackage('falco', max_pin="x.x") }} @@ -41,6 +41,9 @@ test: - falco extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - andrewdavidsmith - guilhermesena1 From 36f4b841223ec662192625dd5927eee5286a30c5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 12 Aug 2024 06:05:59 -0400 Subject: [PATCH 0918/1589] Update sequali to 0.11.1 (#49979) * Update sequali to 0.11.1 * Move pip and setuptools-scm to build dependencies --------- Co-authored-by: Ruben Vorderman --- recipes/sequali/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/sequali/meta.yaml b/recipes/sequali/meta.yaml index 85a72ca5e63d3..27c8a30620ceb 100644 --- a/recipes/sequali/meta.yaml +++ b/recipes/sequali/meta.yaml @@ -1,5 +1,5 @@ {% set name = "sequali" %} -{% set version = "0.11.0" %} +{% set version = "0.11.1" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 7a166a196d31681b92f893f4d5cac876acf28f972ce292f218ee0ad81deba39c + sha256: d528a9a6eceace4fa8f1ef29625954a759928e7bab02348ef8f92887442f9527 build: number: 0 @@ -23,10 +23,10 @@ build: requirements: build: - "{{ compiler('c') }}" - host: - - python - pip - setuptools-scm >=8.0 + host: + - python run: - pygal >=3.0.4 - python From 9f550ba6a1c91c46f58526a53bfde172840b83b9 Mon Sep 17 00:00:00 2001 From: Sebastian Schmidt <61014855+sebschmi@users.noreply.github.com> Date: Mon, 12 Aug 2024 15:24:26 +0300 Subject: [PATCH 0919/1589] Update matchtigs to 2.1.7. (#49968) * Update matchtigs to 2.1.7. * Fix matchtigs download url. --------- Co-authored-by: mencian * clean up recipe --------- Co-authored-by: mencian Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/matchtigs/build.sh | 8 +- recipes/matchtigs/build_failure.linux-64.yaml | 104 ------------------ recipes/matchtigs/build_failure.osx-64.yaml | 104 ------------------ recipes/matchtigs/meta.yaml | 22 ++-- 4 files changed, 16 insertions(+), 222 deletions(-) delete mode 100644 recipes/matchtigs/build_failure.linux-64.yaml delete mode 100644 recipes/matchtigs/build_failure.osx-64.yaml diff --git a/recipes/matchtigs/build.sh b/recipes/matchtigs/build.sh index b6cbf0da5ee0e..fb79714e8ab7f 100755 --- a/recipes/matchtigs/build.sh +++ b/recipes/matchtigs/build.sh @@ -1,9 +1,3 @@ -#!/bin/bash -e - -# TODO: Remove the following export when pinning is updated and we use -# {{ compiler('rust') }} in the recipe. -export \ - CARGO_NET_GIT_FETCH_WITH_CLI=true \ - CARGO_HOME="${BUILD_PREFIX}/.cargo" +#!/bin/bash -ex cargo install --no-track --verbose --root "${PREFIX}" --path . diff --git a/recipes/matchtigs/build_failure.linux-64.yaml b/recipes/matchtigs/build_failure.linux-64.yaml deleted file mode 100644 index 7efc8e897a32f..0000000000000 --- a/recipes/matchtigs/build_failure.linux-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 02efdfc2f9abb5a0a1b47ed3022a17ded394809c39b45eb88ed5f9cb82af9995 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - Running rustc --crate-name time --edition=2021 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/time-0.3.21/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 --cfg 'feature="alloc"' --cfg 'feature="default"' --cfg 'feature="formatting"' --cfg 'feature="local-offset"' --cfg 'feature="macros"' --cfg 'feature="std"' -C metadata=cd91c07161414263 -C extra-filename=-cd91c07161414263 --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern itoa=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libitoa-62c89c15c3dfb3bd.rmeta --extern libc=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/liblibc-24109b92b56898e0.rmeta --extern num_threads=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libnum_threads-29052a9a6bdcc9a0.rmeta --extern time_core=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libtime_core-2e91ef91f00946ce.rmeta --extern time_macros=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libtime_macros-9ef2748d38fa3eaa.so --cap-lints allow - Compiling bigraph v2.1.1 - Running rustc --crate-name bigraph --edition=2021 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/bigraph-2.1.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 -C metadata=d48072365ca04b7e -C extra-filename=-d48072365ca04b7e --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern bitvector=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libbitvector-86c69f343ae8ebe4.rmeta --extern traitgraph=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libtraitgraph-9d144d98ec7b776d.rmeta --extern traitgraph_algo=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libtraitgraph_algo-0da65161844e678e.rmeta --cap-lints allow - Compiling compact-genome v1.3.1 - Running rustc --crate-name compact_genome --edition=2021 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/compact-genome-1.3.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 -C metadata=f1dacdb0e642ea1d -C extra-filename=-f1dacdb0e642ea1d --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern bitvec=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libbitvec-15d630b4c5e43590.rmeta --extern itertools=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libitertools-ef1bbdf2dc7723ca.rmeta --extern lazy_static=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/liblazy_static-fb705ce03f437159.rmeta --extern ref_cast=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libref_cast-42ca62cc9a853eb0.rmeta --extern traitsequence=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libtraitsequence-1a990810ce5d3411.rmeta --cap-lints allow - Running rustc --crate-name error_chain /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/error-chain-0.12.4/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 --cfg 'feature="backtrace"' --cfg 'feature="default"' --cfg 'feature="example_generated"' -C metadata=de91467585a0f101 -C extra-filename=-de91467585a0f101 --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern backtrace=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libbacktrace-af4cf630bdf33906.rmeta --cap-lints allow --cfg has_error_source --cfg has_error_description_deprecated --cfg 'build="release"' - Running rustc --crate-name crossbeam_queue --edition=2018 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-queue-0.3.8/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 --cfg 'feature="alloc"' --cfg 'feature="std"' -C metadata=a9a20555b2200c9e -C extra-filename=-a9a20555b2200c9e --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern cfg_if=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcfg_if-1f0e8aa877c8070d.rmeta --extern crossbeam_utils=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcrossbeam_utils-469504b851c5f146.rmeta --cap-lints allow - Compiling crossbeam-deque v0.8.3 - Running rustc --crate-name crossbeam_deque --edition=2018 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-deque-0.8.3/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 --cfg 'feature="crossbeam-epoch"' --cfg 'feature="crossbeam-utils"' --cfg 'feature="std"' -C metadata=09b8b5d6c6489017 -C extra-filename=-09b8b5d6c6489017 --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern cfg_if=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcfg_if-1f0e8aa877c8070d.rmeta --extern crossbeam_epoch=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcrossbeam_epoch-03a2a8c23802678b.rmeta --extern crossbeam_utils=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcrossbeam_utils-469504b851c5f146.rmeta --cap-lints allow - Running rustc --crate-name crc32fast /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/crc32fast-1.3.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=1b5dbef380751fbb -C extra-filename=-1b5dbef380751fbb --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern cfg_if=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcfg_if-1f0e8aa877c8070d.rmeta --cap-lints allow --cfg crc32fast_stdarchx86 - Compiling crossbeam-channel v0.5.8 - Running rustc --crate-name crossbeam_channel --edition=2018 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-channel-0.5.8/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 --cfg 'feature="crossbeam-utils"' --cfg 'feature="std"' -C metadata=4ec529cb6862f4cf -C extra-filename=-4ec529cb6862f4cf --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern cfg_if=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcfg_if-1f0e8aa877c8070d.rmeta --extern crossbeam_utils=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcrossbeam_utils-469504b851c5f146.rmeta --cap-lints allow - Compiling miniz_oxide v0.7.1 - Running rustc --crate-name miniz_oxide --edition=2018 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/miniz_oxide-0.7.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 --cfg 'feature="with-alloc"' -C metadata=d4b698deea0ed15d -C extra-filename=-d4b698deea0ed15d --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern adler=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libadler-bc2939b95ebef4b5.rmeta --cap-lints allow - Compiling clap_derive v4.3.0 - Running rustc --crate-name clap_derive --edition=2021 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/clap_derive-4.3.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type proc-macro --emit=dep-info,link -C prefer-dynamic -C embed-bitcode=no -C debug-assertions=off --cfg 'feature="default"' -C metadata=e5c04879dc24b4de -C extra-filename=-e5c04879dc24b4de --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern heck=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libheck-ce3c1226d2131855.rlib --extern proc_macro2=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libproc_macro2-28704a5d3a30d148.rlib --extern quote=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libquote-5e1d4707a1044434.rlib --extern syn=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libsyn-6909a0153da8cd82.rlib --extern proc_macro --cap-lints allow - Compiling termcolor v1.1.3 - Running rustc --crate-name termcolor --edition=2018 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/termcolor-1.1.3/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 -C metadata=bda75f15087c6830 -C extra-filename=-bda75f15087c6830 --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --cap-lints allow - Compiling disjoint-sets v0.4.2 - Running rustc --crate-name disjoint_sets /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/disjoint-sets-0.4.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 -C metadata=cdef6477d36b0c69 -C extra-filename=-cdef6477d36b0c69 --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --cap-lints allow - Compiling genome-graph v5.2.0 - Running rustc --crate-name genome_graph --edition=2021 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/genome-graph-5.2.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 --cfg 'feature="traitgraph-algo"' -C metadata=f1f9f43eca9c0cbc -C extra-filename=-f1f9f43eca9c0cbc --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern anyhow=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libanyhow-970e725c20f36b78.rmeta --extern bigraph=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libbigraph-d48072365ca04b7e.rmeta --extern bio=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libbio-428bb18d1e5e7978.rmeta --extern compact_genome=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcompact_genome-f1dacdb0e642ea1d.rmeta --extern disjoint_sets=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libdisjoint_sets-cdef6477d36b0c69.rmeta --extern error_chain=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/liberror_chain-de91467585a0f101.rmeta --extern log=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/liblog-222ce67e5627d39a.rmeta --extern num_traits=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libnum_traits-91ac9ff4e716de54.rmeta --extern regex=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libregex-e8f29f1319bd1bf9.rmeta --extern traitgraph_algo=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libtraitgraph_algo-0da65161844e678e.rmeta --cap-lints allow - Compiling clap v4.3.0 - Running rustc --crate-name clap --edition=2021 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-4.3.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 --cfg 'feature="cargo"' --cfg 'feature="color"' --cfg 'feature="default"' --cfg 'feature="derive"' --cfg 'feature="error-context"' --cfg 'feature="help"' --cfg 'feature="std"' --cfg 'feature="suggestions"' --cfg 'feature="usage"' -C metadata=62f315ad00245630 -C extra-filename=-62f315ad00245630 --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern clap_builder=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libclap_builder-8be52c6c0fae3a91.rmeta --extern clap_derive=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libclap_derive-e5c04879dc24b4de.so --extern once_cell=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libonce_cell-1af048d720dc90db.rmeta --cap-lints allow - Compiling simplelog v0.12.1 - Running rustc --crate-name simplelog --edition=2018 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/simplelog-0.12.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="local-offset"' --cfg 'feature="termcolor"' -C metadata=570deb8a8d99c61b -C extra-filename=-570deb8a8d99c61b --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern log=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/liblog-222ce67e5627d39a.rmeta --extern termcolor=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libtermcolor-bda75f15087c6830.rmeta --extern time=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libtime-cd91c07161414263.rmeta --cap-lints allow - Compiling flate2 v1.0.26 - Running rustc --crate-name flate2 --edition=2018 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/flate2-1.0.26/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="miniz_oxide"' --cfg 'feature="rust_backend"' -C metadata=e28aebe213d35db0 -C extra-filename=-e28aebe213d35db0 --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern crc32fast=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcrc32fast-1b5dbef380751fbb.rmeta --extern miniz_oxide=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libminiz_oxide-d4b698deea0ed15d.rmeta --cap-lints allow - Compiling crossbeam v0.8.2 - Running rustc --crate-name crossbeam --edition=2018 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-0.8.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 --cfg 'feature="alloc"' --cfg 'feature="crossbeam-channel"' --cfg 'feature="crossbeam-deque"' --cfg 'feature="crossbeam-epoch"' --cfg 'feature="crossbeam-queue"' --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=e0ba050ad89c9cc4 -C extra-filename=-e0ba050ad89c9cc4 --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern cfg_if=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcfg_if-1f0e8aa877c8070d.rmeta --extern crossbeam_channel=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcrossbeam_channel-4ec529cb6862f4cf.rmeta --extern crossbeam_deque=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcrossbeam_deque-09b8b5d6c6489017.rmeta --extern crossbeam_epoch=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcrossbeam_epoch-03a2a8c23802678b.rmeta --extern crossbeam_queue=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcrossbeam_queue-a9a20555b2200c9e.rmeta --extern crossbeam_utils=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcrossbeam_utils-469504b851c5f146.rmeta --cap-lints allow - Compiling memory-stats v1.1.0 - Running rustc --crate-name memory_stats --edition=2021 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/memory-stats-1.1.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 -C metadata=0abaf08295d64751 -C extra-filename=-0abaf08295d64751 --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern libc=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/liblibc-24109b92b56898e0.rmeta --cap-lints allow - Compiling permutation v0.4.1 - Running rustc --crate-name permutation /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/permutation-0.4.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 -C metadata=cbccced583c33429 -C extra-filename=-cbccced583c33429 --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --cap-lints allow - Compiling atomic-counter v1.0.1 - Running rustc --crate-name atomic_counter /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/atomic-counter-1.0.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 -C metadata=83828d0b73047a5b -C extra-filename=-83828d0b73047a5b --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --cap-lints allow - Compiling matchtigs v1.5.5 (/opt/conda/conda-bld/matchtigs_1685352493749/work) - Running rustc --crate-name libmatchtigs --edition=2021 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type rlib --crate-type dylib --emit=dep-info,link -C opt-level=3 -C debuginfo=2 -C metadata=c59794c42c2e5d2c --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern atomic_counter=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libatomic_counter-83828d0b73047a5b.rlib --extern clap=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libclap-62f315ad00245630.rlib --extern crossbeam=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcrossbeam-e0ba050ad89c9cc4.rlib --extern disjoint_sets=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libdisjoint_sets-cdef6477d36b0c69.rlib --extern flate2=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libflate2-e28aebe213d35db0.rlib --extern genome_graph=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libgenome_graph-f1f9f43eca9c0cbc.rlib --extern hashbrown=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libhashbrown-8db72db2c593f85e.rlib --extern itertools=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libitertools-ef1bbdf2dc7723ca.rlib --extern log=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/liblog-222ce67e5627d39a.rlib --extern memory_stats=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libmemory_stats-0abaf08295d64751.rlib --extern permutation=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libpermutation-cbccced583c33429.rlib --extern simplelog=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libsimplelog-570deb8a8d99c61b.rlib --extern traitgraph_algo=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libtraitgraph_algo-0da65161844e678e.rlib - error[E0277]: the trait bound hashbrown::HashMap<_, _>: NodeWeightArray is not satisfied - --> src/implementation/greedytigs/mod.rs:153:17 - | - 153 | hashbrown::HashMap<_, _>, - | ^^^^^^^^^^^^^^^^^^^^^^^^ the trait NodeWeightArray is not implemented for hashbrown::HashMap<_, _> - | - = help: the following other types implement trait NodeWeightArray: - EpochNodeWeightArray - Vec - hashbrown::map::HashMap - note: required by a bound in compute_greedytigs_choose_dijkstra_performance_type - --> src/implementation/greedytigs/mod.rs:171:30 - | - 159 | fn compute_greedytigs_choose_dijkstra_performance_type< - | --------------------------------------------------- required by a bound in this function - ... - 171 | DijkstraNodeWeightArray: NodeWeightArray, - | ^^^^^^^^^^^^^^^^^^^^^^ required by this bound in compute_greedytigs_choose_dijkstra_performance_type - - error[E0277]: the trait bound hashbrown::HashMap<_, _>: NodeWeightArray is not satisfied - --> src/implementation/matchtigs/mod.rs:127:66 - | - 127 | compute_matchtigs::<_, _, _, _, _, DijkstraHeapType, hashbrown::HashMap<_, _>>( - | ^^^^^^^^^^^^^^^^^^^^^^^^ the trait NodeWeightArray is not implemented for hashbrown::HashMap<_, _> - | - = help: the following other types implement trait NodeWeightArray: - EpochNodeWeightArray - Vec - hashbrown::map::HashMap - note: required by a bound in compute_matchtigs - --> src/implementation/matchtigs/mod.rs:152:30 - | - 138 | fn compute_matchtigs< - | ----------------- required by a bound in this function - ... - 152 | DijkstraNodeWeightArray: NodeWeightArray, - | ^^^^^^^^^^^^^^^^^^^^^^ required by this bound in compute_matchtigs - - For more information about this error, try rustc --explain E0277. - error: could not compile matchtigs due to 2 previous errors - - Caused by: - process didn't exit successfully: rustc --crate-name libmatchtigs --edition=2021 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type rlib --crate-type dylib --emit=dep-info,link -C opt-level=3 -C debuginfo=2 -C metadata=c59794c42c2e5d2c --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern atomic_counter=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libatomic_counter-83828d0b73047a5b.rlib --extern clap=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libclap-62f315ad00245630.rlib --extern crossbeam=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcrossbeam-e0ba050ad89c9cc4.rlib --extern disjoint_sets=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libdisjoint_sets-cdef6477d36b0c69.rlib --extern flate2=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libflate2-e28aebe213d35db0.rlib --extern genome_graph=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libgenome_graph-f1f9f43eca9c0cbc.rlib --extern hashbrown=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libhashbrown-8db72db2c593f85e.rlib --extern itertools=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libitertools-ef1bbdf2dc7723ca.rlib --extern log=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/liblog-222ce67e5627d39a.rlib --extern memory_stats=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libmemory_stats-0abaf08295d64751.rlib --extern permutation=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libpermutation-cbccced583c33429.rlib --extern simplelog=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libsimplelog-570deb8a8d99c61b.rlib --extern traitgraph_algo=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libtraitgraph_algo-0da65161844e678e.rlib (exit status: 1) - error: failed to compile matchtigs v1.5.5 (/opt/conda/conda-bld/matchtigs_1685352493749/work), intermediate artifacts can be found at /opt/conda/conda-bld/matchtigs_1685352493749/work/target - Traceback (most recent call last): - File "/opt/conda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/conda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 2198, in build - utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env, - File "/opt/conda/lib/python3.8/site-packages/conda_build/utils.py", line 451, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/conda/lib/python3.8/site-packages/conda_build/utils.py", line 427, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/matchtigs_1685352493749/work/conda_build.sh']' returned non-zero exit status 101. -# Last 100 lines of the build log. diff --git a/recipes/matchtigs/build_failure.osx-64.yaml b/recipes/matchtigs/build_failure.osx-64.yaml deleted file mode 100644 index c1ec0d0846ab8..0000000000000 --- a/recipes/matchtigs/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 02efdfc2f9abb5a0a1b47ed3022a17ded394809c39b45eb88ed5f9cb82af9995 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - Running rustc --crate-name time --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/time-0.3.21/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 --cfg 'feature="alloc"' --cfg 'feature="default"' --cfg 'feature="formatting"' --cfg 'feature="local-offset"' --cfg 'feature="macros"' --cfg 'feature="std"' -C metadata=cff33a254c499774 -C extra-filename=-cff33a254c499774 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern itoa=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libitoa-b6b1c1e87a00a932.rmeta --extern libc=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/liblibc-5ccb4aa1e1d2bd7b.rmeta --extern num_threads=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libnum_threads-89b9574ec870b2e7.rmeta --extern time_core=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libtime_core-efbc93ef8285afaf.rmeta --extern time_macros=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libtime_macros-bdc1a6b7f4a5cf89.dylib --cap-lints allow - Compiling bigraph v2.1.1 - Running rustc --crate-name bigraph --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/bigraph-2.1.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 -C metadata=d2bd8a69f23852a3 -C extra-filename=-d2bd8a69f23852a3 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern bitvector=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libbitvector-62c20adfe03e270b.rmeta --extern traitgraph=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libtraitgraph-bc9e80d37d1ec123.rmeta --extern traitgraph_algo=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libtraitgraph_algo-51afa055a65fcde9.rmeta --cap-lints allow - Compiling compact-genome v1.3.1 - Running rustc --crate-name compact_genome --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/compact-genome-1.3.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 -C metadata=e9d7ac380993b77d -C extra-filename=-e9d7ac380993b77d --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern bitvec=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libbitvec-14901b094009aee9.rmeta --extern itertools=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libitertools-8b37b4be1693c850.rmeta --extern lazy_static=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/liblazy_static-8edbd0d7e87fd514.rmeta --extern ref_cast=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libref_cast-cc0d3a2bee0d0e12.rmeta --extern traitsequence=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libtraitsequence-a531d7f6a4e1fe1e.rmeta --cap-lints allow - Running rustc --crate-name error_chain /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/error-chain-0.12.4/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 --cfg 'feature="backtrace"' --cfg 'feature="default"' --cfg 'feature="example_generated"' -C metadata=6c9568dbb57bc607 -C extra-filename=-6c9568dbb57bc607 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern backtrace=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libbacktrace-570fe45a369c67f4.rmeta --cap-lints allow --cfg has_error_source --cfg has_error_description_deprecated --cfg 'build="release"' - Running rustc --crate-name crc32fast /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/crc32fast-1.3.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=7811e7ccc03c41a3 -C extra-filename=-7811e7ccc03c41a3 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern cfg_if=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcfg_if-339ca62e89c174cb.rmeta --cap-lints allow --cfg crc32fast_stdarchx86 - Compiling crossbeam-deque v0.8.3 - Running rustc --crate-name crossbeam_deque --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-deque-0.8.3/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 --cfg 'feature="crossbeam-epoch"' --cfg 'feature="crossbeam-utils"' --cfg 'feature="std"' -C metadata=7865db6c4e96116f -C extra-filename=-7865db6c4e96116f --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern cfg_if=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcfg_if-339ca62e89c174cb.rmeta --extern crossbeam_epoch=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcrossbeam_epoch-a10e430ec7b298ce.rmeta --extern crossbeam_utils=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcrossbeam_utils-bf65195b665feb14.rmeta --cap-lints allow - Running rustc --crate-name crossbeam_queue --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-queue-0.3.8/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 --cfg 'feature="alloc"' --cfg 'feature="std"' -C metadata=b41cf3aebcf055e5 -C extra-filename=-b41cf3aebcf055e5 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern cfg_if=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcfg_if-339ca62e89c174cb.rmeta --extern crossbeam_utils=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcrossbeam_utils-bf65195b665feb14.rmeta --cap-lints allow - Compiling crossbeam-channel v0.5.8 - Running rustc --crate-name crossbeam_channel --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-channel-0.5.8/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 --cfg 'feature="crossbeam-utils"' --cfg 'feature="std"' -C metadata=7bd094e4aa0096a2 -C extra-filename=-7bd094e4aa0096a2 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern cfg_if=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcfg_if-339ca62e89c174cb.rmeta --extern crossbeam_utils=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcrossbeam_utils-bf65195b665feb14.rmeta --cap-lints allow - Compiling miniz_oxide v0.7.1 - Running rustc --crate-name miniz_oxide --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/miniz_oxide-0.7.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 --cfg 'feature="with-alloc"' -C metadata=3da386d2fb157607 -C extra-filename=-3da386d2fb157607 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern adler=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libadler-754d0b764340dbd6.rmeta --cap-lints allow - Compiling clap_derive v4.3.0 - Running rustc --crate-name clap_derive --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/clap_derive-4.3.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type proc-macro --emit=dep-info,link -C prefer-dynamic -C embed-bitcode=no -C split-debuginfo=unpacked -C debug-assertions=off --cfg 'feature="default"' -C metadata=0f55988242712f27 -C extra-filename=-0f55988242712f27 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern heck=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libheck-62756755ed2fbfaa.rlib --extern proc_macro2=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libproc_macro2-40d3bbe8601e6cec.rlib --extern quote=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libquote-6701b06942490b47.rlib --extern syn=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libsyn-74574b7852e8dedb.rlib --extern proc_macro --cap-lints allow - Compiling disjoint-sets v0.4.2 - Running rustc --crate-name disjoint_sets /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/disjoint-sets-0.4.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 -C metadata=d6b88b013a3f602b -C extra-filename=-d6b88b013a3f602b --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --cap-lints allow - Compiling termcolor v1.1.3 - Running rustc --crate-name termcolor --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/termcolor-1.1.3/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 -C metadata=a4346f1bb9e6cd9d -C extra-filename=-a4346f1bb9e6cd9d --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --cap-lints allow - Compiling simplelog v0.12.1 - Running rustc --crate-name simplelog --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/simplelog-0.12.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="local-offset"' --cfg 'feature="termcolor"' -C metadata=049ab829b27b68bc -C extra-filename=-049ab829b27b68bc --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern log=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/liblog-9e6b74f49674def0.rmeta --extern termcolor=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libtermcolor-a4346f1bb9e6cd9d.rmeta --extern time=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libtime-cff33a254c499774.rmeta --cap-lints allow - Compiling clap v4.3.0 - Running rustc --crate-name clap --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-4.3.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 --cfg 'feature="cargo"' --cfg 'feature="color"' --cfg 'feature="default"' --cfg 'feature="derive"' --cfg 'feature="error-context"' --cfg 'feature="help"' --cfg 'feature="std"' --cfg 'feature="suggestions"' --cfg 'feature="usage"' -C metadata=74d7a9ce665f4d0a -C extra-filename=-74d7a9ce665f4d0a --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern clap_builder=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libclap_builder-a116f0451cad590b.rmeta --extern clap_derive=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libclap_derive-0f55988242712f27.dylib --extern once_cell=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libonce_cell-5097ed0257a50681.rmeta --cap-lints allow - Compiling genome-graph v5.2.0 - Running rustc --crate-name genome_graph --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/genome-graph-5.2.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 --cfg 'feature="traitgraph-algo"' -C metadata=161e13b62f7e18c3 -C extra-filename=-161e13b62f7e18c3 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern anyhow=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libanyhow-1bd97613d181b76f.rmeta --extern bigraph=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libbigraph-d2bd8a69f23852a3.rmeta --extern bio=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libbio-bc9df6df28031d3a.rmeta --extern compact_genome=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcompact_genome-e9d7ac380993b77d.rmeta --extern disjoint_sets=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libdisjoint_sets-d6b88b013a3f602b.rmeta --extern error_chain=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/liberror_chain-6c9568dbb57bc607.rmeta --extern log=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/liblog-9e6b74f49674def0.rmeta --extern num_traits=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libnum_traits-268c3fdbd8502ef9.rmeta --extern regex=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libregex-0703bb8ce6a2ee23.rmeta --extern traitgraph_algo=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libtraitgraph_algo-51afa055a65fcde9.rmeta --cap-lints allow - Compiling flate2 v1.0.26 - Running rustc --crate-name flate2 --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/flate2-1.0.26/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="miniz_oxide"' --cfg 'feature="rust_backend"' -C metadata=e088f03a9f7cc483 -C extra-filename=-e088f03a9f7cc483 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern crc32fast=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcrc32fast-7811e7ccc03c41a3.rmeta --extern miniz_oxide=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libminiz_oxide-3da386d2fb157607.rmeta --cap-lints allow - Compiling crossbeam v0.8.2 - Running rustc --crate-name crossbeam --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-0.8.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 --cfg 'feature="alloc"' --cfg 'feature="crossbeam-channel"' --cfg 'feature="crossbeam-deque"' --cfg 'feature="crossbeam-epoch"' --cfg 'feature="crossbeam-queue"' --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=2b10bb12540e959a -C extra-filename=-2b10bb12540e959a --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern cfg_if=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcfg_if-339ca62e89c174cb.rmeta --extern crossbeam_channel=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcrossbeam_channel-7bd094e4aa0096a2.rmeta --extern crossbeam_deque=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcrossbeam_deque-7865db6c4e96116f.rmeta --extern crossbeam_epoch=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcrossbeam_epoch-a10e430ec7b298ce.rmeta --extern crossbeam_queue=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcrossbeam_queue-b41cf3aebcf055e5.rmeta --extern crossbeam_utils=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcrossbeam_utils-bf65195b665feb14.rmeta --cap-lints allow - Compiling memory-stats v1.1.0 - Running rustc --crate-name memory_stats --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/memory-stats-1.1.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 -C metadata=c00b1209dafae645 -C extra-filename=-c00b1209dafae645 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern libc=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/liblibc-5ccb4aa1e1d2bd7b.rmeta --cap-lints allow - Compiling permutation v0.4.1 - Running rustc --crate-name permutation /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/permutation-0.4.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 -C metadata=b54a1338bdf1876c -C extra-filename=-b54a1338bdf1876c --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --cap-lints allow - Compiling atomic-counter v1.0.1 - Running rustc --crate-name atomic_counter /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/atomic-counter-1.0.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 -C metadata=421a189e98cc8a78 -C extra-filename=-421a189e98cc8a78 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --cap-lints allow - Compiling matchtigs v1.5.5 (/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work) - Running rustc --crate-name libmatchtigs --edition=2021 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type rlib --crate-type dylib --emit=dep-info,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 -C metadata=bd40b947ed26e03b --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern atomic_counter=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libatomic_counter-421a189e98cc8a78.rlib --extern clap=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libclap-74d7a9ce665f4d0a.rlib --extern crossbeam=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcrossbeam-2b10bb12540e959a.rlib --extern disjoint_sets=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libdisjoint_sets-d6b88b013a3f602b.rlib --extern flate2=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libflate2-e088f03a9f7cc483.rlib --extern genome_graph=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libgenome_graph-161e13b62f7e18c3.rlib --extern hashbrown=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libhashbrown-f4ec59303b295fb7.rlib --extern itertools=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libitertools-8b37b4be1693c850.rlib --extern log=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/liblog-9e6b74f49674def0.rlib --extern memory_stats=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libmemory_stats-c00b1209dafae645.rlib --extern permutation=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libpermutation-b54a1338bdf1876c.rlib --extern simplelog=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libsimplelog-049ab829b27b68bc.rlib --extern traitgraph_algo=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libtraitgraph_algo-51afa055a65fcde9.rlib - error[E0277]: the trait bound hashbrown::HashMap<_, _>: NodeWeightArray is not satisfied - --> src/implementation/greedytigs/mod.rs:153:17 - | - 153 | hashbrown::HashMap<_, _>, - | ^^^^^^^^^^^^^^^^^^^^^^^^ the trait NodeWeightArray is not implemented for hashbrown::HashMap<_, _> - | - = help: the following other types implement trait NodeWeightArray: - EpochNodeWeightArray - Vec - hashbrown::map::HashMap - note: required by a bound in compute_greedytigs_choose_dijkstra_performance_type - --> src/implementation/greedytigs/mod.rs:171:30 - | - 159 | fn compute_greedytigs_choose_dijkstra_performance_type< - | --------------------------------------------------- required by a bound in this function - ... - 171 | DijkstraNodeWeightArray: NodeWeightArray, - | ^^^^^^^^^^^^^^^^^^^^^^ required by this bound in compute_greedytigs_choose_dijkstra_performance_type - - error[E0277]: the trait bound hashbrown::HashMap<_, _>: NodeWeightArray is not satisfied - --> src/implementation/matchtigs/mod.rs:127:66 - | - 127 | compute_matchtigs::<_, _, _, _, _, DijkstraHeapType, hashbrown::HashMap<_, _>>( - | ^^^^^^^^^^^^^^^^^^^^^^^^ the trait NodeWeightArray is not implemented for hashbrown::HashMap<_, _> - | - = help: the following other types implement trait NodeWeightArray: - EpochNodeWeightArray - Vec - hashbrown::map::HashMap - note: required by a bound in compute_matchtigs - --> src/implementation/matchtigs/mod.rs:152:30 - | - 138 | fn compute_matchtigs< - | ----------------- required by a bound in this function - ... - 152 | DijkstraNodeWeightArray: NodeWeightArray, - | ^^^^^^^^^^^^^^^^^^^^^^ required by this bound in compute_matchtigs - - For more information about this error, try rustc --explain E0277. - error: could not compile matchtigs due to 2 previous errors - - Caused by: - process didn't exit successfully: rustc --crate-name libmatchtigs --edition=2021 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type rlib --crate-type dylib --emit=dep-info,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 -C metadata=bd40b947ed26e03b --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern atomic_counter=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libatomic_counter-421a189e98cc8a78.rlib --extern clap=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libclap-74d7a9ce665f4d0a.rlib --extern crossbeam=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcrossbeam-2b10bb12540e959a.rlib --extern disjoint_sets=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libdisjoint_sets-d6b88b013a3f602b.rlib --extern flate2=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libflate2-e088f03a9f7cc483.rlib --extern genome_graph=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libgenome_graph-161e13b62f7e18c3.rlib --extern hashbrown=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libhashbrown-f4ec59303b295fb7.rlib --extern itertools=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libitertools-8b37b4be1693c850.rlib --extern log=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/liblog-9e6b74f49674def0.rlib --extern memory_stats=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libmemory_stats-c00b1209dafae645.rlib --extern permutation=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libpermutation-b54a1338bdf1876c.rlib --extern simplelog=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libsimplelog-049ab829b27b68bc.rlib --extern traitgraph_algo=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libtraitgraph_algo-51afa055a65fcde9.rlib (exit status: 1) - error: failed to compile matchtigs v1.5.5 (/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work), intermediate artifacts can be found at /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 2198, in build - utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 451, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 427, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/conda_build.sh']' returned non-zero exit status 101. -# Last 100 lines of the build log. diff --git a/recipes/matchtigs/meta.yaml b/recipes/matchtigs/meta.yaml index 34e9b0af46499..04e2a9e7f5dfa 100644 --- a/recipes/matchtigs/meta.yaml +++ b/recipes/matchtigs/meta.yaml @@ -1,19 +1,22 @@ -{% set version = "2.1.5" %} +{% set name = "matchtigs" %} +{% set version = "2.1.7" %} package: - name: matchtigs + name: {{ name }} version: {{ version }} build: number: 0 + run_exports: + - {{ pin_subpackage('matchtigs', max_pin="x") }} source: - url: https://github.com/algbio/matchtigs/archive/refs/tags/v{{ version }}.tar.gz - sha256: b01f2e3582801eda2f7003a2bf5843c4d4788e71c178eb226e70775aeaf48370 + url: https://github.com/algbio/matchtigs/archive/b809cc85986d4339bd45705e40df9e802816ff80.zip + sha256: 14079f983631b2ba5a41a01f8afd5786e6351722aba3da6b46ccd4cb46c03656 requirements: build: - - rust >=1.65 + - {{ compiler('rust') }} - {{ compiler('c') }} test: @@ -21,10 +24,15 @@ test: - matchtigs --help about: - home: https://github.com/algbio/matchtigs.git + home: "https://github.com/algbio/matchtigs" license: MIT + license_family: MIT summary: | - Different algorithms for computing small and minimum plain text representations of kmer sets. + "Different algorithms for computing small and minimum plain text representations of kmer sets." + dev_url: "https://github.com/algbio/matchtigs" + extra: recipe-maintainers: - sebschmi + identifiers: + - doi:10.1186/s13059-023-02968-z From 153f1c510f34233b2ed352799be43c5fd400b5bb Mon Sep 17 00:00:00 2001 From: Ruben Vorderman Date: Mon, 12 Aug 2024 14:27:58 +0200 Subject: [PATCH 0920/1589] Sequali: Fix versioning (#49985) setuptools-scm needs to be at `host` in order to be used for the package. --- recipes/sequali/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/sequali/meta.yaml b/recipes/sequali/meta.yaml index 27c8a30620ceb..de833c1a59dee 100644 --- a/recipes/sequali/meta.yaml +++ b/recipes/sequali/meta.yaml @@ -10,7 +10,7 @@ source: sha256: d528a9a6eceace4fa8f1ef29625954a759928e7bab02348ef8f92887442f9527 build: - number: 0 + number: 1 entry_points: - sequali=sequali.__main__:main - sequali-report=sequali.__main__:sequali_report @@ -23,10 +23,10 @@ build: requirements: build: - "{{ compiler('c') }}" - - pip - - setuptools-scm >=8.0 host: - python + - pip + - setuptools-scm >=8.0 run: - pygal >=3.0.4 - python From e3ab62772bf3a932a07b9ec522fce50c09bfcee8 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 12 Aug 2024 16:55:16 +0300 Subject: [PATCH 0921/1589] matchtigs: add aarch64/arm64 builds (#49987) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/matchtigs/meta.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/recipes/matchtigs/meta.yaml b/recipes/matchtigs/meta.yaml index 04e2a9e7f5dfa..c27476b2c0647 100644 --- a/recipes/matchtigs/meta.yaml +++ b/recipes/matchtigs/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('matchtigs', max_pin="x") }} @@ -32,6 +32,9 @@ about: dev_url: "https://github.com/algbio/matchtigs" extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - sebschmi identifiers: From ed04b62c910ecff55984df73af43d0b3119ed134 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 12 Aug 2024 16:55:43 +0300 Subject: [PATCH 0922/1589] acms: add linux-aarch64 support (#49981) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/acms/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/acms/meta.yaml b/recipes/acms/meta.yaml index d3a8e129c7d2a..3c3dfbe30c7fd 100644 --- a/recipes/acms/meta.yaml +++ b/recipes/acms/meta.yaml @@ -15,7 +15,7 @@ source: url: https://github.com/jlab/fold-grammars/archive/refs/tags/{{ fold_grammars_version }}.tar.gz build: - number: 0 + number: 1 skip: True # [osx] run_exports: - {{ pin_subpackage('acms', max_pin="x") }} @@ -45,6 +45,8 @@ about: summary: 'Ambivalent Covariance Models (aCMs) are our prototypic suggestion to extend CMs with more than one consensus structure.' extra: + additional-platforms: + - linux-aarch64 identifiers: - doi:10.1186/s12859-015-0569-1 - doi:10.1093/bioinformatics/btu649 From b562f3453a28a45f01f5fee3cff82831f9e7e4ca Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 12 Aug 2024 10:47:57 -0400 Subject: [PATCH 0923/1589] Update varlociraptor to 8.4.10 (#49988) --- recipes/varlociraptor/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/varlociraptor/meta.yaml b/recipes/varlociraptor/meta.yaml index a7b36a5733c75..1a5931af0a496 100644 --- a/recipes/varlociraptor/meta.yaml +++ b/recipes/varlociraptor/meta.yaml @@ -1,5 +1,5 @@ {% set name = "varlociraptor" %} -{% set version = "8.4.9" %} +{% set version = "8.4.10" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/varlociraptor/varlociraptor/archive/v{{ version }}.tar.gz - sha256: f55476d87dabf3e4a6792b42b91beb06ec1b7c5812aca937765f15b13bc6222d + sha256: 243e24e0da2025d3098319c956f7884d5eca20dbb95ed8695867c223b0cc1fd5 build: number: 0 From 67210e4c98321c93b65581b9a68c3dac6742d95c Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 12 Aug 2024 18:56:24 +0300 Subject: [PATCH 0924/1589] hairsplitter & minigraph: add aarch64/arm64 builds (#49980) * hairsplitter: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * hairsplitter: replace openmp with libgomp/llvm-openmp Signed-off-by: Martin Tzvetanov Grigorov * minigraph: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * minigraph: add a patch for aarch64/arm64 Signed-off-by: Martin Tzvetanov Grigorov * hairsplitter: Add a patch for ARM64 Signed-off-by: Martin Tzvetanov Grigorov * Do not try to build osx-arm64. Several dependencies are not available --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/hairsplitter/build.sh | 6 ++- .../hairsplitter/hairsplitter-aarch64.patch | 42 +++++++++++++++++++ recipes/hairsplitter/meta.yaml | 14 +++++-- recipes/minigraph/build.sh | 4 +- recipes/minigraph/meta.yaml | 6 ++- recipes/minigraph/minigraph-aarch64.patch | 11 +++++ 6 files changed, 76 insertions(+), 7 deletions(-) create mode 100644 recipes/hairsplitter/hairsplitter-aarch64.patch create mode 100644 recipes/minigraph/minigraph-aarch64.patch diff --git a/recipes/hairsplitter/build.sh b/recipes/hairsplitter/build.sh index 98c511dc2b5c4..cb5aef39527fd 100644 --- a/recipes/hairsplitter/build.sh +++ b/recipes/hairsplitter/build.sh @@ -1,9 +1,13 @@ +#!/usr/bin/env bash + +set -xe + mkdir -p $PREFIX/bin mkdir src/build cd src/build/ cmake .. -make +make -j ${CPU_COUNT} cp ../../hairsplitter.py $PREFIX/bin chmod +x $PREFIX/bin/hairsplitter.py diff --git a/recipes/hairsplitter/hairsplitter-aarch64.patch b/recipes/hairsplitter/hairsplitter-aarch64.patch new file mode 100644 index 0000000000000..7a0bbee7822da --- /dev/null +++ b/recipes/hairsplitter/hairsplitter-aarch64.patch @@ -0,0 +1,42 @@ +diff --git i/src/CMakeLists.txt w/src/CMakeLists.txt +index f351aa6..edc0f62 100644 +--- i/src/CMakeLists.txt ++++ w/src/CMakeLists.txt +@@ -100,7 +100,7 @@ target_compile_options (HS_call_variants PRIVATE -lm) + target_compile_options (HS_call_variants PRIVATE -fopenmp) + target_compile_options (HS_call_variants PRIVATE -std=c++17) + target_compile_options (HS_call_variants PRIVATE -O3) +-target_compile_options (HS_call_variants PRIVATE -march=x86-64) ++#target_compile_options (HS_call_variants PRIVATE -march=x86-64) + + + file (GLOB SOURCE_SEPARATE_READS "separate_reads.cpp" "input_output.cpp" "cluster_graph.cpp" "robin_hood.h" "tools.cpp" "read.cpp" "sequence.cpp" "Partition.cpp") +@@ -111,7 +111,7 @@ target_compile_options (HS_separate_reads PRIVATE -lm) + target_compile_options (HS_separate_reads PRIVATE -fopenmp) + target_compile_options (HS_separate_reads PRIVATE -std=c++17) + target_compile_options (HS_separate_reads PRIVATE -O3) +-target_compile_options (HS_separate_reads PRIVATE -march=x86-64) ++#target_compile_options (HS_separate_reads PRIVATE -march=x86-64) + + file (GLOB SOURCE_CREATE_NEW_CONTIG "create_new_contigs.cpp" "input_output.cpp" "robin_hood.h" "tools.cpp" "read.cpp" "sequence.cpp" "Partition.cpp") + add_executable(HS_create_new_contigs ${SOURCE_CREATE_NEW_CONTIG} edlib/src/edlib.cpp) +@@ -120,7 +120,7 @@ target_compile_options (HS_create_new_contigs PRIVATE -lm) + target_compile_options (HS_create_new_contigs PRIVATE -fopenmp) + target_compile_options (HS_create_new_contigs PRIVATE -std=c++17) + target_compile_options (HS_create_new_contigs PRIVATE -O3) +-target_compile_options (HS_create_new_contigs PRIVATE -march=x86-64) ++#target_compile_options (HS_create_new_contigs PRIVATE -march=x86-64) + + find_package(OpenMP) + if(OpenMP_CXX_FOUND) +diff --git i/src/HS_GenomeTailor/CMakeLists.txt w/src/HS_GenomeTailor/CMakeLists.txt +index 80ee4dc..f117ecc 100644 +--- i/src/HS_GenomeTailor/CMakeLists.txt ++++ w/src/HS_GenomeTailor/CMakeLists.txt +@@ -25,4 +25,4 @@ target_compile_options (HS_GenomeTailor PRIVATE -g) + target_compile_options (HS_GenomeTailor PRIVATE -lm) + target_compile_options (HS_GenomeTailor PRIVATE -std=c++17) + target_compile_options (HS_GenomeTailor PRIVATE -O3) +-target_compile_options (HS_GenomeTailor PRIVATE -march=x86-64) +\ No newline at end of file ++#target_compile_options (HS_GenomeTailor PRIVATE -march=x86-64) diff --git a/recipes/hairsplitter/meta.yaml b/recipes/hairsplitter/meta.yaml index 575d9c4c308cb..ab11e4a74d624 100644 --- a/recipes/hairsplitter/meta.yaml +++ b/recipes/hairsplitter/meta.yaml @@ -10,9 +10,11 @@ package: source: url: https://github.com/RolandFaure/HairSplitter/archive/refs/tags/v{{ version }}.tar.gz sha256: {{ sha256 }} + patches: + - hairsplitter-aarch64.patch build: - number : 0 + number : 1 run_exports: - {{ pin_subpackage("hairsplitter", max_pin="x.x") }} @@ -20,9 +22,11 @@ requirements: build: - cmake - make - - openmp - {{ compiler('cxx') }} - libcxx <18 # [osx] + host: + - libgomp # [linux] + - llvm-openmp # [osx] run: - python - scipy @@ -31,7 +35,8 @@ requirements: - minigraph >=0.20 - racon - samtools >=1.16 - - openmp + - libgomp # [linux] + - llvm-openmp # [osx] - raven-assembler test: @@ -39,6 +44,8 @@ test: - hairsplitter.py --help extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - rolandfaure @@ -48,4 +55,3 @@ about: license_file: LICENSE summary: "Recovers collapsed haplotypes from a draft assembly and long reads" maintainer : RolandFaure # Optional - diff --git a/recipes/minigraph/build.sh b/recipes/minigraph/build.sh index 36a34c892d737..4391a7aaca22f 100644 --- a/recipes/minigraph/build.sh +++ b/recipes/minigraph/build.sh @@ -1,9 +1,11 @@ #!/bin/bash +set -xe + mkdir -p $PREFIX/bin export C_INCLUDE_PATH="${PREFIX}/include" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" -make CC="${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" CXX="${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}" +make -j ${CPU_COUNT} CC="${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" CXX="${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}" cp minigraph $PREFIX/bin diff --git a/recipes/minigraph/meta.yaml b/recipes/minigraph/meta.yaml index 6a1a93b243c54..456963ae6b205 100644 --- a/recipes/minigraph/meta.yaml +++ b/recipes/minigraph/meta.yaml @@ -8,9 +8,11 @@ package: source: url: https://github.com/lh3/minigraph/archive/refs/tags/v{{ version }}.tar.gz sha256: 4272447393f0ae1e656376abe144de96cbafc777414d4c496f735dd4a6d3c06a + patches: + - minigraph-aarch64.patch # [aarch64 or arm64] build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('minigraph', max_pin="x.x") }} @@ -35,5 +37,7 @@ about: dev_url: https://github.com/lh3/minigraph extra: + additional-platforms: + - linux-aarch64 identifiers: - doi:10.1186/s13059-020-02168-z diff --git a/recipes/minigraph/minigraph-aarch64.patch b/recipes/minigraph/minigraph-aarch64.patch new file mode 100644 index 0000000000000..8223b8cc34900 --- /dev/null +++ b/recipes/minigraph/minigraph-aarch64.patch @@ -0,0 +1,11 @@ +diff --git c/Makefile i/Makefile +index 4dd33e6..8c49614 100644 +--- c/Makefile ++++ i/Makefile +@@ -1,5 +1,5 @@ + CC= gcc +-CFLAGS= -g -Wall -Wc++-compat -std=c99 -msse4 -O3 ++CFLAGS= -g -Wall -Wc++-compat -std=c99 -O3 + CPPFLAGS= + INCLUDES= + OBJS= kalloc.o kthread.o algo.o sys.o gfa-base.o gfa-io.o gfa-aug.o gfa-bbl.o gfa-ed.o \ From c41ac4d1eddb7116db766769bb1f276d5141a2a3 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 12 Aug 2024 18:56:33 +0300 Subject: [PATCH 0925/1589] sdust: add aarch64/arm64 builds (#49974) * sdust: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * Update recipes/sdust/build.sh * Update recipes/sdust/build.sh * Update recipes/sdust/build.sh * Add -L$PREFIX/lib to CFLAGS This way it is used by all compilation tasks: https://github.com/lh3/sdust/blob/89c42cb41ba598e9cfa07c2ef99ae8c08f769b3e/Makefile#L23 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/sdust/build.sh | 4 +--- recipes/sdust/meta.yaml | 6 ++++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/recipes/sdust/build.sh b/recipes/sdust/build.sh index 7ff428c933942..c495ad0379c1a 100644 --- a/recipes/sdust/build.sh +++ b/recipes/sdust/build.sh @@ -2,11 +2,9 @@ set -x -e -export CPATH=${PREFIX}/include - mkdir -p "${PREFIX}/bin" -make CC="$CC" -j ${CPU_COUNT} +make -j ${CPU_COUNT} CC="$CC" CFLAGS="${CFLAGS} -I${PREFIX}/include -L${PREFIX}/lib" chmod 0755 sdust diff --git a/recipes/sdust/meta.yaml b/recipes/sdust/meta.yaml index 3f02219bfa557..f26962300d506 100644 --- a/recipes/sdust/meta.yaml +++ b/recipes/sdust/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 0825a760fae884e65b2b024cc4f511e32e6c1698571c147daf5a61ba0dcac589 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("sdust", max_pin="x.x") }} @@ -18,7 +18,6 @@ requirements: build: - make - {{ compiler('cxx') }} - - zlib host: - zlib @@ -33,5 +32,8 @@ about: summary: "Symmetric DUST for finding low-complexity regions in DNA sequences." extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - smeds From 39ddafb164270d11965893b9da147cc6d4f16e1a Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 12 Aug 2024 18:56:42 +0300 Subject: [PATCH 0926/1589] rapidnj: add aarch64/arm64 builds (#49973) * rapidnj: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * rapidnj: add a patch for aarch64/arm64 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/rapidnj/build.sh | 4 +- recipes/rapidnj/meta.yaml | 16 +- recipes/rapidnj/rapidnj-aarch64.patch | 9485 +++++++++++++++++++++++++ 3 files changed, 9500 insertions(+), 5 deletions(-) create mode 100644 recipes/rapidnj/rapidnj-aarch64.patch diff --git a/recipes/rapidnj/build.sh b/recipes/rapidnj/build.sh index 9ff3b44dfe4df..8381fefdb8c22 100755 --- a/recipes/rapidnj/build.sh +++ b/recipes/rapidnj/build.sh @@ -1,5 +1,7 @@ #!/bin/sh -make CC="${CXX}" LINK="${CXX}" SWITCHES="${CPPFLAGS} ${CXXFLAGS} -std=c++14 ${LDFLAGS}" +set -xe + +make -j ${CPU_COUNT} CC="${CXX}" LINK="${CXX}" SWITCHES="${CPPFLAGS} ${CXXFLAGS} -std=c++14 ${LDFLAGS}" install -d "${PREFIX}/bin" install bin/rapidnj "${PREFIX}/bin/" diff --git a/recipes/rapidnj/meta.yaml b/recipes/rapidnj/meta.yaml index 150a9f9f9673a..885e496afe478 100644 --- a/recipes/rapidnj/meta.yaml +++ b/recipes/rapidnj/meta.yaml @@ -7,9 +7,13 @@ package: source: url: https://github.com/johnlees/rapidnj/archive/v{{ version }}.tar.gz sha256: 7b81dc84cb1d4ac6e24d15e18ae50460b496bc3476a0bc0935553dff085480dd + patches: + - rapidnj-aarch64.patch # [aarch64 or arm64] build: - number: 4 + number: 5 + run_exports: + - {{ pin_subpackage('rapidnj', max_pin="x") }} requirements: build: @@ -23,14 +27,18 @@ test: about: home: http://birc.au.dk/software/rapidnj/ - license: GPL-2 + license: GPL-2-only license_family: GPL license_file: LICENSE summary: RapidNJ is an algorithmic engineered implementation of canonical neighbour-joining. It uses an efficient search heuristic to speed-up the core computations of the neighbour-joining method that enables RapidNJ to outperform other state-of-the-art neighbour-joining implementations. + dev_url: https://github.com/johnlees/rapidnj extra: - identifiers: - - doi:10.1007/978-3-540-87361-7_10 + additional-platforms: + - linux-aarch64 + - osx-arm64 + identifiers: + - doi:10.1007/978-3-540-87361-7_10 diff --git a/recipes/rapidnj/rapidnj-aarch64.patch b/recipes/rapidnj/rapidnj-aarch64.patch new file mode 100644 index 0000000000000..9f33d3de82e07 --- /dev/null +++ b/recipes/rapidnj/rapidnj-aarch64.patch @@ -0,0 +1,9485 @@ +diff --git c/Makefile i/Makefile +index d8087e2..fc63986 100644 +--- c/Makefile ++++ i/Makefile +@@ -14,7 +14,7 @@ INCLUDES= -Isrc/distanceCalculation -Isrc/ -Ilib/includes + else + CC = g++ + LINK = g++ +-OPTIMIZATION_LEVEL=-O3 -msse2 ++OPTIMIZATION_LEVEL=-O3 + DEBUG= -Wall #-g #-pg + OBJECTFLAG =-o + COMPILEFLAG =-c +diff --git c/src/distanceCalculation/bitDistanceProtein.cpp i/src/distanceCalculation/bitDistanceProtein.cpp +index 8a53811..d21fa7f 100755 +--- c/src/distanceCalculation/bitDistanceProtein.cpp ++++ i/src/distanceCalculation/bitDistanceProtein.cpp +@@ -1,5 +1,10 @@ + #include "bitDistanceProtein.hpp" ++ ++#ifdef __ARM_NEON ++#include "sse2neon.h" ++#else + #include ++#endif + + v4ui bitDistanceProtein::mask1of8 = _mm_set_epi32(0x01010101,0x01010101,0x01010101,0x01010101); + v4ui bitDistanceProtein::mask8 = _mm_set_epi32(0x00ff00ff,0x00ff00ff,0x00ff00ff,0x00ff00ff); +diff --git c/src/sse2neon.h i/src/sse2neon.h +new file mode 100644 +index 0000000..50f5646 +--- /dev/null ++++ i/src/sse2neon.h +@@ -0,0 +1,9429 @@ ++#ifndef SSE2NEON_H ++#define SSE2NEON_H ++ ++/* ++ * sse2neon is freely redistributable under the MIT License. ++ * ++ * Copyright (c) 2015-2024 SSE2NEON Contributors. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a copy ++ * of this software and associated documentation files (the "Software"), to deal ++ * in the Software without restriction, including without limitation the rights ++ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ++ * copies of the Software, and to permit persons to whom the Software is ++ * furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice shall be included in ++ * all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++ * SOFTWARE. ++ */ ++ ++// This header file provides a simple API translation layer ++// between SSE intrinsics to their corresponding Arm/Aarch64 NEON versions ++// ++// Contributors to this work are: ++// John W. Ratcliff ++// Brandon Rowlett ++// Ken Fast ++// Eric van Beurden ++// Alexander Potylitsin ++// Hasindu Gamaarachchi ++// Jim Huang ++// Mark Cheng ++// Malcolm James MacLeod ++// Devin Hussey (easyaspi314) ++// Sebastian Pop ++// Developer Ecosystem Engineering ++// Danila Kutenin ++// François Turban (JishinMaster) ++// Pei-Hsuan Hung ++// Yang-Hao Yuan ++// Syoyo Fujita ++// Brecht Van Lommel ++// Jonathan Hue ++// Cuda Chen ++// Aymen Qader ++// Anthony Roberts ++ ++/* Tunable configurations */ ++ ++/* Enable precise implementation of math operations ++ * This would slow down the computation a bit, but gives consistent result with ++ * x86 SSE. (e.g. would solve a hole or NaN pixel in the rendering result) ++ */ ++/* _mm_min|max_ps|ss|pd|sd */ ++#ifndef SSE2NEON_PRECISE_MINMAX ++#define SSE2NEON_PRECISE_MINMAX (0) ++#endif ++/* _mm_rcp_ps */ ++#ifndef SSE2NEON_PRECISE_DIV ++#define SSE2NEON_PRECISE_DIV (0) ++#endif ++/* _mm_sqrt_ps and _mm_rsqrt_ps */ ++#ifndef SSE2NEON_PRECISE_SQRT ++#define SSE2NEON_PRECISE_SQRT (0) ++#endif ++/* _mm_dp_pd */ ++#ifndef SSE2NEON_PRECISE_DP ++#define SSE2NEON_PRECISE_DP (0) ++#endif ++ ++/* Enable inclusion of windows.h on MSVC platforms ++ * This makes _mm_clflush functional on windows, as there is no builtin. ++ */ ++#ifndef SSE2NEON_INCLUDE_WINDOWS_H ++#define SSE2NEON_INCLUDE_WINDOWS_H (0) ++#endif ++ ++/* compiler specific definitions */ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma push_macro("FORCE_INLINE") ++#pragma push_macro("ALIGN_STRUCT") ++#define FORCE_INLINE static inline __attribute__((always_inline)) ++#define ALIGN_STRUCT(x) __attribute__((aligned(x))) ++#define _sse2neon_likely(x) __builtin_expect(!!(x), 1) ++#define _sse2neon_unlikely(x) __builtin_expect(!!(x), 0) ++#elif defined(_MSC_VER) ++#if _MSVC_TRADITIONAL ++#error Using the traditional MSVC preprocessor is not supported! Use /Zc:preprocessor instead. ++#endif ++#ifndef FORCE_INLINE ++#define FORCE_INLINE static inline ++#endif ++#ifndef ALIGN_STRUCT ++#define ALIGN_STRUCT(x) __declspec(align(x)) ++#endif ++#define _sse2neon_likely(x) (x) ++#define _sse2neon_unlikely(x) (x) ++#else ++#pragma message("Macro name collisions may happen with unsupported compilers.") ++#endif ++ ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma push_macro("FORCE_INLINE_OPTNONE") ++#define FORCE_INLINE_OPTNONE static inline __attribute__((optimize("O0"))) ++#elif defined(__clang__) ++#pragma push_macro("FORCE_INLINE_OPTNONE") ++#define FORCE_INLINE_OPTNONE static inline __attribute__((optnone)) ++#else ++#define FORCE_INLINE_OPTNONE FORCE_INLINE ++#endif ++ ++#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ < 10 ++#warning "GCC versions earlier than 10 are not supported." ++#endif ++ ++/* C language does not allow initializing a variable with a function call. */ ++#ifdef __cplusplus ++#define _sse2neon_const static const ++#else ++#define _sse2neon_const const ++#endif ++ ++#include ++#include ++#include ++ ++FORCE_INLINE double sse2neon_recast_u64_f64(uint64_t u64) ++{ ++ double f64; ++ memcpy(&f64, &u64, sizeof(uint64_t)); ++ return f64; ++} ++FORCE_INLINE int64_t sse2neon_recast_f64_s64(double f64) ++{ ++ int64_t i64; ++ memcpy(&i64, &f64, sizeof(uint64_t)); ++ return i64; ++} ++ ++#if defined(_WIN32) ++/* Definitions for _mm_{malloc,free} are provided by ++ * from both MinGW-w64 and MSVC. ++ */ ++#define SSE2NEON_ALLOC_DEFINED ++#endif ++ ++/* If using MSVC */ ++#ifdef _MSC_VER ++#include ++#if SSE2NEON_INCLUDE_WINDOWS_H ++#include ++#include ++#endif ++ ++#if !defined(__cplusplus) ++#error SSE2NEON only supports C++ compilation with this compiler ++#endif ++ ++#ifdef SSE2NEON_ALLOC_DEFINED ++#include ++#endif ++ ++#if (defined(_M_AMD64) || defined(__x86_64__)) || \ ++ (defined(_M_ARM64) || defined(__arm64__)) ++#define SSE2NEON_HAS_BITSCAN64 ++#endif ++#endif ++ ++#if defined(__GNUC__) || defined(__clang__) ++#define _sse2neon_define0(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define1(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define2(type, a, b, body) \ ++ __extension__({ \ ++ type _a = (a), _b = (b); \ ++ body \ ++ }) ++#define _sse2neon_return(ret) (ret) ++#else ++#define _sse2neon_define0(type, a, body) [=](type _a) { body }(a) ++#define _sse2neon_define1(type, a, body) [](type _a) { body }(a) ++#define _sse2neon_define2(type, a, b, body) \ ++ [](type _a, type _b) { body }((a), (b)) ++#define _sse2neon_return(ret) return ret ++#endif ++ ++#define _sse2neon_init(...) \ ++ { \ ++ __VA_ARGS__ \ ++ } ++ ++/* Compiler barrier */ ++#if defined(_MSC_VER) && !defined(__clang__) ++#define SSE2NEON_BARRIER() _ReadWriteBarrier() ++#else ++#define SSE2NEON_BARRIER() \ ++ do { \ ++ __asm__ __volatile__("" ::: "memory"); \ ++ (void) 0; \ ++ } while (0) ++#endif ++ ++/* Memory barriers ++ * __atomic_thread_fence does not include a compiler barrier; instead, ++ * the barrier is part of __atomic_load/__atomic_store's "volatile-like" ++ * semantics. ++ */ ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) ++#include ++#endif ++ ++FORCE_INLINE void _sse2neon_smp_mb(void) ++{ ++ SSE2NEON_BARRIER(); ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && \ ++ !defined(__STDC_NO_ATOMICS__) ++ atomic_thread_fence(memory_order_seq_cst); ++#elif defined(__GNUC__) || defined(__clang__) ++ __atomic_thread_fence(__ATOMIC_SEQ_CST); ++#else /* MSVC */ ++ __dmb(_ARM64_BARRIER_ISH); ++#endif ++} ++ ++/* Architecture-specific build options */ ++/* FIXME: #pragma GCC push_options is only available on GCC */ ++#if defined(__GNUC__) ++#if defined(__arm__) && __ARM_ARCH == 7 ++/* According to ARM C Language Extensions Architecture specification, ++ * __ARM_NEON is defined to a value indicating the Advanced SIMD (NEON) ++ * architecture supported. ++ */ ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error "You must enable NEON instructions (e.g. -mfpu=neon) to use SSE2NEON." ++#endif ++#if !defined(__clang__) ++#pragma GCC push_options ++#pragma GCC target("fpu=neon") ++#endif ++#elif defined(__aarch64__) || defined(_M_ARM64) ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#pragma GCC target("+simd") ++#endif ++#elif __ARM_ARCH == 8 ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error \ ++ "You must enable NEON instructions (e.g. -mfpu=neon-fp-armv8) to use SSE2NEON." ++#endif ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#endif ++#else ++#error \ ++ "Unsupported target. Must be either ARMv7-A+NEON or ARMv8-A \ ++(you could try setting target explicitly with -march or -mcpu)" ++#endif ++#endif ++ ++#include ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) && (__ARM_ARCH == 8) ++#if defined __has_include && __has_include() ++#include ++#endif ++#endif ++ ++/* Apple Silicon cache lines are double of what is commonly used by Intel, AMD ++ * and other Arm microarchitectures use. ++ * From sysctl -a on Apple M1: ++ * hw.cachelinesize: 128 ++ */ ++#if defined(__APPLE__) && (defined(__aarch64__) || defined(__arm64__)) ++#define SSE2NEON_CACHELINE_SIZE 128 ++#else ++#define SSE2NEON_CACHELINE_SIZE 64 ++#endif ++ ++/* Rounding functions require either Aarch64 instructions or libm fallback */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#include ++#endif ++ ++/* On ARMv7, some registers, such as PMUSERENR and PMCCNTR, are read-only ++ * or even not accessible in user mode. ++ * To write or access to these registers in user mode, ++ * we have to perform syscall instead. ++ */ ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) ++#include ++#endif ++ ++/* "__has_builtin" can be used to query support for built-in functions ++ * provided by gcc/clang and other compilers that support it. ++ */ ++#ifndef __has_builtin /* GCC prior to 10 or non-clang compilers */ ++/* Compatibility with gcc <= 9 */ ++#if defined(__GNUC__) && (__GNUC__ <= 9) ++#define __has_builtin(x) HAS##x ++#define HAS__builtin_popcount 1 ++#define HAS__builtin_popcountll 1 ++ ++// __builtin_shuffle introduced in GCC 4.7.0 ++#if (__GNUC__ >= 5) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) ++#define HAS__builtin_shuffle 1 ++#else ++#define HAS__builtin_shuffle 0 ++#endif ++ ++#define HAS__builtin_shufflevector 0 ++#define HAS__builtin_nontemporal_store 0 ++#else ++#define __has_builtin(x) 0 ++#endif ++#endif ++ ++/** ++ * MACRO for shuffle parameter for _mm_shuffle_ps(). ++ * Argument fp3 is a digit[0123] that represents the fp from argument "b" ++ * of mm_shuffle_ps that will be placed in fp3 of result. fp2 is the same ++ * for fp2 in result. fp1 is a digit[0123] that represents the fp from ++ * argument "a" of mm_shuffle_ps that will be places in fp1 of result. ++ * fp0 is the same for fp0 of result. ++ */ ++#define _MM_SHUFFLE(fp3, fp2, fp1, fp0) \ ++ (((fp3) << 6) | ((fp2) << 4) | ((fp1) << 2) | ((fp0))) ++ ++#if __has_builtin(__builtin_shufflevector) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __builtin_shufflevector(a, b, __VA_ARGS__) ++#elif __has_builtin(__builtin_shuffle) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __extension__({ \ ++ type tmp = {__VA_ARGS__}; \ ++ __builtin_shuffle(a, b, tmp); \ ++ }) ++#endif ++ ++#ifdef _sse2neon_shuffle ++#define vshuffle_s16(a, b, ...) _sse2neon_shuffle(int16x4_t, a, b, __VA_ARGS__) ++#define vshuffleq_s16(a, b, ...) _sse2neon_shuffle(int16x8_t, a, b, __VA_ARGS__) ++#define vshuffle_s32(a, b, ...) _sse2neon_shuffle(int32x2_t, a, b, __VA_ARGS__) ++#define vshuffleq_s32(a, b, ...) _sse2neon_shuffle(int32x4_t, a, b, __VA_ARGS__) ++#define vshuffle_s64(a, b, ...) _sse2neon_shuffle(int64x1_t, a, b, __VA_ARGS__) ++#define vshuffleq_s64(a, b, ...) _sse2neon_shuffle(int64x2_t, a, b, __VA_ARGS__) ++#endif ++ ++/* Rounding mode macros. */ ++#define _MM_FROUND_TO_NEAREST_INT 0x00 ++#define _MM_FROUND_TO_NEG_INF 0x01 ++#define _MM_FROUND_TO_POS_INF 0x02 ++#define _MM_FROUND_TO_ZERO 0x03 ++#define _MM_FROUND_CUR_DIRECTION 0x04 ++#define _MM_FROUND_NO_EXC 0x08 ++#define _MM_FROUND_RAISE_EXC 0x00 ++#define _MM_FROUND_NINT (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_FLOOR (_MM_FROUND_TO_NEG_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_CEIL (_MM_FROUND_TO_POS_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_TRUNC (_MM_FROUND_TO_ZERO | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_RINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_NEARBYINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_NO_EXC) ++#define _MM_ROUND_NEAREST 0x0000 ++#define _MM_ROUND_DOWN 0x2000 ++#define _MM_ROUND_UP 0x4000 ++#define _MM_ROUND_TOWARD_ZERO 0x6000 ++/* Flush zero mode macros. */ ++#define _MM_FLUSH_ZERO_MASK 0x8000 ++#define _MM_FLUSH_ZERO_ON 0x8000 ++#define _MM_FLUSH_ZERO_OFF 0x0000 ++/* Denormals are zeros mode macros. */ ++#define _MM_DENORMALS_ZERO_MASK 0x0040 ++#define _MM_DENORMALS_ZERO_ON 0x0040 ++#define _MM_DENORMALS_ZERO_OFF 0x0000 ++ ++/* indicate immediate constant argument in a given range */ ++#define __constrange(a, b) const ++ ++/* A few intrinsics accept traditional data types like ints or floats, but ++ * most operate on data types that are specific to SSE. ++ * If a vector type ends in d, it contains doubles, and if it does not have ++ * a suffix, it contains floats. An integer vector type can contain any type ++ * of integer, from chars to shorts to unsigned long longs. ++ */ ++typedef int64x1_t __m64; ++typedef float32x4_t __m128; /* 128-bit vector containing 4 floats */ ++// On ARM 32-bit architecture, the float64x2_t is not supported. ++// The data type __m128d should be represented in a different way for related ++// intrinsic conversion. ++#if defined(__aarch64__) || defined(_M_ARM64) ++typedef float64x2_t __m128d; /* 128-bit vector containing 2 doubles */ ++#else ++typedef float32x4_t __m128d; ++#endif ++typedef int64x2_t __m128i; /* 128-bit vector containing integers */ ++ ++// Some intrinsics operate on unaligned data types. ++typedef int16_t ALIGN_STRUCT(1) unaligned_int16_t; ++typedef int32_t ALIGN_STRUCT(1) unaligned_int32_t; ++typedef int64_t ALIGN_STRUCT(1) unaligned_int64_t; ++ ++// __int64 is defined in the Intrinsics Guide which maps to different datatype ++// in different data model ++#if !(defined(_WIN32) || defined(_WIN64) || defined(__int64)) ++#if (defined(__x86_64__) || defined(__i386__)) ++#define __int64 long long ++#else ++#define __int64 int64_t ++#endif ++#endif ++ ++/* type-safe casting between types */ ++ ++#define vreinterpretq_m128_f16(x) vreinterpretq_f32_f16(x) ++#define vreinterpretq_m128_f32(x) (x) ++#define vreinterpretq_m128_f64(x) vreinterpretq_f32_f64(x) ++ ++#define vreinterpretq_m128_u8(x) vreinterpretq_f32_u8(x) ++#define vreinterpretq_m128_u16(x) vreinterpretq_f32_u16(x) ++#define vreinterpretq_m128_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128_s8(x) vreinterpretq_f32_s8(x) ++#define vreinterpretq_m128_s16(x) vreinterpretq_f32_s16(x) ++#define vreinterpretq_m128_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_f16_m128(x) vreinterpretq_f16_f32(x) ++#define vreinterpretq_f32_m128(x) (x) ++#define vreinterpretq_f64_m128(x) vreinterpretq_f64_f32(x) ++ ++#define vreinterpretq_u8_m128(x) vreinterpretq_u8_f32(x) ++#define vreinterpretq_u16_m128(x) vreinterpretq_u16_f32(x) ++#define vreinterpretq_u32_m128(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_s8_m128(x) vreinterpretq_s8_f32(x) ++#define vreinterpretq_s16_m128(x) vreinterpretq_s16_f32(x) ++#define vreinterpretq_s32_m128(x) vreinterpretq_s32_f32(x) ++#define vreinterpretq_s64_m128(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_m128i_s8(x) vreinterpretq_s64_s8(x) ++#define vreinterpretq_m128i_s16(x) vreinterpretq_s64_s16(x) ++#define vreinterpretq_m128i_s32(x) vreinterpretq_s64_s32(x) ++#define vreinterpretq_m128i_s64(x) (x) ++ ++#define vreinterpretq_m128i_u8(x) vreinterpretq_s64_u8(x) ++#define vreinterpretq_m128i_u16(x) vreinterpretq_s64_u16(x) ++#define vreinterpretq_m128i_u32(x) vreinterpretq_s64_u32(x) ++#define vreinterpretq_m128i_u64(x) vreinterpretq_s64_u64(x) ++ ++#define vreinterpretq_f32_m128i(x) vreinterpretq_f32_s64(x) ++#define vreinterpretq_f64_m128i(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_s8_m128i(x) vreinterpretq_s8_s64(x) ++#define vreinterpretq_s16_m128i(x) vreinterpretq_s16_s64(x) ++#define vreinterpretq_s32_m128i(x) vreinterpretq_s32_s64(x) ++#define vreinterpretq_s64_m128i(x) (x) ++ ++#define vreinterpretq_u8_m128i(x) vreinterpretq_u8_s64(x) ++#define vreinterpretq_u16_m128i(x) vreinterpretq_u16_s64(x) ++#define vreinterpretq_u32_m128i(x) vreinterpretq_u32_s64(x) ++#define vreinterpretq_u64_m128i(x) vreinterpretq_u64_s64(x) ++ ++#define vreinterpret_m64_s8(x) vreinterpret_s64_s8(x) ++#define vreinterpret_m64_s16(x) vreinterpret_s64_s16(x) ++#define vreinterpret_m64_s32(x) vreinterpret_s64_s32(x) ++#define vreinterpret_m64_s64(x) (x) ++ ++#define vreinterpret_m64_u8(x) vreinterpret_s64_u8(x) ++#define vreinterpret_m64_u16(x) vreinterpret_s64_u16(x) ++#define vreinterpret_m64_u32(x) vreinterpret_s64_u32(x) ++#define vreinterpret_m64_u64(x) vreinterpret_s64_u64(x) ++ ++#define vreinterpret_m64_f16(x) vreinterpret_s64_f16(x) ++#define vreinterpret_m64_f32(x) vreinterpret_s64_f32(x) ++#define vreinterpret_m64_f64(x) vreinterpret_s64_f64(x) ++ ++#define vreinterpret_u8_m64(x) vreinterpret_u8_s64(x) ++#define vreinterpret_u16_m64(x) vreinterpret_u16_s64(x) ++#define vreinterpret_u32_m64(x) vreinterpret_u32_s64(x) ++#define vreinterpret_u64_m64(x) vreinterpret_u64_s64(x) ++ ++#define vreinterpret_s8_m64(x) vreinterpret_s8_s64(x) ++#define vreinterpret_s16_m64(x) vreinterpret_s16_s64(x) ++#define vreinterpret_s32_m64(x) vreinterpret_s32_s64(x) ++#define vreinterpret_s64_m64(x) (x) ++ ++#define vreinterpret_f32_m64(x) vreinterpret_f32_s64(x) ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f64_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f64_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) vreinterpretq_f64_f32(x) ++#define vreinterpretq_m128d_f64(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f64(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f64(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f64(x) ++ ++#define vreinterpretq_f64_m128d(x) (x) ++#define vreinterpretq_f32_m128d(x) vreinterpretq_f32_f64(x) ++#else ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_m128d_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_f32_m128d(x) (x) ++#endif ++ ++// A struct is defined in this header file called 'SIMDVec' which can be used ++// by applications which attempt to access the contents of an __m128 struct ++// directly. It is important to note that accessing the __m128 struct directly ++// is bad coding practice by Microsoft: @see: ++// https://learn.microsoft.com/en-us/cpp/cpp/m128 ++// ++// However, some legacy source code may try to access the contents of an __m128 ++// struct directly so the developer can use the SIMDVec as an alias for it. Any ++// casting must be done manually by the developer, as you cannot cast or ++// otherwise alias the base NEON data type for intrinsic operations. ++// ++// union intended to allow direct access to an __m128 variable using the names ++// that the MSVC compiler provides. This union should really only be used when ++// trying to access the members of the vector as integer values. GCC/clang ++// allow native access to the float members through a simple array access ++// operator (in C since 4.6, in C++ since 4.8). ++// ++// Ideally direct accesses to SIMD vectors should not be used since it can cause ++// a performance hit. If it really is needed however, the original __m128 ++// variable can be aliased with a pointer to this union and used to access ++// individual components. The use of this union should be hidden behind a macro ++// that is used throughout the codebase to access the members instead of always ++// declaring this type of variable. ++typedef union ALIGN_STRUCT(16) SIMDVec { ++ float m128_f32[4]; // as floats - DON'T USE. Added for convenience. ++ int8_t m128_i8[16]; // as signed 8-bit integers. ++ int16_t m128_i16[8]; // as signed 16-bit integers. ++ int32_t m128_i32[4]; // as signed 32-bit integers. ++ int64_t m128_i64[2]; // as signed 64-bit integers. ++ uint8_t m128_u8[16]; // as unsigned 8-bit integers. ++ uint16_t m128_u16[8]; // as unsigned 16-bit integers. ++ uint32_t m128_u32[4]; // as unsigned 32-bit integers. ++ uint64_t m128_u64[2]; // as unsigned 64-bit integers. ++} SIMDVec; ++ ++// casting using SIMDVec ++#define vreinterpretq_nth_u64_m128i(x, n) (((SIMDVec *) &x)->m128_u64[n]) ++#define vreinterpretq_nth_u32_m128i(x, n) (((SIMDVec *) &x)->m128_u32[n]) ++#define vreinterpretq_nth_u8_m128i(x, n) (((SIMDVec *) &x)->m128_u8[n]) ++ ++/* SSE macros */ ++#define _MM_GET_FLUSH_ZERO_MODE _sse2neon_mm_get_flush_zero_mode ++#define _MM_SET_FLUSH_ZERO_MODE _sse2neon_mm_set_flush_zero_mode ++#define _MM_GET_DENORMALS_ZERO_MODE _sse2neon_mm_get_denormals_zero_mode ++#define _MM_SET_DENORMALS_ZERO_MODE _sse2neon_mm_set_denormals_zero_mode ++ ++// Function declaration ++// SSE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void); ++FORCE_INLINE __m128 _mm_move_ss(__m128, __m128); ++FORCE_INLINE __m128 _mm_or_ps(__m128, __m128); ++FORCE_INLINE __m128 _mm_set_ps1(float); ++FORCE_INLINE __m128 _mm_setzero_ps(void); ++// SSE2 ++FORCE_INLINE __m128i _mm_and_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_castps_si128(__m128); ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128); ++FORCE_INLINE __m128d _mm_move_sd(__m128d, __m128d); ++FORCE_INLINE __m128i _mm_or_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_set_epi32(int, int, int, int); ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t, int64_t); ++FORCE_INLINE __m128d _mm_set_pd(double, double); ++FORCE_INLINE __m128i _mm_set1_epi32(int); ++FORCE_INLINE __m128i _mm_setzero_si128(void); ++// SSE4.1 ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d); ++FORCE_INLINE __m128 _mm_ceil_ps(__m128); ++FORCE_INLINE __m128d _mm_floor_pd(__m128d); ++FORCE_INLINE __m128 _mm_floor_ps(__m128); ++FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d, int); ++FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128, int); ++// SSE4.2 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t, uint8_t); ++ ++/* Backwards compatibility for compilers with lack of specific type support */ ++ ++// Older gcc does not define vld1q_u8_x4 type ++#if defined(__GNUC__) && !defined(__clang__) && \ ++ ((__GNUC__ <= 13 && defined(__arm__)) || \ ++ (__GNUC__ == 10 && __GNUC_MINOR__ < 3 && defined(__aarch64__)) || \ ++ (__GNUC__ <= 9 && defined(__aarch64__))) ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ uint8x16x4_t ret; ++ ret.val[0] = vld1q_u8(p + 0); ++ ret.val[1] = vld1q_u8(p + 16); ++ ret.val[2] = vld1q_u8(p + 32); ++ ret.val[3] = vld1q_u8(p + 48); ++ return ret; ++} ++#else ++// Wraps vld1q_u8_x4 ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ return vld1q_u8_x4(p); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddv u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ const uint64x1_t v1 = vpaddl_u32(vpaddl_u16(vpaddl_u8(v8))); ++ return vget_lane_u8(vreinterpret_u8_u64(v1), 0); ++} ++#else ++// Wraps vaddv_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ return vaddv_u8(v8); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ uint8x8_t tmp = vpadd_u8(vget_low_u8(a), vget_high_u8(a)); ++ uint8_t res = 0; ++ for (int i = 0; i < 8; ++i) ++ res += tmp[i]; ++ return res; ++} ++#else ++// Wraps vaddvq_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ return vaddvq_u8(a); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u16 variant */ ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ uint32x4_t m = vpaddlq_u16(a); ++ uint64x2_t n = vpaddlq_u32(m); ++ uint64x1_t o = vget_low_u64(n) + vget_high_u64(n); ++ ++ return vget_lane_u32((uint32x2_t) o, 0); ++} ++#else ++// Wraps vaddvq_u16 ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ return vaddvq_u16(a); ++} ++#endif ++ ++/* Function Naming Conventions ++ * The naming convention of SSE intrinsics is straightforward. A generic SSE ++ * intrinsic function is given as follows: ++ * _mm__ ++ * ++ * The parts of this format are given as follows: ++ * 1. describes the operation performed by the intrinsic ++ * 2. identifies the data type of the function's primary arguments ++ * ++ * This last part, , is a little complicated. It identifies the ++ * content of the input values, and can be set to any of the following values: ++ * + ps - vectors contain floats (ps stands for packed single-precision) ++ * + pd - vectors contain doubles (pd stands for packed double-precision) ++ * + epi8/epi16/epi32/epi64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * signed integers ++ * + epu8/epu16/epu32/epu64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * unsigned integers ++ * + si128 - unspecified 128-bit vector or 256-bit vector ++ * + m128/m128i/m128d - identifies input vector types when they are different ++ * than the type of the returned vector ++ * ++ * For example, _mm_setzero_ps. The _mm implies that the function returns ++ * a 128-bit vector. The _ps at the end implies that the argument vectors ++ * contain floats. ++ * ++ * A complete example: Byte Shuffle - pshufb (_mm_shuffle_epi8) ++ * // Set packed 16-bit integers. 128 bits, 8 short, per 16 bits ++ * __m128i v_in = _mm_setr_epi16(1, 2, 3, 4, 5, 6, 7, 8); ++ * // Set packed 8-bit integers ++ * // 128 bits, 16 chars, per 8 bits ++ * __m128i v_perm = _mm_setr_epi8(1, 0, 2, 3, 8, 9, 10, 11, ++ * 4, 5, 12, 13, 6, 7, 14, 15); ++ * // Shuffle packed 8-bit integers ++ * __m128i v_out = _mm_shuffle_epi8(v_in, v_perm); // pshufb ++ */ ++ ++/* Constants for use with _mm_prefetch. */ ++enum _mm_hint { ++ _MM_HINT_NTA = 0, /* load data to L1 and L2 cache, mark it as NTA */ ++ _MM_HINT_T0 = 1, /* load data to L1 and L2 cache */ ++ _MM_HINT_T1 = 2, /* load data to L2 cache only */ ++ _MM_HINT_T2 = 3, /* load data to L2 cache only, mark it as NTA */ ++}; ++ ++// The bit field mapping to the FPCR(floating-point control register) ++typedef struct { ++ uint16_t res0; ++ uint8_t res1 : 6; ++ uint8_t bit22 : 1; ++ uint8_t bit23 : 1; ++ uint8_t bit24 : 1; ++ uint8_t res2 : 7; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32_t res3; ++#endif ++} fpcr_bitfield; ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of b and places it into the high end of the result. ++FORCE_INLINE __m128 _mm_shuffle_ps_1032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in high ++// end of result takes the higher two 32 bit values from b and swaps them and ++// places in low end of result. ++FORCE_INLINE __m128 _mm_shuffle_ps_2301(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b23 = vrev64_f32(vget_high_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b23)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0321(__m128 a, __m128 b) ++{ ++ float32x2_t a21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a21, b03)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2103(__m128 a, __m128 b) ++{ ++ float32x2_t a03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a03, b21)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0101(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b01)); ++} ++ ++// keeps the low 64 bits of b in the low and puts the high 64 bits of a in the ++// high ++FORCE_INLINE __m128 _mm_shuffle_ps_3210(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0011(__m128 a, __m128 b) ++{ ++ float32x2_t a11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a11, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0022(__m128 a, __m128 b) ++{ ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a22, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2200(__m128 a, __m128 b) ++{ ++ float32x2_t a00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a00, b22)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_3202(__m128 a, __m128 b) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t a02 = vset_lane_f32(a0, a22, 1); /* TODO: use vzip ?*/ ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a02, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1133(__m128 a, __m128 b) ++{ ++ float32x2_t a33 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a33, b11)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b20)); ++} ++ ++// For MSVC, we check only if it is ARM64, as every single ARM64 processor ++// supported by WoA has crypto extensions. If this changes in the future, ++// this can be verified via the runtime-only method of: ++// IsProcessorFeaturePresent(PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE) ++#if (defined(_M_ARM64) && !defined(__clang__)) || \ ++ (defined(__ARM_FEATURE_CRYPTO) && \ ++ (defined(__aarch64__) || __has_builtin(__builtin_arm_crypto_vmullp64))) ++// Wraps vmull_p64 ++FORCE_INLINE uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly64_t a = vget_lane_p64(vreinterpret_p64_u64(_a), 0); ++ poly64_t b = vget_lane_p64(vreinterpret_p64_u64(_b), 0); ++#if defined(_MSC_VER) && !defined(__clang__) ++ __n64 a1 = {a}, b1 = {b}; ++ return vreinterpretq_u64_p128(vmull_p64(a1, b1)); ++#else ++ return vreinterpretq_u64_p128(vmull_p64(a, b)); ++#endif ++} ++#else // ARMv7 polyfill ++// ARMv7/some A64 lacks vmull_p64, but it has vmull_p8. ++// ++// vmull_p8 calculates 8 8-bit->16-bit polynomial multiplies, but we need a ++// 64-bit->128-bit polynomial multiply. ++// ++// It needs some work and is somewhat slow, but it is still faster than all ++// known scalar methods. ++// ++// Algorithm adapted to C from ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/, which is adapted ++// from "Fast Software Polynomial Multiplication on ARM Processors Using the ++// NEON Engine" by Danilo Camara, Conrado Gouvea, Julio Lopez and Ricardo Dahab ++// (https://hal.inria.fr/hal-01506572) ++static uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly8x8_t a = vreinterpret_p8_u64(_a); ++ poly8x8_t b = vreinterpret_p8_u64(_b); ++ ++ // Masks ++ uint8x16_t k48_32 = vcombine_u8(vcreate_u8(0x0000ffffffffffff), ++ vcreate_u8(0x00000000ffffffff)); ++ uint8x16_t k16_00 = vcombine_u8(vcreate_u8(0x000000000000ffff), ++ vcreate_u8(0x0000000000000000)); ++ ++ // Do the multiplies, rotating with vext to get all combinations ++ uint8x16_t d = vreinterpretq_u8_p16(vmull_p8(a, b)); // D = A0 * B0 ++ uint8x16_t e = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 1))); // E = A0 * B1 ++ uint8x16_t f = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 1), b)); // F = A1 * B0 ++ uint8x16_t g = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 2))); // G = A0 * B2 ++ uint8x16_t h = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 2), b)); // H = A2 * B0 ++ uint8x16_t i = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 3))); // I = A0 * B3 ++ uint8x16_t j = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 3), b)); // J = A3 * B0 ++ uint8x16_t k = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 4))); // L = A0 * B4 ++ ++ // Add cross products ++ uint8x16_t l = veorq_u8(e, f); // L = E + F ++ uint8x16_t m = veorq_u8(g, h); // M = G + H ++ uint8x16_t n = veorq_u8(i, j); // N = I + J ++ ++ // Interleave. Using vzip1 and vzip2 prevents Clang from emitting TBL ++ // instructions. ++#if defined(__aarch64__) ++ uint8x16_t lm_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t lm_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t nk_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++ uint8x16_t nk_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++#else ++ uint8x16_t lm_p0 = vcombine_u8(vget_low_u8(l), vget_low_u8(m)); ++ uint8x16_t lm_p1 = vcombine_u8(vget_high_u8(l), vget_high_u8(m)); ++ uint8x16_t nk_p0 = vcombine_u8(vget_low_u8(n), vget_low_u8(k)); ++ uint8x16_t nk_p1 = vcombine_u8(vget_high_u8(n), vget_high_u8(k)); ++#endif ++ // t0 = (L) (P0 + P1) << 8 ++ // t1 = (M) (P2 + P3) << 16 ++ uint8x16_t t0t1_tmp = veorq_u8(lm_p0, lm_p1); ++ uint8x16_t t0t1_h = vandq_u8(lm_p1, k48_32); ++ uint8x16_t t0t1_l = veorq_u8(t0t1_tmp, t0t1_h); ++ ++ // t2 = (N) (P4 + P5) << 24 ++ // t3 = (K) (P6 + P7) << 32 ++ uint8x16_t t2t3_tmp = veorq_u8(nk_p0, nk_p1); ++ uint8x16_t t2t3_h = vandq_u8(nk_p1, k16_00); ++ uint8x16_t t2t3_l = veorq_u8(t2t3_tmp, t2t3_h); ++ ++ // De-interleave ++#if defined(__aarch64__) ++ uint8x16_t t0 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t1 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t2 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++ uint8x16_t t3 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++#else ++ uint8x16_t t1 = vcombine_u8(vget_high_u8(t0t1_l), vget_high_u8(t0t1_h)); ++ uint8x16_t t0 = vcombine_u8(vget_low_u8(t0t1_l), vget_low_u8(t0t1_h)); ++ uint8x16_t t3 = vcombine_u8(vget_high_u8(t2t3_l), vget_high_u8(t2t3_h)); ++ uint8x16_t t2 = vcombine_u8(vget_low_u8(t2t3_l), vget_low_u8(t2t3_h)); ++#endif ++ // Shift the cross products ++ uint8x16_t t0_shift = vextq_u8(t0, t0, 15); // t0 << 8 ++ uint8x16_t t1_shift = vextq_u8(t1, t1, 14); // t1 << 16 ++ uint8x16_t t2_shift = vextq_u8(t2, t2, 13); // t2 << 24 ++ uint8x16_t t3_shift = vextq_u8(t3, t3, 12); // t3 << 32 ++ ++ // Accumulate the products ++ uint8x16_t cross1 = veorq_u8(t0_shift, t1_shift); ++ uint8x16_t cross2 = veorq_u8(t2_shift, t3_shift); ++ uint8x16_t mix = veorq_u8(d, cross1); ++ uint8x16_t r = veorq_u8(mix, cross2); ++ return vreinterpretq_u64_u8(r); ++} ++#endif // ARMv7 polyfill ++ ++// C equivalent: ++// __m128i _mm_shuffle_epi32_default(__m128i a, ++// __constrange(0, 255) int imm) { ++// __m128i ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = a[(imm >> 4) & 0x03]; ret[3] = a[(imm >> 6) & 0x03]; ++// return ret; ++// } ++#define _mm_shuffle_epi32_default(a, imm) \ ++ vreinterpretq_m128i_s32(vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), \ ++ ((imm) >> 2) & 0x3), \ ++ vmovq_n_s32(vgetq_lane_s32( \ ++ vreinterpretq_s32_m128i(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of a and places it into the high end of the result. ++FORCE_INLINE __m128i _mm_shuffle_epi_1032(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in low end ++// of result takes the higher two 32 bit values from a and swaps them and places ++// in high end of result. ++FORCE_INLINE __m128i _mm_shuffle_epi_2301(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a23 = vrev64_s32(vget_high_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a23)); ++} ++ ++// rotates the least significant 32 bits into the most significant 32 bits, and ++// shifts the rest down ++FORCE_INLINE __m128i _mm_shuffle_epi_0321(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 1)); ++} ++ ++// rotates the most significant 32 bits into the least significant 32 bits, and ++// shifts the rest up ++FORCE_INLINE __m128i _mm_shuffle_epi_2103(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 3)); ++} ++ ++// gets the lower 64 bits of a, and places it in the upper 64 bits ++// gets the lower 64 bits of a and places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1010(__m128i a) ++{ ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a10, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements, and places it in the ++// lower 64 bits gets the lower 64 bits of a, and places it in the upper 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1001(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements and places it in the ++// upper 64 bits gets the lower 64 bits of a, swaps the 0 and 1 elements, and ++// places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_0101(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_2211(__m128i a) ++{ ++ int32x2_t a11 = vdup_lane_s32(vget_low_s32(vreinterpretq_s32_m128i(a)), 1); ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ return vreinterpretq_m128i_s32(vcombine_s32(a11, a22)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_0122(__m128i a) ++{ ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a22, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_3332(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a33 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 1); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a33)); ++} ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32(vdupq_laneq_s32(vreinterpretq_s32_m128i(a), (imm))) ++#else ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vdupq_n_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)))) ++#endif ++ ++// NEON does not support a general purpose permute intrinsic. ++// Shuffle single-precision (32-bit) floating-point elements in a using the ++// control in imm8, and store the results in dst. ++// ++// C equivalent: ++// __m128 _mm_shuffle_ps_default(__m128 a, __m128 b, ++// __constrange(0, 255) int imm) { ++// __m128 ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = b[(imm >> 4) & 0x03]; ret[3] = b[(imm >> 6) & 0x03]; ++// return ret; ++// } ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_ps ++#define _mm_shuffle_ps_default(a, b, imm) \ ++ vreinterpretq_m128_f32(vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), ((imm) >> 2) & 0x3), \ ++ vmovq_n_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Shuffle 16-bit integers in the low 64 bits of a using the control in imm8. ++// Store the results in the low 64 bits of dst, with the high 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflelo_epi16 ++#define _mm_shufflelo_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t lowBits = vget_low_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, (imm) & (0x3)), ret, 0); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++// Shuffle 16-bit integers in the high 64 bits of a using the control in imm8. ++// Store the results in the high 64 bits of dst, with the low 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflehi_epi16 ++#define _mm_shufflehi_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t highBits = vget_high_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, (imm) & (0x3)), ret, 4); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 2) & 0x3), ret, \ ++ 5); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 4) & 0x3), ret, \ ++ 6); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 6) & 0x3), ret, \ ++ 7); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++/* MMX */ ++ ++//_mm_empty is a no-op on arm ++FORCE_INLINE void _mm_empty(void) {} ++ ++/* SSE */ ++ ++// Add packed single-precision (32-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ps ++FORCE_INLINE __m128 _mm_add_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Add the lower single-precision (32-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ss ++FORCE_INLINE __m128 _mm_add_ss(__m128 a, __m128 b) ++{ ++ float32_t b0 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++ float32x4_t value = vsetq_lane_f32(b0, vdupq_n_f32(0), 0); ++ // the upper values in the result must be the remnants of . ++ return vreinterpretq_m128_f32(vaddq_f32(a, value)); ++} ++ ++// Compute the bitwise AND of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_ps ++FORCE_INLINE __m128 _mm_and_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vandq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Compute the bitwise NOT of packed single-precision (32-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_ps ++FORCE_INLINE __m128 _mm_andnot_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vbicq_s32(vreinterpretq_s32_m128(b), ++ vreinterpretq_s32_m128(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu16 ++FORCE_INLINE __m64 _mm_avg_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16( ++ vrhadd_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu8 ++FORCE_INLINE __m64 _mm_avg_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vrhadd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ps ++FORCE_INLINE __m128 _mm_cmpeq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ss ++FORCE_INLINE __m128 _mm_cmpeq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpeq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ps ++FORCE_INLINE __m128 _mm_cmpge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ss ++FORCE_INLINE __m128 _mm_cmpge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ps ++FORCE_INLINE __m128 _mm_cmpgt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ss ++FORCE_INLINE __m128 _mm_cmpgt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpgt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ps ++FORCE_INLINE __m128 _mm_cmple_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ss ++FORCE_INLINE __m128 _mm_cmple_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmple_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ps ++FORCE_INLINE __m128 _mm_cmplt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ss ++FORCE_INLINE __m128 _mm_cmplt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmplt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ps ++FORCE_INLINE __m128 _mm_cmpneq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ss ++FORCE_INLINE __m128 _mm_cmpneq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpneq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ps ++FORCE_INLINE __m128 _mm_cmpnge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ss ++FORCE_INLINE __m128 _mm_cmpnge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ps ++FORCE_INLINE __m128 _mm_cmpngt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ss ++FORCE_INLINE __m128 _mm_cmpngt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpngt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ps ++FORCE_INLINE __m128 _mm_cmpnle_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ss ++FORCE_INLINE __m128 _mm_cmpnle_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnle_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ps ++FORCE_INLINE __m128 _mm_cmpnlt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ss ++FORCE_INLINE __m128 _mm_cmpnlt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnlt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ps ++// ++// See also: ++// http://stackoverflow.com/questions/8627331/what-does-ordered-unordered-comparison-mean ++// http://stackoverflow.com/questions/29349621/neon-isnanval-intrinsics ++FORCE_INLINE __m128 _mm_cmpord_ps(__m128 a, __m128 b) ++{ ++ // Note: NEON does not have ordered compare builtin ++ // Need to compare a eq a and b eq b to check for NaN ++ // Do AND of results to get final ++ uint32x4_t ceqaa = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t ceqbb = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vandq_u32(ceqaa, ceqbb)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ss ++FORCE_INLINE __m128 _mm_cmpord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpord_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ps ++FORCE_INLINE __m128 _mm_cmpunord_ps(__m128 a, __m128 b) ++{ ++ uint32x4_t f32a = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t f32b = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vmvnq_u32(vandq_u32(f32a, f32b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ss ++FORCE_INLINE __m128 _mm_cmpunord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpunord_ps(a, b)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_ss ++FORCE_INLINE int _mm_comieq_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_eq_b = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_eq_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_ss ++FORCE_INLINE int _mm_comige_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_ge_b = ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_ge_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_ss ++FORCE_INLINE int _mm_comigt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_gt_b = ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_gt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_ss ++FORCE_INLINE int _mm_comile_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_le_b = ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_le_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_ss ++FORCE_INLINE int _mm_comilt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_lt_b = ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_lt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_ss ++FORCE_INLINE int _mm_comineq_ss(__m128 a, __m128 b) ++{ ++ return !_mm_comieq_ss(a, b); ++} ++ ++// Convert packed signed 32-bit integers in b to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, and copy the upper 2 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_pi2ps ++FORCE_INLINE __m128 _mm_cvt_pi2ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ps2pi ++FORCE_INLINE __m64 _mm_cvt_ps2pi(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))))); ++#else ++ return vreinterpret_m64_s32(vcvt_s32_f32(vget_low_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION))))); ++#endif ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_si2ss ++FORCE_INLINE __m128 _mm_cvt_si2ss(__m128 a, int b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ss2si ++FORCE_INLINE int _mm_cvt_ss2si(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vgetq_lane_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))), ++ 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int32_t) data; ++#endif ++} ++ ++// Convert packed 16-bit integers in a to packed single-precision (32-bit) ++// floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi16_ps ++FORCE_INLINE __m128 _mm_cvtpi16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vmovl_s16(vreinterpret_s16_m64(a)))); ++} ++ ++// Convert packed 32-bit integers in b to packed single-precision (32-bit) ++// floating-point elements, store the results in the lower 2 elements of dst, ++// and copy the upper 2 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_ps ++FORCE_INLINE __m128 _mm_cvtpi32_ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, then convert the packed signed 32-bit integers in b to ++// single-precision (32-bit) floating-point element, and store the results in ++// the upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32x2_ps ++FORCE_INLINE __m128 _mm_cvtpi32x2_ps(__m64 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vcombine_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b)))); ++} ++ ++// Convert the lower packed 8-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi8_ps ++FORCE_INLINE __m128 _mm_cvtpi8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vmovl_s16(vget_low_s16(vmovl_s8(vreinterpret_s8_m64(a)))))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 16-bit integers, and store the results in dst. Note: this intrinsic ++// will generate 0x7FFF, rather than 0x8000, for input values between 0x7FFF and ++// 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi16 ++FORCE_INLINE __m64 _mm_cvtps_pi16(__m128 a) ++{ ++ return vreinterpret_m64_s16( ++ vqmovn_s32(vreinterpretq_s32_m128i(_mm_cvtps_epi32(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi32 ++#define _mm_cvtps_pi32(a) _mm_cvt_ps2pi(a) ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 8-bit integers, and store the results in lower 4 elements of dst. ++// Note: this intrinsic will generate 0x7F, rather than 0x80, for input values ++// between 0x7F and 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi8 ++FORCE_INLINE __m64 _mm_cvtps_pi8(__m128 a) ++{ ++ return vreinterpret_m64_s8(vqmovn_s16( ++ vcombine_s16(vreinterpret_s16_m64(_mm_cvtps_pi16(a)), vdup_n_s16(0)))); ++} ++ ++// Convert packed unsigned 16-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu16_ps ++FORCE_INLINE __m128 _mm_cvtpu16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_u32(vmovl_u16(vreinterpret_u16_m64(a)))); ++} ++ ++// Convert the lower packed unsigned 8-bit integers in a to packed ++// single-precision (32-bit) floating-point elements, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu8_ps ++FORCE_INLINE __m128 _mm_cvtpu8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_u32( ++ vmovl_u16(vget_low_u16(vmovl_u8(vreinterpret_u8_m64(a)))))); ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_ss ++#define _mm_cvtsi32_ss(a, b) _mm_cvt_si2ss(a, b) ++ ++// Convert the signed 64-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_ss ++FORCE_INLINE __m128 _mm_cvtsi64_ss(__m128 a, int64_t b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Copy the lower single-precision (32-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_f32 ++FORCE_INLINE float _mm_cvtss_f32(__m128 a) ++{ ++ return vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si32 ++#define _mm_cvtss_si32(a) _mm_cvt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si64 ++FORCE_INLINE int64_t _mm_cvtss_si64(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return (int64_t) vgetq_lane_f32(vrndiq_f32(vreinterpretq_f32_m128(a)), 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int64_t) data; ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ps2pi ++FORCE_INLINE __m64 _mm_cvtt_ps2pi(__m128 a) ++{ ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ss2si ++FORCE_INLINE int _mm_cvtt_ss2si(__m128 a) ++{ ++ return vgetq_lane_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)), 0); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_pi32 ++#define _mm_cvttps_pi32(a) _mm_cvtt_ps2pi(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si32 ++#define _mm_cvttss_si32(a) _mm_cvtt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si64 ++FORCE_INLINE int64_t _mm_cvttss_si64(__m128 a) ++{ ++ return (int64_t) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Divide packed single-precision (32-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise division intrinsic, we implement ++// division by multiplying a by b's reciprocal before using the Newton-Raphson ++// method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ps ++FORCE_INLINE __m128 _mm_div_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vdivq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(b)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(a), recip)); ++#endif ++} ++ ++// Divide the lower single-precision (32-bit) floating-point element in a by the ++// lower single-precision (32-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper 3 packed elements from a to ++// the upper elements of dst. ++// Warning: ARMv7-A does not produce the same result compared to Intel and not ++// IEEE-compliant. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ss ++FORCE_INLINE __m128 _mm_div_ss(__m128 a, __m128 b) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_div_ps(a, b)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_pi16 ++#define _mm_extract_pi16(a, imm) \ ++ (int32_t) vget_lane_u16(vreinterpret_u16_m64(a), (imm)) ++ ++// Free aligned memory that was allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_free ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void _mm_free(void *addr) ++{ ++ free(addr); ++} ++#endif ++ ++FORCE_INLINE uint64_t _sse2neon_get_fpcr(void) ++{ ++ uint64_t value; ++#if defined(_MSC_VER) && !defined(__clang__) ++ value = _ReadStatusReg(ARM64_FPCR); ++#else ++ __asm__ __volatile__("mrs %0, FPCR" : "=r"(value)); /* read */ ++#endif ++ return value; ++} ++ ++FORCE_INLINE void _sse2neon_set_fpcr(uint64_t value) ++{ ++#if defined(_MSC_VER) && !defined(__clang__) ++ _WriteStatusReg(ARM64_FPCR, value); ++#else ++ __asm__ __volatile__("msr FPCR, %0" ::"r"(value)); /* write */ ++#endif ++} ++ ++// Macro: Get the flush zero bits from the MXCSR control and status register. ++// The flush zero may contain any of the following flags: _MM_FLUSH_ZERO_ON or ++// _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_FLUSH_ZERO_MODE ++FORCE_INLINE unsigned int _sse2neon_mm_get_flush_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_FLUSH_ZERO_ON : _MM_FLUSH_ZERO_OFF; ++} ++ ++// Macro: Get the rounding mode bits from the MXCSR control and status register. ++// The rounding mode may contain any of the following flags: _MM_ROUND_NEAREST, ++// _MM_ROUND_DOWN, _MM_ROUND_UP, _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_ROUNDING_MODE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ if (r.field.bit22) { ++ return r.field.bit23 ? _MM_ROUND_TOWARD_ZERO : _MM_ROUND_UP; ++ } else { ++ return r.field.bit23 ? _MM_ROUND_DOWN : _MM_ROUND_NEAREST; ++ } ++} ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_pi16 ++#define _mm_insert_pi16(a, b, imm) \ ++ vreinterpret_m64_s16(vset_lane_s16((b), vreinterpret_s16_m64(a), (imm))) ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps ++FORCE_INLINE __m128 _mm_load_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// ++// dst[31:0] := MEM[mem_addr+31:mem_addr] ++// dst[63:32] := MEM[mem_addr+31:mem_addr] ++// dst[95:64] := MEM[mem_addr+31:mem_addr] ++// dst[127:96] := MEM[mem_addr+31:mem_addr] ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps1 ++#define _mm_load_ps1 _mm_load1_ps ++ ++// Load a single-precision (32-bit) floating-point element from memory into the ++// lower of dst, and zero the upper 3 elements. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ss ++FORCE_INLINE __m128 _mm_load_ss(const float *p) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(*p, vdupq_n_f32(0), 0)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_ps ++FORCE_INLINE __m128 _mm_load1_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_dup_f32(p)); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// upper 2 elements of dst, and copy the lower 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pi ++FORCE_INLINE __m128 _mm_loadh_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vget_low_f32(a), vld1_f32((const float32_t *) p))); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// lower 2 elements of dst, and copy the upper 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pi ++FORCE_INLINE __m128 _mm_loadl_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vld1_f32((const float32_t *) p), vget_high_f32(a))); ++} ++ ++// Load 4 single-precision (32-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_ps ++FORCE_INLINE __m128 _mm_loadr_ps(const float *p) ++{ ++ float32x4_t v = vrev64q_f32(vld1q_f32(p)); ++ return vreinterpretq_m128_f32(vextq_f32(v, v, 2)); ++} ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_ps ++FORCE_INLINE __m128 _mm_loadu_ps(const float *p) ++{ ++ // for neon, alignment doesn't matter, so _mm_load_ps and _mm_loadu_ps are ++ // equivalent for neon ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load unaligned 16-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si16 ++FORCE_INLINE __m128i _mm_loadu_si16(const void *p) ++{ ++ return vreinterpretq_m128i_s16( ++ vsetq_lane_s16(*(const unaligned_int16_t *) p, vdupq_n_s16(0), 0)); ++} ++ ++// Load unaligned 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si64 ++FORCE_INLINE __m128i _mm_loadu_si64(const void *p) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(*(const unaligned_int64_t *) p, vdupq_n_s64(0), 0)); ++} ++ ++// Allocate size bytes of memory, aligned to the alignment specified in align, ++// and return a pointer to the allocated memory. _mm_free should be used to free ++// memory that is allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_malloc ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void *_mm_malloc(size_t size, size_t align) ++{ ++ void *ptr; ++ if (align == 1) ++ return malloc(size); ++ if (align == 2 || (sizeof(void *) == 8 && align == 4)) ++ align = sizeof(void *); ++ if (!posix_memalign(&ptr, align, size)) ++ return ptr; ++ return NULL; ++} ++#endif ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmove_si64 ++FORCE_INLINE void _mm_maskmove_si64(__m64 a, __m64 mask, char *mem_addr) ++{ ++ int8x8_t shr_mask = vshr_n_s8(vreinterpret_s8_m64(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x8_t masked = ++ vbsl_s8(vreinterpret_u8_s8(shr_mask), vreinterpret_s8_m64(a), ++ vreinterpret_s8_u64(vget_low_u64(vreinterpretq_u64_m128(b)))); ++ vst1_s8((int8_t *) mem_addr, masked); ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_maskmovq ++#define _m_maskmovq(a, mask, mem_addr) _mm_maskmove_si64(a, mask, mem_addr) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pi16 ++FORCE_INLINE __m64 _mm_max_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmax_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) maximum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ps ++FORCE_INLINE __m128 _mm_max_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcgtq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vmaxq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pu8 ++FORCE_INLINE __m64 _mm_max_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmax_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) maximum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ss ++FORCE_INLINE __m128 _mm_max_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_max_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pi16 ++FORCE_INLINE __m64 _mm_min_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmin_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) minimum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ps ++FORCE_INLINE __m128 _mm_min_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcltq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vminq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pu8 ++FORCE_INLINE __m64 _mm_min_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmin_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) minimum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ss ++FORCE_INLINE __m128 _mm_min_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_min_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the lower single-precision (32-bit) floating-point element from b to the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_ss ++FORCE_INLINE __m128 _mm_move_ss(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(vgetq_lane_f32(vreinterpretq_f32_m128(b), 0), ++ vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the upper 2 single-precision (32-bit) floating-point elements from b to ++// the lower 2 elements of dst, and copy the upper 2 elements from a to the ++// upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehl_ps ++FORCE_INLINE __m128 _mm_movehl_ps(__m128 a, __m128 b) ++{ ++#if defined(aarch64__) ++ return vreinterpretq_m128_u64( ++ vzip2q_u64(vreinterpretq_u64_m128(b), vreinterpretq_u64_m128(a))); ++#else ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(b32, a32)); ++#endif ++} ++ ++// Move the lower 2 single-precision (32-bit) floating-point elements from b to ++// the upper 2 elements of dst, and copy the lower 2 elements from a to the ++// lower 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movelh_ps ++FORCE_INLINE __m128 _mm_movelh_ps(__m128 __A, __m128 __B) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(__A)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(__B)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pi8 ++FORCE_INLINE int _mm_movemask_pi8(__m64 a) ++{ ++ uint8x8_t input = vreinterpret_u8_m64(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int8_t shift[8] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint8x8_t tmp = vshr_n_u8(input, 7); ++ return vaddv_u8(vshl_u8(tmp, vld1_s8(shift))); ++#else ++ // Refer the implementation of `_mm_movemask_epi8` ++ uint16x4_t high_bits = vreinterpret_u16_u8(vshr_n_u8(input, 7)); ++ uint32x2_t paired16 = ++ vreinterpret_u32_u16(vsra_n_u16(high_bits, high_bits, 7)); ++ uint8x8_t paired32 = ++ vreinterpret_u8_u32(vsra_n_u32(paired16, paired16, 14)); ++ return vget_lane_u8(paired32, 0) | ((int) vget_lane_u8(paired32, 4) << 4); ++#endif ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed single-precision (32-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_ps ++FORCE_INLINE int _mm_movemask_ps(__m128 a) ++{ ++ uint32x4_t input = vreinterpretq_u32_m128(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int32_t shift[4] = {0, 1, 2, 3}; ++ uint32x4_t tmp = vshrq_n_u32(input, 31); ++ return vaddvq_u32(vshlq_u32(tmp, vld1q_s32(shift))); ++#else ++ // Uses the exact same method as _mm_movemask_epi8, see that for details. ++ // Shift out everything but the sign bits with a 32-bit unsigned shift ++ // right. ++ uint64x2_t high_bits = vreinterpretq_u64_u32(vshrq_n_u32(input, 31)); ++ // Merge the two pairs together with a 64-bit unsigned shift right + add. ++ uint8x16_t paired = ++ vreinterpretq_u8_u64(vsraq_n_u64(high_bits, high_bits, 31)); ++ // Extract the result. ++ return vgetq_lane_u8(paired, 0) | (vgetq_lane_u8(paired, 8) << 2); ++#endif ++} ++ ++// Multiply packed single-precision (32-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ps ++FORCE_INLINE_OPTNONE __m128 _mm_mul_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vmulq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Multiply the lower single-precision (32-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ss ++FORCE_INLINE __m128 _mm_mul_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_mul_ps(a, b)); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_pu16 ++FORCE_INLINE __m64 _mm_mulhi_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16(vshrn_n_u32( ++ vmull_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b)), 16)); ++} ++ ++// Compute the bitwise OR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_ps ++FORCE_INLINE __m128 _mm_or_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vorrq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgb ++#define _m_pavgb(a, b) _mm_avg_pu8(a, b) ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgw ++#define _m_pavgw(a, b) _mm_avg_pu16(a, b) ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pextrw ++#define _m_pextrw(a, imm) _mm_extract_pi16(a, imm) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_pinsrw ++#define _m_pinsrw(a, i, imm) _mm_insert_pi16(a, i, imm) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxsw ++#define _m_pmaxsw(a, b) _mm_max_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxub ++#define _m_pmaxub(a, b) _mm_max_pu8(a, b) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminsw ++#define _m_pminsw(a, b) _mm_min_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminub ++#define _m_pminub(a, b) _mm_min_pu8(a, b) ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmovmskb ++#define _m_pmovmskb(a) _mm_movemask_pi8(a) ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmulhuw ++#define _m_pmulhuw(a, b) _mm_mulhi_pu16(a, b) ++ ++// Fetch the line of data from memory that contains address p to a location in ++// the cache hierarchy specified by the locality hint i. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_prefetch ++FORCE_INLINE void _mm_prefetch(char const *p, int i) ++{ ++ (void) i; ++#if defined(_MSC_VER) && !defined(__clang__) ++ switch (i) { ++ case _MM_HINT_NTA: ++ __prefetch2(p, 1); ++ break; ++ case _MM_HINT_T0: ++ __prefetch2(p, 0); ++ break; ++ case _MM_HINT_T1: ++ __prefetch2(p, 2); ++ break; ++ case _MM_HINT_T2: ++ __prefetch2(p, 4); ++ break; ++ } ++#else ++ switch (i) { ++ case _MM_HINT_NTA: ++ __builtin_prefetch(p, 0, 0); ++ break; ++ case _MM_HINT_T0: ++ __builtin_prefetch(p, 0, 3); ++ break; ++ case _MM_HINT_T1: ++ __builtin_prefetch(p, 0, 2); ++ break; ++ case _MM_HINT_T2: ++ __builtin_prefetch(p, 0, 1); ++ break; ++ } ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_psadbw ++#define _m_psadbw(a, b) _mm_sad_pu8(a, b) ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pshufw ++#define _m_pshufw(a, imm) _mm_shuffle_pi16(a, imm) ++ ++// Compute the approximate reciprocal of packed single-precision (32-bit) ++// floating-point elements in a, and store the results in dst. The maximum ++// relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ps ++FORCE_INLINE __m128 _mm_rcp_ps(__m128 in) ++{ ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(in)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#if SSE2NEON_PRECISE_DIV ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#endif ++ return vreinterpretq_m128_f32(recip); ++} ++ ++// Compute the approximate reciprocal of the lower single-precision (32-bit) ++// floating-point element in a, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ss ++FORCE_INLINE __m128 _mm_rcp_ss(__m128 a) ++{ ++ return _mm_move_ss(a, _mm_rcp_ps(a)); ++} ++ ++// Compute the approximate reciprocal square root of packed single-precision ++// (32-bit) floating-point elements in a, and store the results in dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ps ++FORCE_INLINE __m128 _mm_rsqrt_ps(__m128 in) ++{ ++ float32x4_t out = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Generate masks for detecting whether input has any 0.0f/-0.0f ++ // (which becomes positive/negative infinity by IEEE-754 arithmetic rules). ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t neg_inf = vdupq_n_u32(0xFF800000); ++ const uint32x4_t has_pos_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(out)); ++ const uint32x4_t has_neg_zero = ++ vceqq_u32(neg_inf, vreinterpretq_u32_f32(out)); ++ ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#if SSE2NEON_PRECISE_SQRT ++ // Additional Netwon-Raphson iteration for accuracy ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#endif ++ ++ // Set output vector element to infinity/negative-infinity if ++ // the corresponding input vector element is 0.0f/-0.0f. ++ out = vbslq_f32(has_pos_zero, (float32x4_t) pos_inf, out); ++ out = vbslq_f32(has_neg_zero, (float32x4_t) neg_inf, out); ++ ++ return vreinterpretq_m128_f32(out); ++} ++ ++// Compute the approximate reciprocal square root of the lower single-precision ++// (32-bit) floating-point element in a, store the result in the lower element ++// of dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ss ++FORCE_INLINE __m128 _mm_rsqrt_ss(__m128 in) ++{ ++ return vsetq_lane_f32(vgetq_lane_f32(_mm_rsqrt_ps(in), 0), in, 0); ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_pu8 ++FORCE_INLINE __m64 _mm_sad_pu8(__m64 a, __m64 b) ++{ ++ uint64x1_t t = vpaddl_u32(vpaddl_u16( ++ vpaddl_u8(vabd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))))); ++ return vreinterpret_m64_u16( ++ vset_lane_u16((int) vget_lane_u64(t, 0), vdup_n_u16(0), 0)); ++} ++ ++// Macro: Set the flush zero bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The flush zero may contain any of the ++// following flags: _MM_FLUSH_ZERO_ON or _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_FLUSH_ZERO_MODE ++FORCE_INLINE void _sse2neon_mm_set_flush_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_FLUSH_ZERO_MASK) == _MM_FLUSH_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps ++FORCE_INLINE __m128 _mm_set_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {x, y, z, w}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps1 ++FORCE_INLINE __m128 _mm_set_ps1(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Macro: Set the rounding mode bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The rounding mode may contain any of ++// the following flags: _MM_ROUND_NEAREST, _MM_ROUND_DOWN, _MM_ROUND_UP, ++// _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_ROUNDING_MODE ++FORCE_INLINE_OPTNONE void _MM_SET_ROUNDING_MODE(int rounding) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ switch (rounding) { ++ case _MM_ROUND_TOWARD_ZERO: ++ r.field.bit22 = 1; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_DOWN: ++ r.field.bit22 = 0; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_UP: ++ r.field.bit22 = 1; ++ r.field.bit23 = 0; ++ break; ++ default: //_MM_ROUND_NEAREST ++ r.field.bit22 = 0; ++ r.field.bit23 = 0; ++ } ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Copy single-precision (32-bit) floating-point element a to the lower element ++// of dst, and zero the upper 3 elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ss ++FORCE_INLINE __m128 _mm_set_ss(float a) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(a, vdupq_n_f32(0), 0)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_ps ++FORCE_INLINE __m128 _mm_set1_ps(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Set the MXCSR control and status register with the value in unsigned 32-bit ++// integer a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setcsr ++// FIXME: _mm_setcsr() implementation supports changing the rounding mode only. ++FORCE_INLINE void _mm_setcsr(unsigned int a) ++{ ++ _MM_SET_ROUNDING_MODE(a); ++} ++ ++// Get the unsigned 32-bit value of the MXCSR control and status register. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_getcsr ++// FIXME: _mm_getcsr() implementation supports reading the rounding mode only. ++FORCE_INLINE unsigned int _mm_getcsr(void) ++{ ++ return _MM_GET_ROUNDING_MODE(); ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_ps ++FORCE_INLINE __m128 _mm_setr_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {w, z, y, x}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Return vector of type __m128 with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_ps ++FORCE_INLINE __m128 _mm_setzero_ps(void) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(0)); ++} ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi16 ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pi16(a, imm) \ ++ vreinterpret_m64_s16(vshuffle_s16( \ ++ vreinterpret_s16_m64(a), vreinterpret_s16_m64(a), (imm & 0x3), \ ++ ((imm >> 2) & 0x3), ((imm >> 4) & 0x3), ((imm >> 6) & 0x3))) ++#else ++#define _mm_shuffle_pi16(a, imm) \ ++ _sse2neon_define1( \ ++ __m64, a, int16x4_t ret; \ ++ ret = vmov_n_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), (imm) & (0x3))); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpret_m64_s16(ret));) ++#endif ++ ++// Perform a serializing operation on all store-to-memory instructions that were ++// issued prior to this instruction. Guarantees that every store instruction ++// that precedes, in program order, is globally visible before any store ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sfence ++FORCE_INLINE void _mm_sfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory and store-to-memory ++// instructions that were issued prior to this instruction. Guarantees that ++// every memory access that precedes, in program order, the memory fence ++// instruction is globally visible before any memory instruction which follows ++// the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mfence ++FORCE_INLINE void _mm_mfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory instructions that ++// were issued prior to this instruction. Guarantees that every load instruction ++// that precedes, in program order, is globally visible before any load ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lfence ++FORCE_INLINE void _mm_lfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// FORCE_INLINE __m128 _mm_shuffle_ps(__m128 a, __m128 b, __constrange(0,255) ++// int imm) ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_ps(a, b, imm) \ ++ __extension__({ \ ++ float32x4_t _input1 = vreinterpretq_f32_m128(a); \ ++ float32x4_t _input2 = vreinterpretq_f32_m128(b); \ ++ float32x4_t _shuf = \ ++ vshuffleq_s32(_input1, _input2, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ (((imm) >> 4) & 0x3) + 4, (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128_f32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_ps(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128, a, b, __m128 ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_1032(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_ps_2301(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_ps_0321(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_ps_2103(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_movelh_ps(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_1001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_ps_0101(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 1, 0): \ ++ ret = _mm_shuffle_ps_3210(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 1, 1): \ ++ ret = _mm_shuffle_ps_0011(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 2, 2): \ ++ ret = _mm_shuffle_ps_0022(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 0, 0): \ ++ ret = _mm_shuffle_ps_2200(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 0, 2): \ ++ ret = _mm_shuffle_ps_3202(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 3, 2): \ ++ ret = _mm_movehl_ps(_b, _a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 3, 3): \ ++ ret = _mm_shuffle_ps_1133(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 1, 0): \ ++ ret = _mm_shuffle_ps_2010(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_2001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_2032(_a, _b); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_ps_default(_a, _b, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Compute the square root of packed single-precision (32-bit) floating-point ++// elements in a, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise square root intrinsic, we implement ++// square root by multiplying input in with its reciprocal square root before ++// using the Newton-Raphson method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ps ++FORCE_INLINE __m128 _mm_sqrt_ps(__m128 in) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) && !SSE2NEON_PRECISE_SQRT ++ return vreinterpretq_m128_f32(vsqrtq_f32(vreinterpretq_f32_m128(in))); ++#else ++ float32x4_t recip = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Test for vrsqrteq_f32(0) -> positive infinity case. ++ // Change to zero, so that s * 1/sqrt(s) result is zero too. ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t div_by_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(recip)); ++ recip = vreinterpretq_f32_u32( ++ vandq_u32(vmvnq_u32(div_by_zero), vreinterpretq_u32_f32(recip))); ++ ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ ++ // sqrt(s) = s * 1/sqrt(s) ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(in), recip)); ++#endif ++} ++ ++// Compute the square root of the lower single-precision (32-bit) floating-point ++// element in a, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ss ++FORCE_INLINE __m128 _mm_sqrt_ss(__m128 in) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_sqrt_ps(in)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(in), 0)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps ++FORCE_INLINE void _mm_store_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps1 ++FORCE_INLINE void _mm_store_ps1(float *p, __m128 a) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ vst1q_f32(p, vdupq_n_f32(a0)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ss ++FORCE_INLINE void _mm_store_ss(float *p, __m128 a) ++{ ++ vst1q_lane_f32(p, vreinterpretq_f32_m128(a), 0); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store1_ps ++#define _mm_store1_ps _mm_store_ps1 ++ ++// Store the upper 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pi ++FORCE_INLINE void _mm_storeh_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_high_f32(a)); ++} ++ ++// Store the lower 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pi ++FORCE_INLINE void _mm_storel_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_low_f32(a)); ++} ++ ++// Store 4 single-precision (32-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_ps ++FORCE_INLINE void _mm_storer_ps(float *p, __m128 a) ++{ ++ float32x4_t tmp = vrev64q_f32(vreinterpretq_f32_m128(a)); ++ float32x4_t rev = vextq_f32(tmp, tmp, 2); ++ vst1q_f32(p, rev); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_ps ++FORCE_INLINE void _mm_storeu_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Stores 16-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si16 ++FORCE_INLINE void _mm_storeu_si16(void *p, __m128i a) ++{ ++ vst1q_lane_s16((int16_t *) p, vreinterpretq_s16_m128i(a), 0); ++} ++ ++// Stores 64-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si64 ++FORCE_INLINE void _mm_storeu_si64(void *p, __m128i a) ++{ ++ vst1q_lane_s64((int64_t *) p, vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Store 64-bits of integer data from a into memory using a non-temporal memory ++// hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pi ++FORCE_INLINE void _mm_stream_pi(__m64 *p, __m64 a) ++{ ++ vst1_s64((int64_t *) p, vreinterpret_s64_m64(a)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating- ++// point elements) from a into memory using a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_ps ++FORCE_INLINE void _mm_stream_ps(float *p, __m128 a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (float32x4_t *) p); ++#else ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++#endif ++} ++ ++// Subtract packed single-precision (32-bit) floating-point elements in b from ++// packed single-precision (32-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ps ++FORCE_INLINE __m128 _mm_sub_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Subtract the lower single-precision (32-bit) floating-point element in b from ++// the lower single-precision (32-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper 3 packed elements from ++// a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ss ++FORCE_INLINE __m128 _mm_sub_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_sub_ps(a, b)); ++} ++ ++// Macro: Transpose the 4x4 matrix formed by the 4 rows of single-precision ++// (32-bit) floating-point elements in row0, row1, row2, and row3, and store the ++// transposed matrix in these vectors (row0 now contains column 0, etc.). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=MM_TRANSPOSE4_PS ++#define _MM_TRANSPOSE4_PS(row0, row1, row2, row3) \ ++ do { \ ++ float32x4x2_t ROW01 = vtrnq_f32(row0, row1); \ ++ float32x4x2_t ROW23 = vtrnq_f32(row2, row3); \ ++ row0 = vcombine_f32(vget_low_f32(ROW01.val[0]), \ ++ vget_low_f32(ROW23.val[0])); \ ++ row1 = vcombine_f32(vget_low_f32(ROW01.val[1]), \ ++ vget_low_f32(ROW23.val[1])); \ ++ row2 = vcombine_f32(vget_high_f32(ROW01.val[0]), \ ++ vget_high_f32(ROW23.val[0])); \ ++ row3 = vcombine_f32(vget_high_f32(ROW01.val[1]), \ ++ vget_high_f32(ROW23.val[1])); \ ++ } while (0) ++ ++// according to the documentation, these intrinsics behave the same as the ++// non-'u' versions. We'll just alias them here. ++#define _mm_ucomieq_ss _mm_comieq_ss ++#define _mm_ucomige_ss _mm_comige_ss ++#define _mm_ucomigt_ss _mm_comigt_ss ++#define _mm_ucomile_ss _mm_comile_ss ++#define _mm_ucomilt_ss _mm_comilt_ss ++#define _mm_ucomineq_ss _mm_comineq_ss ++ ++// Return vector of type __m128i with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_undefined_si128 ++FORCE_INLINE __m128i _mm_undefined_si128(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128i a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_si128(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Return vector of type __m128 with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_ps ++FORCE_INLINE __m128 _mm_undefined_ps(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128 a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_ps(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the high half a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_ps ++FORCE_INLINE __m128 _mm_unpackhi_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_ps ++FORCE_INLINE __m128 _mm_unpacklo_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Compute the bitwise XOR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_ps ++FORCE_INLINE __m128 _mm_xor_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ veorq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++/* SSE2 */ ++ ++// Add packed 16-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi16 ++FORCE_INLINE __m128i _mm_add_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed 32-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi32 ++FORCE_INLINE __m128i _mm_add_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vaddq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Add packed 64-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi64 ++FORCE_INLINE __m128i _mm_add_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vaddq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Add packed 8-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi8 ++FORCE_INLINE __m128i _mm_add_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed double-precision (64-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_pd ++FORCE_INLINE __m128d _mm_add_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ double c[2]; ++ c[0] = a0 + b0; ++ c[1] = a1 + b1; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add the lower double-precision (64-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper element from ++// a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_sd ++FORCE_INLINE __m128d _mm_add_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_add_pd(a, b)); ++#else ++ double a0, a1, b0; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ a1 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ b0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double c[2]; ++ c[0] = a0 + b0; ++ c[1] = a1; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add 64-bit integers a and b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_si64 ++FORCE_INLINE __m64 _mm_add_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vadd_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Add packed signed 16-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi16 ++FORCE_INLINE __m128i _mm_adds_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed signed 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi8 ++FORCE_INLINE __m128i _mm_adds_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed unsigned 16-bit integers in a and b using saturation, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu16 ++FORCE_INLINE __m128i _mm_adds_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqaddq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Add packed unsigned 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu8 ++FORCE_INLINE __m128i _mm_adds_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compute the bitwise AND of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_pd ++FORCE_INLINE __m128d _mm_and_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vandq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_si128 ++FORCE_INLINE __m128i _mm_and_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vandq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compute the bitwise NOT of packed double-precision (64-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_pd ++FORCE_INLINE __m128d _mm_andnot_pd(__m128d a, __m128d b) ++{ ++ // *NOTE* argument swap ++ return vreinterpretq_m128d_s64( ++ vbicq_s64(vreinterpretq_s64_m128d(b), vreinterpretq_s64_m128d(a))); ++} ++ ++// Compute the bitwise NOT of 128 bits (representing integer data) in a and then ++// AND with b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_si128 ++FORCE_INLINE __m128i _mm_andnot_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vbicq_s32(vreinterpretq_s32_m128i(b), ++ vreinterpretq_s32_m128i(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu16 ++FORCE_INLINE __m128i _mm_avg_epu16(__m128i a, __m128i b) ++{ ++ return (__m128i) vrhaddq_u16(vreinterpretq_u16_m128i(a), ++ vreinterpretq_u16_m128i(b)); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu8 ++FORCE_INLINE __m128i _mm_avg_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vrhaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bslli_si128 ++#define _mm_bslli_si128(a, imm) _mm_slli_si128(a, imm) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bsrli_si128 ++#define _mm_bsrli_si128(a, imm) _mm_srli_si128(a, imm) ++ ++// Cast vector of type __m128d to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_ps ++FORCE_INLINE __m128 _mm_castpd_ps(__m128d a) ++{ ++ return vreinterpretq_m128_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128d to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_si128 ++FORCE_INLINE __m128i _mm_castpd_si128(__m128d a) ++{ ++ return vreinterpretq_m128i_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128 to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_pd ++FORCE_INLINE __m128d _mm_castps_pd(__m128 a) ++{ ++ return vreinterpretq_m128d_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128 to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_si128 ++FORCE_INLINE __m128i _mm_castps_si128(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128i to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_pd ++FORCE_INLINE __m128d _mm_castsi128_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vreinterpretq_f64_m128i(a)); ++#else ++ return vreinterpretq_m128d_f32(vreinterpretq_f32_m128i(a)); ++#endif ++} ++ ++// Cast vector of type __m128i to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_ps ++FORCE_INLINE __m128 _mm_castsi128_ps(__m128i a) ++{ ++ return vreinterpretq_m128_s32(vreinterpretq_s32_m128i(a)); ++} ++ ++// Invalidate and flush the cache line that contains p from all levels of the ++// cache hierarchy. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clflush ++#if defined(__APPLE__) ++#include ++#endif ++FORCE_INLINE void _mm_clflush(void const *p) ++{ ++ (void) p; ++ ++ /* sys_icache_invalidate is supported since macOS 10.5. ++ * However, it does not work on non-jailbroken iOS devices, although the ++ * compilation is successful. ++ */ ++#if defined(__APPLE__) ++ sys_icache_invalidate((void *) (uintptr_t) p, SSE2NEON_CACHELINE_SIZE); ++#elif defined(__GNUC__) || defined(__clang__) ++ uintptr_t ptr = (uintptr_t) p; ++ __builtin___clear_cache((char *) ptr, ++ (char *) ptr + SSE2NEON_CACHELINE_SIZE); ++#elif (_MSC_VER) && SSE2NEON_INCLUDE_WINDOWS_H ++ FlushInstructionCache(GetCurrentProcess(), p, SSE2NEON_CACHELINE_SIZE); ++#endif ++} ++ ++// Compare packed 16-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi16 ++FORCE_INLINE __m128i _mm_cmpeq_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vceqq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed 32-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi32 ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vceqq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed 8-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi8 ++FORCE_INLINE __m128i _mm_cmpeq_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vceqq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_pd ++FORCE_INLINE __m128d _mm_cmpeq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_sd ++FORCE_INLINE __m128d _mm_cmpeq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpeq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_pd ++FORCE_INLINE __m128d _mm_cmpge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ uint64_t d[2]; ++ d[0] = a0 >= b0 ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1 >= b1 ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_sd ++FORCE_INLINE __m128d _mm_cmpge_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpge_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ double a0, b0; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ uint64_t a1 = vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1); ++ b0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ uint64_t d[2]; ++ d[0] = a0 >= b0 ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi16 ++FORCE_INLINE __m128i _mm_cmpgt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcgtq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi32 ++FORCE_INLINE __m128i _mm_cmpgt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcgtq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi8 ++FORCE_INLINE __m128i _mm_cmpgt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcgtq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_pd ++FORCE_INLINE __m128d _mm_cmpgt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ uint64_t d[2]; ++ d[0] = a0 > b0 ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1 > b1 ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_sd ++FORCE_INLINE __m128d _mm_cmpgt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpgt_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ double a0, b0; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ uint64_t a1 = vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1); ++ b0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ uint64_t d[2]; ++ d[0] = a0 > b0 ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_pd ++FORCE_INLINE __m128d _mm_cmple_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ uint64_t d[2]; ++ d[0] = a0 <= b0 ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1 <= b1 ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_sd ++FORCE_INLINE __m128d _mm_cmple_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmple_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ double a0, b0; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ uint64_t a1 = vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1); ++ b0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ uint64_t d[2]; ++ d[0] = a0 <= b0 ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtw instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi16 ++FORCE_INLINE __m128i _mm_cmplt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcltq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtd instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi32 ++FORCE_INLINE __m128i _mm_cmplt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcltq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtb instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi8 ++FORCE_INLINE __m128i _mm_cmplt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcltq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_pd ++FORCE_INLINE __m128d _mm_cmplt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ uint64_t d[2]; ++ d[0] = a0 < b0 ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1 < b1 ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_sd ++FORCE_INLINE __m128d _mm_cmplt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmplt_pd(a, b)); ++#else ++ double a0, b0; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ uint64_t a1 = vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1); ++ b0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ uint64_t d[2]; ++ d[0] = a0 < b0 ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_pd ++FORCE_INLINE __m128d _mm_cmpneq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_s32(vmvnq_s32(vreinterpretq_s32_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vmvnq_u32(vandq_u32(cmp, swapped))); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_sd ++FORCE_INLINE __m128d _mm_cmpneq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpneq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_pd ++FORCE_INLINE __m128d _mm_cmpnge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ uint64_t d[2]; ++ d[0] = !(a0 >= b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = !(a1 >= b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_sd ++FORCE_INLINE __m128d _mm_cmpnge_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnge_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_cmpngt_pd ++FORCE_INLINE __m128d _mm_cmpngt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ uint64_t d[2]; ++ d[0] = !(a0 > b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = !(a1 > b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_sd ++FORCE_INLINE __m128d _mm_cmpngt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpngt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_pd ++FORCE_INLINE __m128d _mm_cmpnle_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ uint64_t d[2]; ++ d[0] = !(a0 <= b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = !(a1 <= b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_sd ++FORCE_INLINE __m128d _mm_cmpnle_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnle_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_pd ++FORCE_INLINE __m128d _mm_cmpnlt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ uint64_t d[2]; ++ d[0] = !(a0 < b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = !(a1 < b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_sd ++FORCE_INLINE __m128d _mm_cmpnlt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnlt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_pd ++FORCE_INLINE __m128d _mm_cmpord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Excluding NaNs, any two floating point numbers can be compared. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_u64(vandq_u64(not_nan_a, not_nan_b)); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ uint64_t d[2]; ++ d[0] = (a0 == a0 && b0 == b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (a1 == a1 && b1 == b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_sd ++FORCE_INLINE __m128d _mm_cmpord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpord_pd(a, b)); ++#else ++ double a0, b0; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ uint64_t a1 = vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1); ++ b0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ uint64_t d[2]; ++ d[0] = (a0 == a0 && b0 == b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_pd ++FORCE_INLINE __m128d _mm_cmpunord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Two NaNs are not equal in comparison operation. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_s32( ++ vmvnq_s32(vreinterpretq_s32_u64(vandq_u64(not_nan_a, not_nan_b)))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ uint64_t d[2]; ++ d[0] = (a0 == a0 && b0 == b0) ? UINT64_C(0) : ~UINT64_C(0); ++ d[1] = (a1 == a1 && b1 == b1) ? UINT64_C(0) : ~UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_sd ++FORCE_INLINE __m128d _mm_cmpunord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpunord_pd(a, b)); ++#else ++ double a0, b0; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ uint64_t a1 = vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1); ++ b0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ uint64_t d[2]; ++ d[0] = (a0 == a0 && b0 == b0) ? UINT64_C(0) : ~UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_sd ++FORCE_INLINE int _mm_comige_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgeq_f64(a, b), 0) & 0x1; ++#else ++ double a0, b0; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ b0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ return a0 >= b0; ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_sd ++FORCE_INLINE int _mm_comigt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgtq_f64(a, b), 0) & 0x1; ++#else ++ double a0, b0; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ b0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ ++ return a0 > b0; ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_sd ++FORCE_INLINE int _mm_comile_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcleq_f64(a, b), 0) & 0x1; ++#else ++ double a0, b0; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ b0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ ++ return a0 <= b0; ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_sd ++FORCE_INLINE int _mm_comilt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcltq_f64(a, b), 0) & 0x1; ++#else ++ double a0, b0; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ b0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ ++ return a0 < b0; ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_sd ++FORCE_INLINE int _mm_comieq_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vceqq_f64(a, b), 0) & 0x1; ++#else ++ uint32x4_t a_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(a)); ++ uint32x4_t b_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(b), vreinterpretq_u32_m128d(b)); ++ uint32x4_t a_and_b_not_nan = vandq_u32(a_not_nan, b_not_nan); ++ uint32x4_t a_eq_b = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint64x2_t and_results = vandq_u64(vreinterpretq_u64_u32(a_and_b_not_nan), ++ vreinterpretq_u64_u32(a_eq_b)); ++ return vgetq_lane_u64(and_results, 0) & 0x1; ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_sd ++FORCE_INLINE int _mm_comineq_sd(__m128d a, __m128d b) ++{ ++ return !_mm_comieq_sd(a, b); ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_pd ++FORCE_INLINE __m128d _mm_cvtepi32_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a))))); ++#else ++ double a0 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++ double a1 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_ps ++FORCE_INLINE __m128 _mm_cvtepi32_ps(__m128i a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_epi32 ++FORCE_INLINE_OPTNONE __m128i _mm_cvtpd_epi32(__m128d a) ++{ ++// vrnd32xq_f64 not supported on clang ++#if defined(__ARM_FEATURE_FRINT) && !defined(__clang__) ++ float64x2_t rounded = vrnd32xq_f64(vreinterpretq_f64_m128d(a)); ++ int64x2_t integers = vcvtq_s64_f64(rounded); ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vmovn_s64(integers), vdup_n_s32(0))); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0, d1; ++ d0 = sse2neon_recast_u64_f64( ++ vgetq_lane_u64(vreinterpretq_u64_m128d(rnd), 0)); ++ d1 = sse2neon_recast_u64_f64( ++ vgetq_lane_u64(vreinterpretq_u64_m128d(rnd), 1)); ++ return _mm_set_epi32(0, 0, (int32_t) d1, (int32_t) d0); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_pi32 ++FORCE_INLINE_OPTNONE __m64 _mm_cvtpd_pi32(__m128d a) ++{ ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0, d1; ++ d0 = sse2neon_recast_u64_f64( ++ vgetq_lane_u64(vreinterpretq_u64_m128d(rnd), 0)); ++ d1 = sse2neon_recast_u64_f64( ++ vgetq_lane_u64(vreinterpretq_u64_m128d(rnd), 1)); ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) d0, (int32_t) d1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed single-precision (32-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_ps ++FORCE_INLINE __m128 _mm_cvtpd_ps(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float32x2_t tmp = vcvt_f32_f64(vreinterpretq_f64_m128d(a)); ++ return vreinterpretq_m128_f32(vcombine_f32(tmp, vdup_n_f32(0))); ++#else ++ double a0, a1; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ a1 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ return _mm_set_ps(0, 0, (float) a1, (float) a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_pd ++FORCE_INLINE __m128d _mm_cvtpi32_pd(__m64 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vreinterpret_s32_m64(a)))); ++#else ++ double a0 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 0); ++ double a1 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_epi32 ++// *NOTE*. The default rounding mode on SSE is 'round to even', which ARMv7-A ++// does not support! It is supported on ARMv8-A however. ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128 a) ++{ ++#if defined(__ARM_FEATURE_FRINT) ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vrnd32xq_f32(a))); ++#elif (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: ++ return vreinterpretq_m128i_s32(vcvtnq_s32_f32(a)); ++ case _MM_ROUND_DOWN: ++ return vreinterpretq_m128i_s32(vcvtmq_s32_f32(a)); ++ case _MM_ROUND_UP: ++ return vreinterpretq_m128i_s32(vcvtpq_s32_f32(a)); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(a)); ++ } ++#else ++ float *f = (float *) &a; ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128i_s32( ++ vbslq_s32(is_delta_half, r_even, r_normal)); ++ } ++ case _MM_ROUND_DOWN: ++ return _mm_set_epi32(floorf(f[3]), floorf(f[2]), floorf(f[1]), ++ floorf(f[0])); ++ case _MM_ROUND_UP: ++ return _mm_set_epi32(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ++ ceilf(f[0])); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return _mm_set_epi32((int32_t) f[3], (int32_t) f[2], (int32_t) f[1], ++ (int32_t) f[0]); ++ } ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed double-precision (64-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pd ++FORCE_INLINE __m128d _mm_cvtps_pd(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvt_f64_f32(vget_low_f32(vreinterpretq_f32_m128(a)))); ++#else ++ double a0 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ double a1 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Copy the lower double-precision (64-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_f64 ++FORCE_INLINE double _mm_cvtsd_f64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (double) vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0); ++#else ++ double _a = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ return _a; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si32 ++FORCE_INLINE int32_t _mm_cvtsd_si32(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int32_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = sse2neon_recast_u64_f64( ++ vgetq_lane_u64(vreinterpretq_u64_m128d(rnd), 0)); ++ return (int32_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64 ++FORCE_INLINE int64_t _mm_cvtsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int64_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = sse2neon_recast_u64_f64( ++ vgetq_lane_u64(vreinterpretq_u64_m128d(rnd), 0)); ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64x ++#define _mm_cvtsd_si64x _mm_cvtsd_si64 ++ ++// Convert the lower double-precision (64-bit) floating-point element in b to a ++// single-precision (32-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_ss ++FORCE_INLINE __m128 _mm_cvtsd_ss(__m128 a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32(vsetq_lane_f32( ++ vget_lane_f32(vcvt_f32_f64(vreinterpretq_f64_m128d(b)), 0), ++ vreinterpretq_f32_m128(a), 0)); ++#else ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b0, vreinterpretq_f32_m128(a), 0)); ++#endif ++} ++ ++// Copy the lower 32-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si32 ++FORCE_INLINE int _mm_cvtsi128_si32(__m128i a) ++{ ++ return vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64 ++FORCE_INLINE int64_t _mm_cvtsi128_si64(__m128i a) ++{ ++ return vgetq_lane_s64(vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Convert the signed 32-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_sd ++FORCE_INLINE __m128d _mm_cvtsi32_sd(__m128d a, int32_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ int64_t _b = sse2neon_recast_f64_s64((double) b); ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(_b, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Copy 32-bit integer a to the lower elements of dst, and zero the upper ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_si128 ++FORCE_INLINE __m128i _mm_cvtsi32_si128(int a) ++{ ++ return vreinterpretq_m128i_s32(vsetq_lane_s32(a, vdupq_n_s32(0), 0)); ++} ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_sd ++FORCE_INLINE __m128d _mm_cvtsi64_sd(__m128d a, int64_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ int64_t _b = sse2neon_recast_f64_s64((double) b); ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(_b, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_si128 ++FORCE_INLINE __m128i _mm_cvtsi64_si128(int64_t a) ++{ ++ return vreinterpretq_m128i_s64(vsetq_lane_s64(a, vdupq_n_s64(0), 0)); ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_si128 ++#define _mm_cvtsi64x_si128(a) _mm_cvtsi64_si128(a) ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_sd ++#define _mm_cvtsi64x_sd(a, b) _mm_cvtsi64_sd(a, b) ++ ++// Convert the lower single-precision (32-bit) floating-point element in b to a ++// double-precision (64-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_sd ++FORCE_INLINE __m128d _mm_cvtss_sd(__m128d a, __m128 b) ++{ ++ double d = (double) vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(d, vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_s64(vsetq_lane_s64( ++ sse2neon_recast_f64_s64(d), vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_epi32 ++FORCE_INLINE __m128i _mm_cvttpd_epi32(__m128d a) ++{ ++ double a0, a1; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ a1 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ return _mm_set_epi32(0, 0, (int32_t) a1, (int32_t) a0); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_pi32 ++FORCE_INLINE_OPTNONE __m64 _mm_cvttpd_pi32(__m128d a) ++{ ++ double a0, a1; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ a1 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) a0, (int32_t) a1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_epi32 ++FORCE_INLINE __m128i _mm_cvttps_epi32(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a))); ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si32 ++FORCE_INLINE int32_t _mm_cvttsd_si32(__m128d a) ++{ ++ double _a = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ return (int32_t) _a; ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64 ++FORCE_INLINE int64_t _mm_cvttsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_s64(vcvtq_s64_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ double _a = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ return (int64_t) _a; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64x ++#define _mm_cvttsd_si64x(a) _mm_cvttsd_si64(a) ++ ++// Divide packed double-precision (64-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_pd ++FORCE_INLINE __m128d _mm_div_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ double c[2]; ++ c[0] = a0 / b0; ++ c[1] = a1 / b1; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Divide the lower double-precision (64-bit) floating-point element in a by the ++// lower double-precision (64-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper element from a to the upper ++// element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_sd ++FORCE_INLINE __m128d _mm_div_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t tmp = ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1), tmp, 1)); ++#else ++ return _mm_move_sd(a, _mm_div_pd(a, b)); ++#endif ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi16 ++// FORCE_INLINE int _mm_extract_epi16(__m128i a, __constrange(0,8) int imm) ++#define _mm_extract_epi16(a, imm) \ ++ vgetq_lane_u16(vreinterpretq_u16_m128i(a), (imm)) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi16 ++// FORCE_INLINE __m128i _mm_insert_epi16(__m128i a, int b, ++// __constrange(0,8) int imm) ++#define _mm_insert_epi16(a, b, imm) \ ++ vreinterpretq_m128i_s16( \ ++ vsetq_lane_s16((b), vreinterpretq_s16_m128i(a), (imm))) ++ ++// Load 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd ++FORCE_INLINE __m128d _mm_load_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64(p)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], fp[2], fp[3]}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd1 ++#define _mm_load_pd1 _mm_load1_pd ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower of dst, and zero the upper element. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_sd ++FORCE_INLINE __m128d _mm_load_sd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(*p, vdupq_n_f64(0), 0)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], 0, 0}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_si128 ++FORCE_INLINE __m128i _mm_load_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const int32_t *) p)); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_pd ++FORCE_INLINE __m128d _mm_load1_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_dup_f64(p)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(const int64_t *) p)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// upper element of dst, and copy the lower element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pd ++FORCE_INLINE __m128d _mm_loadh_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vget_low_f64(vreinterpretq_f64_m128d(a)), vld1_f64(p))); ++#else ++ return vreinterpretq_m128d_f32(vcombine_f32( ++ vget_low_f32(vreinterpretq_f32_m128d(a)), vld1_f32((const float *) p))); ++#endif ++} ++ ++// Load 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_epi64 ++FORCE_INLINE __m128i _mm_loadl_epi64(__m128i const *p) ++{ ++ /* Load the lower 64 bits of the value pointed to by p into the ++ * lower 64 bits of the result, zeroing the upper 64 bits of the result. ++ */ ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vld1_s32((int32_t const *) p), vcreate_s32(0))); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower element of dst, and copy the upper element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pd ++FORCE_INLINE __m128d _mm_loadl_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vld1_f64(p), vget_high_f64(vreinterpretq_f64_m128d(a)))); ++#else ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vld1_f32((const float *) p), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++#endif ++} ++ ++// Load 2 double-precision (64-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_pd ++FORCE_INLINE __m128d _mm_loadr_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t v = vld1q_f64(p); ++ return vreinterpretq_m128d_f64(vextq_f64(v, v, 1)); ++#else ++ int64x2_t v = vld1q_s64((const int64_t *) p); ++ return vreinterpretq_m128d_s64(vextq_s64(v, v, 1)); ++#endif ++} ++ ++// Loads two double-precision from unaligned memory, floating-point values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_pd ++FORCE_INLINE __m128d _mm_loadu_pd(const double *p) ++{ ++ return _mm_load_pd(p); ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si128 ++FORCE_INLINE __m128i _mm_loadu_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const unaligned_int32_t *) p)); ++} ++ ++// Load unaligned 32-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si32 ++FORCE_INLINE __m128i _mm_loadu_si32(const void *p) ++{ ++ return vreinterpretq_m128i_s32( ++ vsetq_lane_s32(*(const unaligned_int32_t *) p, vdupq_n_s32(0), 0)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Horizontally add adjacent pairs of intermediate ++// 32-bit integers, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_madd_epi16 ++FORCE_INLINE __m128i _mm_madd_epi16(__m128i a, __m128i b) ++{ ++ int32x4_t low = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t high = ++ vmull_high_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b)); ++ ++ return vreinterpretq_m128i_s32(vpaddq_s32(low, high)); ++#else ++ int32x4_t high = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ int32x2_t low_sum = vpadd_s32(vget_low_s32(low), vget_high_s32(low)); ++ int32x2_t high_sum = vpadd_s32(vget_low_s32(high), vget_high_s32(high)); ++ ++ return vreinterpretq_m128i_s32(vcombine_s32(low_sum, high_sum)); ++#endif ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. mem_addr does not need to be aligned ++// on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmoveu_si128 ++FORCE_INLINE void _mm_maskmoveu_si128(__m128i a, __m128i mask, char *mem_addr) ++{ ++ int8x16_t shr_mask = vshrq_n_s8(vreinterpretq_s8_m128i(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x16_t masked = ++ vbslq_s8(vreinterpretq_u8_s8(shr_mask), vreinterpretq_s8_m128i(a), ++ vreinterpretq_s8_m128(b)); ++ vst1q_s8((int8_t *) mem_addr, masked); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi16 ++FORCE_INLINE __m128i _mm_max_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmaxq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu8 ++FORCE_INLINE __m128i _mm_max_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vmaxq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pd ++FORCE_INLINE __m128d _mm_max_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcgtq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vmaxq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ int64_t d[2]; ++ d[0] = a0 > b0 ? sse2neon_recast_f64_s64(a0) : sse2neon_recast_f64_s64(b0); ++ d[1] = a1 > b1 ? sse2neon_recast_f64_s64(a1) : sse2neon_recast_f64_s64(b1); ++ ++ return vreinterpretq_m128d_s64(vld1q_s64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_sd ++FORCE_INLINE __m128d _mm_max_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_max_pd(a, b)); ++#else ++ double a0, a1, b0; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ a1 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ b0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double c[2] = {a0 > b0 ? a0 : b0, a1}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi16 ++FORCE_INLINE __m128i _mm_min_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vminq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu8 ++FORCE_INLINE __m128i _mm_min_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vminq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pd ++FORCE_INLINE __m128d _mm_min_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcltq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vminq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ int64_t d[2]; ++ d[0] = a0 < b0 ? sse2neon_recast_f64_s64(a0) : sse2neon_recast_f64_s64(b0); ++ d[1] = a1 < b1 ? sse2neon_recast_f64_s64(a1) : sse2neon_recast_f64_s64(b1); ++ return vreinterpretq_m128d_s64(vld1q_s64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_sd ++FORCE_INLINE __m128d _mm_min_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_min_pd(a, b)); ++#else ++ double a0, a1, b0; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ a1 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ b0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double c[2] = {a0 < b0 ? a0 : b0, a1}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to the lower element of dst, and zero the ++// upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_epi64 ++FORCE_INLINE __m128i _mm_move_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(0, vreinterpretq_s64_m128i(a), 1)); ++} ++ ++// Move the lower double-precision (64-bit) floating-point element from b to the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_sd ++FORCE_INLINE __m128d _mm_move_sd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vget_low_f32(vreinterpretq_f32_m128d(b)), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_epi8 ++FORCE_INLINE int _mm_movemask_epi8(__m128i a) ++{ ++ // Use increasingly wide shifts+adds to collect the sign bits ++ // together. ++ // Since the widening shifts would be rather confusing to follow in little ++ // endian, everything will be illustrated in big endian order instead. This ++ // has a different result - the bits would actually be reversed on a big ++ // endian machine. ++ ++ // Starting input (only half the elements are shown): ++ // 89 ff 1d c0 00 10 99 33 ++ uint8x16_t input = vreinterpretq_u8_m128i(a); ++ ++ // Shift out everything but the sign bits with an unsigned shift right. ++ // ++ // Bytes of the vector:: ++ // 89 ff 1d c0 00 10 99 33 ++ // \ \ \ \ \ \ \ \ high_bits = (uint16x4_t)(input >> 7) ++ // | | | | | | | | ++ // 01 01 00 01 00 00 01 00 ++ // ++ // Bits of first important lane(s): ++ // 10001001 (89) ++ // \______ ++ // | ++ // 00000001 (01) ++ uint16x8_t high_bits = vreinterpretq_u16_u8(vshrq_n_u8(input, 7)); ++ ++ // Merge the even lanes together with a 16-bit unsigned shift right + add. ++ // 'xx' represents garbage data which will be ignored in the final result. ++ // In the important bytes, the add functions like a binary OR. ++ // ++ // 01 01 00 01 00 00 01 00 ++ // \_ | \_ | \_ | \_ | paired16 = (uint32x4_t)(input + (input >> 7)) ++ // \| \| \| \| ++ // xx 03 xx 01 xx 00 xx 02 ++ // ++ // 00000001 00000001 (01 01) ++ // \_______ | ++ // \| ++ // xxxxxxxx xxxxxx11 (xx 03) ++ uint32x4_t paired16 = ++ vreinterpretq_u32_u16(vsraq_n_u16(high_bits, high_bits, 7)); ++ ++ // Repeat with a wider 32-bit shift + add. ++ // xx 03 xx 01 xx 00 xx 02 ++ // \____ | \____ | paired32 = (uint64x1_t)(paired16 + (paired16 >> ++ // 14)) ++ // \| \| ++ // xx xx xx 0d xx xx xx 02 ++ // ++ // 00000011 00000001 (03 01) ++ // \\_____ || ++ // '----.\|| ++ // xxxxxxxx xxxx1101 (xx 0d) ++ uint64x2_t paired32 = ++ vreinterpretq_u64_u32(vsraq_n_u32(paired16, paired16, 14)); ++ ++ // Last, an even wider 64-bit shift + add to get our result in the low 8 bit ++ // lanes. xx xx xx 0d xx xx xx 02 ++ // \_________ | paired64 = (uint8x8_t)(paired32 + (paired32 >> ++ // 28)) ++ // \| ++ // xx xx xx xx xx xx xx d2 ++ // ++ // 00001101 00000010 (0d 02) ++ // \ \___ | | ++ // '---. \| | ++ // xxxxxxxx 11010010 (xx d2) ++ uint8x16_t paired64 = ++ vreinterpretq_u8_u64(vsraq_n_u64(paired32, paired32, 28)); ++ ++ // Extract the low 8 bits from each 64-bit lane with 2 8-bit extracts. ++ // xx xx xx xx xx xx xx d2 ++ // || return paired64[0] ++ // d2 ++ // Note: Little endian would return the correct value 4b (01001011) instead. ++ return vgetq_lane_u8(paired64, 0) | ((int) vgetq_lane_u8(paired64, 8) << 8); ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed double-precision (64-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pd ++FORCE_INLINE int _mm_movemask_pd(__m128d a) ++{ ++ uint64x2_t input = vreinterpretq_u64_m128d(a); ++ uint64x2_t high_bits = vshrq_n_u64(input, 63); ++ return (int) (vgetq_lane_u64(high_bits, 0) | ++ (vgetq_lane_u64(high_bits, 1) << 1)); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movepi64_pi64 ++FORCE_INLINE __m64 _mm_movepi64_pi64(__m128i a) ++{ ++ return vreinterpret_m64_s64(vget_low_s64(vreinterpretq_s64_m128i(a))); ++} ++ ++// Copy the 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movpi64_epi64 ++FORCE_INLINE __m128i _mm_movpi64_epi64(__m64 a) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vreinterpret_s64_m64(a), vdup_n_s64(0))); ++} ++ ++// Multiply the low unsigned 32-bit integers from each packed 64-bit element in ++// a and b, and store the unsigned 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epu32 ++FORCE_INLINE __m128i _mm_mul_epu32(__m128i a, __m128i b) ++{ ++ // vmull_u32 upcasts instead of masking, so we downcast. ++ uint32x2_t a_lo = vmovn_u64(vreinterpretq_u64_m128i(a)); ++ uint32x2_t b_lo = vmovn_u64(vreinterpretq_u64_m128i(b)); ++ return vreinterpretq_m128i_u64(vmull_u32(a_lo, b_lo)); ++} ++ ++// Multiply packed double-precision (64-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_pd ++FORCE_INLINE __m128d _mm_mul_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vmulq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ double c[2]; ++ c[0] = a0 * b0; ++ c[1] = a1 * b1; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Multiply the lower double-precision (64-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper element ++// from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_mul_sd ++FORCE_INLINE __m128d _mm_mul_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_mul_pd(a, b)); ++} ++ ++// Multiply the low unsigned 32-bit integers from a and b, and store the ++// unsigned 64-bit result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_su32 ++FORCE_INLINE __m64 _mm_mul_su32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u64(vget_low_u64( ++ vmull_u32(vreinterpret_u32_m64(a), vreinterpret_u32_m64(b)))); ++} ++ ++// Multiply the packed signed 16-bit integers in a and b, producing intermediate ++// 32-bit integers, and store the high 16 bits of the intermediate integers in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epi16 ++FORCE_INLINE __m128i _mm_mulhi_epi16(__m128i a, __m128i b) ++{ ++ /* FIXME: issue with large values because of result saturation */ ++ // int16x8_t ret = vqdmulhq_s16(vreinterpretq_s16_m128i(a), ++ // vreinterpretq_s16_m128i(b)); /* =2*a*b */ return ++ // vreinterpretq_m128i_s16(vshrq_n_s16(ret, 1)); ++ int16x4_t a3210 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b3210 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab3210 = vmull_s16(a3210, b3210); /* 3333222211110000 */ ++ int16x4_t a7654 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b7654 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab7654 = vmull_s16(a7654, b7654); /* 7777666655554444 */ ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_s32(ab3210), vreinterpretq_u16_s32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epu16 ++FORCE_INLINE __m128i _mm_mulhi_epu16(__m128i a, __m128i b) ++{ ++ uint16x4_t a3210 = vget_low_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b3210 = vget_low_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab3210 = vmull_u16(a3210, b3210); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32x4_t ab7654 = ++ vmull_high_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ uint16x8_t r = vuzp2q_u16(vreinterpretq_u16_u32(ab3210), ++ vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r); ++#else ++ uint16x4_t a7654 = vget_high_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b7654 = vget_high_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab7654 = vmull_u16(a7654, b7654); ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_u32(ab3210), vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++#endif ++} ++ ++// Multiply the packed 16-bit integers in a and b, producing intermediate 32-bit ++// integers, and store the low 16 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi16 ++FORCE_INLINE __m128i _mm_mullo_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmulq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compute the bitwise OR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_or_pd ++FORCE_INLINE __m128d _mm_or_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vorrq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise OR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_si128 ++FORCE_INLINE __m128i _mm_or_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vorrq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi16 ++FORCE_INLINE __m128i _mm_packs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vqmovn_s16(vreinterpretq_s16_m128i(a)), ++ vqmovn_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi32 ++FORCE_INLINE __m128i _mm_packs_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vqmovn_s32(vreinterpretq_s32_m128i(a)), ++ vqmovn_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi16 ++FORCE_INLINE __m128i _mm_packus_epi16(const __m128i a, const __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcombine_u8(vqmovun_s16(vreinterpretq_s16_m128i(a)), ++ vqmovun_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Pause the processor. This is typically used in spin-wait loops and depending ++// on the x86 processor typical values are in the 40-100 cycle range. The ++// 'yield' instruction isn't a good fit because it's effectively a nop on most ++// Arm cores. Experience with several databases has shown has shown an 'isb' is ++// a reasonable approximation. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_pause ++FORCE_INLINE void _mm_pause(void) ++{ ++#if defined(_MSC_VER) && !defined(__clang__) ++ __isb(_ARM64_BARRIER_SY); ++#else ++ __asm__ __volatile__("isb\n"); ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce two ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of 64-bit elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_epu8 ++FORCE_INLINE __m128i _mm_sad_epu8(__m128i a, __m128i b) ++{ ++ uint16x8_t t = vpaddlq_u8(vabdq_u8((uint8x16_t) a, (uint8x16_t) b)); ++ return vreinterpretq_m128i_u64(vpaddlq_u32(vpaddlq_u16(t))); ++} ++ ++// Set packed 16-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi16 ++FORCE_INLINE __m128i _mm_set_epi16(short i7, ++ short i6, ++ short i5, ++ short i4, ++ short i3, ++ short i2, ++ short i1, ++ short i0) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {i0, i1, i2, i3, i4, i5, i6, i7}; ++ return vreinterpretq_m128i_s16(vld1q_s16(data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi32 ++FORCE_INLINE __m128i _mm_set_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i0, i1, i2, i3}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64 ++FORCE_INLINE __m128i _mm_set_epi64(__m64 i1, __m64 i2) ++{ ++ return _mm_set_epi64x(vget_lane_s64(i1, 0), vget_lane_s64(i2, 0)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64x ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t i1, int64_t i2) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vcreate_s64(i2), vcreate_s64(i1))); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi8 ++FORCE_INLINE __m128i _mm_set_epi8(signed char b15, ++ signed char b14, ++ signed char b13, ++ signed char b12, ++ signed char b11, ++ signed char b10, ++ signed char b9, ++ signed char b8, ++ signed char b7, ++ signed char b6, ++ signed char b5, ++ signed char b4, ++ signed char b3, ++ signed char b2, ++ signed char b1, ++ signed char b0) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd ++FORCE_INLINE __m128d _mm_set_pd(double e1, double e0) ++{ ++ double ALIGN_STRUCT(16) data[2] = {e0, e1}; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64((float64_t *) data)); ++#else ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) data)); ++#endif ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd1 ++#define _mm_set_pd1 _mm_set1_pd ++ ++// Copy double-precision (64-bit) floating-point element a to the lower element ++// of dst, and zero the upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_sd ++FORCE_INLINE __m128d _mm_set_sd(double a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(a, vdupq_n_f64(0), 0)); ++#else ++ return _mm_set_pd(0, a); ++#endif ++} ++ ++// Broadcast 16-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi16 ++FORCE_INLINE __m128i _mm_set1_epi16(short w) ++{ ++ return vreinterpretq_m128i_s16(vdupq_n_s16(w)); ++} ++ ++// Broadcast 32-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi32 ++FORCE_INLINE __m128i _mm_set1_epi32(int _i) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(_i)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64 ++FORCE_INLINE __m128i _mm_set1_epi64(__m64 _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_lane_s64(_i, 0)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64x ++FORCE_INLINE __m128i _mm_set1_epi64x(int64_t _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_n_s64(_i)); ++} ++ ++// Broadcast 8-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi8 ++FORCE_INLINE __m128i _mm_set1_epi8(signed char w) ++{ ++ return vreinterpretq_m128i_s8(vdupq_n_s8(w)); ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_pd ++FORCE_INLINE __m128d _mm_set1_pd(double d) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(d)); ++#else ++ int64_t _d = sse2neon_recast_f64_s64(d); ++ return vreinterpretq_m128d_s64(vdupq_n_s64(_d)); ++#endif ++} ++ ++// Set packed 16-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi16 ++FORCE_INLINE __m128i _mm_setr_epi16(short w0, ++ short w1, ++ short w2, ++ short w3, ++ short w4, ++ short w5, ++ short w6, ++ short w7) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {w0, w1, w2, w3, w4, w5, w6, w7}; ++ return vreinterpretq_m128i_s16(vld1q_s16((int16_t *) data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi32 ++FORCE_INLINE __m128i _mm_setr_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i3, i2, i1, i0}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi64 ++FORCE_INLINE __m128i _mm_setr_epi64(__m64 e1, __m64 e0) ++{ ++ return vreinterpretq_m128i_s64(vcombine_s64(e1, e0)); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi8 ++FORCE_INLINE __m128i _mm_setr_epi8(signed char b0, ++ signed char b1, ++ signed char b2, ++ signed char b3, ++ signed char b4, ++ signed char b5, ++ signed char b6, ++ signed char b7, ++ signed char b8, ++ signed char b9, ++ signed char b10, ++ signed char b11, ++ signed char b12, ++ signed char b13, ++ signed char b14, ++ signed char b15) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_pd ++FORCE_INLINE __m128d _mm_setr_pd(double e1, double e0) ++{ ++ return _mm_set_pd(e0, e1); ++} ++ ++// Return vector of type __m128d with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_pd ++FORCE_INLINE __m128d _mm_setzero_pd(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(0)); ++#else ++ return vreinterpretq_m128d_f32(vdupq_n_f32(0)); ++#endif ++} ++ ++// Return vector of type __m128i with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_si128 ++FORCE_INLINE __m128i _mm_setzero_si128(void) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(0)); ++} ++ ++// Shuffle 32-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi32 ++// FORCE_INLINE __m128i _mm_shuffle_epi32(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shuffle_epi32(a, imm) \ ++ __extension__({ \ ++ int32x4_t _input = vreinterpretq_s32_m128i(a); \ ++ int32x4_t _shuf = \ ++ vshuffleq_s32(_input, _input, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ ((imm) >> 4) & 0x3, ((imm) >> 6) & 0x3); \ ++ vreinterpretq_m128i_s32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_epi32(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, __m128i ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_epi_1032(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_epi_2301(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_epi_0321(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_epi_2103(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_shuffle_epi_1010(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_epi_1001(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_epi_0101(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 1, 1): \ ++ ret = _mm_shuffle_epi_2211(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 2, 2): \ ++ ret = _mm_shuffle_epi_0122(_a); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 2): \ ++ ret = _mm_shuffle_epi_3332(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 0, 0): \ ++ ret = _mm_shuffle_epi32_splat(_a, 0); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 1, 1): \ ++ ret = _mm_shuffle_epi32_splat(_a, 1); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 2, 2): \ ++ ret = _mm_shuffle_epi32_splat(_a, 2); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 3): \ ++ ret = _mm_shuffle_epi32_splat(_a, 3); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_epi32_default(_a, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Shuffle double-precision (64-bit) floating-point elements using the control ++// in imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pd ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pd(a, b, imm8) \ ++ vreinterpretq_m128d_s64( \ ++ vshuffleq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b), \ ++ imm8 & 0x1, ((imm8 & 0x2) >> 1) + 2)) ++#else ++#define _mm_shuffle_pd(a, b, imm8) \ ++ _mm_castsi128_pd(_mm_set_epi64x( \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(b), (imm8 & 0x2) >> 1), \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(a), imm8 & 0x1))) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflehi_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflehi_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = \ ++ vshuffleq_s16(_input, _input, 0, 1, 2, 3, ((imm) & (0x3)) + 4, \ ++ (((imm) >> 2) & 0x3) + 4, (((imm) >> 4) & 0x3) + 4, \ ++ (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflehi_epi16(a, imm) _mm_shufflehi_epi16_function((a), (imm)) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflelo_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflelo_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = vshuffleq_s16( \ ++ _input, _input, ((imm) & (0x3)), (((imm) >> 2) & 0x3), \ ++ (((imm) >> 4) & 0x3), (((imm) >> 6) & 0x3), 4, 5, 6, 7); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflelo_epi16(a, imm) _mm_shufflelo_epi16_function((a), (imm)) ++#endif ++ ++// Shift packed 16-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi16 ++FORCE_INLINE __m128i _mm_sll_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16((int16_t) c); ++ return vreinterpretq_m128i_s16(vshlq_s16(vreinterpretq_s16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi32 ++FORCE_INLINE __m128i _mm_sll_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32((int32_t) c); ++ return vreinterpretq_m128i_s32(vshlq_s32(vreinterpretq_s32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi64 ++FORCE_INLINE __m128i _mm_sll_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64((int64_t) c); ++ return vreinterpretq_m128i_s64(vshlq_s64(vreinterpretq_s64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi16 ++FORCE_INLINE __m128i _mm_slli_epi16(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~15)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16(vreinterpretq_s16_m128i(a), vdupq_n_s16(imm))); ++} ++ ++// Shift packed 32-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi32 ++FORCE_INLINE __m128i _mm_slli_epi32(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~31)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32(vreinterpretq_s32_m128i(a), vdupq_n_s32(imm))); ++} ++ ++// Shift packed 64-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi64 ++FORCE_INLINE __m128i _mm_slli_epi64(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~63)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s64( ++ vshlq_s64(vreinterpretq_s64_m128i(a), vdupq_n_s64(imm))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_si128 ++#define _mm_slli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely(imm == 0)) ret = vreinterpretq_s8_m128i(_a); \ ++ else if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vdupq_n_s8(0), vreinterpretq_s8_m128i(_a), \ ++ ((imm <= 0 || imm > 15) ? 0 : (16 - imm))); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Compute the square root of packed double-precision (64-bit) floating-point ++// elements in a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_pd ++FORCE_INLINE __m128d _mm_sqrt_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsqrtq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double a0, a1; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ a1 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double _a0 = sqrt(a0); ++ double _a1 = sqrt(a1); ++ return _mm_set_pd(_a1, _a0); ++#endif ++} ++ ++// Compute the square root of the lower double-precision (64-bit) floating-point ++// element in b, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_sd ++FORCE_INLINE __m128d _mm_sqrt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_sqrt_pd(b)); ++#else ++ double _a, _b; ++ _a = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ _b = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ return _mm_set_pd(_a, sqrt(_b)); ++#endif ++} ++ ++// Shift packed 16-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi16 ++FORCE_INLINE __m128i _mm_sra_epi16(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_cmplt_epi16(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16((int16x8_t) a, vdupq_n_s16((int) -c))); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi32 ++FORCE_INLINE __m128i _mm_sra_epi32(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_cmplt_epi32(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32((int32x4_t) a, vdupq_n_s32((int) -c))); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in sign ++// bits, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi16 ++FORCE_INLINE __m128i _mm_srai_epi16(__m128i a, int imm) ++{ ++ const int count = (imm & ~15) ? 15 : imm; ++ return (__m128i) vshlq_s16((int16x8_t) a, vdupq_n_s16(-count)); ++} ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi32 ++// FORCE_INLINE __m128i _mm_srai_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srai_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) == 0)) { \ ++ ret = _a; \ ++ } else if (_sse2neon_likely(0 < (imm) && (imm) < 32)) { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshlq_s32(vreinterpretq_s32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } else { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshrq_n_s32(vreinterpretq_s32_m128i(_a), 31)); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 16-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi16 ++FORCE_INLINE __m128i _mm_srl_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16(-(int16_t) c); ++ return vreinterpretq_m128i_u16(vshlq_u16(vreinterpretq_u16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi32 ++FORCE_INLINE __m128i _mm_srl_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32(-(int32_t) c); ++ return vreinterpretq_m128i_u32(vshlq_u32(vreinterpretq_u32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi64 ++FORCE_INLINE __m128i _mm_srl_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64(-(int64_t) c); ++ return vreinterpretq_m128i_u64(vshlq_u64(vreinterpretq_u64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi16 ++#define _mm_srli_epi16(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~15)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u16( \ ++ vshlq_u16(vreinterpretq_u16_m128i(_a), vdupq_n_s16(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi32 ++// FORCE_INLINE __m128i _mm_srli_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srli_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~31)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u32( \ ++ vshlq_u32(vreinterpretq_u32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 64-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi64 ++#define _mm_srli_epi64(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~63)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u64( \ ++ vshlq_u64(vreinterpretq_u64_m128i(_a), vdupq_n_s64(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_si128 ++#define _mm_srli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vreinterpretq_s8_m128i(_a), vdupq_n_s8(0), \ ++ (imm > 15 ? 0 : imm)); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd ++FORCE_INLINE void _mm_store_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64((float64_t *) mem_addr, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_f32((float32_t *) mem_addr, vreinterpretq_f32_m128d(a)); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd1 ++FORCE_INLINE void _mm_store_pd1(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x1_t a_low = vget_low_f64(vreinterpretq_f64_m128d(a)); ++ vst1q_f64((float64_t *) mem_addr, ++ vreinterpretq_f64_m128d(vcombine_f64(a_low, a_low))); ++#else ++ float32x2_t a_low = vget_low_f32(vreinterpretq_f32_m128d(a)); ++ vst1q_f32((float32_t *) mem_addr, ++ vreinterpretq_f32_m128d(vcombine_f32(a_low, a_low))); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_store_sd ++FORCE_INLINE void _mm_store_sd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_u64((uint64_t *) mem_addr, vget_low_u64(vreinterpretq_u64_m128d(a))); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_si128 ++FORCE_INLINE void _mm_store_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#expand=9,526,5601&text=_mm_store1_pd ++#define _mm_store1_pd _mm_store_pd1 ++ ++// Store the upper double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pd ++FORCE_INLINE void _mm_storeh_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_high_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_high_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 64-bit integer from the first element of a into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_epi64 ++FORCE_INLINE void _mm_storel_epi64(__m128i *a, __m128i b) ++{ ++ vst1_u64((uint64_t *) a, vget_low_u64(vreinterpretq_u64_m128i(b))); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pd ++FORCE_INLINE void _mm_storel_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_low_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 2 double-precision (64-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_pd ++FORCE_INLINE void _mm_storer_pd(double *mem_addr, __m128d a) ++{ ++ float32x4_t f = vreinterpretq_f32_m128d(a); ++ _mm_store_pd(mem_addr, vreinterpretq_m128d_f32(vextq_f32(f, f, 2))); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_pd ++FORCE_INLINE void _mm_storeu_pd(double *mem_addr, __m128d a) ++{ ++ _mm_store_pd(mem_addr, a); ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si128 ++FORCE_INLINE void _mm_storeu_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store 32-bit integer from the first element of a into memory. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si32 ++FORCE_INLINE void _mm_storeu_si32(void *p, __m128i a) ++{ ++ vst1q_lane_s32((int32_t *) p, vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory using a non-temporal memory hint. mem_addr must ++// be aligned on a 16-byte boundary or a general-protection exception may be ++// generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pd ++FORCE_INLINE void _mm_stream_pd(double *p, __m128d a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (__m128d *) p); ++#elif defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64(p, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128d(a)); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory using a non-temporal memory ++// hint. mem_addr must be aligned on a 16-byte boundary or a general-protection ++// exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si128 ++FORCE_INLINE void _mm_stream_si128(__m128i *p, __m128i a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, p); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128i(a)); ++#endif ++} ++ ++// Store 32-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si32 ++FORCE_INLINE void _mm_stream_si32(int *p, int a) ++{ ++ vst1q_lane_s32((int32_t *) p, vdupq_n_s32(a), 0); ++} ++ ++// Store 64-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si64 ++FORCE_INLINE void _mm_stream_si64(__int64 *p, __int64 a) ++{ ++ vst1_s64((int64_t *) p, vdup_n_s64((int64_t) a)); ++} ++ ++// Subtract packed 16-bit integers in b from packed 16-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi16 ++FORCE_INLINE __m128i _mm_sub_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed 32-bit integers in b from packed 32-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi32 ++FORCE_INLINE __m128i _mm_sub_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Subtract packed 64-bit integers in b from packed 64-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi64 ++FORCE_INLINE __m128i _mm_sub_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vsubq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Subtract packed 8-bit integers in b from packed 8-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi8 ++FORCE_INLINE __m128i _mm_sub_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed double-precision (64-bit) floating-point elements in b from ++// packed double-precision (64-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_sub_pd ++FORCE_INLINE __m128d _mm_sub_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ double c[2]; ++ c[0] = a0 - b0; ++ c[1] = a1 - b1; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Subtract the lower double-precision (64-bit) floating-point element in b from ++// the lower double-precision (64-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_sd ++FORCE_INLINE __m128d _mm_sub_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_sub_pd(a, b)); ++} ++ ++// Subtract 64-bit integer b from 64-bit integer a, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_si64 ++FORCE_INLINE __m64 _mm_sub_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vsub_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Subtract packed signed 16-bit integers in b from packed 16-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi16 ++FORCE_INLINE __m128i _mm_subs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed signed 8-bit integers in b from packed 8-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi8 ++FORCE_INLINE __m128i _mm_subs_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed unsigned 16-bit integers in b from packed unsigned 16-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu16 ++FORCE_INLINE __m128i _mm_subs_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqsubq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Subtract packed unsigned 8-bit integers in b from packed unsigned 8-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu8 ++FORCE_INLINE __m128i _mm_subs_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqsubq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++#define _mm_ucomieq_sd _mm_comieq_sd ++#define _mm_ucomige_sd _mm_comige_sd ++#define _mm_ucomigt_sd _mm_comigt_sd ++#define _mm_ucomile_sd _mm_comile_sd ++#define _mm_ucomilt_sd _mm_comilt_sd ++#define _mm_ucomineq_sd _mm_comineq_sd ++ ++// Return vector of type __m128d with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_pd ++FORCE_INLINE __m128d _mm_undefined_pd(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128d a; ++#if defined(_MSC_VER) && !defined(__clang__) ++ a = _mm_setzero_pd(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi16 ++FORCE_INLINE __m128i _mm_unpackhi_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip2q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi32 ++FORCE_INLINE __m128i _mm_unpackhi_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip2q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_high_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi64 ++FORCE_INLINE __m128i _mm_unpackhi_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip2q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_h = vget_high_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_h = vget_high_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_h, b_h)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the high half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi8 ++FORCE_INLINE __m128i _mm_unpackhi_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip2q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the high half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_pd ++FORCE_INLINE __m128d _mm_unpackhi_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip2q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_high_s64(vreinterpretq_s64_m128d(a)), ++ vget_high_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi16 ++FORCE_INLINE __m128i _mm_unpacklo_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip1q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi32 ++FORCE_INLINE __m128i _mm_unpacklo_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip1q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_low_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi64 ++FORCE_INLINE __m128i _mm_unpacklo_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip1q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_l = vget_low_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_l = vget_low_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_l, b_l)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi8 ++FORCE_INLINE __m128i _mm_unpacklo_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip1q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_pd ++FORCE_INLINE __m128d _mm_unpacklo_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip1q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_low_s64(vreinterpretq_s64_m128d(a)), ++ vget_low_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Compute the bitwise XOR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_pd ++FORCE_INLINE __m128d _mm_xor_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ veorq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise XOR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_si128 ++FORCE_INLINE __m128i _mm_xor_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ veorq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++/* SSE3 */ ++ ++// Alternatively add and subtract packed double-precision (64-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_addsub_pd ++FORCE_INLINE __m128d _mm_addsub_pd(__m128d a, __m128d b) ++{ ++ _sse2neon_const __m128d mask = _mm_set_pd(1.0f, -1.0f); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vfmaq_f64(vreinterpretq_f64_m128d(a), ++ vreinterpretq_f64_m128d(b), ++ vreinterpretq_f64_m128d(mask))); ++#else ++ return _mm_add_pd(_mm_mul_pd(b, mask), a); ++#endif ++} ++ ++// Alternatively add and subtract packed single-precision (32-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=addsub_ps ++FORCE_INLINE __m128 _mm_addsub_ps(__m128 a, __m128 b) ++{ ++ _sse2neon_const __m128 mask = _mm_setr_ps(-1.0f, 1.0f, -1.0f, 1.0f); ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_FMA) /* VFPv4+ */ ++ return vreinterpretq_m128_f32(vfmaq_f32(vreinterpretq_f32_m128(a), ++ vreinterpretq_f32_m128(mask), ++ vreinterpretq_f32_m128(b))); ++#else ++ return _mm_add_ps(_mm_mul_ps(b, mask), a); ++#endif ++} ++ ++// Horizontally add adjacent pairs of double-precision (64-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pd ++FORCE_INLINE __m128d _mm_hadd_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vpaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ double c[] = {a0 + a1, b0 + b1}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of single-precision (32-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_ps ++FORCE_INLINE __m128 _mm_hadd_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vpaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vpadd_f32(a10, a32), vpadd_f32(b10, b32))); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of double-precision (64-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pd ++FORCE_INLINE __m128d _mm_hsub_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vuzp1q_f64(_a, _b), vuzp2q_f64(_a, _b))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ double c[] = {a0 - a1, b0 - b1}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of single-precision (32-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_ps ++FORCE_INLINE __m128 _mm_hsub_ps(__m128 _a, __m128 _b) ++{ ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vuzp1q_f32(a, b), vuzp2q_f32(a, b))); ++#else ++ float32x4x2_t c = vuzpq_f32(a, b); ++ return vreinterpretq_m128_f32(vsubq_f32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Load 128-bits of integer data from unaligned memory into dst. This intrinsic ++// may perform better than _mm_loadu_si128 when the data crosses a cache line ++// boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lddqu_si128 ++#define _mm_lddqu_si128 _mm_loadu_si128 ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loaddup_pd ++#define _mm_loaddup_pd _mm_load1_pd ++ ++// Duplicate the low double-precision (64-bit) floating-point element from a, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movedup_pd ++FORCE_INLINE __m128d _mm_movedup_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdupq_laneq_f64(vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_u64( ++ vdupq_n_u64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0))); ++#endif ++} ++ ++// Duplicate odd-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehdup_ps ++FORCE_INLINE __m128 _mm_movehdup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 1, 1, 3, 3)); ++#else ++ float32_t a1 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ float32_t a3 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 3); ++ float ALIGN_STRUCT(16) data[4] = {a1, a1, a3, a3}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Duplicate even-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_moveldup_ps ++FORCE_INLINE __m128 _mm_moveldup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 0, 0, 2, 2)); ++#else ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32_t a2 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 2); ++ float ALIGN_STRUCT(16) data[4] = {a0, a0, a2, a2}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++/* SSSE3 */ ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi16 ++FORCE_INLINE __m128i _mm_abs_epi16(__m128i a) ++{ ++ return vreinterpretq_m128i_s16(vabsq_s16(vreinterpretq_s16_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi32 ++FORCE_INLINE __m128i _mm_abs_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32(vabsq_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi8 ++FORCE_INLINE __m128i _mm_abs_epi8(__m128i a) ++{ ++ return vreinterpretq_m128i_s8(vabsq_s8(vreinterpretq_s8_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi16 ++FORCE_INLINE __m64 _mm_abs_pi16(__m64 a) ++{ ++ return vreinterpret_m64_s16(vabs_s16(vreinterpret_s16_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi32 ++FORCE_INLINE __m64 _mm_abs_pi32(__m64 a) ++{ ++ return vreinterpret_m64_s32(vabs_s32(vreinterpret_s32_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi8 ++FORCE_INLINE __m64 _mm_abs_pi8(__m64 a) ++{ ++ return vreinterpret_m64_s8(vabs_s8(vreinterpret_s8_m64(a))); ++} ++ ++// Concatenate 16-byte blocks in a and b into a 32-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 16 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_epi8 ++#if defined(__GNUC__) && !defined(__clang__) ++#define _mm_alignr_epi8(a, b, imm) \ ++ __extension__({ \ ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); \ ++ uint8x16_t _b = vreinterpretq_u8_m128i(b); \ ++ __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) \ ++ ret = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) \ ++ ret = _mm_srli_si128(a, imm >= 16 ? imm - 16 : 0); \ ++ else \ ++ ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(_b, _a, imm < 16 ? imm : 0)); \ ++ ret; \ ++ }) ++ ++#else ++#define _mm_alignr_epi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, uint8x16_t __a = vreinterpretq_u8_m128i(_a); \ ++ uint8x16_t __b = vreinterpretq_u8_m128i(_b); __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) ret = \ ++ vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) ret = \ ++ _mm_srli_si128(_a, imm >= 16 ? imm - 16 : 0); \ ++ else ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(__b, __a, imm < 16 ? imm : 0)); \ ++ _sse2neon_return(ret);) ++ ++#endif ++ ++// Concatenate 8-byte blocks in a and b into a 16-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 8 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_pi8 ++#define _mm_alignr_pi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m64, a, b, __m64 ret; if (_sse2neon_unlikely((imm) >= 16)) { \ ++ ret = vreinterpret_m64_s8(vdup_n_s8(0)); \ ++ } else { \ ++ uint8x8_t tmp_low; \ ++ uint8x8_t tmp_high; \ ++ if ((imm) >= 8) { \ ++ const int idx = (imm) -8; \ ++ tmp_low = vreinterpret_u8_m64(_a); \ ++ tmp_high = vdup_n_u8(0); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } else { \ ++ const int idx = (imm); \ ++ tmp_low = vreinterpret_u8_m64(_b); \ ++ tmp_high = vreinterpret_u8_m64(_a); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } \ ++ } _sse2neon_return(ret);) ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi16 ++FORCE_INLINE __m128i _mm_hadd_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16(vpaddq_s16(a, b)); ++#else ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(vget_low_s16(a), vget_high_s16(a)), ++ vpadd_s16(vget_low_s16(b), vget_high_s16(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi32 ++FORCE_INLINE __m128i _mm_hadd_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32(vpaddq_s32(a, b)); ++#else ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vpadd_s32(vget_low_s32(a), vget_high_s32(a)), ++ vpadd_s32(vget_low_s32(b), vget_high_s32(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi16 ++FORCE_INLINE __m64 _mm_hadd_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vpadd_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi32 ++FORCE_INLINE __m64 _mm_hadd_pi32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s32( ++ vpadd_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_epi16 ++FORCE_INLINE __m128i _mm_hadds_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ return vreinterpretq_s64_s16( ++ vqaddq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ // Interleave using vshrn/vmovn ++ // [a0|a2|a4|a6|b0|b2|b4|b6] ++ // [a1|a3|a5|a7|b1|b3|b5|b7] ++ int16x8_t ab0246 = vcombine_s16(vmovn_s32(a), vmovn_s32(b)); ++ int16x8_t ab1357 = vcombine_s16(vshrn_n_s32(a, 16), vshrn_n_s32(b, 16)); ++ // Saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(ab0246, ab1357)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_pi16 ++FORCE_INLINE __m64 _mm_hadds_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_s64_s16(vqadd_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t res = vuzp_s16(a, b); ++ return vreinterpret_s64_s16(vqadd_s16(res.val[0], res.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi16 ++FORCE_INLINE __m128i _mm_hsub_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi32 ++FORCE_INLINE __m128i _mm_hsub_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vuzp1q_s32(a, b), vuzp2q_s32(a, b))); ++#else ++ int32x4x2_t c = vuzpq_s32(a, b); ++ return vreinterpretq_m128i_s32(vsubq_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pi16 ++FORCE_INLINE __m64 _mm_hsub_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_hsub_pi32 ++FORCE_INLINE __m64 _mm_hsub_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s32(vsub_s32(vuzp1_s32(a, b), vuzp2_s32(a, b))); ++#else ++ int32x2x2_t c = vuzp_s32(a, b); ++ return vreinterpret_m64_s32(vsub_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_epi16 ++FORCE_INLINE __m128i _mm_hsubs_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vqsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_pi16 ++FORCE_INLINE __m64 _mm_hsubs_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vqsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vqsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, ++// and pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_epi16 ++FORCE_INLINE __m128i _mm_maddubs_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ int16x8_t tl = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_low_u8(a))), ++ vmovl_s8(vget_low_s8(b))); ++ int16x8_t th = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_high_u8(a))), ++ vmovl_s8(vget_high_s8(b))); ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vuzp1q_s16(tl, th), vuzp2q_s16(tl, th))); ++#else ++ // This would be much simpler if x86 would choose to zero extend OR sign ++ // extend, not both. This could probably be optimized better. ++ uint16x8_t a = vreinterpretq_u16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // Zero extend a ++ int16x8_t a_odd = vreinterpretq_s16_u16(vshrq_n_u16(a, 8)); ++ int16x8_t a_even = vreinterpretq_s16_u16(vbicq_u16(a, vdupq_n_u16(0xff00))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x8_t b_even = vshrq_n_s16(vshlq_n_s16(b, 8), 8); ++ int16x8_t b_odd = vshrq_n_s16(b, 8); ++ ++ // multiply ++ int16x8_t prod1 = vmulq_s16(a_even, b_even); ++ int16x8_t prod2 = vmulq_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(prod1, prod2)); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, and ++// pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_pi16 ++FORCE_INLINE __m64 _mm_maddubs_pi16(__m64 _a, __m64 _b) ++{ ++ uint16x4_t a = vreinterpret_u16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // Zero extend a ++ int16x4_t a_odd = vreinterpret_s16_u16(vshr_n_u16(a, 8)); ++ int16x4_t a_even = vreinterpret_s16_u16(vand_u16(a, vdup_n_u16(0xff))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x4_t b_even = vshr_n_s16(vshl_n_s16(b, 8), 8); ++ int16x4_t b_odd = vshr_n_s16(b, 8); ++ ++ // multiply ++ int16x4_t prod1 = vmul_s16(a_even, b_even); ++ int16x4_t prod2 = vmul_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpret_m64_s16(vqadd_s16(prod1, prod2)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Shift right by 15 bits while rounding up, and store ++// the packed 16-bit integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_epi16 ++FORCE_INLINE __m128i _mm_mulhrs_epi16(__m128i a, __m128i b) ++{ ++ // Has issues due to saturation ++ // return vreinterpretq_m128i_s16(vqrdmulhq_s16(a, b)); ++ ++ // Multiply ++ int32x4_t mul_lo = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int32x4_t mul_hi = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ // Rounding narrowing shift right ++ // narrow = (int16_t)((mul + 16384) >> 15); ++ int16x4_t narrow_lo = vrshrn_n_s32(mul_lo, 15); ++ int16x4_t narrow_hi = vrshrn_n_s32(mul_hi, 15); ++ ++ // Join together ++ return vreinterpretq_m128i_s16(vcombine_s16(narrow_lo, narrow_hi)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Truncate each intermediate integer to the 18 most ++// significant bits, round by adding 1, and store bits [16:1] to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_pi16 ++FORCE_INLINE __m64 _mm_mulhrs_pi16(__m64 a, __m64 b) ++{ ++ int32x4_t mul_extend = ++ vmull_s16((vreinterpret_s16_m64(a)), (vreinterpret_s16_m64(b))); ++ ++ // Rounding narrowing shift right ++ return vreinterpret_m64_s16(vrshrn_n_s32(mul_extend, 15)); ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi8 ++FORCE_INLINE __m128i _mm_shuffle_epi8(__m128i a, __m128i b) ++{ ++ int8x16_t tbl = vreinterpretq_s8_m128i(a); // input a ++ uint8x16_t idx = vreinterpretq_u8_m128i(b); // input b ++ uint8x16_t idx_masked = ++ vandq_u8(idx, vdupq_n_u8(0x8F)); // avoid using meaningless bits ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8(vqtbl1q_s8(tbl, idx_masked)); ++#elif defined(__GNUC__) ++ int8x16_t ret; ++ // %e and %f represent the even and odd D registers ++ // respectively. ++ __asm__ __volatile__( ++ "vtbl.8 %e[ret], {%e[tbl], %f[tbl]}, %e[idx]\n" ++ "vtbl.8 %f[ret], {%e[tbl], %f[tbl]}, %f[idx]\n" ++ : [ret] "=&w"(ret) ++ : [tbl] "w"(tbl), [idx] "w"(idx_masked)); ++ return vreinterpretq_m128i_s8(ret); ++#else ++ // use this line if testing on aarch64 ++ int8x8x2_t a_split = {vget_low_s8(tbl), vget_high_s8(tbl)}; ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vtbl2_s8(a_split, vget_low_u8(idx_masked)), ++ vtbl2_s8(a_split, vget_high_u8(idx_masked)))); ++#endif ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi8 ++FORCE_INLINE __m64 _mm_shuffle_pi8(__m64 a, __m64 b) ++{ ++ const int8x8_t controlMask = ++ vand_s8(vreinterpret_s8_m64(b), vdup_n_s8((int8_t) (0x1 << 7 | 0x07))); ++ int8x8_t res = vtbl1_s8(vreinterpret_s8_m64(a), controlMask); ++ return vreinterpret_m64_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed ++// 16-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi16 ++FORCE_INLINE __m128i _mm_sign_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x8_t ltMask = vreinterpretq_u16_s16(vshrq_n_s16(b, 15)); ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqzq_s16(b)); ++#else ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqq_s16(b, vdupq_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s16(a) equals to negative ++ // 'a') based on ltMask ++ int16x8_t masked = vbslq_s16(ltMask, vnegq_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x8_t res = vbicq_s16(masked, zeroMask); ++ return vreinterpretq_m128i_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed ++// 32-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi32 ++FORCE_INLINE __m128i _mm_sign_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x4_t ltMask = vreinterpretq_u32_s32(vshrq_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqzq_s32(b)); ++#else ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqq_s32(b, vdupq_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s32(a) equals to negative ++ // 'a') based on ltMask ++ int32x4_t masked = vbslq_s32(ltMask, vnegq_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x4_t res = vbicq_s32(masked, zeroMask); ++ return vreinterpretq_m128i_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed ++// 8-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi8 ++FORCE_INLINE __m128i _mm_sign_epi8(__m128i _a, __m128i _b) ++{ ++ int8x16_t a = vreinterpretq_s8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x16_t ltMask = vreinterpretq_u8_s8(vshrq_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqzq_s8(b)); ++#else ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqq_s8(b, vdupq_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s8(a) return negative 'a') ++ // based on ltMask ++ int8x16_t masked = vbslq_s8(ltMask, vnegq_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x16_t res = vbicq_s8(masked, zeroMask); ++ ++ return vreinterpretq_m128i_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed 16-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi16 ++FORCE_INLINE __m64 _mm_sign_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x4_t ltMask = vreinterpret_u16_s16(vshr_n_s16(b, 15)); ++ ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceqz_s16(b)); ++#else ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceq_s16(b, vdup_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s16(a) return negative 'a') ++ // based on ltMask ++ int16x4_t masked = vbsl_s16(ltMask, vneg_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x4_t res = vbic_s16(masked, zeroMask); ++ ++ return vreinterpret_m64_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed 32-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi32 ++FORCE_INLINE __m64 _mm_sign_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x2_t ltMask = vreinterpret_u32_s32(vshr_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceqz_s32(b)); ++#else ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceq_s32(b, vdup_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s32(a) return negative 'a') ++ // based on ltMask ++ int32x2_t masked = vbsl_s32(ltMask, vneg_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x2_t res = vbic_s32(masked, zeroMask); ++ ++ return vreinterpret_m64_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed 8-bit integer ++// in b is negative, and store the results in dst. Element in dst are zeroed out ++// when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi8 ++FORCE_INLINE __m64 _mm_sign_pi8(__m64 _a, __m64 _b) ++{ ++ int8x8_t a = vreinterpret_s8_m64(_a); ++ int8x8_t b = vreinterpret_s8_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x8_t ltMask = vreinterpret_u8_s8(vshr_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceqz_s8(b)); ++#else ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceq_s8(b, vdup_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s8(a) return negative 'a') ++ // based on ltMask ++ int8x8_t masked = vbsl_s8(ltMask, vneg_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x8_t res = vbic_s8(masked, zeroMask); ++ ++ return vreinterpret_m64_s8(res); ++} ++ ++/* SSE4.1 */ ++ ++// Blend packed 16-bit integers from a and b using control mask imm8, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_epi16 ++// FORCE_INLINE __m128i _mm_blend_epi16(__m128i a, __m128i b, ++// __constrange(0,255) int imm) ++#define _mm_blend_epi16(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, \ ++ const uint16_t _mask[8] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 1)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 2)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 3)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 4)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 5)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 6)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 7)) ? (uint16_t) -1 : 0x0); \ ++ uint16x8_t _mask_vec = vld1q_u16(_mask); \ ++ uint16x8_t __a = vreinterpretq_u16_m128i(_a); \ ++ uint16x8_t __b = vreinterpretq_u16_m128i(_b); _sse2neon_return( \ ++ vreinterpretq_m128i_u16(vbslq_u16(_mask_vec, __b, __a)));) ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using control mask imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_pd ++#define _mm_blend_pd(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128d, a, b, \ ++ const uint64_t _mask[2] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? ~UINT64_C(0) : UINT64_C(0), \ ++ ((imm) & (1 << 1)) ? ~UINT64_C(0) : UINT64_C(0)); \ ++ uint64x2_t _mask_vec = vld1q_u64(_mask); \ ++ uint64x2_t __a = vreinterpretq_u64_m128d(_a); \ ++ uint64x2_t __b = vreinterpretq_u64_m128d(_b); _sse2neon_return( \ ++ vreinterpretq_m128d_u64(vbslq_u64(_mask_vec, __b, __a)));) ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_ps ++FORCE_INLINE __m128 _mm_blend_ps(__m128 _a, __m128 _b, const char imm8) ++{ ++ const uint32_t ALIGN_STRUCT(16) ++ data[4] = {((imm8) & (1 << 0)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0}; ++ uint32x4_t mask = vld1q_u32(data); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Blend packed 8-bit integers from a and b using mask, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_epi8 ++FORCE_INLINE __m128i _mm_blendv_epi8(__m128i _a, __m128i _b, __m128i _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint8x16_t mask = ++ vreinterpretq_u8_s8(vshrq_n_s8(vreinterpretq_s8_m128i(_mask), 7)); ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ uint8x16_t b = vreinterpretq_u8_m128i(_b); ++ return vreinterpretq_m128i_u8(vbslq_u8(mask, b, a)); ++} ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_pd ++FORCE_INLINE __m128d _mm_blendv_pd(__m128d _a, __m128d _b, __m128d _mask) ++{ ++ uint64x2_t mask = ++ vreinterpretq_u64_s64(vshrq_n_s64(vreinterpretq_s64_m128d(_mask), 63)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64(vbslq_f64(mask, b, a)); ++#else ++ uint64x2_t a = vreinterpretq_u64_m128d(_a); ++ uint64x2_t b = vreinterpretq_u64_m128d(_b); ++ return vreinterpretq_m128d_u64(vbslq_u64(mask, b, a)); ++#endif ++} ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_ps ++FORCE_INLINE __m128 _mm_blendv_ps(__m128 _a, __m128 _b, __m128 _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint32x4_t mask = ++ vreinterpretq_u32_s32(vshrq_n_s32(vreinterpretq_s32_m128(_mask), 31)); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a up ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_pd ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndpq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double a0, a1; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ a1 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ return _mm_set_pd(ceil(a1), ceil(a0)); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a up to ++// an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ps ++FORCE_INLINE __m128 _mm_ceil_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndpq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ceilf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b up to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_sd ++FORCE_INLINE __m128d _mm_ceil_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_ceil_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b up to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ss ++FORCE_INLINE __m128 _mm_ceil_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_ceil_ps(b)); ++} ++ ++// Compare packed 64-bit integers in a and b for equality, and store the results ++// in dst ++FORCE_INLINE __m128i _mm_cmpeq_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vceqq_u64(vreinterpretq_u64_m128i(a), vreinterpretq_u64_m128i(b))); ++#else ++ // ARMv7 lacks vceqq_u64 ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128i_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Sign extend packed 16-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi32 ++FORCE_INLINE __m128i _mm_cvtepi16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vmovl_s16(vget_low_s16(vreinterpretq_s16_m128i(a)))); ++} ++ ++// Sign extend packed 16-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi64 ++FORCE_INLINE __m128i _mm_cvtepi16_epi64(__m128i a) ++{ ++ int16x8_t s16x8 = vreinterpretq_s16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Sign extend packed 32-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_epi64 ++FORCE_INLINE __m128i _mm_cvtepi32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a)))); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 16-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi16 ++FORCE_INLINE __m128i _mm_cvtepi8_epi16(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ return vreinterpretq_m128i_s16(s16x8); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi32 ++FORCE_INLINE __m128i _mm_cvtepi8_epi32(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_s32(s32x4); ++} ++ ++// Sign extend packed 8-bit integers in the low 8 bytes of a to packed 64-bit ++// integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi64 ++FORCE_INLINE __m128i _mm_cvtepi8_epi64(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi32 ++FORCE_INLINE __m128i _mm_cvtepu16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_u32( ++ vmovl_u16(vget_low_u16(vreinterpretq_u16_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi64 ++FORCE_INLINE __m128i _mm_cvtepu16_epi64(__m128i a) ++{ ++ uint16x8_t u16x8 = vreinterpretq_u16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Zero extend packed unsigned 32-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu32_epi64 ++FORCE_INLINE __m128i _mm_cvtepu32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_u64( ++ vmovl_u32(vget_low_u32(vreinterpretq_u32_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 16-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi16 ++FORCE_INLINE __m128i _mm_cvtepu8_epi16(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx HGFE DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0H0G 0F0E 0D0C 0B0A */ ++ return vreinterpretq_m128i_u16(u16x8); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi32 ++FORCE_INLINE __m128i _mm_cvtepu8_epi32(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_u32(u32x4); ++} ++ ++// Zero extend packed unsigned 8-bit integers in the low 8 bytes of a to packed ++// 64-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi64 ++FORCE_INLINE __m128i _mm_cvtepu8_epi64(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Conditionally multiply the packed double-precision (64-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, and ++// conditionally store the sum in dst using the low 4 bits of imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_pd ++FORCE_INLINE __m128d _mm_dp_pd(__m128d a, __m128d b, const int imm) ++{ ++ // Generate mask value from constant immediate bit value ++ const int64_t bit0Mask = imm & 0x01 ? UINT64_MAX : 0; ++ const int64_t bit1Mask = imm & 0x02 ? UINT64_MAX : 0; ++#if !SSE2NEON_PRECISE_DP ++ const int64_t bit4Mask = imm & 0x10 ? UINT64_MAX : 0; ++ const int64_t bit5Mask = imm & 0x20 ? UINT64_MAX : 0; ++#endif ++ // Conditional multiplication ++#if !SSE2NEON_PRECISE_DP ++ __m128d mul = _mm_mul_pd(a, b); ++ const __m128d mulMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit5Mask, bit4Mask)); ++ __m128d tmp = _mm_and_pd(mul, mulMask); ++#else ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double d0 = (imm & 0x10) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 0) ++ : 0; ++ double d1 = (imm & 0x20) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 1) ++ : 0; ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ double d0 = (imm & 0x10) ? a0 * b0 : 0; ++ double d1 = (imm & 0x20) ? a1 * b1 : 0; ++#endif ++ __m128d tmp = _mm_set_pd(d1, d0); ++#endif ++ // Sum the products ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double sum = vpaddd_f64(vreinterpretq_f64_m128d(tmp)); ++#else ++ double _tmp0 = sse2neon_recast_u64_f64( ++ vgetq_lane_u64(vreinterpretq_u64_m128d(tmp), 0)); ++ double _tmp1 = sse2neon_recast_u64_f64( ++ vgetq_lane_u64(vreinterpretq_u64_m128d(tmp), 1)); ++ double sum = _tmp0 + _tmp1; ++#endif ++ // Conditionally store the sum ++ const __m128d sumMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit1Mask, bit0Mask)); ++ __m128d res = _mm_and_pd(_mm_set_pd1(sum), sumMask); ++ return res; ++} ++ ++// Conditionally multiply the packed single-precision (32-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, ++// and conditionally store the sum in dst using the low 4 bits of imm. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_ps ++FORCE_INLINE __m128 _mm_dp_ps(__m128 a, __m128 b, const int imm) ++{ ++ float32x4_t elementwise_prod = _mm_mul_ps(a, b); ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ /* shortcuts */ ++ if (imm == 0xFF) { ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++ ++ if ((imm & 0x0F) == 0x0F) { ++ if (!(imm & (1 << 4))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 0); ++ if (!(imm & (1 << 5))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 1); ++ if (!(imm & (1 << 6))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 2); ++ if (!(imm & (1 << 7))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 3); ++ ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++#endif ++ ++ float s = 0.0f; ++ ++ if (imm & (1 << 4)) ++ s += vgetq_lane_f32(elementwise_prod, 0); ++ if (imm & (1 << 5)) ++ s += vgetq_lane_f32(elementwise_prod, 1); ++ if (imm & (1 << 6)) ++ s += vgetq_lane_f32(elementwise_prod, 2); ++ if (imm & (1 << 7)) ++ s += vgetq_lane_f32(elementwise_prod, 3); ++ ++ const float32_t res[4] = { ++ (imm & 0x1) ? s : 0.0f, ++ (imm & 0x2) ? s : 0.0f, ++ (imm & 0x4) ? s : 0.0f, ++ (imm & 0x8) ? s : 0.0f, ++ }; ++ return vreinterpretq_m128_f32(vld1q_f32(res)); ++} ++ ++// Extract a 32-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi32 ++// FORCE_INLINE int _mm_extract_epi32(__m128i a, __constrange(0,4) int imm) ++#define _mm_extract_epi32(a, imm) \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)) ++ ++// Extract a 64-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi64 ++// FORCE_INLINE __int64 _mm_extract_epi64(__m128i a, __constrange(0,2) int imm) ++#define _mm_extract_epi64(a, imm) \ ++ vgetq_lane_s64(vreinterpretq_s64_m128i(a), (imm)) ++ ++// Extract an 8-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. FORCE_INLINE int _mm_extract_epi8(__m128i a, ++// __constrange(0,16) int imm) ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi8 ++#define _mm_extract_epi8(a, imm) vgetq_lane_u8(vreinterpretq_u8_m128i(a), (imm)) ++ ++// Extracts the selected single-precision (32-bit) floating-point from a. ++// FORCE_INLINE int _mm_extract_ps(__m128 a, __constrange(0,4) int imm) ++#define _mm_extract_ps(a, imm) vgetq_lane_s32(vreinterpretq_s32_m128(a), (imm)) ++ ++// Round the packed double-precision (64-bit) floating-point elements in a down ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_pd ++FORCE_INLINE __m128d _mm_floor_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndmq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double a0, a1; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ a1 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ return _mm_set_pd(floor(a1), floor(a0)); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a down ++// to an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ps ++FORCE_INLINE __m128 _mm_floor_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndmq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(floorf(f[3]), floorf(f[2]), floorf(f[1]), floorf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b down to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_sd ++FORCE_INLINE __m128d _mm_floor_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_floor_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b down to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ss ++FORCE_INLINE __m128 _mm_floor_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_floor_ps(b)); ++} ++ ++// Copy a to dst, and insert the 32-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi32 ++// FORCE_INLINE __m128i _mm_insert_epi32(__m128i a, int b, ++// __constrange(0,4) int imm) ++#define _mm_insert_epi32(a, b, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vsetq_lane_s32((b), vreinterpretq_s32_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the 64-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi64 ++// FORCE_INLINE __m128i _mm_insert_epi64(__m128i a, __int64 b, ++// __constrange(0,2) int imm) ++#define _mm_insert_epi64(a, b, imm) \ ++ vreinterpretq_m128i_s64( \ ++ vsetq_lane_s64((b), vreinterpretq_s64_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the lower 8-bit integer from i into dst at the ++// location specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi8 ++// FORCE_INLINE __m128i _mm_insert_epi8(__m128i a, int b, ++// __constrange(0,16) int imm) ++#define _mm_insert_epi8(a, b, imm) \ ++ vreinterpretq_m128i_s8(vsetq_lane_s8((b), vreinterpretq_s8_m128i(a), (imm))) ++ ++// Copy a to tmp, then insert a single-precision (32-bit) floating-point ++// element from b into tmp using the control in imm8. Store tmp to dst using ++// the mask in imm8 (elements are zeroed out when the corresponding bit is set). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=insert_ps ++#define _mm_insert_ps(a, b, imm8) \ ++ _sse2neon_define2( \ ++ __m128, a, b, \ ++ float32x4_t tmp1 = \ ++ vsetq_lane_f32(vgetq_lane_f32(_b, (imm8 >> 6) & 0x3), \ ++ vreinterpretq_f32_m128(_a), 0); \ ++ float32x4_t tmp2 = \ ++ vsetq_lane_f32(vgetq_lane_f32(tmp1, 0), \ ++ vreinterpretq_f32_m128(_a), ((imm8 >> 4) & 0x3)); \ ++ const uint32_t data[4] = \ ++ _sse2neon_init(((imm8) & (1 << 0)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0); \ ++ uint32x4_t mask = vld1q_u32(data); \ ++ float32x4_t all_zeros = vdupq_n_f32(0); \ ++ \ ++ _sse2neon_return(vreinterpretq_m128_f32( \ ++ vbslq_f32(mask, all_zeros, vreinterpretq_f32_m128(tmp2))));) ++ ++// Compare packed signed 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi32 ++FORCE_INLINE __m128i _mm_max_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmaxq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi8 ++FORCE_INLINE __m128i _mm_max_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vmaxq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu16 ++FORCE_INLINE __m128i _mm_max_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vmaxq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_max_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vmaxq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi32 ++FORCE_INLINE __m128i _mm_min_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vminq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi8 ++FORCE_INLINE __m128i _mm_min_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vminq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu16 ++FORCE_INLINE __m128i _mm_min_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vminq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_min_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vminq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Horizontally compute the minimum amongst the packed unsigned 16-bit integers ++// in a, store the minimum and index in dst, and zero the remaining bits in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_minpos_epu16 ++FORCE_INLINE __m128i _mm_minpos_epu16(__m128i a) ++{ ++ __m128i dst; ++ uint16_t min, idx = 0; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Find the minimum value ++ min = vminvq_u16(vreinterpretq_u16_m128i(a)); ++ ++ // Get the index of the minimum value ++ static const uint16_t idxv[] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint16x8_t minv = vdupq_n_u16(min); ++ uint16x8_t cmeq = vceqq_u16(minv, vreinterpretq_u16_m128i(a)); ++ idx = vminvq_u16(vornq_u16(vld1q_u16(idxv), cmeq)); ++#else ++ // Find the minimum value ++ __m64 tmp; ++ tmp = vreinterpret_m64_u16( ++ vmin_u16(vget_low_u16(vreinterpretq_u16_m128i(a)), ++ vget_high_u16(vreinterpretq_u16_m128i(a)))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ min = vget_lane_u16(vreinterpret_u16_m64(tmp), 0); ++ // Get the index of the minimum value ++ int i; ++ for (i = 0; i < 8; i++) { ++ if (min == vgetq_lane_u16(vreinterpretq_u16_m128i(a), 0)) { ++ idx = (uint16_t) i; ++ break; ++ } ++ a = _mm_srli_si128(a, 2); ++ } ++#endif ++ // Generate result ++ dst = _mm_setzero_si128(); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(min, vreinterpretq_u16_m128i(dst), 0)); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(idx, vreinterpretq_u16_m128i(dst), 1)); ++ return dst; ++} ++ ++// Compute the sum of absolute differences (SADs) of quadruplets of unsigned ++// 8-bit integers in a compared to those in b, and store the 16-bit results in ++// dst. Eight SADs are performed using one quadruplet from b and eight ++// quadruplets from a. One quadruplet is selected from b starting at on the ++// offset specified in imm8. Eight quadruplets are formed from sequential 8-bit ++// integers selected from a starting at the offset specified in imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mpsadbw_epu8 ++FORCE_INLINE __m128i _mm_mpsadbw_epu8(__m128i a, __m128i b, const int imm) ++{ ++ uint8x16_t _a, _b; ++ ++ switch (imm & 0x4) { ++ case 0: ++ // do nothing ++ _a = vreinterpretq_u8_m128i(a); ++ break; ++ case 4: ++ _a = vreinterpretq_u8_u32(vextq_u32(vreinterpretq_u32_m128i(a), ++ vreinterpretq_u32_m128i(a), 1)); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ switch (imm & 0x3) { ++ case 0: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 0))); ++ break; ++ case 1: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 1))); ++ break; ++ case 2: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 2))); ++ break; ++ case 3: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 3))); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ int16x8_t c04, c15, c26, c37; ++ uint8x8_t low_b = vget_low_u8(_b); ++ c04 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a), low_b)); ++ uint8x16_t _a_1 = vextq_u8(_a, _a, 1); ++ c15 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_1), low_b)); ++ uint8x16_t _a_2 = vextq_u8(_a, _a, 2); ++ c26 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_2), low_b)); ++ uint8x16_t _a_3 = vextq_u8(_a, _a, 3); ++ c37 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_3), low_b)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // |0|4|2|6| ++ c04 = vpaddq_s16(c04, c26); ++ // |1|5|3|7| ++ c15 = vpaddq_s16(c15, c37); ++ ++ int32x4_t trn1_c = ++ vtrn1q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ int32x4_t trn2_c = ++ vtrn2q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ return vreinterpretq_m128i_s16(vpaddq_s16(vreinterpretq_s16_s32(trn1_c), ++ vreinterpretq_s16_s32(trn2_c))); ++#else ++ int16x4_t c01, c23, c45, c67; ++ c01 = vpadd_s16(vget_low_s16(c04), vget_low_s16(c15)); ++ c23 = vpadd_s16(vget_low_s16(c26), vget_low_s16(c37)); ++ c45 = vpadd_s16(vget_high_s16(c04), vget_high_s16(c15)); ++ c67 = vpadd_s16(vget_high_s16(c26), vget_high_s16(c37)); ++ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(c01, c23), vpadd_s16(c45, c67))); ++#endif ++} ++ ++// Multiply the low signed 32-bit integers from each packed 64-bit element in ++// a and b, and store the signed 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epi32 ++FORCE_INLINE __m128i _mm_mul_epi32(__m128i a, __m128i b) ++{ ++ // vmull_s32 upcasts instead of masking, so we downcast. ++ int32x2_t a_lo = vmovn_s64(vreinterpretq_s64_m128i(a)); ++ int32x2_t b_lo = vmovn_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vmull_s32(a_lo, b_lo)); ++} ++ ++// Multiply the packed 32-bit integers in a and b, producing intermediate 64-bit ++// integers, and store the low 32 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi32 ++FORCE_INLINE __m128i _mm_mullo_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmulq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi32 ++FORCE_INLINE __m128i _mm_packus_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcombine_u16(vqmovun_s32(vreinterpretq_s32_m128i(a)), ++ vqmovun_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_pd ++FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d a, int rounding) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndnq_f64(vreinterpretq_f64_m128d(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_pd(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_pd(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndq_f64(vreinterpretq_f64_m128d(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128d_f64(vrndiq_f64(vreinterpretq_f64_m128d(a))); ++ } ++#else ++ double *v_double = (double *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ double res[2], tmp; ++ for (int i = 0; i < 2; i++) { ++ tmp = (v_double[i] < 0) ? -v_double[i] : v_double[i]; ++ double roundDown = floor(tmp); // Round down value ++ double roundUp = ceil(tmp); // Round up value ++ double diffDown = tmp - roundDown; ++ double diffUp = roundUp - tmp; ++ if (diffDown < diffUp) { ++ /* If it's closer to the round down value, then use it */ ++ res[i] = roundDown; ++ } else if (diffDown > diffUp) { ++ /* If it's closer to the round up value, then use it */ ++ res[i] = roundUp; ++ } else { ++ /* If it's equidistant between round up and round down value, ++ * pick the one which is an even number */ ++ double half = roundDown / 2; ++ if (half != floor(half)) { ++ /* If the round down value is odd, return the round up value ++ */ ++ res[i] = roundUp; ++ } else { ++ /* If the round up value is odd, return the round down value ++ */ ++ res[i] = roundDown; ++ } ++ } ++ res[i] = (v_double[i] < 0) ? -res[i] : res[i]; ++ } ++ return _mm_set_pd(res[1], res[0]); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_pd(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_pd(a); ++ } ++ return _mm_set_pd(v_double[1] > 0 ? floor(v_double[1]) : ceil(v_double[1]), ++ v_double[0] > 0 ? floor(v_double[0]) : ceil(v_double[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed single-precision ++// floating-point elements in dst. ++// software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_round_ps ++FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128 a, int rounding) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndnq_f32(vreinterpretq_f32_m128(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_ps(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_ps(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndq_f32(vreinterpretq_f32_m128(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128_f32(vrndiq_f32(vreinterpretq_f32_m128(a))); ++ } ++#else ++ float *v_float = (float *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vbslq_s32(is_delta_half, r_even, r_normal))); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_ps(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_ps(a); ++ } ++ return _mm_set_ps(v_float[3] > 0 ? floorf(v_float[3]) : ceilf(v_float[3]), ++ v_float[2] > 0 ? floorf(v_float[2]) : ceilf(v_float[2]), ++ v_float[1] > 0 ? floorf(v_float[1]) : ceilf(v_float[1]), ++ v_float[0] > 0 ? floorf(v_float[0]) : ceilf(v_float[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b using ++// the rounding parameter, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_sd ++FORCE_INLINE __m128d _mm_round_sd(__m128d a, __m128d b, int rounding) ++{ ++ return _mm_move_sd(a, _mm_round_pd(b, rounding)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b using ++// the rounding parameter, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. Rounding is done according to the ++// rounding[3:0] parameter, which can be one of: ++// (_MM_FROUND_TO_NEAREST_INT |_MM_FROUND_NO_EXC) // round to nearest, and ++// suppress exceptions ++// (_MM_FROUND_TO_NEG_INF |_MM_FROUND_NO_EXC) // round down, and ++// suppress exceptions ++// (_MM_FROUND_TO_POS_INF |_MM_FROUND_NO_EXC) // round up, and suppress ++// exceptions ++// (_MM_FROUND_TO_ZERO |_MM_FROUND_NO_EXC) // truncate, and suppress ++// exceptions _MM_FROUND_CUR_DIRECTION // use MXCSR.RC; see ++// _MM_SET_ROUNDING_MODE ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_ss ++FORCE_INLINE __m128 _mm_round_ss(__m128 a, __m128 b, int rounding) ++{ ++ return _mm_move_ss(a, _mm_round_ps(b, rounding)); ++} ++ ++// Load 128-bits of integer data from memory into dst using a non-temporal ++// memory hint. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_load_si128 ++FORCE_INLINE __m128i _mm_stream_load_si128(__m128i *p) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ return __builtin_nontemporal_load(p); ++#else ++ return vreinterpretq_m128i_s64(vld1q_s64((int64_t *) p)); ++#endif ++} ++ ++// Compute the bitwise NOT of a and then AND with a 128-bit vector containing ++// all 1's, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_ones ++FORCE_INLINE int _mm_test_all_ones(__m128i a) ++{ ++ return (uint64_t) (vgetq_lane_s64(a, 0) & vgetq_lane_s64(a, 1)) == ++ ~(uint64_t) 0; ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_zeros ++FORCE_INLINE int _mm_test_all_zeros(__m128i a, __m128i mask) ++{ ++ int64x2_t a_and_mask = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(mask)); ++ return !(vgetq_lane_s64(a_and_mask, 0) | vgetq_lane_s64(a_and_mask, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute ++// the bitwise NOT of a and then AND with mask, and set CF to 1 if the result is ++// zero, otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_test_mix_ones_zero ++// Note: Argument names may be wrong in the Intel intrinsics guide. ++FORCE_INLINE int _mm_test_mix_ones_zeros(__m128i a, __m128i mask) ++{ ++ uint64x2_t v = vreinterpretq_u64_m128i(a); ++ uint64x2_t m = vreinterpretq_u64_m128i(mask); ++ ++ // find ones (set-bits) and zeros (clear-bits) under clip mask ++ uint64x2_t ones = vandq_u64(m, v); ++ uint64x2_t zeros = vbicq_u64(m, v); ++ ++ // If both 128-bit variables are populated (non-zero) then return 1. ++ // For comparison purposes, first compact each var down to 32-bits. ++ uint32x2_t reduced = vpmax_u32(vqmovn_u64(ones), vqmovn_u64(zeros)); ++ ++ // if folding minimum is non-zero then both vars must be non-zero ++ return (vget_lane_u32(vpmin_u32(reduced, reduced), 0) != 0); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the CF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testc_si128 ++FORCE_INLINE int _mm_testc_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vbicq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testnzc_si128 ++#define _mm_testnzc_si128(a, b) _mm_test_mix_ones_zeros(a, b) ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the ZF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testz_si128 ++FORCE_INLINE int _mm_testz_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++/* SSE4.2 */ ++ ++static const uint16_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask16b[8] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++static const uint8_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask8b[16] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++ ++/* specify the source data format */ ++#define _SIDD_UBYTE_OPS 0x00 /* unsigned 8-bit characters */ ++#define _SIDD_UWORD_OPS 0x01 /* unsigned 16-bit characters */ ++#define _SIDD_SBYTE_OPS 0x02 /* signed 8-bit characters */ ++#define _SIDD_SWORD_OPS 0x03 /* signed 16-bit characters */ ++ ++/* specify the comparison operation */ ++#define _SIDD_CMP_EQUAL_ANY 0x00 /* compare equal any: strchr */ ++#define _SIDD_CMP_RANGES 0x04 /* compare ranges */ ++#define _SIDD_CMP_EQUAL_EACH 0x08 /* compare equal each: strcmp */ ++#define _SIDD_CMP_EQUAL_ORDERED 0x0C /* compare equal ordered */ ++ ++/* specify the polarity */ ++#define _SIDD_POSITIVE_POLARITY 0x00 ++#define _SIDD_MASKED_POSITIVE_POLARITY 0x20 ++#define _SIDD_NEGATIVE_POLARITY 0x10 /* negate results */ ++#define _SIDD_MASKED_NEGATIVE_POLARITY \ ++ 0x30 /* negate results only before end of string */ ++ ++/* specify the output selection in _mm_cmpXstri */ ++#define _SIDD_LEAST_SIGNIFICANT 0x00 ++#define _SIDD_MOST_SIGNIFICANT 0x40 ++ ++/* specify the output selection in _mm_cmpXstrm */ ++#define _SIDD_BIT_MASK 0x00 ++#define _SIDD_UNIT_MASK 0x40 ++ ++/* Pattern Matching for C macros. ++ * https://github.com/pfultz2/Cloak/wiki/C-Preprocessor-tricks,-tips,-and-idioms ++ */ ++ ++/* catenate */ ++#define SSE2NEON_PRIMITIVE_CAT(a, ...) a##__VA_ARGS__ ++#define SSE2NEON_CAT(a, b) SSE2NEON_PRIMITIVE_CAT(a, b) ++ ++#define SSE2NEON_IIF(c) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_IIF_, c) ++/* run the 2nd parameter */ ++#define SSE2NEON_IIF_0(t, ...) __VA_ARGS__ ++/* run the 1st parameter */ ++#define SSE2NEON_IIF_1(t, ...) t ++ ++#define SSE2NEON_COMPL(b) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_COMPL_, b) ++#define SSE2NEON_COMPL_0 1 ++#define SSE2NEON_COMPL_1 0 ++ ++#define SSE2NEON_DEC(x) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_DEC_, x) ++#define SSE2NEON_DEC_1 0 ++#define SSE2NEON_DEC_2 1 ++#define SSE2NEON_DEC_3 2 ++#define SSE2NEON_DEC_4 3 ++#define SSE2NEON_DEC_5 4 ++#define SSE2NEON_DEC_6 5 ++#define SSE2NEON_DEC_7 6 ++#define SSE2NEON_DEC_8 7 ++#define SSE2NEON_DEC_9 8 ++#define SSE2NEON_DEC_10 9 ++#define SSE2NEON_DEC_11 10 ++#define SSE2NEON_DEC_12 11 ++#define SSE2NEON_DEC_13 12 ++#define SSE2NEON_DEC_14 13 ++#define SSE2NEON_DEC_15 14 ++#define SSE2NEON_DEC_16 15 ++ ++/* detection */ ++#define SSE2NEON_CHECK_N(x, n, ...) n ++#define SSE2NEON_CHECK(...) SSE2NEON_CHECK_N(__VA_ARGS__, 0, ) ++#define SSE2NEON_PROBE(x) x, 1, ++ ++#define SSE2NEON_NOT(x) SSE2NEON_CHECK(SSE2NEON_PRIMITIVE_CAT(SSE2NEON_NOT_, x)) ++#define SSE2NEON_NOT_0 SSE2NEON_PROBE(~) ++ ++#define SSE2NEON_BOOL(x) SSE2NEON_COMPL(SSE2NEON_NOT(x)) ++#define SSE2NEON_IF(c) SSE2NEON_IIF(SSE2NEON_BOOL(c)) ++ ++#define SSE2NEON_EAT(...) ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++#define SSE2NEON_WHEN(c) SSE2NEON_IF(c)(SSE2NEON_EXPAND, SSE2NEON_EAT) ++ ++/* recursion */ ++/* deferred expression */ ++#define SSE2NEON_EMPTY() ++#define SSE2NEON_DEFER(id) id SSE2NEON_EMPTY() ++#define SSE2NEON_OBSTRUCT(...) __VA_ARGS__ SSE2NEON_DEFER(SSE2NEON_EMPTY)() ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++ ++#define SSE2NEON_EVAL(...) \ ++ SSE2NEON_EVAL1(SSE2NEON_EVAL1(SSE2NEON_EVAL1(__VA_ARGS__))) ++#define SSE2NEON_EVAL1(...) \ ++ SSE2NEON_EVAL2(SSE2NEON_EVAL2(SSE2NEON_EVAL2(__VA_ARGS__))) ++#define SSE2NEON_EVAL2(...) \ ++ SSE2NEON_EVAL3(SSE2NEON_EVAL3(SSE2NEON_EVAL3(__VA_ARGS__))) ++#define SSE2NEON_EVAL3(...) __VA_ARGS__ ++ ++#define SSE2NEON_REPEAT(count, macro, ...) \ ++ SSE2NEON_WHEN(count) \ ++ (SSE2NEON_OBSTRUCT(SSE2NEON_REPEAT_INDIRECT)()( \ ++ SSE2NEON_DEC(count), macro, \ ++ __VA_ARGS__) SSE2NEON_OBSTRUCT(macro)(SSE2NEON_DEC(count), \ ++ __VA_ARGS__)) ++#define SSE2NEON_REPEAT_INDIRECT() SSE2NEON_REPEAT ++ ++#define SSE2NEON_SIZE_OF_byte 8 ++#define SSE2NEON_NUMBER_OF_LANES_byte 16 ++#define SSE2NEON_SIZE_OF_word 16 ++#define SSE2NEON_NUMBER_OF_LANES_word 8 ++ ++#define SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE(i, type) \ ++ mtx[i] = vreinterpretq_m128i_##type(vceqq_##type( \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)), \ ++ vreinterpretq_##type##_m128i(a))); ++ ++#define SSE2NEON_FILL_LANE(i, type) \ ++ vec_b[i] = \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)); ++ ++#define PCMPSTR_RANGES(a, b, mtx, data_type_prefix, type_prefix, size, \ ++ number_of_lanes, byte_or_word) \ ++ do { \ ++ SSE2NEON_CAT( \ ++ data_type_prefix, \ ++ SSE2NEON_CAT(size, \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(number_of_lanes, _t)))) \ ++ vec_b[number_of_lanes]; \ ++ __m128i mask = SSE2NEON_IIF(byte_or_word)( \ ++ vreinterpretq_m128i_u16(vdupq_n_u16(0xff)), \ ++ vreinterpretq_m128i_u32(vdupq_n_u32(0xffff))); \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, SSE2NEON_FILL_LANE, \ ++ SSE2NEON_CAT(type_prefix, size))) \ ++ for (int i = 0; i < number_of_lanes; i++) { \ ++ mtx[i] = SSE2NEON_CAT(vreinterpretq_m128i_u, \ ++ size)(SSE2NEON_CAT(vbslq_u, size)( \ ++ SSE2NEON_CAT(vreinterpretq_u, \ ++ SSE2NEON_CAT(size, _m128i))(mask), \ ++ SSE2NEON_CAT(vcgeq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))), \ ++ SSE2NEON_CAT(vcleq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))))); \ ++ } \ ++ } while (0) ++ ++#define PCMPSTR_EQ(a, b, mtx, size, number_of_lanes) \ ++ do { \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, \ ++ SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE, \ ++ SSE2NEON_CAT(u, size))) \ ++ } while (0) ++ ++#define SSE2NEON_CMP_EQUAL_ANY_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_any(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_any_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_RANGES_IMPL(type, data_type, us, byte_or_word) \ ++ static int _sse2neon_cmp_##us##type##_ranges(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_RANGES( \ ++ a, b, mtx, data_type, us, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), byte_or_word); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_ranges_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_EQUAL_ORDERED_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_ordered(__m128i a, int la, \ ++ __m128i b, int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_ordered_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type))))( \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), la, lb, mtx); \ ++ } ++ ++static int _sse2neon_aggregate_equal_any_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ int tmp = _sse2neon_vaddvq_u8(vreinterpretq_u8_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_equal_any_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ int tmp = _sse2neon_vaddvq_u16(vreinterpretq_u16_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ANY(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ANY(SSE2NEON_CMP_EQUAL_ANY_) ++ ++static int _sse2neon_aggregate_ranges_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ __m128i tmp = vreinterpretq_m128i_u32( ++ vshrq_n_u32(vreinterpretq_u32_m128i(mtx[j]), 16)); ++ uint32x4_t vec_res = vandq_u32(vreinterpretq_u32_m128i(mtx[j]), ++ vreinterpretq_u32_m128i(tmp)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int t = vaddvq_u32(vec_res) ? 1 : 0; ++#else ++ uint64x2_t sumh = vpaddlq_u32(vec_res); ++ int t = vgetq_lane_u64(sumh, 0) + vgetq_lane_u64(sumh, 1); ++#endif ++ res |= (t << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_ranges_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ __m128i tmp = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 8)); ++ uint16x8_t vec_res = vandq_u16(vreinterpretq_u16_m128i(mtx[j]), ++ vreinterpretq_u16_m128i(tmp)); ++ int t = _sse2neon_vaddvq_u16(vec_res) ? 1 : 0; ++ res |= (t << j); ++ } ++ return res; ++} ++ ++#define SSE2NEON_CMP_RANGES_IS_BYTE 1 ++#define SSE2NEON_CMP_RANGES_IS_WORD 0 ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_RANGES(prefix) \ ++ prefix##IMPL(byte, uint, u, prefix##IS_BYTE) \ ++ prefix##IMPL(byte, int, s, prefix##IS_BYTE) \ ++ prefix##IMPL(word, uint, u, prefix##IS_WORD) \ ++ prefix##IMPL(word, int, s, prefix##IS_WORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_RANGES(SSE2NEON_CMP_RANGES_) ++ ++#undef SSE2NEON_CMP_RANGES_IS_BYTE ++#undef SSE2NEON_CMP_RANGES_IS_WORD ++ ++static int _sse2neon_cmp_byte_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint8x16_t mtx = ++ vceqq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x10000 - (1 << la); ++ int tb = 0x10000 - (1 << lb); ++ uint8x8_t vec_mask, vec0_lo, vec0_hi, vec1_lo, vec1_hi; ++ uint8x8_t tmp_lo, tmp_hi, res_lo, res_hi; ++ vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ vec0_lo = vtst_u8(vdup_n_u8(m0), vec_mask); ++ vec0_hi = vtst_u8(vdup_n_u8(m0 >> 8), vec_mask); ++ vec1_lo = vtst_u8(vdup_n_u8(m1), vec_mask); ++ vec1_hi = vtst_u8(vdup_n_u8(m1 >> 8), vec_mask); ++ tmp_lo = vtst_u8(vdup_n_u8(tb), vec_mask); ++ tmp_hi = vtst_u8(vdup_n_u8(tb >> 8), vec_mask); ++ ++ res_lo = vbsl_u8(vec0_lo, vdup_n_u8(0), vget_low_u8(mtx)); ++ res_hi = vbsl_u8(vec0_hi, vdup_n_u8(0), vget_high_u8(mtx)); ++ res_lo = vbsl_u8(vec1_lo, tmp_lo, res_lo); ++ res_hi = vbsl_u8(vec1_hi, tmp_hi, res_hi); ++ res_lo = vand_u8(res_lo, vec_mask); ++ res_hi = vand_u8(res_hi, vec_mask); ++ ++ int res = _sse2neon_vaddv_u8(res_lo) + (_sse2neon_vaddv_u8(res_hi) << 8); ++ return res; ++} ++ ++static int _sse2neon_cmp_word_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint16x8_t mtx = ++ vceqq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x100 - (1 << la); ++ int tb = 0x100 - (1 << lb); ++ uint16x8_t vec_mask = vld1q_u16(_sse2neon_cmpestr_mask16b); ++ uint16x8_t vec0 = vtstq_u16(vdupq_n_u16(m0), vec_mask); ++ uint16x8_t vec1 = vtstq_u16(vdupq_n_u16(m1), vec_mask); ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(tb), vec_mask); ++ mtx = vbslq_u16(vec0, vdupq_n_u16(0), mtx); ++ mtx = vbslq_u16(vec1, tmp, mtx); ++ mtx = vandq_u16(mtx, vec_mask); ++ return _sse2neon_vaddvq_u16(mtx); ++} ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE 1 ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD 0 ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IMPL(size, number_of_lanes, data_type) \ ++ static int _sse2neon_aggregate_equal_ordered_##size##x##number_of_lanes( \ ++ int bound, int la, int lb, __m128i mtx[16]) \ ++ { \ ++ int res = 0; \ ++ int m1 = SSE2NEON_IIF(data_type)(0x10000, 0x100) - (1 << la); \ ++ uint##size##x8_t vec_mask = SSE2NEON_IIF(data_type)( \ ++ vld1_u##size(_sse2neon_cmpestr_mask##size##b), \ ++ vld1q_u##size(_sse2neon_cmpestr_mask##size##b)); \ ++ uint##size##x##number_of_lanes##_t vec1 = SSE2NEON_IIF(data_type)( \ ++ vcombine_u##size(vtst_u##size(vdup_n_u##size(m1), vec_mask), \ ++ vtst_u##size(vdup_n_u##size(m1 >> 8), vec_mask)), \ ++ vtstq_u##size(vdupq_n_u##size(m1), vec_mask)); \ ++ uint##size##x##number_of_lanes##_t vec_minusone = vdupq_n_u##size(-1); \ ++ uint##size##x##number_of_lanes##_t vec_zero = vdupq_n_u##size(0); \ ++ for (int j = 0; j < lb; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size(vbslq_u##size( \ ++ vec1, vec_minusone, vreinterpretq_u##size##_m128i(mtx[j]))); \ ++ } \ ++ for (int j = lb; j < bound; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size( \ ++ vbslq_u##size(vec1, vec_minusone, vec_zero)); \ ++ } \ ++ unsigned SSE2NEON_IIF(data_type)(char, short) *ptr = \ ++ (unsigned SSE2NEON_IIF(data_type)(char, short) *) mtx; \ ++ for (int i = 0; i < bound; i++) { \ ++ int val = 1; \ ++ for (int j = 0, k = i; j < bound - i && k < bound; j++, k++) \ ++ val &= ptr[k * bound + j]; \ ++ res += val << i; \ ++ } \ ++ return res; \ ++ } ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(prefix) \ ++ prefix##IMPL(8, 16, prefix##IS_UBYTE) \ ++ prefix##IMPL(16, 8, prefix##IS_UWORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(SSE2NEON_AGGREGATE_EQUAL_ORDER_) ++ ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(SSE2NEON_CMP_EQUAL_ORDERED_) ++ ++#define SSE2NEON_CMPESTR_LIST \ ++ _(CMP_UBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_UWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_SBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_SWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_UBYTE_RANGES, cmp_ubyte_ranges) \ ++ _(CMP_UWORD_RANGES, cmp_uword_ranges) \ ++ _(CMP_SBYTE_RANGES, cmp_sbyte_ranges) \ ++ _(CMP_SWORD_RANGES, cmp_sword_ranges) \ ++ _(CMP_UBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_UWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_SBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_SWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_UBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_UWORD_EQUAL_ORDERED, cmp_word_equal_ordered) \ ++ _(CMP_SBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_SWORD_EQUAL_ORDERED, cmp_word_equal_ordered) ++ ++enum { ++#define _(name, func_suffix) name, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++typedef int (*cmpestr_func_t)(__m128i a, int la, __m128i b, int lb); ++static cmpestr_func_t _sse2neon_cmpfunc_table[] = { ++#define _(name, func_suffix) _sse2neon_##func_suffix, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++ ++FORCE_INLINE int _sse2neon_sido_negative(int res, int lb, int imm8, int bound) ++{ ++ switch (imm8 & 0x30) { ++ case _SIDD_NEGATIVE_POLARITY: ++ res ^= 0xffffffff; ++ break; ++ case _SIDD_MASKED_NEGATIVE_POLARITY: ++ res ^= (1 << lb) - 1; ++ break; ++ default: ++ break; ++ } ++ ++ return res & ((bound == 8) ? 0xFF : 0xFFFF); ++} ++ ++FORCE_INLINE int _sse2neon_clz(unsigned int x) ++{ ++#if defined(_MSC_VER) && !defined(__clang__) ++ unsigned long cnt = 0; ++ if (_BitScanReverse(&cnt, x)) ++ return 31 - cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_clz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctz(unsigned int x) ++{ ++#if defined(_MSC_VER) && !defined(__clang__) ++ unsigned long cnt = 0; ++ if (_BitScanForward(&cnt, x)) ++ return cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_ctz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctzll(unsigned long long x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt; ++#if defined(SSE2NEON_HAS_BITSCAN64) ++ if (_BitScanForward64(&cnt, x)) ++ return (int) (cnt); ++#else ++ if (_BitScanForward(&cnt, (unsigned long) (x))) ++ return (int) cnt; ++ if (_BitScanForward(&cnt, (unsigned long) (x >> 32))) ++ return (int) (cnt + 32); ++#endif /* SSE2NEON_HAS_BITSCAN64 */ ++ return 64; ++#else /* assume GNU compatible compilers */ ++ return x != 0 ? __builtin_ctzll(x) : 64; ++#endif ++} ++ ++#define SSE2NEON_MIN(x, y) (x) < (y) ? (x) : (y) ++ ++#define SSE2NEON_CMPSTR_SET_UPPER(var, imm) \ ++ const int var = (imm & 0x01) ? 8 : 16 ++ ++#define SSE2NEON_CMPESTRX_LEN_PAIR(a, b, la, lb) \ ++ int tmp1 = la ^ (la >> 31); \ ++ la = tmp1 - (la >> 31); \ ++ int tmp2 = lb ^ (lb >> 31); \ ++ lb = tmp2 - (lb >> 31); \ ++ la = SSE2NEON_MIN(la, bound); \ ++ lb = SSE2NEON_MIN(lb, bound) ++ ++// Compare all pairs of character in string a and b, ++// then aggregate the result. ++// As the only difference of PCMPESTR* and PCMPISTR* is the way to calculate the ++// length of string, we use SSE2NEON_CMP{I,E}STRX_GET_LEN to get the length of ++// string a and b. ++#define SSE2NEON_COMP_AGG(a, b, la, lb, imm8, IE) \ ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); \ ++ SSE2NEON_##IE##_LEN_PAIR(a, b, la, lb); \ ++ int r2 = (_sse2neon_cmpfunc_table[imm8 & 0x0f])(a, la, b, lb); \ ++ r2 = _sse2neon_sido_negative(r2, lb, imm8, bound) ++ ++#define SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8) \ ++ return (r2 == 0) ? bound \ ++ : ((imm8 & 0x40) ? (31 - _sse2neon_clz(r2)) \ ++ : _sse2neon_ctz(r2)) ++ ++#define SSE2NEON_CMPSTR_GENERATE_MASK(dst) \ ++ __m128i dst = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ if (imm8 & 0x40) { \ ++ if (bound == 8) { \ ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(r2), \ ++ vld1q_u16(_sse2neon_cmpestr_mask16b)); \ ++ dst = vreinterpretq_m128i_u16(vbslq_u16( \ ++ tmp, vdupq_n_u16(-1), vreinterpretq_u16_m128i(dst))); \ ++ } else { \ ++ uint8x16_t vec_r2 = \ ++ vcombine_u8(vdup_n_u8(r2), vdup_n_u8(r2 >> 8)); \ ++ uint8x16_t tmp = \ ++ vtstq_u8(vec_r2, vld1q_u8(_sse2neon_cmpestr_mask8b)); \ ++ dst = vreinterpretq_m128i_u8( \ ++ vbslq_u8(tmp, vdupq_n_u8(-1), vreinterpretq_u8_m128i(dst))); \ ++ } \ ++ } else { \ ++ if (bound == 16) { \ ++ dst = vreinterpretq_m128i_u16( \ ++ vsetq_lane_u16(r2 & 0xffff, vreinterpretq_u16_m128i(dst), 0)); \ ++ } else { \ ++ dst = vreinterpretq_m128i_u8( \ ++ vsetq_lane_u8(r2 & 0xff, vreinterpretq_u8_m128i(dst), 0)); \ ++ } \ ++ } \ ++ return dst ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and returns 1 if b did not contain a null character and the ++// resulting mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestra ++FORCE_INLINE int _mm_cmpestra(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ int lb_cpy = lb; ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return !r2 & (lb_cpy > bound); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrc ++FORCE_INLINE int _mm_cmpestrc(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestri ++FORCE_INLINE int _mm_cmpestri(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrm ++FORCE_INLINE __m128i ++_mm_cmpestrm(__m128i a, int la, __m128i b, int lb, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestro ++FORCE_INLINE int _mm_cmpestro(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrs ++FORCE_INLINE int _mm_cmpestrs(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) lb; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrz ++FORCE_INLINE int _mm_cmpestrz(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) la; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return lb <= (bound - 1); ++} ++ ++#define SSE2NEON_CMPISTRX_LENGTH(str, len, imm8) \ ++ do { \ ++ if (imm8 & 0x01) { \ ++ uint16x8_t equal_mask_##str = \ ++ vceqq_u16(vreinterpretq_u16_m128i(str), vdupq_n_u16(0)); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 3; \ ++ } else { \ ++ uint16x8_t equal_mask_##str = vreinterpretq_u16_u8( \ ++ vceqq_u8(vreinterpretq_u8_m128i(str), vdupq_n_u8(0))); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 2; \ ++ } \ ++ } while (0) ++ ++#define SSE2NEON_CMPISTRX_LEN_PAIR(a, b, la, lb) \ ++ int la, lb; \ ++ do { \ ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); \ ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); \ ++ } while (0) ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if b did not contain a null character and the resulting ++// mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistra ++FORCE_INLINE int _mm_cmpistra(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return !r2 & (lb >= bound); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrc ++FORCE_INLINE int _mm_cmpistrc(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistri ++FORCE_INLINE int _mm_cmpistri(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrm ++FORCE_INLINE __m128i _mm_cmpistrm(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistro ++FORCE_INLINE int _mm_cmpistro(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrs ++FORCE_INLINE int _mm_cmpistrs(__m128i a, __m128i b, const int imm8) ++{ ++ (void) b; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int la; ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrz ++FORCE_INLINE int _mm_cmpistrz(__m128i a, __m128i b, const int imm8) ++{ ++ (void) a; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int lb; ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); ++ return lb <= (bound - 1); ++} ++ ++// Compares the 2 signed 64-bit integers in a and the 2 signed 64-bit integers ++// in b for greater than. ++FORCE_INLINE __m128i _mm_cmpgt_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vcgtq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ return vreinterpretq_m128i_s64(vshrq_n_s64( ++ vqsubq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)), ++ 63)); ++#endif ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 16-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u16 ++FORCE_INLINE uint32_t _mm_crc32_u16(uint32_t crc, uint16_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32ch %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32ch(crc, v); ++#else ++ crc = _mm_crc32_u8(crc, v & 0xff); ++ crc = _mm_crc32_u8(crc, (v >> 8) & 0xff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 32-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u32 ++FORCE_INLINE uint32_t _mm_crc32_u32(uint32_t crc, uint32_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cw %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cw(crc, v); ++#else ++ crc = _mm_crc32_u16(crc, v & 0xffff); ++ crc = _mm_crc32_u16(crc, (v >> 16) & 0xffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 64-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u64 ++FORCE_INLINE uint64_t _mm_crc32_u64(uint64_t crc, uint64_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cx %w[c], %w[c], %x[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cd((uint32_t) crc, v); ++#else ++ crc = _mm_crc32_u32((uint32_t) (crc), v & 0xffffffff); ++ crc = _mm_crc32_u32((uint32_t) (crc), (v >> 32) & 0xffffffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 8-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u8 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t crc, uint8_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cb %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cb(crc, v); ++#else ++ crc ^= v; ++#if defined(__ARM_FEATURE_CRYPTO) ++ // Adapted from: https://mary.rs/lab/crc32/ ++ // Barrent reduction ++ uint64x2_t orig = ++ vcombine_u64(vcreate_u64((uint64_t) (crc) << 24), vcreate_u64(0x0)); ++ uint64x2_t tmp = orig; ++ ++ // Polynomial P(x) of CRC32C ++ uint64_t p = 0x105EC76F1; ++ // Barrett Reduction (in bit-reflected form) constant mu_{64} = \lfloor ++ // 2^{64} / P(x) \rfloor = 0x11f91caf6 ++ uint64_t mu = 0x1dea713f1; ++ ++ // Multiply by mu_{64} ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(mu)); ++ // Divide by 2^{64} (mask away the unnecessary bits) ++ tmp = ++ vandq_u64(tmp, vcombine_u64(vcreate_u64(0xFFFFFFFF), vcreate_u64(0x0))); ++ // Multiply by P(x) (shifted left by 1 for alignment reasons) ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(p)); ++ // Subtract original from result ++ tmp = veorq_u64(tmp, orig); ++ ++ // Extract the 'lower' (in bit-reflected sense) 32 bits ++ crc = vgetq_lane_u32(vreinterpretq_u32_u64(tmp), 1); ++#else // Fall back to the generic table lookup approach ++ // Adapted from: https://create.stephan-brumme.com/crc32/ ++ // Apply half-byte comparison algorithm for the best ratio between ++ // performance and lookup table. ++ ++ // The lookup table just needs to store every 16th entry ++ // of the standard look-up table. ++ static const uint32_t crc32_half_byte_tbl[] = { ++ 0x00000000, 0x105ec76f, 0x20bd8ede, 0x30e349b1, 0x417b1dbc, 0x5125dad3, ++ 0x61c69362, 0x7198540d, 0x82f63b78, 0x92a8fc17, 0xa24bb5a6, 0xb21572c9, ++ 0xc38d26c4, 0xd3d3e1ab, 0xe330a81a, 0xf36e6f75, ++ }; ++ ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++#endif ++#endif ++ return crc; ++} ++ ++/* AES */ ++ ++#if !defined(__ARM_FEATURE_CRYPTO) && (!defined(_M_ARM64) || defined(__clang__)) ++/* clang-format off */ ++#define SSE2NEON_AES_SBOX(w) \ ++ { \ ++ w(0x63), w(0x7c), w(0x77), w(0x7b), w(0xf2), w(0x6b), w(0x6f), \ ++ w(0xc5), w(0x30), w(0x01), w(0x67), w(0x2b), w(0xfe), w(0xd7), \ ++ w(0xab), w(0x76), w(0xca), w(0x82), w(0xc9), w(0x7d), w(0xfa), \ ++ w(0x59), w(0x47), w(0xf0), w(0xad), w(0xd4), w(0xa2), w(0xaf), \ ++ w(0x9c), w(0xa4), w(0x72), w(0xc0), w(0xb7), w(0xfd), w(0x93), \ ++ w(0x26), w(0x36), w(0x3f), w(0xf7), w(0xcc), w(0x34), w(0xa5), \ ++ w(0xe5), w(0xf1), w(0x71), w(0xd8), w(0x31), w(0x15), w(0x04), \ ++ w(0xc7), w(0x23), w(0xc3), w(0x18), w(0x96), w(0x05), w(0x9a), \ ++ w(0x07), w(0x12), w(0x80), w(0xe2), w(0xeb), w(0x27), w(0xb2), \ ++ w(0x75), w(0x09), w(0x83), w(0x2c), w(0x1a), w(0x1b), w(0x6e), \ ++ w(0x5a), w(0xa0), w(0x52), w(0x3b), w(0xd6), w(0xb3), w(0x29), \ ++ w(0xe3), w(0x2f), w(0x84), w(0x53), w(0xd1), w(0x00), w(0xed), \ ++ w(0x20), w(0xfc), w(0xb1), w(0x5b), w(0x6a), w(0xcb), w(0xbe), \ ++ w(0x39), w(0x4a), w(0x4c), w(0x58), w(0xcf), w(0xd0), w(0xef), \ ++ w(0xaa), w(0xfb), w(0x43), w(0x4d), w(0x33), w(0x85), w(0x45), \ ++ w(0xf9), w(0x02), w(0x7f), w(0x50), w(0x3c), w(0x9f), w(0xa8), \ ++ w(0x51), w(0xa3), w(0x40), w(0x8f), w(0x92), w(0x9d), w(0x38), \ ++ w(0xf5), w(0xbc), w(0xb6), w(0xda), w(0x21), w(0x10), w(0xff), \ ++ w(0xf3), w(0xd2), w(0xcd), w(0x0c), w(0x13), w(0xec), w(0x5f), \ ++ w(0x97), w(0x44), w(0x17), w(0xc4), w(0xa7), w(0x7e), w(0x3d), \ ++ w(0x64), w(0x5d), w(0x19), w(0x73), w(0x60), w(0x81), w(0x4f), \ ++ w(0xdc), w(0x22), w(0x2a), w(0x90), w(0x88), w(0x46), w(0xee), \ ++ w(0xb8), w(0x14), w(0xde), w(0x5e), w(0x0b), w(0xdb), w(0xe0), \ ++ w(0x32), w(0x3a), w(0x0a), w(0x49), w(0x06), w(0x24), w(0x5c), \ ++ w(0xc2), w(0xd3), w(0xac), w(0x62), w(0x91), w(0x95), w(0xe4), \ ++ w(0x79), w(0xe7), w(0xc8), w(0x37), w(0x6d), w(0x8d), w(0xd5), \ ++ w(0x4e), w(0xa9), w(0x6c), w(0x56), w(0xf4), w(0xea), w(0x65), \ ++ w(0x7a), w(0xae), w(0x08), w(0xba), w(0x78), w(0x25), w(0x2e), \ ++ w(0x1c), w(0xa6), w(0xb4), w(0xc6), w(0xe8), w(0xdd), w(0x74), \ ++ w(0x1f), w(0x4b), w(0xbd), w(0x8b), w(0x8a), w(0x70), w(0x3e), \ ++ w(0xb5), w(0x66), w(0x48), w(0x03), w(0xf6), w(0x0e), w(0x61), \ ++ w(0x35), w(0x57), w(0xb9), w(0x86), w(0xc1), w(0x1d), w(0x9e), \ ++ w(0xe1), w(0xf8), w(0x98), w(0x11), w(0x69), w(0xd9), w(0x8e), \ ++ w(0x94), w(0x9b), w(0x1e), w(0x87), w(0xe9), w(0xce), w(0x55), \ ++ w(0x28), w(0xdf), w(0x8c), w(0xa1), w(0x89), w(0x0d), w(0xbf), \ ++ w(0xe6), w(0x42), w(0x68), w(0x41), w(0x99), w(0x2d), w(0x0f), \ ++ w(0xb0), w(0x54), w(0xbb), w(0x16) \ ++ } ++#define SSE2NEON_AES_RSBOX(w) \ ++ { \ ++ w(0x52), w(0x09), w(0x6a), w(0xd5), w(0x30), w(0x36), w(0xa5), \ ++ w(0x38), w(0xbf), w(0x40), w(0xa3), w(0x9e), w(0x81), w(0xf3), \ ++ w(0xd7), w(0xfb), w(0x7c), w(0xe3), w(0x39), w(0x82), w(0x9b), \ ++ w(0x2f), w(0xff), w(0x87), w(0x34), w(0x8e), w(0x43), w(0x44), \ ++ w(0xc4), w(0xde), w(0xe9), w(0xcb), w(0x54), w(0x7b), w(0x94), \ ++ w(0x32), w(0xa6), w(0xc2), w(0x23), w(0x3d), w(0xee), w(0x4c), \ ++ w(0x95), w(0x0b), w(0x42), w(0xfa), w(0xc3), w(0x4e), w(0x08), \ ++ w(0x2e), w(0xa1), w(0x66), w(0x28), w(0xd9), w(0x24), w(0xb2), \ ++ w(0x76), w(0x5b), w(0xa2), w(0x49), w(0x6d), w(0x8b), w(0xd1), \ ++ w(0x25), w(0x72), w(0xf8), w(0xf6), w(0x64), w(0x86), w(0x68), \ ++ w(0x98), w(0x16), w(0xd4), w(0xa4), w(0x5c), w(0xcc), w(0x5d), \ ++ w(0x65), w(0xb6), w(0x92), w(0x6c), w(0x70), w(0x48), w(0x50), \ ++ w(0xfd), w(0xed), w(0xb9), w(0xda), w(0x5e), w(0x15), w(0x46), \ ++ w(0x57), w(0xa7), w(0x8d), w(0x9d), w(0x84), w(0x90), w(0xd8), \ ++ w(0xab), w(0x00), w(0x8c), w(0xbc), w(0xd3), w(0x0a), w(0xf7), \ ++ w(0xe4), w(0x58), w(0x05), w(0xb8), w(0xb3), w(0x45), w(0x06), \ ++ w(0xd0), w(0x2c), w(0x1e), w(0x8f), w(0xca), w(0x3f), w(0x0f), \ ++ w(0x02), w(0xc1), w(0xaf), w(0xbd), w(0x03), w(0x01), w(0x13), \ ++ w(0x8a), w(0x6b), w(0x3a), w(0x91), w(0x11), w(0x41), w(0x4f), \ ++ w(0x67), w(0xdc), w(0xea), w(0x97), w(0xf2), w(0xcf), w(0xce), \ ++ w(0xf0), w(0xb4), w(0xe6), w(0x73), w(0x96), w(0xac), w(0x74), \ ++ w(0x22), w(0xe7), w(0xad), w(0x35), w(0x85), w(0xe2), w(0xf9), \ ++ w(0x37), w(0xe8), w(0x1c), w(0x75), w(0xdf), w(0x6e), w(0x47), \ ++ w(0xf1), w(0x1a), w(0x71), w(0x1d), w(0x29), w(0xc5), w(0x89), \ ++ w(0x6f), w(0xb7), w(0x62), w(0x0e), w(0xaa), w(0x18), w(0xbe), \ ++ w(0x1b), w(0xfc), w(0x56), w(0x3e), w(0x4b), w(0xc6), w(0xd2), \ ++ w(0x79), w(0x20), w(0x9a), w(0xdb), w(0xc0), w(0xfe), w(0x78), \ ++ w(0xcd), w(0x5a), w(0xf4), w(0x1f), w(0xdd), w(0xa8), w(0x33), \ ++ w(0x88), w(0x07), w(0xc7), w(0x31), w(0xb1), w(0x12), w(0x10), \ ++ w(0x59), w(0x27), w(0x80), w(0xec), w(0x5f), w(0x60), w(0x51), \ ++ w(0x7f), w(0xa9), w(0x19), w(0xb5), w(0x4a), w(0x0d), w(0x2d), \ ++ w(0xe5), w(0x7a), w(0x9f), w(0x93), w(0xc9), w(0x9c), w(0xef), \ ++ w(0xa0), w(0xe0), w(0x3b), w(0x4d), w(0xae), w(0x2a), w(0xf5), \ ++ w(0xb0), w(0xc8), w(0xeb), w(0xbb), w(0x3c), w(0x83), w(0x53), \ ++ w(0x99), w(0x61), w(0x17), w(0x2b), w(0x04), w(0x7e), w(0xba), \ ++ w(0x77), w(0xd6), w(0x26), w(0xe1), w(0x69), w(0x14), w(0x63), \ ++ w(0x55), w(0x21), w(0x0c), w(0x7d) \ ++ } ++/* clang-format on */ ++ ++/* X Macro trick. See https://en.wikipedia.org/wiki/X_Macro */ ++#define SSE2NEON_AES_H0(x) (x) ++static const uint8_t _sse2neon_sbox[256] = SSE2NEON_AES_SBOX(SSE2NEON_AES_H0); ++static const uint8_t _sse2neon_rsbox[256] = SSE2NEON_AES_RSBOX(SSE2NEON_AES_H0); ++#undef SSE2NEON_AES_H0 ++ ++/* x_time function and matrix multiply function */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#define SSE2NEON_XT(x) (((x) << 1) ^ ((((x) >> 7) & 1) * 0x1b)) ++#define SSE2NEON_MULTIPLY(x, y) \ ++ (((y & 1) * x) ^ ((y >> 1 & 1) * SSE2NEON_XT(x)) ^ \ ++ ((y >> 2 & 1) * SSE2NEON_XT(SSE2NEON_XT(x))) ^ \ ++ ((y >> 3 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))) ^ \ ++ ((y >> 4 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))))) ++#endif ++ ++// In the absence of crypto extensions, implement aesenc using regular NEON ++// intrinsics instead. See: ++// https://www.workofard.com/2017/01/accelerated-aes-for-the-arm64-linux-kernel/ ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/ and ++// for more information. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ /* shift rows */ ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ /* sub bytes */ ++ // Here, we separate the whole 256-bytes table into 4 64-bytes tables, and ++ // look up each of the table. After each lookup, we load the next table ++ // which locates at the next 64-bytes. In the meantime, the index in the ++ // table would be smaller than it was, so the index parameters of ++ // `vqtbx4q_u8()` need to be added the same constant as the loaded tables. ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ // 'w-0x40' equals to 'vsubq_u8(w, vdupq_n_u8(0x40))' ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ /* mix columns */ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ /* add round key */ ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A implementation for a table-based AES */ ++#define SSE2NEON_AES_B2W(b0, b1, b2, b3) \ ++ (((uint32_t) (b3) << 24) | ((uint32_t) (b2) << 16) | \ ++ ((uint32_t) (b1) << 8) | (uint32_t) (b0)) ++// multiplying 'x' by 2 in GF(2^8) ++#define SSE2NEON_AES_F2(x) ((x << 1) ^ (((x >> 7) & 1) * 0x011b /* WPOLY */)) ++// multiplying 'x' by 3 in GF(2^8) ++#define SSE2NEON_AES_F3(x) (SSE2NEON_AES_F2(x) ^ x) ++#define SSE2NEON_AES_U0(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F2(p), p, p, SSE2NEON_AES_F3(p)) ++#define SSE2NEON_AES_U1(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p, p) ++#define SSE2NEON_AES_U2(p) \ ++ SSE2NEON_AES_B2W(p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p) ++#define SSE2NEON_AES_U3(p) \ ++ SSE2NEON_AES_B2W(p, p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p)) ++ ++ // this generates a table containing every possible permutation of ++ // shift_rows() and sub_bytes() with mix_columns(). ++ static const uint32_t ALIGN_STRUCT(16) aes_table[4][256] = { ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U0), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U1), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U2), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U3), ++ }; ++#undef SSE2NEON_AES_B2W ++#undef SSE2NEON_AES_F2 ++#undef SSE2NEON_AES_F3 ++#undef SSE2NEON_AES_U0 ++#undef SSE2NEON_AES_U1 ++#undef SSE2NEON_AES_U2 ++#undef SSE2NEON_AES_U3 ++ ++ uint32_t x0 = _mm_cvtsi128_si32(a); // get a[31:0] ++ uint32_t x1 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); // get a[63:32] ++ uint32_t x2 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xAA)); // get a[95:64] ++ uint32_t x3 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); // get a[127:96] ++ ++ // finish the modulo addition step in mix_columns() ++ __m128i out = _mm_set_epi32( ++ (aes_table[0][x3 & 0xff] ^ aes_table[1][(x0 >> 8) & 0xff] ^ ++ aes_table[2][(x1 >> 16) & 0xff] ^ aes_table[3][x2 >> 24]), ++ (aes_table[0][x2 & 0xff] ^ aes_table[1][(x3 >> 8) & 0xff] ^ ++ aes_table[2][(x0 >> 16) & 0xff] ^ aes_table[3][x1 >> 24]), ++ (aes_table[0][x1 & 0xff] ^ aes_table[1][(x2 >> 8) & 0xff] ^ ++ aes_table[2][(x3 >> 16) & 0xff] ^ aes_table[3][x0 >> 24]), ++ (aes_table[0][x0 & 0xff] ^ aes_table[1][(x1 >> 8) & 0xff] ^ ++ aes_table[2][(x2 >> 16) & 0xff] ^ aes_table[3][x3 >> 24])); ++ ++ return _mm_xor_si128(out, RoundKey); ++#endif ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // inverse mix columns ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & ++ 0x1b); // multiplying 'v' by 2 in GF(2^8) ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ // inverse mix columns ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ // sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A implementation */ ++ uint8_t v[16] = { ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 0)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 5)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 10)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 15)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 4)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 9)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 14)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 3)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 8)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 13)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 2)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 7)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 12)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 1)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 6)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 11)], ++ }; ++ ++ return vreinterpretq_m128i_u8(vld1q_u8(v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (int i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++#if defined(__aarch64__) ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ uint8x16_t v = vreinterpretq_u8_m128i(a); ++ uint8x16_t w; ++ ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ // multiplying 'v' by 2 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ return vreinterpretq_m128i_u8(w); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ vst1q_u8((uint8_t *) v, vreinterpretq_u8_m128i(a)); ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)); ++#endif ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++// ++// Emits the Advanced Encryption Standard (AES) instruction aeskeygenassist. ++// This instruction generates a round key for AES encryption. See ++// https://kazakov.life/2017/11/01/cryptocurrency-mining-on-ios-devices/ ++// for details. ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++#if defined(__aarch64__) ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); ++ uint8x16_t v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), _a); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), _a - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), _a - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), _a - 0xc0); ++ ++ uint32x4_t v_u32 = vreinterpretq_u32_u8(v); ++ uint32x4_t ror_v = vorrq_u32(vshrq_n_u32(v_u32, 8), vshlq_n_u32(v_u32, 24)); ++ uint32x4_t ror_xor_v = veorq_u32(ror_v, vdupq_n_u32(rcon)); ++ ++ return vreinterpretq_m128i_u32(vtrn2q_u32(v_u32, ror_xor_v)); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint32_t X1 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); ++ uint32_t X3 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); ++ for (int i = 0; i < 4; ++i) { ++ ((uint8_t *) &X1)[i] = _sse2neon_sbox[((uint8_t *) &X1)[i]]; ++ ((uint8_t *) &X3)[i] = _sse2neon_sbox[((uint8_t *) &X3)[i]]; ++ } ++ return _mm_set_epi32(((X3 >> 8) | (X3 << 24)) ^ rcon, X3, ++ ((X1 >> 8) | (X1 << 24)) ^ rcon, X1); ++#endif ++} ++#undef SSE2NEON_AES_SBOX ++#undef SSE2NEON_AES_RSBOX ++ ++#if defined(__aarch64__) ++#undef SSE2NEON_XT ++#undef SSE2NEON_MULTIPLY ++#endif ++ ++#else /* __ARM_FEATURE_CRYPTO */ ++// Implements equivalent of 'aesenc' by combining AESE (with an empty key) and ++// AESMC and then manually applying the real key as an xor operation. This ++// unfortunately means an additional xor op; the compiler should be able to ++// optimize this away for repeated calls however. See ++// https://blog.michaelbrase.com/2018/05/08/emulating-x86-aes-intrinsics-on-armv8-a ++// for more details. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesmcq_u8(vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(b))); ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesimcq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return _mm_xor_si128(vreinterpretq_m128i_u8(vaeseq_u8( ++ vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ RoundKey); ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8( ++ veorq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++ return vreinterpretq_m128i_u8(vaesimcq_u8(vreinterpretq_u8_m128i(a))); ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst." ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++ // AESE does ShiftRows and SubBytes on A ++ uint8x16_t u8 = vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)); ++ ++#if !defined(_MSC_VER) || defined(__clang__) ++ uint8x16_t dest = { ++ // Undo ShiftRows step from AESE and extract X1 and X3 ++ u8[0x4], u8[0x1], u8[0xE], u8[0xB], // SubBytes(X1) ++ u8[0x1], u8[0xE], u8[0xB], u8[0x4], // ROT(SubBytes(X1)) ++ u8[0xC], u8[0x9], u8[0x6], u8[0x3], // SubBytes(X3) ++ u8[0x9], u8[0x6], u8[0x3], u8[0xC], // ROT(SubBytes(X3)) ++ }; ++ uint32x4_t r = {0, (unsigned) rcon, 0, (unsigned) rcon}; ++ return vreinterpretq_m128i_u8(dest) ^ vreinterpretq_m128i_u32(r); ++#else ++ // We have to do this hack because MSVC is strictly adhering to the CPP ++ // standard, in particular C++03 8.5.1 sub-section 15, which states that ++ // unions must be initialized by their first member type. ++ ++ // As per the Windows ARM64 ABI, it is always little endian, so this works ++ __n128 dest{ ++ ((uint64_t) u8.n128_u8[0x4] << 0) | ((uint64_t) u8.n128_u8[0x1] << 8) | ++ ((uint64_t) u8.n128_u8[0xE] << 16) | ++ ((uint64_t) u8.n128_u8[0xB] << 24) | ++ ((uint64_t) u8.n128_u8[0x1] << 32) | ++ ((uint64_t) u8.n128_u8[0xE] << 40) | ++ ((uint64_t) u8.n128_u8[0xB] << 48) | ++ ((uint64_t) u8.n128_u8[0x4] << 56), ++ ((uint64_t) u8.n128_u8[0xC] << 0) | ((uint64_t) u8.n128_u8[0x9] << 8) | ++ ((uint64_t) u8.n128_u8[0x6] << 16) | ++ ((uint64_t) u8.n128_u8[0x3] << 24) | ++ ((uint64_t) u8.n128_u8[0x9] << 32) | ++ ((uint64_t) u8.n128_u8[0x6] << 40) | ++ ((uint64_t) u8.n128_u8[0x3] << 48) | ++ ((uint64_t) u8.n128_u8[0xC] << 56)}; ++ ++ dest.n128_u32[1] = dest.n128_u32[1] ^ rcon; ++ dest.n128_u32[3] = dest.n128_u32[3] ^ rcon; ++ ++ return dest; ++#endif ++} ++#endif ++ ++/* Others */ ++ ++// Perform a carry-less multiplication of two 64-bit integers, selected from a ++// and b according to imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clmulepi64_si128 ++FORCE_INLINE __m128i _mm_clmulepi64_si128(__m128i _a, __m128i _b, const int imm) ++{ ++ uint64x2_t a = vreinterpretq_u64_m128i(_a); ++ uint64x2_t b = vreinterpretq_u64_m128i(_b); ++ switch (imm & 0x11) { ++ case 0x00: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_low_u64(b))); ++ case 0x01: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_low_u64(b))); ++ case 0x10: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_high_u64(b))); ++ case 0x11: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_high_u64(b))); ++ default: ++ abort(); ++ } ++} ++ ++FORCE_INLINE unsigned int _sse2neon_mm_get_denormals_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_DENORMALS_ZERO_ON : _MM_DENORMALS_ZERO_OFF; ++} ++ ++// Count the number of bits set to 1 in unsigned 32-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u32 ++FORCE_INLINE int _mm_popcnt_u32(unsigned int a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcount) ++ return __builtin_popcount(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits(a); ++#else ++ return (int) vaddlv_u8(vcnt_u8(vcreate_u8((uint64_t) a))); ++#endif ++#else ++ uint32_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ ++ vst1_u32(&count, count32x2_val); ++ return count; ++#endif ++} ++ ++// Count the number of bits set to 1 in unsigned 64-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u64 ++FORCE_INLINE int64_t _mm_popcnt_u64(uint64_t a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcountll) ++ return __builtin_popcountll(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits64(a); ++#else ++ return (int64_t) vaddlv_u8(vcnt_u8(vcreate_u8(a))); ++#endif ++#else ++ uint64_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ uint64x1_t count64x1_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ count64x1_val = vpaddl_u32(count32x2_val); ++ vst1_u64(&count, count64x1_val); ++ return count; ++#endif ++} ++ ++FORCE_INLINE_OPTNONE void _sse2neon_mm_set_denormals_zero_mode( ++ unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_DENORMALS_ZERO_MASK) == _MM_DENORMALS_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Return the current 64-bit value of the processor's time-stamp counter. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=rdtsc ++FORCE_INLINE uint64_t _rdtsc(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t val; ++ ++ /* According to ARM DDI 0487F.c, from Armv8.0 to Armv8.5 inclusive, the ++ * system counter is at least 56 bits wide; from Armv8.6, the counter ++ * must be 64 bits wide. So the system counter could be less than 64 ++ * bits wide and it is attributed with the flag 'cap_user_time_short' ++ * is true. ++ */ ++#if defined(_MSC_VER) && !defined(__clang__) ++ val = _ReadStatusReg(ARM64_SYSREG(3, 3, 14, 0, 2)); ++#else ++ __asm__ __volatile__("mrs %0, cntvct_el0" : "=r"(val)); ++#endif ++ ++ return val; ++#else ++ uint32_t pmccntr, pmuseren, pmcntenset; ++ // Read the user mode Performance Monitoring Unit (PMU) ++ // User Enable Register (PMUSERENR) access permissions. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c14, 0" : "=r"(pmuseren)); ++ if (pmuseren & 1) { // Allows reading PMUSERENR for user mode code. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c12, 1" : "=r"(pmcntenset)); ++ if (pmcntenset & 0x80000000UL) { // Is it counting? ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c13, 0" : "=r"(pmccntr)); ++ // The counter is set up to count every 64th cycle ++ return (uint64_t) (pmccntr) << 6; ++ } ++ } ++ ++ // Fallback to syscall as we can't enable PMUSERENR in user mode. ++ struct timeval tv; ++ gettimeofday(&tv, NULL); ++ return (uint64_t) (tv.tv_sec) * 1000000 + tv.tv_usec; ++#endif ++} ++ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma pop_macro("ALIGN_STRUCT") ++#pragma pop_macro("FORCE_INLINE") ++#pragma pop_macro("FORCE_INLINE_OPTNONE") ++#endif ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma GCC pop_options ++#endif ++ ++#endif +diff --git c/src/stdinclude.h i/src/stdinclude.h +index 2b8f6d3..7802321 100644 +--- c/src/stdinclude.h ++++ i/src/stdinclude.h +@@ -6,11 +6,16 @@ + #include + #include + #include +-#include + #include + #include "pthread.h" + #include "ProgressBar.hpp" + ++#ifdef __ARM_NEON ++#include "sse2neon.h" ++#else ++#include ++#endif ++ + #if defined _WIN32 || defined _WIN64 + #else + #include From 2f03d16161c1f29b9e1e43c210c827942586b81b Mon Sep 17 00:00:00 2001 From: Patrik Smeds Date: Mon, 12 Aug 2024 17:57:09 +0200 Subject: [PATCH 0927/1589] feat: add recipe for tool dna-nn (#49953) * feat: add recipe for tool dna-nn * clean up recipe * edit meta.yaml * fix: handle failing test --------- Co-authored-by: mencian --- recipes/dna-nn/build.sh | 19 ++++++++++++++++++ recipes/dna-nn/meta.yaml | 42 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 recipes/dna-nn/build.sh create mode 100644 recipes/dna-nn/meta.yaml diff --git a/recipes/dna-nn/build.sh b/recipes/dna-nn/build.sh new file mode 100644 index 0000000000000..bfca91f0ebf92 --- /dev/null +++ b/recipes/dna-nn/build.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +set -x -e + +export CPATH=${PREFIX}/include + +mkdir -p "${PREFIX}/bin" + +make -j"${CPU_COUNT}" + +chmod 0755 dna-brnn +chmod 0755 dna-cnn +chmod 0755 gen-fq +chmod 0755 parse-rm.js + +cp -rf dna-brnn "${PREFIX}/bin" +cp -rf dna-cnn "${PREFIX}/bin" +cp -rf gen-fq "${PREFIX}/bin" +cp -rf parse-rm.js "${PREFIX}/bin" diff --git a/recipes/dna-nn/meta.yaml b/recipes/dna-nn/meta.yaml new file mode 100644 index 0000000000000..7e6edcd2f38a2 --- /dev/null +++ b/recipes/dna-nn/meta.yaml @@ -0,0 +1,42 @@ +{% set version = "0.1" %} +{% set name = "dna-nn" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/lh3/dna-nn/archive/refs/tags/v{{ version }}.tar.gz + sha256: bac26a25ad9e0315351b170bc33ab4e41b7573818fd9527b661f882b96ae0a8a + +build: + number: 0 + run_exports: + - {{ pin_subpackage("dna-nn", max_pin="x.x") }} + +requirements: + build: + - make + - {{ compiler('cxx') }} + - zlib # zlib needed in build to build correctly + host: + - zlib + run: + - k8 + +test: + commands: + - echo $(dna-brnn 2>&1) | grep "dna-brnn" + - echo $(dna-cnn 2>&1) | grep "dna-cnn" + - echo $(gen-fq 2>&1) | grep "gen-fq" + - echo $(parse-rm.js 2>&1) | grep "k8 parse-rm" + +about: + home: "https://github.com/lh3/dna-nn" + dev_url: "https://github.com/lh3/dna-nn" + license: Unknown + summary: "Model and predict short DNA sequence features with neural networks." + +extra: + recipe-maintainers: + - smeds From d44b4d3267a3f0bd9dc4d1b3617c3f68d60b5918 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 12 Aug 2024 11:57:40 -0400 Subject: [PATCH 0928/1589] Update quantms-utils to 0.0.6 (#49989) * Update quantms-utils to 0.0.6 * Fix version of scipy because of a bug. --------- Co-authored-by: Yasset Perez-Riverol --- recipes/quantms-utils/meta.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/recipes/quantms-utils/meta.yaml b/recipes/quantms-utils/meta.yaml index 9adab27093c22..c78e7a934c13a 100644 --- a/recipes/quantms-utils/meta.yaml +++ b/recipes/quantms-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "quantms-utils" %} -{% set version = "0.0.5" %} +{% set version = "0.0.6" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/quantms_utils-{{ version }}.tar.gz - sha256: 068625b5d5ca37255b5f108fd52cf31a73387b4660ca6284bcf5853268b9a32a + sha256: 9f94df1f1301e09399327cec746ae95b71f150917f4237124f52d1dcc972b173 build: entry_points: @@ -34,6 +34,9 @@ requirements: - deeplc ==2.2.38 - pandas >=1.0.0 - numpy + - scipy ==1.13.1 + - scikit-learn + - deeplcretrainer test: imports: From d7d0766b23b9beaf08faafa5a38906590e2d853c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 12 Aug 2024 11:59:34 -0400 Subject: [PATCH 0929/1589] Update solvebio to 2.29.0 (#49990) --- recipes/solvebio/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/solvebio/meta.yaml b/recipes/solvebio/meta.yaml index 03cd78b807a48..58237e1c5466f 100644 --- a/recipes/solvebio/meta.yaml +++ b/recipes/solvebio/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "2.28.0" %} -{% set sha256 = "e7135df9c67eebaa34b54ce2f400d78a7e38b60c65185e8822b6987083baca8d" %} +{% set version = "2.29.0" %} +{% set sha256 = "acdee37cc65dd173cb9b3a6704444d589218610aad1aee8e1d4af7d884c63033" %} package: name: solvebio From 43404d6c390f7a8b0743bcf024455e3b374673bb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 12 Aug 2024 16:49:22 -0400 Subject: [PATCH 0930/1589] Update lsabgc to 1.0.7 (#49993) --- recipes/lsabgc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/lsabgc/meta.yaml b/recipes/lsabgc/meta.yaml index 97513540544b9..0d5a6bc94916a 100644 --- a/recipes/lsabgc/meta.yaml +++ b/recipes/lsabgc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "lsabgc" %} -{% set version = "1.0.6" %} +{% set version = "1.0.7" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Kalan-Lab/lsaBGC-Pan/archive/refs/tags/v{{ version }}.tar.gz - sha256: d8511975151b5ed53c6268bdbca915bb4398e216be84e8a91729db2f13a422e8 + sha256: 09f95491a6a95a4ba4e8d2ee42ec87e09c7e5aa380fde73a11b4881bdb7b58fc build: number: 0 From 11fa3345f701bea883a22363d060a9b083abd7d9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 12 Aug 2024 18:42:05 -0400 Subject: [PATCH 0931/1589] Update ipyrad to 0.9.97 (#49992) --- recipes/ipyrad/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ipyrad/meta.yaml b/recipes/ipyrad/meta.yaml index 9b46a7831e71e..74569df372f29 100644 --- a/recipes/ipyrad/meta.yaml +++ b/recipes/ipyrad/meta.yaml @@ -1,6 +1,6 @@ {% set name = "ipyrad" %} -{% set version = "0.9.96" %} -{% set sha256 = "88bbaa820ad8b3626553c9d114a3a3f09fb35b15bff33b4b9a5b3d4e69ddb8cd" %} +{% set version = "0.9.97" %} +{% set sha256 = "34e039612f7855fab71cd4741582617abddb879241a9a15bae4b7c0593d889e8" %} package: name: {{ name }} From dcf3c2ff77ae868ecc861c48c9e5a9ac6f8331f4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 12 Aug 2024 18:42:16 -0400 Subject: [PATCH 0932/1589] Update solvebio to 2.29.1 (#49991) --- recipes/solvebio/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/solvebio/meta.yaml b/recipes/solvebio/meta.yaml index 58237e1c5466f..da8e049db6098 100644 --- a/recipes/solvebio/meta.yaml +++ b/recipes/solvebio/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "2.29.0" %} -{% set sha256 = "acdee37cc65dd173cb9b3a6704444d589218610aad1aee8e1d4af7d884c63033" %} +{% set version = "2.29.1" %} +{% set sha256 = "e5e1e6eb044fb8300b64af768e1a1cae8ee66d665b55190daa44ec2489f7a2a6" %} package: name: solvebio From 1a84b0388ce1d6bb144447f4dc16edbd5ecbec4e Mon Sep 17 00:00:00 2001 From: huangyh45 <116069282+huangyh45@users.noreply.github.com> Date: Tue, 13 Aug 2024 13:03:30 +0800 Subject: [PATCH 0933/1589] Add phyloaln (#49966) * Add phyloaln * Add phyloaln * Add phyloaln * Add phyloaln --- recipes/phyloaln/build.sh | 8 ++++++ recipes/phyloaln/meta.yaml | 51 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 recipes/phyloaln/build.sh create mode 100644 recipes/phyloaln/meta.yaml diff --git a/recipes/phyloaln/build.sh b/recipes/phyloaln/build.sh new file mode 100644 index 0000000000000..1832c18446a37 --- /dev/null +++ b/recipes/phyloaln/build.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +set -xe + +mkdir -p $PREFIX/bin +cp -rf $SRC_DIR/lib $PREFIX/bin +cp $SRC_DIR/PhyloAln $PREFIX/bin +cp -rf $SRC_DIR/scripts/* $PREFIX/bin diff --git a/recipes/phyloaln/meta.yaml b/recipes/phyloaln/meta.yaml new file mode 100644 index 0000000000000..59022155f358e --- /dev/null +++ b/recipes/phyloaln/meta.yaml @@ -0,0 +1,51 @@ +{% set version = "1.0.0" %} +{% set sha256 = "e10ed2b344bff8b10a4334fd8d1d9d108104f6d1395bb50828edd78b82cdca5b" %} + +package: + name: phyloaln + version: "{{ version }}" +source: + url: https://github.com/huangyh45/PhyloAln/archive/refs/tags/v{{ version }}.tar.gz + sha256: {{ sha256 }} + +build: + number: 0 + noarch: generic + run_exports: + - {{ pin_subpackage('phyloaln', max_pin='x') }} + +requirements: + run: + - biopython >=1.77 + - ete3 >=3.1.2 + - hmmer >=3.1 + - mafft >=7.467 + - perl >=5.26.2 + - perl-bioperl >=1.7.2 + - perl-parallel-forkmanager >=2.02 + - python >=3.7.4 + +test: + commands: + - PhyloAln -h + - hmmbuild -h + - hmmsearch -h + - merge_seqs.py -h + - root_tree.py -h + - select_seqs.py -h + - test_effect.py -h + - trim_matrix.py -h + - perl -MBio::SeqIO -e 1 + - perl -MBio::DB::Fasta -e 1 + - perl -MParallel::ForkManager -e 1 + - mafft --version + +about: + home: https://github.com/huangyh45/PhyloAln + license: MIT + license_file: LICENSE + summary: "PhyloAln: a reference-based multiple sequence alignment tool for phylogeny" + +extra: + identifiers: + - doi:10.1093/molbev/msae150 From d5bed71a7c7707d880ef8b37031f4562386988c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vincent=20No=C3=ABl?= Date: Tue, 13 Aug 2024 02:06:44 -0300 Subject: [PATCH 0934/1589] Libsbml update to 5.20.4, added OSX support (#49939) * Updated build script to add new packages and make macos compatible * Updated to libsbml 5.20.4, changed source to github * removed bzip2 and zlib run requirements * Removed last error log * Added conda build config with libxml2 variants and proper pin * Reset build number to 0 * Only running test command on linux * Added license.txt from libsbml repo * running the test command also on the osx library Co-authored-by: Martin Grigorov --------- Co-authored-by: Martin Grigorov --- recipes/libsbml/LICENSE.txt | 167 ++++++++++++++++++++ recipes/libsbml/build.sh | 19 ++- recipes/libsbml/build_failure.linux-64.yaml | 105 ------------ recipes/libsbml/conda_build_config.yaml | 7 + recipes/libsbml/meta.yaml | 16 +- 5 files changed, 198 insertions(+), 116 deletions(-) create mode 100644 recipes/libsbml/LICENSE.txt delete mode 100644 recipes/libsbml/build_failure.linux-64.yaml create mode 100644 recipes/libsbml/conda_build_config.yaml diff --git a/recipes/libsbml/LICENSE.txt b/recipes/libsbml/LICENSE.txt new file mode 100644 index 0000000000000..91d790aa62342 --- /dev/null +++ b/recipes/libsbml/LICENSE.txt @@ -0,0 +1,167 @@ + Licensing and Distribution Terms for libSBML + +The majority of libSBML is copyrighted as follows: + +* Copyright (C) 2013-2018 jointly by the following organizations: + 1. California Institute of Technology, Pasadena, CA, USA + 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK + 3. University of Heidelberg, Heidelberg, Germany + +* Copyright (C) 2009-2013 jointly by the following organizations: + 1. California Institute of Technology, Pasadena, CA, USA + 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK + +* Copyright (C) 2006-2008 by the California Institute of Technology, + Pasadena, CA, USA + +* Copyright (C) 2002-2005 jointly by the following organizations: + 1. California Institute of Technology, Pasadena, CA, USA + 2. Japan Science and Technology Agency, Japan + +Portions of the source code comprising libSBML were copyrighted +and contributed by third parties, and placed under the same LGPL +2.1 license as the rest of libSBML. The following are their +copyright statements: + +* Copyright (C) 2004-2008 by European Media Laboratories Research + gGmbH, Heidelberg, Germany. (For the "SBML Layout" code.) + +LibSBML is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation; either version 2.1 of +the License, or any later version. + +This software is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF +MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. The software +and documentation provided hereunder is on an "as is" basis, and +the copyright holders have no obligations to provide maintenance, +support, updates, enhancements or modifications. In no event +shall the copyright holders be liable to any party for direct, +indirect, special, incidental or consequential damages, including +lost profits, arising out of the use of this software and its +documentation, even if the copyright holders have been advised of +the possibility of such damage. See the GNU Lesser General Public +License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library in the file named "COPYING.txt" +included with the software distribution. A copy is also +available online at the Internet address +http://sbml.org/software/libsbml/COPYING.html for your +convenience. You may also write to obtain a copy from the Free +Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +MA 02110-1301, USA. + + + Third-party software incorporated into both the libSBML + binary and source-code distributions + +LibSBML incorporates an open-source compression library written by +a third party. The following is information about the copyright +and distribution terms of this library: + +* MiniZip 1.01e, copyright (C) 1998-2005 Gilles Vollant, released + under terms compatible with the LGPL. Please see the file + src/sbml/compress/00README.txt for more information about + MiniZip 1.01e and its license terms. + + + Additional third-party software incorporated only + into the libSBML source code distribution + +Additional software is used to produce the documentation of +libSBML. The binary distributions of libSBML do not include this +software; they are only present in the source code distribution +and the libSBML documentation archives. + +* Argparse 1.2.1, copyright (C) 2006-2009 Steven J. Bethard + and distributed under the Python Software + Foundation License version 2. Code downloaded from + http://code.google.com/p/argparse/ on 2012-02-10. + +* Google Code Prettify, distributed under the terms of the + Apache License Version 2.0, January 2004. Code downloaded from + http://code.google.com/p/google-code-prettify/ on 2013-10-16. + +* PrettyTable, copyright (C) 2009-2013 Luke Maurits, distributed + under the following BSD-derivative license: + + Copyright (c) 2009-2013 Luke Maurits + All rights reserved. + With contributions from: + * Chris Clark + * Christoph Robbert + * Klein Stephane + * "maartendb" + + Redistribution and use in source and binary forms, with or + without modification, are permitted provided that the + following conditions are met: + + * Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the + following disclaimer in the documentation and/or other + materials provided with the distribution. + + * The name of the author may not be used to endorse or + promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +* ExcludeDoclet, copyright (C) 2004 by Sun Microsystems, Inc., and + distributed under the following open-source terms: + + Copyright 2004 Sun Microsystems, Inc. All Rights Reserved. + + Redistribution and use in source and binary forms, with or + without modification, are permitted provided that the + following conditions are met: + + - Redistribution of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + - Redistribution in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. Neither the name of Sun Microsystems, + Inc. nor the names of contributors may be used to endorse or + promote products derived from this software without specific + prior written permission. + + This software is provided "AS IS," without a warranty of any + kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND + WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE + HEREBY EXCLUDED. SUN MICROSYSTEMS, INC. ("SUN") AND ITS + LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY + LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS + SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS + LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR + FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR + PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY + OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE + THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY + OF SUCH DAMAGES. + + You acknowledge that this software is not designed, licensed + or intended for use in the design, construction, operation or + maintenance of any nuclear facility. diff --git a/recipes/libsbml/build.sh b/recipes/libsbml/build.sh index 7b3b0d2884b8b..6e3bbfb5c8b2d 100644 --- a/recipes/libsbml/build.sh +++ b/recipes/libsbml/build.sh @@ -1,21 +1,36 @@ #!/bin/bash mkdir build cd build + +declare -a CMAKE_LIBXML_LIBRARY +if [[ ${target_platform} == osx-64 ]]; then + CMAKE_LIBXML_LIBRARY+=(-DLIBXML_LIBRARY="${PREFIX}"/lib/libxml2.dylib) +elif [[ ${target_platform} == linux-64 ]]; then + CMAKE_LIBXML_LIBRARY+=(-DLIBXML_LIBRARY="${PREFIX}"/lib/libxml2.so) +fi + cmake -DCMAKE_INSTALL_PREFIX=${PREFIX} \ -DCMAKE_INSTALL_LIBDIR=${PREFIX}/lib \ -DCMAKE_CXX_COMPILER=${CXX} \ -DCMAKE_C_COMPILER=${CC} \ + -DCMAKE_CXX_STANDARD_LIBRARIES=-lxml2 \ -DWITH_SWIG=OFF \ - -DLIBSBML_DEPENDENCY_DIR="${PREFIX}" \ + "${CMAKE_LIBXML_LIBRARY[@]}" \ -DLIBXML_INCLUDE_DIR=${PREFIX}/include/libxml2 \ -DENABLE_COMP=ON \ -DENABLE_FBC=ON \ -DENABLE_GROUPS=ON \ - -DENABLE_L3V2EXTENDEDMATH=ON \ -DENABLE_LAYOUT=ON \ -DENABLE_MULTI=ON \ -DENABLE_QUAL=ON \ -DENABLE_RENDER=ON \ + -DENABLE_DISTRIB=ON \ + -DENABLE_ARRAYS=ON \ + -DENABLE_DYN=ON \ + -DENABLE_REQUIREDELEMENTS=ON \ + -DENABLE_SPATIAL=ON \ + -DWITH_CPP_NAMESPACE=ON \ .. + make -j"${CPU_COUNT}" make install diff --git a/recipes/libsbml/build_failure.linux-64.yaml b/recipes/libsbml/build_failure.linux-64.yaml deleted file mode 100644 index 7172757f203aa..0000000000000 --- a/recipes/libsbml/build_failure.linux-64.yaml +++ /dev/null @@ -1,105 +0,0 @@ -recipe_sha: 11a10c25d366c5890bbb2c3d3c0f43403d43e7af7937559a8b3e620fc3593de8 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -category: compiler error -log: |2- - | ^~~~~~~~~~~~~~ - In file included from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/FunctionDefinition.h:136, - from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/Model.h:449, - from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/validator/constraints/UniqueVarsInRules.cpp:39: - /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/ListOf.h:111:27: warning: 'template struct std::unary_function' is deprecated [-Wdeprecated-declarations] - 111 | struct IdEq : public std::unary_function - | ^~~~~~~~~~~~~~ - In file included from /opt/conda/conda-bld/libsbml_1718134461495/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/string:48, - from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/Model.h:447: - /opt/conda/conda-bld/libsbml_1718134461495/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_function.h:117:12: note: declared here - 117 | struct unary_function - | ^~~~~~~~~~~~~~ - In file included from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/FunctionDefinition.h:136, - from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/Model.h:449, - from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/validator/constraints/UnitsBase.cpp:39: - /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/ListOf.h:111:27: warning: 'template struct std::unary_function' is deprecated [-Wdeprecated-declarations] - 111 | struct IdEq : public std::unary_function - | ^~~~~~~~~~~~~~ - In file included from /opt/conda/conda-bld/libsbml_1718134461495/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/string:48, - from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/Model.h:447: - /opt/conda/conda-bld/libsbml_1718134461495/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_function.h:117:12: note: declared here - 117 | struct unary_function - | ^~~~~~~~~~~~~~ - [ 95%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/compress/CompressCommon.cpp.o - [ 95%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/compress/InputDecompressor.cpp.o - [ 95%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/compress/bzfstream.cpp.o - [ 95%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/compress/OutputCompressor.cpp.o - In file included from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/FunctionDefinition.h:136, - from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/Model.h:449, - from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/validator/constraints/ValidCnUnitsValue.cpp:39: - /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/ListOf.h:111:27: warning: 'template struct std::unary_function' is deprecated [-Wdeprecated-declarations] - 111 | struct IdEq : public std::unary_function - | ^~~~~~~~~~~~~~ - In file included from /opt/conda/conda-bld/libsbml_1718134461495/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/string:48, - from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/Model.h:447: - /opt/conda/conda-bld/libsbml_1718134461495/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_function.h:117:12: note: declared here - 117 | struct unary_function - | ^~~~~~~~~~~~~~ - [ 95%] Building C object src/CMakeFiles/sbml-static.dir/sbml/compress/zip.c.o - [ 95%] Building C object src/CMakeFiles/sbml-static.dir/sbml/compress/unzip.c.o - [ 95%] Building C object src/CMakeFiles/sbml-static.dir/sbml/compress/ioapi.c.o - [ 96%] Building C object src/CMakeFiles/sbml-static.dir/sbml/compress/ioapi_mem.c.o - [ 96%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/compress/zfstream.cpp.o - [ 96%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/compress/zipfstream.cpp.o - [ 96%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLAttributes.cpp.o - [ 96%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLBuffer.cpp.o - [ 96%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLConstructorException.cpp.o - [ 96%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLError.cpp.o - [ 96%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLErrorLog.cpp.o - [ 97%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLLogOverride.cpp.o - /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/xml/XMLErrorLog.cpp:98:24: warning: 'template struct std::unary_function' is deprecated [-Wdeprecated-declarations] - 98 | struct Delete : public unary_function - | ^~~~~~~~~~~~~~ - In file included from /opt/conda/conda-bld/libsbml_1718134461495/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/functional:49, - from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/xml/XMLErrorLog.cpp:38: - /opt/conda/conda-bld/libsbml_1718134461495/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_function.h:117:12: note: declared here - 117 | struct unary_function - | ^~~~~~~~~~~~~~ - [ 97%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLFileBuffer.cpp.o - [ 97%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLHandler.cpp.o - [ 97%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLInputStream.cpp.o - [ 97%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLMemoryBuffer.cpp.o - [ 97%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLNamespaces.cpp.o - [ 97%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLNode.cpp.o - [ 97%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLOutputStream.cpp.o - [ 97%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLParser.cpp.o - [ 98%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLToken.cpp.o - [ 98%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLTokenizer.cpp.o - [ 98%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLTriple.cpp.o - [ 98%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/LibXMLAttributes.cpp.o - [ 98%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/LibXMLHandler.cpp.o - [ 98%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/LibXMLNamespaces.cpp.o - [ 98%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/LibXMLParser.cpp.o - [ 98%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/LibXMLTranscode.cpp.o - /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/xml/LibXMLParser.cpp: In member function 'virtual bool LibXMLParser::parseNext()': - /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/xml/LibXMLParser.cpp:422:46: error: invalid conversion from 'const xmlError*' {aka 'const _xmlError*'} to 'xmlErrorPtr' {aka '_xmlError*'} [-fpermissive] - 422 | xmlErrorPtr libxmlError = xmlGetLastError(); - | ~~~~~~~~~~~~~~~^~ - | | - | const xmlError* {aka const _xmlError*} - make[2]: *** [src/CMakeFiles/sbml-static.dir/build.make:6082: src/CMakeFiles/sbml-static.dir/sbml/xml/LibXMLParser.cpp.o] Error 1 - make[2]: *** Waiting for unfinished jobs.... - make[1]: *** [CMakeFiles/Makefile2:242: src/CMakeFiles/sbml-static.dir/all] Error 2 - make: *** [Makefile:156: all] Error 2 - Traceback (most recent call last): - File "/opt/conda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - utils.check_call_env( - File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/libsbml_1718134461495/work/conda_build.sh']' returned non-zero exit status 2. -# Last 100 lines of the build log. diff --git a/recipes/libsbml/conda_build_config.yaml b/recipes/libsbml/conda_build_config.yaml new file mode 100644 index 0000000000000..8c1d84a5c606c --- /dev/null +++ b/recipes/libsbml/conda_build_config.yaml @@ -0,0 +1,7 @@ +libxml2: + - 2.9 # [linux] + - 2.10 + - 2.11 + - 2.12 +pin_run_as_build: + libxml2: x.x diff --git a/recipes/libsbml/meta.yaml b/recipes/libsbml/meta.yaml index 45ced1405a863..dd15bca255367 100644 --- a/recipes/libsbml/meta.yaml +++ b/recipes/libsbml/meta.yaml @@ -1,18 +1,17 @@ -{% set version = "5.18.0" %} -{% set sha256 = "6c01be2306ec0c9656b59cb082eb7b90176c39506dd0f912b02e08298a553360" %} +{% set version = "5.20.4" %} +{% set sha256 = "02c225d3513e1f5d6e3c0168456f568e67f006eddaab82f09b4bdf0d53d2050e" %} package: name: libsbml version: {{ version }} build: - number: 11 - skip: True # [osx] + number: 0 run_exports: - {{ pin_subpackage('libsbml', max_pin='x.x') }} source: - url: https://sourceforge.net/projects/sbml/files/libsbml/{{ version }}/stable/libSBML-{{ version }}-core-plus-packages-src.tar.gz + url: https://github.com/sbmlteam/libsbml/archive/refs/tags/v{{ version }}.tar.gz sha256: {{ sha256 }} requirements: @@ -26,13 +25,12 @@ requirements: - libxml2 - zlib run: - - bzip2 - libxml2 - - zlib - + test: commands: - - test -f "${PREFIX}/lib/libsbml${SHLIB_EXT-.so}" + - test -f "${PREFIX}/lib/libsbml${SHLIB_EXT-.so}" # [linux] + - test -f "${PREFIX}/lib/libsbml${SHLIB_EXT-.dylib}" # [osx] about: home: http://sbml.org/Software/libSBML From 77efb5a03e292e64cf0caf36aa5b935e84881eeb Mon Sep 17 00:00:00 2001 From: "UENO, M." Date: Tue, 13 Aug 2024 14:07:33 +0900 Subject: [PATCH 0935/1589] Pdbx v1.0.0 for ARM platforms (#49970) * Add meta.yaml and build.sh * Update meta.yaml * Update meta.yaml * Add sha256 checksum * Remove unused comments * Update build.sh * Add license info * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Prepare builds for ARM platforms * Update test section in meta.yaml * Fix test section in meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update build.sh * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml --- recipes/pdbx/build.sh | 1 + recipes/pdbx/meta.yaml | 16 +++++++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/recipes/pdbx/build.sh b/recipes/pdbx/build.sh index 6945b07878f50..0ba07c5223114 100644 --- a/recipes/pdbx/build.sh +++ b/recipes/pdbx/build.sh @@ -3,4 +3,5 @@ mkdir -p build cd build cmake ${SRC_DIR} ${CMAKE_ARGS} +make make install diff --git a/recipes/pdbx/meta.yaml b/recipes/pdbx/meta.yaml index de822ef290861..c28ff53effdf5 100644 --- a/recipes/pdbx/meta.yaml +++ b/recipes/pdbx/meta.yaml @@ -8,11 +8,10 @@ package: source: url: https://github.com/eunos-1128/pdbx/archive/refs/tags/v{{ version }}.tar.gz - version: {{ version }} sha256: 6b2c9e632b9b9ad1ac7a2683f9e3a50c778dda559507072839924ae0b2bea6a3 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin="x") }} @@ -23,13 +22,17 @@ requirements: - {{ compiler('c') }} - {{ compiler('cxx') }} # [linux] host: - - python + - python >=3.7,<3.12 run: - - python + - python >=3.7,<3.12 test: + imports: + - {{ name }} commands: - - PACKAGE_NAME={{ name }}; python3 -c "import pkg_resources; import sys; sys.exit(0 if pkg_resources.get_distribution('${PACKAGE_NAME}') else 1)" + - pip check + requires: + - pip about: home: https://github.com/{{ org }}/{{ name }} @@ -46,5 +49,8 @@ about: dev_url: https://github.com/{{ org }}/{{ name }} extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - eunos-1128 From 7536c26d1c4039ebd8023da42830dc04c047a703 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 13 Aug 2024 01:27:58 -0400 Subject: [PATCH 0936/1589] Update cogent3 to 2024.7.19a4 (#49994) --- recipes/cogent3/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/cogent3/meta.yaml b/recipes/cogent3/meta.yaml index c9a318f6eb0fc..d32a78fc20af4 100644 --- a/recipes/cogent3/meta.yaml +++ b/recipes/cogent3/meta.yaml @@ -1,5 +1,5 @@ {% set name = "cogent3" %} -{% set version = "2024.7.19a3" %} +{% set version = "2024.7.19a4" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 9a022315e02b4f5febe01f3377a921fdadcfce2bf85c85e7a69aaeeddfe98c59 + sha256: 3ff157aa3a778d4b2f473d18619d674073d5b61ad864daca3ee5283a9cdc50bb build: noarch: python From 3903fe213e4bdb357bf9aaf5ef0fcd9f57b51d5b Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Tue, 13 Aug 2024 07:29:59 +0200 Subject: [PATCH 0937/1589] Build hyphy for osx-arm64 (#49995) * Build hyphy for osx-arm64 * remove unnecessary run reqs * add citation --- recipes/hyphy/meta.yaml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/recipes/hyphy/meta.yaml b/recipes/hyphy/meta.yaml index 1a0520fed05d0..b531a053fb8a8 100644 --- a/recipes/hyphy/meta.yaml +++ b/recipes/hyphy/meta.yaml @@ -10,7 +10,7 @@ source: sha256: '{{ sha256 }}' build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("hyphy", max_pin="x.x") }} requirements: @@ -23,11 +23,7 @@ requirements: host: - libcurl - openmpi - - openssl - run: - - libcurl - - openmpi - - openssl + - zlib test: commands: @@ -47,5 +43,8 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 container: extended-base: true + identifiers: + - doi:10.1093/molbev/msz197 From b2a5c1070446832e7815cc3f4d13cd1ff222d9c0 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 13 Aug 2024 01:31:54 -0400 Subject: [PATCH 0938/1589] Update tcdemux to 0.1.1 (#49997) --- recipes/tcdemux/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/tcdemux/meta.yaml b/recipes/tcdemux/meta.yaml index 23b03ecb70bdd..1d2bc89eb43f5 100644 --- a/recipes/tcdemux/meta.yaml +++ b/recipes/tcdemux/meta.yaml @@ -1,5 +1,5 @@ --- -{% set version = "0.0.26" %} +{% set version = "0.1.1" %} package: name: tcdemux @@ -7,10 +7,10 @@ package: source: url: https://github.com/TomHarrop/tcdemux/archive/refs/tags/{{ version }}.tar.gz - sha256: 120b57d54d9fd30e96186c4d11f25691bd54e758e1d7dde99b24868bd2788e59 + sha256: 945c8acef0f68a8bbbd0449ca77a6408e7e2eb2b85c54812931282b8783cdb8f build: - number: 1 + number: 0 noarch: python script: {{ PYTHON }} -m pip install --ignore-installed . run_exports: From d81f6c1c158dce302db7c5c6b5103f749fce57e5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 13 Aug 2024 01:36:12 -0400 Subject: [PATCH 0939/1589] Update sphae to 1.4.4 (#49996) --- recipes/sphae/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sphae/meta.yaml b/recipes/sphae/meta.yaml index ffd1cd3558f3d..0cb6737014829 100644 --- a/recipes/sphae/meta.yaml +++ b/recipes/sphae/meta.yaml @@ -1,5 +1,5 @@ {% set name = "sphae" %} -{% set version = "1.4.3" %} +{% set version = "1.4.4" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://github.com/linsalrob/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz" - sha256: 30b92bebe5538b52694a73614a932b12f46575ea5c857961815bbb9cec4c5db9 + sha256: adefd056f1e08708b27243c7fe120d7062270d4d9498bb88a62992bee715500a build: number: 0 From 4c640359cb6b5ca7307e4608c455c0e5e65d42a4 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 13 Aug 2024 01:11:16 -0500 Subject: [PATCH 0940/1589] Update cellbender to 0.3.2 (#50000) --- recipes/cellbender/meta.yaml | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/recipes/cellbender/meta.yaml b/recipes/cellbender/meta.yaml index 68183da020015..b70653de9be49 100644 --- a/recipes/cellbender/meta.yaml +++ b/recipes/cellbender/meta.yaml @@ -1,27 +1,26 @@ -{% set name = "cellbender" %} -{% set version = "0.3.0" %} +{% set name = "CellBender" %} +{% set version = "0.3.2" %} package: name: {{ name|lower }} version: {{ version }} source: - url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/cellbender-{{ version }}.tar.gz - sha256: 94a46fb2b5921414ea86213cfdebca267b9ba6ba02df854cbd353980ab3aff42 + url: https://github.com/broadinstitute/CellBender/archive/v{{ version }}.tar.gz + sha256: 3bd4bf77c82a5817bb09ac3db236e9795e3e71c99cbe34c8baef04272a7d1717 build: number: 0 noarch: python entry_points: - cellbender = cellbender.base_cli:main - script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir run_exports: - {{ pin_subpackage('cellbender', max_pin="x.x") }} requirements: host: - python 3.7 - - setuptools >=61.2 - pip run: - python 3.7 @@ -45,16 +44,16 @@ test: imports: - cellbender commands: - - cellbender --help + - "cellbender --help" about: - home: https://github.com/broadinstitute/CellBender + home: "https://github.com/broadinstitute/CellBender" summary: "A software package for eliminating technical artifacts from high-throughput single-cell RNA sequencing (scRNA-seq) data" - license: BSD-3-Clause + license: "BSD-3-Clause" license_family: BSD license_file: LICENSE - doc_url: https://cellbender.readthedocs.io/en/latest/ - dev_url: https://github.com/broadinstitute/CellBender + doc_url: "https://cellbender.readthedocs.io/en/latest" + dev_url: "https://github.com/broadinstitute/CellBender" extra: recipe-maintainers: From 8287488bb08016ff445dfbadef69308b36f1102f Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 13 Aug 2024 09:11:34 +0300 Subject: [PATCH 0941/1589] dna-nn: add linux-aarch64 build (#49998) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/dna-nn/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/dna-nn/meta.yaml b/recipes/dna-nn/meta.yaml index 7e6edcd2f38a2..66c70ccaea69a 100644 --- a/recipes/dna-nn/meta.yaml +++ b/recipes/dna-nn/meta.yaml @@ -10,7 +10,7 @@ source: sha256: bac26a25ad9e0315351b170bc33ab4e41b7573818fd9527b661f882b96ae0a8a build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("dna-nn", max_pin="x.x") }} @@ -38,5 +38,7 @@ about: summary: "Model and predict short DNA sequence features with neural networks." extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - smeds From 31dba365336b9ecc20c1d0a3b353e73136b2821a Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 13 Aug 2024 09:11:54 +0300 Subject: [PATCH 0942/1589] sequali: add aarch64/arm64 builds (#49975) * sequali: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * Bump the build number Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/sequali/build_failure.osx-64.yaml | 104 ---------------------- recipes/sequali/meta.yaml | 5 +- 2 files changed, 4 insertions(+), 105 deletions(-) delete mode 100644 recipes/sequali/build_failure.osx-64.yaml diff --git a/recipes/sequali/build_failure.osx-64.yaml b/recipes/sequali/build_failure.osx-64.yaml deleted file mode 100644 index a23733fbe04f1..0000000000000 --- a/recipes/sequali/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: b82be46fe70a4476baf68c386ad04ec62bab54268efc685fda61370f10059d7f # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - clangxx: 16.0.6-default_ha3b9224_7 conda-forge - compiler-rt: 16.0.6-ha38d28d_2 conda-forge - compiler-rt_osx-64: 16.0.6-ha38d28d_2 conda-forge - icu: 73.2-hf5e326d_0 conda-forge - ld64_osx-64: 711-ha20a434_0 conda-forge - libclang-cpp16: 16.0.6-default_h4c8afb6_7 conda-forge - libcxx: 17.0.6-h88467a6_0 conda-forge - libexpat: 2.6.2-h73e2aa4_0 conda-forge - libffi: 3.4.2-h0d85af4_5 conda-forge - libiconv: 1.17-hd75f5a5_2 conda-forge - libllvm16: 16.0.6-hbedff68_3 conda-forge - libsqlite: 3.45.3-h92b6c6a_0 conda-forge - libxml2: 2.12.7-hfa5d230_0 conda-forge - libzlib: 1.3.1-h87427d6_1 conda-forge - llvm-tools: 16.0.6-hbedff68_3 conda-forge - ncurses: 6.5-h5846eda_0 conda-forge - openssl: 3.3.0-h87427d6_3 conda-forge - pip: 24.0-pyhd8ed1ab_0 conda-forge - python: 3.12.3-h1411813_0_cpython conda-forge - readline: 8.2-h9e318b2_1 conda-forge - setuptools: 70.0.0-pyhd8ed1ab_0 conda-forge - sigtool: 0.1.3-h88f4db0_0 conda-forge - tapi: 1100.0.11-h9ce4665_0 conda-forge - tk: 8.6.13-h1abcd95_1 conda-forge - tzdata: 2024a-h0c530f3_0 conda-forge - wheel: 0.43.0-pyhd8ed1ab_1 conda-forge - xz: 5.2.6-h775f41a_0 conda-forge - zstd: 1.5.6-h915ae27_0 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache - Downloading source to cache: sequali-0.10.0_c43b38a212.tar.gz - Downloading https://pypi.io/packages/source/s/sequali/sequali-0.10.0.tar.gz - Success - /opt/mambaforge/envs/bioconda/conda-bld/sequali_1717523007406/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/bin/python: No module named pip - Extracting download - source tree in: /opt/mambaforge/envs/bioconda/conda-bld/sequali_1717523007406/work - Traceback (most recent call last): - export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/sequali_1717523007406/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh - export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/sequali_1717523007406/_build_env - export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/sequali_1717523007406/work - File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - INFO: activate_clang_osx-64.sh made the following environmental changes: - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - utils.check_call_env( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - AR=x86_64-apple-darwin13.4.0-ar - AS=x86_64-apple-darwin13.4.0-as - CC=x86_64-apple-darwin13.4.0-clang - CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sequali-0.10.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms - CLANG=x86_64-apple-darwin13.4.0-clang - CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin - CMAKE_PREFIX_PATH=:$PREFIX - CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 - CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 - CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 - DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sequali-0.10.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - HOST=x86_64-apple-darwin13.4.0 - INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool - LD=x86_64-apple-darwin13.4.0-ld - LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib - LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib - LIBTOOL=x86_64-apple-darwin13.4.0-libtool - LIPO=x86_64-apple-darwin13.4.0-lipo - MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib - NM=x86_64-apple-darwin13.4.0-nm - NMEDIT=x86_64-apple-darwin13.4.0-nmedit - OBJC=x86_64-apple-darwin13.4.0-clang - OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - OTOOL=x86_64-apple-darwin13.4.0-otool - PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff - RANLIB=x86_64-apple-darwin13.4.0-ranlib - REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding - SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk - SEGEDIT=x86_64-apple-darwin13.4.0-segedit - SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table - SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack - SIZE=x86_64-apple-darwin13.4.0-size - STRINGS=x86_64-apple-darwin13.4.0-strings - STRIP=x86_64-apple-darwin13.4.0-strip - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 - ac_cv_func_malloc_0_nonnull=yes - ac_cv_func_realloc_0_nonnull=yes - build_alias=x86_64-apple-darwin13.4.0 - host_alias=x86_64-apple-darwin13.4.0 - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/sequali_1717523007406/work/conda_build.sh']' returned non-zero exit status 1. -# Last 100 lines of the build log. diff --git a/recipes/sequali/meta.yaml b/recipes/sequali/meta.yaml index de833c1a59dee..6ea35930a5604 100644 --- a/recipes/sequali/meta.yaml +++ b/recipes/sequali/meta.yaml @@ -10,7 +10,7 @@ source: sha256: d528a9a6eceace4fa8f1ef29625954a759928e7bab02348ef8f92887442f9527 build: - number: 1 + number: 2 entry_points: - sequali=sequali.__main__:main - sequali-report=sequali.__main__:sequali_report @@ -50,6 +50,9 @@ about: dev_url: "https://github.com/rhpvorderman/sequali" extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - rhpvorderman identifiers: From b641b0479c05ada41e01eea24a3f0dc5a01ee181 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 13 Aug 2024 02:12:27 -0500 Subject: [PATCH 0943/1589] Update bowtie2 recipe (#50002) --- recipes/bowtie2/build.sh | 2 +- recipes/bowtie2/meta.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/bowtie2/build.sh b/recipes/bowtie2/build.sh index 78e79f68ac4c8..9e5d8571f36a0 100644 --- a/recipes/bowtie2/build.sh +++ b/recipes/bowtie2/build.sh @@ -8,7 +8,7 @@ git clone https://github.com/ch4rr0/libsais third_party/libsais LDFLAGS="" make CXX="${CXX}" CXXFLAGS="${CXXFLAGS} -O3" CPP="${CXX} -I${PREFIX}/include" CC="${CC} -L${PREFIX}/lib" \ CFLAGS="${CFLAGS} -O3" LDLIBS="-L$PREFIX/lib -lz -lzstd -ltbb -ltbbmalloc -lpthread" \ - WITH_ZSTD=1 USE_SAIS_OPENMP=1 + WITH_ZSTD=1 USE_SRA=1 USE_SAIS_OPENMP=1 binaries="\ bowtie2 \ diff --git a/recipes/bowtie2/meta.yaml b/recipes/bowtie2/meta.yaml index e4fde80b6a4f3..2e1539e47b234 100644 --- a/recipes/bowtie2/meta.yaml +++ b/recipes/bowtie2/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 841a6a60111b690c11d1e123cb5c11560b4cd1502b5cee7e394fd50f83e74e13 build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage('bowtie2', max_pin="x") }} From edefe46dedb0740e021a120810881d2591d01e22 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 13 Aug 2024 03:52:45 -0400 Subject: [PATCH 0944/1589] Update lsabgc to 1.0.9 (#50001) Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/lsabgc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/lsabgc/meta.yaml b/recipes/lsabgc/meta.yaml index 0d5a6bc94916a..22ce368439e81 100644 --- a/recipes/lsabgc/meta.yaml +++ b/recipes/lsabgc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "lsabgc" %} -{% set version = "1.0.7" %} +{% set version = "1.0.9" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Kalan-Lab/lsaBGC-Pan/archive/refs/tags/v{{ version }}.tar.gz - sha256: 09f95491a6a95a4ba4e8d2ee42ec87e09c7e5aa380fde73a11b4881bdb7b58fc + sha256: fe72ad4f9663f25630b7ed27bc823e42c383cf754c05cede205cb60c74a61824 build: number: 0 From e7adcf6994f1eea3ee9cf2fcaa0b584aa55aace8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 13 Aug 2024 04:46:47 -0400 Subject: [PATCH 0945/1589] Update locityper to 0.16.10 (#50005) Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/locityper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/locityper/meta.yaml b/recipes/locityper/meta.yaml index c8646c29778e6..babd01987113a 100644 --- a/recipes/locityper/meta.yaml +++ b/recipes/locityper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "locityper" %} -{% set version = "0.16.9" %} +{% set version = "0.16.10" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/tprodanov/locityper/archive/refs/tags/v{{ version }}.tar.gz - sha256: 388ebea85f9259f284b7b9215e28786c676aa89da57c2c78b74a76ad2506a14a + sha256: d8bedc3c4ac8526fc9a77f33819edda07e9fc73ff625adcc23565e670c5e1cfb build: number: 0 From b57e42846e33475537b499f787f72f0317c803ee Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 13 Aug 2024 12:17:02 +0300 Subject: [PATCH 0946/1589] libsbml: add aarch64/arm64 builds (#49999) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/libsbml/build.sh | 7 +++++-- recipes/libsbml/meta.yaml | 7 ++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/recipes/libsbml/build.sh b/recipes/libsbml/build.sh index 6e3bbfb5c8b2d..dbb0f2e1daee1 100644 --- a/recipes/libsbml/build.sh +++ b/recipes/libsbml/build.sh @@ -1,11 +1,14 @@ #!/bin/bash + +set -xe + mkdir build cd build declare -a CMAKE_LIBXML_LIBRARY -if [[ ${target_platform} == osx-64 ]]; then +if [[ ${target_platform} == osx-*64 ]]; then CMAKE_LIBXML_LIBRARY+=(-DLIBXML_LIBRARY="${PREFIX}"/lib/libxml2.dylib) -elif [[ ${target_platform} == linux-64 ]]; then +elif [[ ${target_platform} == linux-*64 ]]; then CMAKE_LIBXML_LIBRARY+=(-DLIBXML_LIBRARY="${PREFIX}"/lib/libxml2.so) fi diff --git a/recipes/libsbml/meta.yaml b/recipes/libsbml/meta.yaml index dd15bca255367..1f1cc5e0af27c 100644 --- a/recipes/libsbml/meta.yaml +++ b/recipes/libsbml/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('libsbml', max_pin='x.x') }} @@ -37,3 +37,8 @@ about: license: LGPL license_file: 'LICENSE.txt' summary: LibSBML is a free, open-source programming library to help you read, write, manipulate, translate, and validate SBML files and data streams. + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From b76934cbac30012fb535cff3f76bcbed3e634d76 Mon Sep 17 00:00:00 2001 From: farchaab <116543129+farchaab@users.noreply.github.com> Date: Tue, 13 Aug 2024 11:45:06 +0200 Subject: [PATCH 0947/1589] Updated recipe (#50003) --- recipes/assembly_finder/meta.yaml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/recipes/assembly_finder/meta.yaml b/recipes/assembly_finder/meta.yaml index 481c55de1362a..9a56c6d52fdef 100644 --- a/recipes/assembly_finder/meta.yaml +++ b/recipes/assembly_finder/meta.yaml @@ -10,11 +10,11 @@ source: sha256: 5b5d6ec619775e419c6875215c71a3a1e8c4e745c4a7ddb6847a2c03313a1470 build: - number: 0 + number: 1 noarch: python entry_points: - assembly_finder=assembly_finder.__main__:main - script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv run_exports: - {{ pin_subpackage('assembly_finder', max_pin="x.x") }} @@ -24,9 +24,9 @@ requirements: - pip run: - python >=3.10 - - snakemake-minimal >=7.32.4 - - pulp <2.8 - - snaketool-utils >=0.0.4 + - mamba >=1.5.8 + - snakemake-minimal >=8.0.0 + - snaketool-utils >=0.0.5 - attrmap >=0.0.7 - pyyaml >=6.0 - pandas >=2.2.1 @@ -52,3 +52,5 @@ extra: recipe-maintainers: - farchaab - tpillone + identifiers: + - biotools:assembly_finder \ No newline at end of file From 6612965514c4ae220cb05f98b0a53371e0dce407 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 13 Aug 2024 04:58:30 -0500 Subject: [PATCH 0948/1589] Update spades recipe (#50006) * Update spades recipe * Update build.sh * Update build.sh * update build.sh * update build.sh * update build.sh * update meta.yaml --- .../0001-change-verbosity-remove-expr.patch | 32 ++++-- recipes/spades/build.sh | 11 +- .../spades/build_failure.linux-aarch64.yaml | 33 ------ recipes/spades/build_failure.osx-64.yaml | 105 ------------------ recipes/spades/conda_build_config.yaml | 2 - recipes/spades/meta.yaml | 31 ++---- 6 files changed, 41 insertions(+), 173 deletions(-) delete mode 100644 recipes/spades/build_failure.linux-aarch64.yaml delete mode 100644 recipes/spades/build_failure.osx-64.yaml delete mode 100644 recipes/spades/conda_build_config.yaml diff --git a/recipes/spades/0001-change-verbosity-remove-expr.patch b/recipes/spades/0001-change-verbosity-remove-expr.patch index 5528c0a70e085..21bc5e5b9be11 100644 --- a/recipes/spades/0001-change-verbosity-remove-expr.patch +++ b/recipes/spades/0001-change-verbosity-remove-expr.patch @@ -1,7 +1,7 @@ diff -Naur pre_patch/spades_compile.sh post_patch/spades_compile.sh --- pre_patch/spades_compile.sh 2024-05-26 14:36:40 +++ post_patch/spades_compile.sh 2024-05-27 13:00:03 -@@ -36,10 +36,10 @@ +@@ -37,10 +37,10 @@ check_whether_OPTARG_is_an_integer() { } # return the argument first character @@ -14,12 +14,30 @@ diff -Naur pre_patch/spades_compile.sh post_patch/spades_compile.sh print_help() { echo -@@ -222,7 +222,7 @@ +@@ -221,11 +221,21 @@ else + ADDITIONAL_FLAGS="$ADDITIONAL_FLAGS -DSPADES_BUILD_INTERNAL=OFF" + fi - cd "$WORK_DIR" - cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$PREFIX" $ADDITIONAL_FLAGS "$BASEDIR/src" +-cd "$WORK_DIR" +-cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$PREFIX" $ADDITIONAL_FLAGS "$BASEDIR/src" -make -j $AMOUNT_OF_THREADS -+make -j $AMOUNT_OF_THREADS VERBOSE=1 - make install - cd "$PREFIX" +-make install +-cd "$PREFIX" ++if [[ `uname` == "Darwin" ]]; then ++ export CONFIG_ARGS="-DCMAKE_FIND_FRAMEWORK=NEVER -DCMAKE_FIND_APPBUNDLE=NEVER" ++ export CFLAGS="${CFLAGS} -Wunused-command-line-argument" ++ export CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY" ++else ++ export CONFIG_ARGS="" ++fi ++ ++cd "${WORK_DIR}" ++cmake -S "${BASEDIR}/src" -B . -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ ++ -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER="${CXX}" \ ++ -DCMAKE_CXX_FLAGS="${CXXFLAGS}" -DCMAKE_C_COMPILER="${CC}" \ ++ -DCMAKE_C_FLAGS="${CFLAGS}" "${ADDITIONAL_FLAGS}" \ ++ "${CONFIG_ARGS}" ++cmake --build . --target install -j "${AMOUNT_OF_THREADS}" -v + if [ $RUN_TESTS = "y" ]; then + cd "$BASEDIR" diff --git a/recipes/spades/build.sh b/recipes/spades/build.sh index 60f586f3d392b..3b00666635bce 100644 --- a/recipes/spades/build.sh +++ b/recipes/spades/build.sh @@ -2,10 +2,9 @@ set -e -o pipefail -x -export LIBRARY_PATH=${PREFIX}/lib -export C_INCLUDE_PATH=${PREFIX}/include -export CPP_INCLUDE_PATH=${PREFIX}/include -export CFLAGS="${CFLAGS} -fcommon" -export CXXFLAGS="${CFLAGS} -fcommon" +export LIBRARY_PATH="${PREFIX}/lib" +export INCLUDE_PATH="${PREFIX}/include" +export CFLAGS="${CFLAGS} -O3 -fcommon" +export CXXFLAGS="${CFLAGS} -O3 -fcommon -I${PREFIX}/include" -bash spades_compile.sh -rj4 -DSPADES_USE_NCBISDK=ON +PREFIX="${PREFIX}" bash spades_compile.sh -rj"${CPU_COUNT}" -DSPADES_USE_NCBISDK=ON -DSPADES_ENABLE_PROJECTS="all" diff --git a/recipes/spades/build_failure.linux-aarch64.yaml b/recipes/spades/build_failure.linux-aarch64.yaml deleted file mode 100644 index aca6e6112608e..0000000000000 --- a/recipes/spades/build_failure.linux-aarch64.yaml +++ /dev/null @@ -1,33 +0,0 @@ -recipe_sha: 6be4333db8acfb6314096dc4462d291a25cfaa0039e0061049862257f52f80a1 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -category: CI unresponsive -reason: may be due to disk space -log: |- - 13:33:38 [32mBIOCONDA INFO [0m (OUT) [ 91%] Building CXX object projects/ionhammer/CMakeFiles/spades-ionhammer.dir/err_helper_table.cpp.o [0m - 13:33:38 [32mBIOCONDA INFO [0m (OUT) cd $SRC_DIR/build_spades/projects/ionhammer && $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-c++ -DBLAZE_CACHE_SIZE=33554432UL -DBLAZE_USE_CPP_THREADS -DBLAZE_USE_DEBUG_MODE=0 -DBLAZE_USE_FUNCTION_TRACES=0 -DBLAZE_USE_VECTORIZATION=1 -DUSE_GLIBCXX_PARALLEL=1 -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -I$SRC_DIR/src/projects/ionhammer -I$SRC_DIR/build_spades/_deps/zlib_ng-build -I$SRC_DIR/ext/src/zlib-ng -I$SRC_DIR/ext/src/mimalloc/include -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/ext/include/blaze/cmake/.. -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fcommon -fopenmp -O2 -g -DNDEBUG -std=gnu++17 -UNDEBUG -Wno-deprecated -g1 -O2 -Wall -Wextra -Wconversion -Wno-sign-conversion -Wno-long-long -Wwrite-strings -fopenmp -MD -MT projects/ionhammer/CMakeFiles/spades-ionhammer.dir/err_helper_table.cpp.o -MF CMakeFiles/spades-ionhammer.dir/err_helper_table.cpp.o.d -o CMakeFiles/spades-ionhammer.dir/err_helper_table.cpp.o -c $SRC_DIR/src/projects/ionhammer/err_helper_table.cpp [0m - 13:33:41 [32mBIOCONDA INFO [0m (OUT) [ 92%] Building CXX object projects/ionhammer/CMakeFiles/spades-ionhammer.dir/config_struct.cpp.o [0m - 13:33:41 [32mBIOCONDA INFO [0m (OUT) cd $SRC_DIR/build_spades/projects/ionhammer && $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-c++ -DBLAZE_CACHE_SIZE=33554432UL -DBLAZE_USE_CPP_THREADS -DBLAZE_USE_DEBUG_MODE=0 -DBLAZE_USE_FUNCTION_TRACES=0 -DBLAZE_USE_VECTORIZATION=1 -DUSE_GLIBCXX_PARALLEL=1 -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -I$SRC_DIR/src/projects/ionhammer -I$SRC_DIR/build_spades/_deps/zlib_ng-build -I$SRC_DIR/ext/src/zlib-ng -I$SRC_DIR/ext/src/mimalloc/include -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/ext/include/blaze/cmake/.. -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fcommon -fopenmp -O2 -g -DNDEBUG -std=gnu++17 -UNDEBUG -Wno-deprecated -g1 -O2 -Wall -Wextra -Wconversion -Wno-sign-conversion -Wno-long-long -Wwrite-strings -fopenmp -MD -MT projects/ionhammer/CMakeFiles/spades-ionhammer.dir/config_struct.cpp.o -MF CMakeFiles/spades-ionhammer.dir/config_struct.cpp.o.d -o CMakeFiles/spades-ionhammer.dir/config_struct.cpp.o -c $SRC_DIR/src/projects/ionhammer/config_struct.cpp [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) In file included from /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/kmer_helpers.h:20, [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/reference.h:20, [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/subcluster.hpp:15, [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/subcluster.cpp:9: [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/valid_hkmer_generator.hpp: In instantiation of 'void ValidHKMerGenerator::Next() [with long unsigned int kK = 16]': [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/kmer_helpers.h:47:21: required from here [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/valid_hkmer_generator.hpp:227:17: warning: comparison is always true due to limited range of data type [-Wtype-limits] [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) 227 | if (pnucl != -1) { [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) | ~~~~~~^~~~~ [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) In file included from /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/special_functions/detail/bernoulli_details.hpp:11, [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/special_functions/bernoulli.hpp:16, [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/special_functions/gamma.hpp:35, [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/special_functions/factorials.hpp:14, [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/special_functions/binomial.hpp:14, [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/gamma_poisson_model.hpp:16, [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/subcluster.hpp:19: [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/tools/toms748_solve.hpp: In instantiation of 'std::pair<_ForwardIterator, _ForwardIterator> boost::math::tools::bracket_and_solve_root(F, const T&, T, bool, Tol, uintmax_t&, const Policy&) [with F = boost::math::detail::beta_inv_ab_t >; T = long double; Tol = eps_tolerance; Policy = boost::math::policies::policy; uintmax_t = long unsigned int]': [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/special_functions/detail/ibeta_inv_ab.hpp:155:46: required from 'T boost::math::detail::ibeta_inv_ab_imp(const T&, const T&, const T&, const T&, bool, const Policy&) [with T = long double; Policy = boost::math::policies::policy]' [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/special_functions/detail/ibeta_inv_ab.hpp:187:31: required from 'boost::math::tools::promote_args_t boost::math::ibeta_inva(RT1, RT2, RT3, const Policy&) [with RT1 = double; RT2 = double; RT3 = double; Policy = policies::policy; tools::promote_args_t = double]' [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/special_functions/detail/ibeta_inv_ab.hpp:299:34: required from 'boost::math::tools::promote_args_t boost::math::ibeta_inva(RT1, RT2, RT3) [with RT1 = double; RT2 = double; RT3 = double; tools::promote_args_t = double]' [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/gamma_poisson_model.hpp:127:35: required from here [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/tools/toms748_solve.hpp:502:17: note: parameter passing for argument of type 'std::pair' when C++17 is enabled changed to match C++14 in GCC 10.1 [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) 502 | std::pair bracket_and_solve_root(F f, const T& guess, T factor, bool rising, Tol tol, std::uintmax_t& max_iter, const Policy& pol) [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) | ^~~~~~~~~~~~~~~~~~~~~~ [0m diff --git a/recipes/spades/build_failure.osx-64.yaml b/recipes/spades/build_failure.osx-64.yaml deleted file mode 100644 index 27f700c1275b3..0000000000000 --- a/recipes/spades/build_failure.osx-64.yaml +++ /dev/null @@ -1,105 +0,0 @@ -recipe_sha: 6be4333db8acfb6314096dc4462d291a25cfaa0039e0061049862257f52f80a1 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -category: compiler error -log: |2- - this->__append(__sz - __cs); - ^ - /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/work/src/../ext/include/llvm/Support/YAMLTraits.h:1976:13: note: in instantiation of member function 'std::vector::resize' requested here - seq.resize(index1); - ^ - In file included from /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/work/ext/src/llvm/YAMLTraits.cpp:9: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/work/src/../ext/include/llvm/Support/YAMLTraits.h:12: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/work/src/../ext/include/llvm/ADT/Optional.h:22: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/_build_env/bin/../include/c/v1/memory:886: - /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/_build_env/bin/../include/c/v1/__memory/allocator.h:167:28: error: 'path' is unavailable: introduced in macOS 10.15 - see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk - ::new ((void*)__p) _Up(_VSTD::forward<_Args>(__args)...); - ^ - /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/_build_env/bin/../include/c/v1/__memory/allocator_traits.h:296:13: note: in instantiation of function template specialization 'std::allocator::construct' requested here - __a.construct(__p, _VSTD::forward<_Args>(__args)...); - ^ - /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/_build_env/bin/../include/c/v1/__memory/uninitialized_algorithms.h:615:31: note: in instantiation of function template specialization 'std::allocator_traits>::construct' requested here - allocator_traits<_Alloc>::construct(__alloc, std::__to_address(__first2), std::move_if_noexcept(*__first1)); - ^ - /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/_build_env/bin/../include/c/v1/vector:1035:27: note: in instantiation of function template specialization 'std::__uninitialized_allocator_move_if_noexcept, std::reverse_iterator, std::reverse_iterator, std::reverse_iterator>' requested here - __v.__begin_ = std::__uninitialized_allocator_move_if_noexcept( - ^ - /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/_build_env/bin/../include/c/v1/vector:1164:9: note: in instantiation of member function 'std::vector::__swap_out_circular_buffer' requested here - __swap_out_circular_buffer(__v); - ^ - /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/_build_env/bin/../include/c/v1/vector:1981:15: note: in instantiation of member function 'std::vector::__append' requested here - this->__append(__sz - __cs); - ^ - /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/work/src/../ext/include/llvm/Support/YAMLTraits.h:1976:13: note: in instantiation of member function 'std::vector::resize' requested here - seq.resize(index1); - ^ - /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/_build_env/bin/../include/c/v1/__filesystem/path.h:477:25: note: 'path' has been explicitly marked unavailable here - _LIBCPP_HIDE_FROM_ABI path(path&& __p) noexcept - ^ - 11 errors generated. - make[2]: *** [ext/llvm/CMakeFiles/llvm-support.dir/build.make:636: ext/llvm/CMakeFiles/llvm-support.dir/YAMLTraits.cpp.o] Error 1 - make[2]: *** Waiting for unfinished jobs.... - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_stats.c.o -MF CMakeFiles/easel.dir/esl_stats.c.o.d -o CMakeFiles/easel.dir/esl_stats.c.o -c $SRC_DIR/ext/src/easel/esl_stats.c - [ 35%] Building C object ext/easel/CMakeFiles/easel.dir/esl_stopwatch.c.o - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_stopwatch.c.o -MF CMakeFiles/easel.dir/esl_stopwatch.c.o.d -o CMakeFiles/easel.dir/esl_stopwatch.c.o -c $SRC_DIR/ext/src/easel/esl_stopwatch.c - [ 35%] Building C object ext/easel/CMakeFiles/easel.dir/esl_stretchexp.c.o - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_stretchexp.c.o -MF CMakeFiles/easel.dir/esl_stretchexp.c.o.d -o CMakeFiles/easel.dir/esl_stretchexp.c.o -c $SRC_DIR/ext/src/easel/esl_stretchexp.c - [ 35%] Building CXX object ext/llvm/CMakeFiles/llvm-support.dir/WithColor.cpp.o - cd $SRC_DIR/build_spades/ext/llvm && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -I$SRC_DIR/ext/src/llvm -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fcommon -fopenmp=libomp -stdlib=libc -O2 -g -DNDEBUG -std=gnu17 -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/llvm/CMakeFiles/llvm-support.dir/WithColor.cpp.o -MF CMakeFiles/llvm-support.dir/WithColor.cpp.o.d -o CMakeFiles/llvm-support.dir/WithColor.cpp.o -c $SRC_DIR/ext/src/llvm/WithColor.cpp - [ 35%] Building C object ext/easel/CMakeFiles/easel.dir/esl_subcmd.c.o - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_subcmd.c.o -MF CMakeFiles/easel.dir/esl_subcmd.c.o.d -o CMakeFiles/easel.dir/esl_subcmd.c.o -c $SRC_DIR/ext/src/easel/esl_subcmd.c - [ 35%] Building C object ext/easel/CMakeFiles/easel.dir/esl_threads.c.o - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_threads.c.o -MF CMakeFiles/easel.dir/esl_threads.c.o.d -o CMakeFiles/easel.dir/esl_threads.c.o -c $SRC_DIR/ext/src/easel/esl_threads.c - [ 35%] Building C object ext/easel/CMakeFiles/easel.dir/esl_tree.c.o - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_tree.c.o -MF CMakeFiles/easel.dir/esl_tree.c.o.d -o CMakeFiles/easel.dir/esl_tree.c.o -c $SRC_DIR/ext/src/easel/esl_tree.c - [ 37%] Building C object ext/easel/CMakeFiles/easel.dir/esl_varint.c.o - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_varint.c.o -MF CMakeFiles/easel.dir/esl_varint.c.o.d -o CMakeFiles/easel.dir/esl_varint.c.o -c $SRC_DIR/ext/src/easel/esl_varint.c - [ 37%] Building CXX object ext/llvm/CMakeFiles/llvm-support.dir/YAMLParser.cpp.o - cd $SRC_DIR/build_spades/ext/llvm && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -I$SRC_DIR/ext/src/llvm -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fcommon -fopenmp=libomp -stdlib=libc -O2 -g -DNDEBUG -std=gnu17 -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/llvm/CMakeFiles/llvm-support.dir/YAMLParser.cpp.o -MF CMakeFiles/llvm-support.dir/YAMLParser.cpp.o.d -o CMakeFiles/llvm-support.dir/YAMLParser.cpp.o -c $SRC_DIR/ext/src/llvm/YAMLParser.cpp - [ 37%] Building C object ext/easel/CMakeFiles/easel.dir/esl_vectorops.c.o - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_vectorops.c.o -MF CMakeFiles/easel.dir/esl_vectorops.c.o.d -o CMakeFiles/easel.dir/esl_vectorops.c.o -c $SRC_DIR/ext/src/easel/esl_vectorops.c - [ 37%] Building CXX object ext/llvm/CMakeFiles/llvm-support.dir/YAMLTraits.cpp.o - cd $SRC_DIR/build_spades/ext/llvm && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -I$SRC_DIR/ext/src/llvm -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fcommon -fopenmp=libomp -stdlib=libc -O2 -g -DNDEBUG -std=gnu17 -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/llvm/CMakeFiles/llvm-support.dir/YAMLTraits.cpp.o -MF CMakeFiles/llvm-support.dir/YAMLTraits.cpp.o.d -o CMakeFiles/llvm-support.dir/YAMLTraits.cpp.o -c $SRC_DIR/ext/src/llvm/YAMLTraits.cpp - [ 37%] Building C object ext/easel/CMakeFiles/easel.dir/esl_weibull.c.o - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_weibull.c.o -MF CMakeFiles/easel.dir/esl_weibull.c.o.d -o CMakeFiles/easel.dir/esl_weibull.c.o -c $SRC_DIR/ext/src/easel/esl_weibull.c - [ 37%] Building C object ext/easel/CMakeFiles/easel.dir/esl_workqueue.c.o - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_workqueue.c.o -MF CMakeFiles/easel.dir/esl_workqueue.c.o.d -o CMakeFiles/easel.dir/esl_workqueue.c.o -c $SRC_DIR/ext/src/easel/esl_workqueue.c - [ 37%] Building CXX object ext/llvm/CMakeFiles/llvm-support.dir/raw_os_ostream.cpp.o - cd $SRC_DIR/build_spades/ext/llvm && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -I$SRC_DIR/ext/src/llvm -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fcommon -fopenmp=libomp -stdlib=libc -O2 -g -DNDEBUG -std=gnu17 -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/llvm/CMakeFiles/llvm-support.dir/raw_os_ostream.cpp.o -MF CMakeFiles/llvm-support.dir/raw_os_ostream.cpp.o.d -o CMakeFiles/llvm-support.dir/raw_os_ostream.cpp.o -c $SRC_DIR/ext/src/llvm/raw_os_ostream.cpp - [ 37%] Building C object ext/easel/CMakeFiles/easel.dir/esl_wuss.c.o - make[1]: *** [CMakeFiles/Makefile2:1594: ext/llvm/CMakeFiles/llvm-support.dir/all] Error 2 - make: *** [Makefile:166: all] Error 2 - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_wuss.c.o -MF CMakeFiles/easel.dir/esl_wuss.c.o.d -o CMakeFiles/easel.dir/esl_wuss.c.o -c $SRC_DIR/ext/src/easel/esl_wuss.c - [ 37%] Building C object ext/easel/CMakeFiles/easel.dir/esl_sse.c.o - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_sse.c.o -MF CMakeFiles/easel.dir/esl_sse.c.o.d -o CMakeFiles/easel.dir/esl_sse.c.o -c $SRC_DIR/ext/src/easel/esl_sse.c - [ 37%] Building C object ext/easel/CMakeFiles/easel.dir/esl_avx.c.o - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_avx.c.o -MF CMakeFiles/easel.dir/esl_avx.c.o.d -o CMakeFiles/easel.dir/esl_avx.c.o -c $SRC_DIR/ext/src/easel/esl_avx.c - [ 38%] Building C object ext/easel/CMakeFiles/easel.dir/esl_avx512.c.o - sys.exit(execute()) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_avx512.c.o -MF CMakeFiles/easel.dir/esl_avx512.c.o.d -o CMakeFiles/easel.dir/esl_avx512.c.o -c $SRC_DIR/ext/src/easel/esl_avx512.c - [ 38%] Building C object ext/easel/CMakeFiles/easel.dir/esl_neon.c.o - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_neon.c.o -MF CMakeFiles/easel.dir/esl_neon.c.o.d -o CMakeFiles/easel.dir/esl_neon.c.o -c $SRC_DIR/ext/src/easel/esl_neon.c - [ 38%] Linking C static library libeasel.a - api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/cmake -P CMakeFiles/easel.dir/cmake_clean_target.cmake - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/cmake -E cmake_link_script CMakeFiles/easel.dir/link.txt --verbose=1 - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - utils.check_call_env( - $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar qc libeasel.a CMakeFiles/easel.dir/easel.c.o CMakeFiles/easel.dir/esl_alloc.c.o CMakeFiles/easel.dir/esl_alphabet.c.o CMakeFiles/easel.dir/esl_arr2.c.o CMakeFiles/easel.dir/esl_arr3.c.o CMakeFiles/easel.dir/esl_bitfield.c.o CMakeFiles/easel.dir/esl_buffer.c.o CMakeFiles/easel.dir/esl_cluster.c.o CMakeFiles/easel.dir/esl_composition.c.o CMakeFiles/easel.dir/esl_cpu.c.o CMakeFiles/easel.dir/esl_dirichlet.c.o CMakeFiles/easel.dir/esl_distance.c.o CMakeFiles/easel.dir/esl_dmatrix.c.o CMakeFiles/easel.dir/esl_dsqdata.c.o CMakeFiles/easel.dir/esl_exponential.c.o CMakeFiles/easel.dir/esl_fileparser.c.o CMakeFiles/easel.dir/esl_gamma.c.o CMakeFiles/easel.dir/esl_gencode.c.o CMakeFiles/easel.dir/esl_getopts.c.o CMakeFiles/easel.dir/esl_gev.c.o CMakeFiles/easel.dir/esl_graph.c.o CMakeFiles/easel.dir/esl_gumbel.c.o CMakeFiles/easel.dir/esl_heap.c.o CMakeFiles/easel.dir/esl_histogram.c.o CMakeFiles/easel.dir/esl_hmm.c.o CMakeFiles/easel.dir/esl_huffman.c.o CMakeFiles/easel.dir/esl_hyperexp.c.o CMakeFiles/easel.dir/esl_iset.c.o CMakeFiles/easel.dir/esl_json.c.o CMakeFiles/easel.dir/esl_keyhash.c.o CMakeFiles/easel.dir/esl_lognormal.c.o CMakeFiles/easel.dir/esl_matrixops.c.o CMakeFiles/easel.dir/esl_mem.c.o CMakeFiles/easel.dir/esl_minimizer.c.o CMakeFiles/easel.dir/esl_mixdchlet.c.o CMakeFiles/easel.dir/esl_mixgev.c.o CMakeFiles/easel.dir/esl_mpi.c.o CMakeFiles/easel.dir/esl_msa.c.o CMakeFiles/easel.dir/esl_msacluster.c.o CMakeFiles/easel.dir/esl_msafile.c.o CMakeFiles/easel.dir/esl_msafile2.c.o CMakeFiles/easel.dir/esl_msafile_a2m.c.o CMakeFiles/easel.dir/esl_msafile_afa.c.o CMakeFiles/easel.dir/esl_msafile_clustal.c.o CMakeFiles/easel.dir/esl_msafile_phylip.c.o CMakeFiles/easel.dir/esl_msafile_psiblast.c.o CMakeFiles/easel.dir/esl_msafile_selex.c.o CMakeFiles/easel.dir/esl_msafile_stockholm.c.o CMakeFiles/easel.dir/esl_msashuffle.c.o CMakeFiles/easel.dir/esl_msaweight.c.o CMakeFiles/easel.dir/esl_normal.c.o CMakeFiles/easel.dir/esl_paml.c.o CMakeFiles/easel.dir/esl_quicksort.c.o CMakeFiles/easel.dir/esl_random.c.o CMakeFiles/easel.dir/esl_rand64.c.o CMakeFiles/easel.dir/esl_randomseq.c.o CMakeFiles/easel.dir/esl_ratematrix.c.o CMakeFiles/easel.dir/esl_recorder.c.o CMakeFiles/easel.dir/esl_red_black.c.o CMakeFiles/easel.dir/esl_regexp.c.o CMakeFiles/easel.dir/esl_rootfinder.c.o CMakeFiles/easel.dir/esl_scorematrix.c.o CMakeFiles/easel.dir/esl_sq.c.o CMakeFiles/easel.dir/esl_sqio.c.o CMakeFiles/easel.dir/esl_sqio_ascii.c.o CMakeFiles/easel.dir/esl_sqio_ncbi.c.o CMakeFiles/easel.dir/esl_ssi.c.o CMakeFiles/easel.dir/esl_stack.c.o CMakeFiles/easel.dir/esl_stats.c.o CMakeFiles/easel.dir/esl_stopwatch.c.o CMakeFiles/easel.dir/esl_stretchexp.c.o CMakeFiles/easel.dir/esl_subcmd.c.o CMakeFiles/easel.dir/esl_threads.c.o CMakeFiles/easel.dir/esl_tree.c.o CMakeFiles/easel.dir/esl_varint.c.o CMakeFiles/easel.dir/esl_vectorops.c.o CMakeFiles/easel.dir/esl_weibull.c.o CMakeFiles/easel.dir/esl_workqueue.c.o CMakeFiles/easel.dir/esl_wuss.c.o CMakeFiles/easel.dir/esl_sse.c.o CMakeFiles/easel.dir/esl_avx.c.o CMakeFiles/easel.dir/esl_avx512.c.o CMakeFiles/easel.dir/esl_neon.c.o - $BUILD_PREFIX/bin/llvm-ranlib libeasel.a - make[2]: Leaving directory '$SRC_DIR/build_spades' - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - [ 38%] Built target easel - make[2]: Leaving directory '$SRC_DIR/build_spades' - make[1]: Leaving directory '$SRC_DIR/build_spades' - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/work/conda_build.sh']' returned non-zero exit status 2. -# Last 100 lines of the build log. diff --git a/recipes/spades/conda_build_config.yaml b/recipes/spades/conda_build_config.yaml deleted file mode 100644 index 54efb0ce6b78c..0000000000000 --- a/recipes/spades/conda_build_config.yaml +++ /dev/null @@ -1,2 +0,0 @@ -MACOSX_DEPLOYMENT_TARGET: - - 10.15 # [osx] \ No newline at end of file diff --git a/recipes/spades/meta.yaml b/recipes/spades/meta.yaml index bacd3f85ce2cd..a9621bd4904de 100644 --- a/recipes/spades/meta.yaml +++ b/recipes/spades/meta.yaml @@ -1,8 +1,9 @@ +{% set name = "spades" %} {% set version = "4.0.0" %} {% set sha256 = "07c02eb1d9d90f611ac73bdd30ddc242ed51b00c8a3757189e8a8137ad8cfb8b" %} package: - name: spades + name: {{ name }} version: {{ version }} source: @@ -12,31 +13,25 @@ source: - 0001-change-verbosity-remove-expr.patch build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage('spades', max_pin="x") }} requirements: build: - - {{ compiler('c') }} - {{ compiler('cxx') }} - - llvm-openmp # [osx] - - libgomp # [linux] - cmake - make - pkg-config - - sysroot_linux-64 =2.17 # [linux] host: - llvm-openmp # [osx] - libgomp # [linux] - zlib - bzip2 - - sysroot_linux-64 =2.17 # [linux] run: - llvm-openmp # [osx] - libgomp # [linux] - - python >3.9 - - sysroot_linux-64 =2.17 # [linux] + - python >=3.8 test: commands: @@ -49,28 +44,26 @@ test: - spades-gbuilder 2>&1 | grep spades-gbuilder - spades.py --test && rm -rf spades_test - about: - home: http://ablab.github.io/spades/ - license: GPL-2.0-only + home: "https://github.com/ablab/spades" + license: "GPL-2.0-only" license_family: GPL license_file: LICENSE - summary: SPAdes (St. Petersburg genome assembler) is intended for both standard isolates and single-cell MDA bacteria assemblies. + summary: "SPAdes (St. Petersburg genome assembler) is intended for both standard isolates and single-cell MDA bacteria assemblies." description: | SPAdes (St. Petersburg genome assembler) is a genome assembly algorithm which was designed for single cell and multi-cells bacterial data sets. However, it might not be suitable for large genomes projects. SPAdes works with Ion Torrent, PacBio, Oxford Nanopore, and Illumina paired-end, mate-pairs and - single reads - - dev_url: https://github.com/ablab/spades - doc_url: http://ablab.github.io/spades/ - + single reads. + dev_url: "https://github.com/ablab/spades" + doc_url: "https://ablab.github.io/spades" extra: additional-platforms: - linux-aarch64 + - osx-arm64 recipe-maintainers: - druvus - notestaff @@ -82,5 +75,3 @@ extra: - doi:10.1101/gr.213959.116 - doi:10.1093/gigascience/giz100 - doi:10.1093/bioinformatics/btz349 - skip-lints: - - should_not_be_noarch_source From 31de6006ec53288fc1465e396a9888ed185e205f Mon Sep 17 00:00:00 2001 From: farchaab <116543129+farchaab@users.noreply.github.com> Date: Tue, 13 Aug 2024 12:14:43 +0200 Subject: [PATCH 0949/1589] Update MeSS recipe (#50004) * Updated dependencies, added identifier * updated pip install command --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/mess/meta.yaml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/recipes/mess/meta.yaml b/recipes/mess/meta.yaml index e95fe08460b76..d6e0e7fbdce95 100644 --- a/recipes/mess/meta.yaml +++ b/recipes/mess/meta.yaml @@ -10,11 +10,11 @@ source: sha256: 0f33dad4c2a90ed5e7d573c5cdb878150d63e99cfdbf83504f72c557eb075d74 build: - number: 0 + number: 1 noarch: python entry_points: - mess=mess.__main__:main - script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv run_exports: - {{ pin_subpackage('mess', max_pin="x.x") }} @@ -26,8 +26,8 @@ requirements: run: - python >=3.10 - - snakemake-minimal >=7.32.4 - - pulp <2.8 + - mamba >=1.5.8 + - snakemake-minimal >=8.0.0 - snaketool-utils >=0.0.5 - attrmap >=0.0.7 - pyyaml >=6.0.1 @@ -55,4 +55,6 @@ extra: recipe-maintainers: - farchaab - tpillone + identifiers: + - biotools:mess From 1474e9a802f8edb728b133b2a009ec18cf16d8f5 Mon Sep 17 00:00:00 2001 From: DrKaiyangZheng <131530767+DrKaiyangZheng@users.noreply.github.com> Date: Tue, 13 Aug 2024 18:42:28 +0800 Subject: [PATCH 0950/1589] add vitap to Bioconda recipes (#49986) * add vitap recipes * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml I have made a release/tag and use it instead of main. Thanks. * Update meta.yaml --------- Co-authored-by: DrKaiyangZheng --- recipes/vitap/meta.yaml | 50 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 recipes/vitap/meta.yaml diff --git a/recipes/vitap/meta.yaml b/recipes/vitap/meta.yaml new file mode 100644 index 0000000000000..c9d8e9219b9c3 --- /dev/null +++ b/recipes/vitap/meta.yaml @@ -0,0 +1,50 @@ +{% set name = "vitap" %} +{% set version = "1.1" %} + +package: + name: "{{ name|lower }}" + version: "{{ version }}" + +source: + url: https://github.com/DrKaiyangZheng/VITAP/archive/refs/tags/v.{{ version }}.tar.gz + sha256: 7bb82f330c33e5427daaad72017993599bc4c3712d8bc08af44f7ac1d9ec2a8b + +build: + number: 0 + noarch: python + run_exports: + - {{ pin_subpackage('vitap', max_pin='x') }} + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" + +requirements: + host: + - pip + - python + - setuptools-markdown + run: + - python >=3.9 + - networkx >=3.1 + - scipy >=1.10 + - pandas >=1.5 + - numpy >=1.25 + - numpy >=1.25 + - biopython >=1.78 + - tqdm >=4.65 + - diamond >=0.9 + - entrez-direct =16.2 + - seqkit >=2.5.1 + - prodigal >=2.6 + +test: + commands: + - VITAP --help + - VITAP assignment -h + - VITAP upd -h + +about: + home: https://github.com/DrKaiyangZheng/VITAP/ + license: GPL-3.0-only + license_file: LICENSE + license_family: GPL + summary: Viral Taxonomy Assigning Pipeline + doc_url: https://github.com/DrKaiyangZheng/VITAP/blob/main/README.md From a92050243ae984cf5f4decc4d02b7f49750b0f14 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 13 Aug 2024 07:23:37 -0400 Subject: [PATCH 0951/1589] Update parascopy to 1.16.3 (#50008) --- recipes/parascopy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/parascopy/meta.yaml b/recipes/parascopy/meta.yaml index 5bc435f33fb96..d838dc1927051 100644 --- a/recipes/parascopy/meta.yaml +++ b/recipes/parascopy/meta.yaml @@ -1,5 +1,5 @@ {% set name = "parascopy" %} -{% set version = "1.16.2" %} +{% set version = "1.16.3" %} package: name: {{ name|lower }} @@ -14,7 +14,7 @@ build: source: url: https://github.com/tprodanov/{{ name }}/archive/v{{ version }}.tar.gz - sha256: f1fa85349f49a504cc49afa93a2f8aab6600f6edaea3bdf7be21adca973ebe50 + sha256: 50054ef93d33d5ea17fa9fcd479db41811d10db3ca15950ebfb5ab451e0b6a35 requirements: build: From e6c209ebc32c88c248b37e30137e93db7680e858 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 13 Aug 2024 07:58:23 -0400 Subject: [PATCH 0952/1589] Update snakemake to 8.17.0 (#50012) --- recipes/snakemake/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake/meta.yaml b/recipes/snakemake/meta.yaml index 1081e75cde7ef..93570d5061e99 100644 --- a/recipes/snakemake/meta.yaml +++ b/recipes/snakemake/meta.yaml @@ -1,7 +1,7 @@ # Attention: when upgrading the version, please compare below dependencies with # https://github.com/snakemake/snakemake/blob/{version}/setup.cfg {% set name = "snakemake" %} -{% set version = "8.16.0" %} +{% set version = "8.17.0" %} package: name: {{ name }} @@ -9,7 +9,7 @@ package: source: url: https://pypi.io/packages/source/s/{{ name }}/snakemake-{{ version }}.tar.gz - sha256: 3906ae1a5e16b941755b61537a8d16e249106cbbeb0d40b9552933e96ff07af4 + sha256: e409a874f4138ff33761fb3e755a0fa190e7eceec0c893008edb563bd7cc855e build: number: 0 From 431f3ce1477fd97127c65dc8544a4aac5f01baec Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 13 Aug 2024 08:46:25 -0400 Subject: [PATCH 0953/1589] Update vitap to 1.2 (#50014) --- recipes/vitap/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/vitap/meta.yaml b/recipes/vitap/meta.yaml index c9d8e9219b9c3..8dd3b8e63c1a9 100644 --- a/recipes/vitap/meta.yaml +++ b/recipes/vitap/meta.yaml @@ -1,5 +1,5 @@ {% set name = "vitap" %} -{% set version = "1.1" %} +{% set version = "1.2" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://github.com/DrKaiyangZheng/VITAP/archive/refs/tags/v.{{ version }}.tar.gz - sha256: 7bb82f330c33e5427daaad72017993599bc4c3712d8bc08af44f7ac1d9ec2a8b + sha256: 9c078e63902588394e03a9d05439fd43c584a83b8bada942d5a148a11e28e7ac build: number: 0 From 41c5f5ae725885d908e9c5a22f58ba8c5ea4c144 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 13 Aug 2024 11:14:33 -0400 Subject: [PATCH 0954/1589] Update pasta to 1.9.2 (#50015) --- recipes/pasta/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pasta/meta.yaml b/recipes/pasta/meta.yaml index 4392437dfa127..7f99e4ed3861d 100644 --- a/recipes/pasta/meta.yaml +++ b/recipes/pasta/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.9.0" %} -{% set sha256 = "6f816aebe00b7b6bb78a250ad45f5aa2aa8eff0f9719736f05b0597dd3b1f9a1" %} +{% set version = "1.9.2" %} +{% set sha256 = "06c20f022765d2c1daab13a916ec2ea2277c5ef43afcf3e54c6a7ade7aed0944" %} package: name: pasta @@ -13,7 +13,7 @@ source: - mpstart.patch # issue in OSX py38 (not in Linux nor OSX py37): RuntimeError: An attempt has been made to start a new process before the current process has finished its bootstrapping phase. build: - number: 1 + number: 0 skip: true # [py == 312] run_exports: - {{ pin_subpackage('pasta', max_pin="x") }} From 29803dad1747bc29f3a1f3123167391fe5c9e72f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 13 Aug 2024 11:57:08 -0400 Subject: [PATCH 0955/1589] Update lsabgc to 1.1.0 (#50017) --- recipes/lsabgc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/lsabgc/meta.yaml b/recipes/lsabgc/meta.yaml index 22ce368439e81..c93ee7d7a5a1c 100644 --- a/recipes/lsabgc/meta.yaml +++ b/recipes/lsabgc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "lsabgc" %} -{% set version = "1.0.9" %} +{% set version = "1.1.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Kalan-Lab/lsaBGC-Pan/archive/refs/tags/v{{ version }}.tar.gz - sha256: fe72ad4f9663f25630b7ed27bc823e42c383cf754c05cede205cb60c74a61824 + sha256: 93dc9fbd2d3eda70a50efeaa8a234ea2a4aa850ccccb0ed0f2f2a9dc2f9f7e1b build: number: 0 From ee6d0f14203aa5c1865c3400041d460167fc2b42 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 13 Aug 2024 19:04:41 +0300 Subject: [PATCH 0956/1589] lastz: add aarch64/arm64 builds (#50009) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/lastz/build.sh | 6 ++++-- recipes/lastz/meta.yaml | 9 +++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/recipes/lastz/build.sh b/recipes/lastz/build.sh index 73bb1de4ce1cc..182e1c8acd239 100644 --- a/recipes/lastz/build.sh +++ b/recipes/lastz/build.sh @@ -1,11 +1,13 @@ #!/bin/sh +set -xe + mkdir -p $PREFIX/bin # Build lastz and lastz_D (lastz_D uses floating-point scores -make CC="${CC}" +make -j ${CPU_COUNT} CC="${CC}" # Build lastz_32, which uses 32-bit positions index and can handle genomes larger than 2Gb -make CC="${CC}" lastz_32 +make -j ${CPU_COUNT} CC="${CC}" lastz_32 chmod +x src/lastz chmod +x src/lastz_D diff --git a/recipes/lastz/meta.yaml b/recipes/lastz/meta.yaml index 5068cec65d04c..64807a95534e7 100644 --- a/recipes/lastz/meta.yaml +++ b/recipes/lastz/meta.yaml @@ -6,12 +6,13 @@ package: version: "{{ version }}" build: - number: 0 + number: 1 + run_exports: + - {{ pin_subpackage('lastz', max_pin='x') }} source: url: https://github.com/lastz/lastz/archive/refs/tags/{{ version }}.tar.gz sha256: 4c829603ba4aed7ddf64255b528cd88850e4557382fca29580d3576c25c5054a - patches: - makefile.patch @@ -20,6 +21,7 @@ requirements: - make - {{ compiler('c') }} run: + test: commands: - lastz --version 2>&1 | grep {{ version }} > /dev/null @@ -30,5 +32,8 @@ about: summary: LASTZ is a program for aligning DNA sequences, a pairwise aligner. extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 identifiers: - biotools:lastz From e8d3c68271476aca7ce0c09a841536856eb01f67 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 13 Aug 2024 15:39:53 -0400 Subject: [PATCH 0957/1589] Update ltr_retriever to 3.0.0 (#50021) --- recipes/ltr_retriever/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ltr_retriever/meta.yaml b/recipes/ltr_retriever/meta.yaml index fab51c19ad426..874f52dab9ced 100644 --- a/recipes/ltr_retriever/meta.yaml +++ b/recipes/ltr_retriever/meta.yaml @@ -1,6 +1,6 @@ {% set name = "LTR_retriever" %} -{% set version = "2.9.9" %} -{% set sha256 = "ef7d59349c0cbb3c819a102e68488b85cb116c099a4512d72d8a70293f13c7c8" %} +{% set version = "3.0.0" %} +{% set sha256 = "36b69e3ca4d2a5771072c65f52c2da17b9e3dc2215ef00f31dcd042e62429c37" %} package: name: "{{ name|lower }}" From ddc03de365a72c925a26415260f526244fa874f5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 13 Aug 2024 15:40:17 -0400 Subject: [PATCH 0958/1589] Update phykit to 1.20.0 (#50022) --- recipes/phykit/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/phykit/meta.yaml b/recipes/phykit/meta.yaml index 9f0478e642922..f7514b2ae2060 100644 --- a/recipes/phykit/meta.yaml +++ b/recipes/phykit/meta.yaml @@ -1,5 +1,5 @@ {% set name = "phykit" %} -{% set version = "1.19.9" %} +{% set version = "1.20.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: d8378135c89a9c957fe3236ce8a2f1ff2846100a4aa207d7cacec8500237e4dd + sha256: 61163c9297f4b9765184f0d74e24cf1ef31844502379cab1ca21741a760f95b7 build: noarch: python From df4cc96801440c88e9339997822143d57896252b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 13 Aug 2024 15:41:22 -0400 Subject: [PATCH 0959/1589] Update bigtools to 0.5.2 (#50024) --- recipes/bigtools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/bigtools/meta.yaml b/recipes/bigtools/meta.yaml index 103e8822e7ec1..89cd9389aeb41 100644 --- a/recipes/bigtools/meta.yaml +++ b/recipes/bigtools/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.5.1" %} +{% set version = "0.5.2" %} package: name: bigtools @@ -11,7 +11,7 @@ build: source: url: https://github.com/jackh726/bigtools/archive/refs/tags/v{{ version }}.tar.gz - sha256: "dc006ee7037420e9cd279b2aaaf3a2859c81c07eb08c3ce6b1598b1962f055a3" + sha256: "f5b50a4d717f93242541673bbdeb1fa67b8b9175b0f72d8ff5c52f1563b5cd4e" requirements: build: From b97ae53413c76cdcdcfccb40b82d5f2bcd45d7b8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 13 Aug 2024 18:11:21 -0400 Subject: [PATCH 0960/1589] Update quantms-utils to 0.0.7 (#50028) --- recipes/quantms-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/quantms-utils/meta.yaml b/recipes/quantms-utils/meta.yaml index c78e7a934c13a..7df0df88180d0 100644 --- a/recipes/quantms-utils/meta.yaml +++ b/recipes/quantms-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "quantms-utils" %} -{% set version = "0.0.6" %} +{% set version = "0.0.7" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/quantms_utils-{{ version }}.tar.gz - sha256: 9f94df1f1301e09399327cec746ae95b71f150917f4237124f52d1dcc972b173 + sha256: 293561016439c01004c55670ab18b75c8ae92513724a44df23dfd436557dfe8c build: entry_points: From 60f2f2610b3b61cc71fdc7609f3b2ab0559ba421 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 00:00:54 -0400 Subject: [PATCH 0961/1589] Update singlem to 0.18.3 (#50029) --- recipes/singlem/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/singlem/meta.yaml b/recipes/singlem/meta.yaml index c686add8750fa..122cb94531495 100644 --- a/recipes/singlem/meta.yaml +++ b/recipes/singlem/meta.yaml @@ -1,5 +1,5 @@ {% set name = "singlem" %} -{% set version = "0.18.2" %} +{% set version = "0.18.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 8b1f1e51a8cebc4d6d2aa916c6ebb566b3828d3b4029d5831ac186b238d739dc + sha256: 2265476582ce418961072ee0eaaa70db60a888fdcda18c72828f6d0bf55530e8 build: number: 0 From 074bdc4d9e9c9cc8428b94cefb71933310ea794d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 00:03:18 -0400 Subject: [PATCH 0962/1589] Update ntsynt to 1.0.2 (#50025) --- recipes/ntsynt/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/ntsynt/meta.yaml b/recipes/ntsynt/meta.yaml index 1229bf07bc8b3..96b331202d4a4 100644 --- a/recipes/ntsynt/meta.yaml +++ b/recipes/ntsynt/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ntSynt" %} -{% set version = "1.0.1" %} +{% set version = "1.0.2" %} package: name: {{ name|lower }} @@ -7,10 +7,10 @@ package: source: url: https://github.com/bcgsc/ntSynt/releases/download/v{{ version }}/{{ name }}-{{ version }}.tar.gz - sha256: 71fa06c73481313518a504586b86a2a32cd49006ce6728b40eef0d455b9bb409 + sha256: 6ada92dfe51dec8cd47900a5c41ee3c649cc95777eb81fe860e10748ce04e133 build: - number: 3 + number: 0 run_exports: - {{ pin_subpackage("ntsynt", max_pin="x") }} From 496f8d4a416b70e8792ab860a6dfd666911eab7d Mon Sep 17 00:00:00 2001 From: Jianshu_Zhao <38149286+jianshu93@users.noreply.github.com> Date: Wed, 14 Aug 2024 00:04:19 -0400 Subject: [PATCH 0963/1589] Update gsearch v0.2.1 (#50030) --- recipes/gsearch/meta.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/gsearch/meta.yaml b/recipes/gsearch/meta.yaml index 45b11240f819f..e7611a00fd79f 100644 --- a/recipes/gsearch/meta.yaml +++ b/recipes/gsearch/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.2.0" %} +{% set version = "0.2.1" %} package: name: gsearch @@ -11,7 +11,7 @@ build: skip: True # [osx] source: url: https://github.com/jianshu93/gsearch/archive/v{{ version }}.tar.gz - sha256: eb535c1757667a61fb85469910ece55a4344c18c77e1b7013a22b050535d1531 + sha256: baafe82d1f4b46af3365db0803e10528bb1f8f2f2d03d0cd2655d46a02616e5e requirements: build: @@ -33,3 +33,5 @@ extra: maintainers: - Jean Pierre-Both - Jianshu Zhao + identifiers: + - https://doi.org/10.1093/nar/gkae609 From 86785cb18a3782fd3f966c849b41fb8c42e1abd3 Mon Sep 17 00:00:00 2001 From: DrKaiyangZheng <131530767+DrKaiyangZheng@users.noreply.github.com> Date: Wed, 14 Aug 2024 12:05:23 +0800 Subject: [PATCH 0964/1589] Update VITAP from v.1.1 to v.1.5 (#50016) --- recipes/vitap/meta.yaml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/recipes/vitap/meta.yaml b/recipes/vitap/meta.yaml index 8dd3b8e63c1a9..7b8d4f94b6d99 100644 --- a/recipes/vitap/meta.yaml +++ b/recipes/vitap/meta.yaml @@ -1,5 +1,5 @@ {% set name = "vitap" %} -{% set version = "1.2" %} +{% set version = "1.5" %} package: name: "{{ name|lower }}" @@ -7,8 +7,8 @@ package: source: url: https://github.com/DrKaiyangZheng/VITAP/archive/refs/tags/v.{{ version }}.tar.gz - sha256: 9c078e63902588394e03a9d05439fd43c584a83b8bada942d5a148a11e28e7ac - + sha256: 4384925f0f6f53f08eb2a16cabc3ea325efd39a7e76139803668744b030b1d9a + build: number: 0 noarch: python @@ -27,24 +27,23 @@ requirements: - scipy >=1.10 - pandas >=1.5 - numpy >=1.25 - - numpy >=1.25 - biopython >=1.78 - tqdm >=4.65 - diamond >=0.9 - entrez-direct =16.2 - seqkit >=2.5.1 - - prodigal >=2.6 + - prodigal-gv >=2.6 test: commands: - - VITAP --help - - VITAP assignment -h - VITAP upd -h + - VITAP assignment -h about: home: https://github.com/DrKaiyangZheng/VITAP/ license: GPL-3.0-only license_file: LICENSE license_family: GPL - summary: Viral Taxonomy Assigning Pipeline + summary: Viral Taxonomic Assignment Pipeline doc_url: https://github.com/DrKaiyangZheng/VITAP/blob/main/README.md + description: Viral Taxonomic Assignment Pipeline (VITAP) is a cutting-edge tool designed to address the growing need for accurate and comprehensive classification of DNA and RNA viral sequences. By integrating alignment-based techniques with graph theory, VITAP achieves high precision in classifying viral sequences, including those as short as 1000 base pairs, down to the genus level. From 60028cee7c186c0de8181ac82d8ab5e21b62d12b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 03:41:43 -0400 Subject: [PATCH 0965/1589] Update snakemake to 8.18.0 (#50033) --- recipes/snakemake/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake/meta.yaml b/recipes/snakemake/meta.yaml index 93570d5061e99..2e94fb3adf2c7 100644 --- a/recipes/snakemake/meta.yaml +++ b/recipes/snakemake/meta.yaml @@ -1,7 +1,7 @@ # Attention: when upgrading the version, please compare below dependencies with # https://github.com/snakemake/snakemake/blob/{version}/setup.cfg {% set name = "snakemake" %} -{% set version = "8.17.0" %} +{% set version = "8.18.0" %} package: name: {{ name }} @@ -9,7 +9,7 @@ package: source: url: https://pypi.io/packages/source/s/{{ name }}/snakemake-{{ version }}.tar.gz - sha256: e409a874f4138ff33761fb3e755a0fa190e7eceec0c893008edb563bd7cc855e + sha256: d9e7e44caa5218ee8fb3248e6642366fd69bcf3d56bcb2596c1ceb5437d7c5c4 build: number: 0 From c8c9a271c0c21042c950b84c9a2735b4572960a1 Mon Sep 17 00:00:00 2001 From: niklasmueboe <42138117+niklasmueboe@users.noreply.github.com> Date: Wed, 14 Aug 2024 07:56:36 +0000 Subject: [PATCH 0966/1589] Add sainsc recipe (#49845) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * draft sainsc recipe * Add run_exports * revise recipe * use variable name in run_exports * skip osx build --------- Co-authored-by: Müller-Bötticher Co-authored-by: Martin Grigorov --- recipes/sainsc/meta.yaml | 59 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 recipes/sainsc/meta.yaml diff --git a/recipes/sainsc/meta.yaml b/recipes/sainsc/meta.yaml new file mode 100644 index 0000000000000..90d868f22c6b1 --- /dev/null +++ b/recipes/sainsc/meta.yaml @@ -0,0 +1,59 @@ +{% set name = "sainsc" %} +{% set version = "0.1.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/sainsc-{{ version }}.tar.gz + sha256: 7dcf4326f71c57800a1ef7a2cab63d9416231004036dfc3c9ea70a2cae7b22f4 + +build: + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + skip: True # [osx] + run_exports: + - {{ pin_subpackage(name, max_pin="x.x") }} + +requirements: + build: + - {{ compiler('rust') }} + host: + - python >=3.10 + - setuptools >=61.0.0 + - setuptools-scm >=6.2 + - setuptools-rust >=1.7 + - pip + run: + - python >=3.10 + - anndata >=0.9 + - matplotlib-base + - matplotlib-scalebar + - numba >=0.44 + - numpy >=1.21 + - pandas + - polars >=1 + - scikit-image >=0.18 + - scipy >=1.9 + - seaborn >=0.11 + +test: + imports: + - sainsc + commands: + - pip check + requires: + - pip + +about: + home: https://github.com/HiDiHlabs/sainsc + summary: Segmentation-free Analysis of In Situ Capture data + license: MIT + license_family: MIT + license_file: LICENSE + doc_url: https://sainsc.readthedocs.io/ + +extra: + recipe-maintainers: + - niklasmueboe From fe3b78c60b80ae7df3d92b5889f58f9377563061 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 04:37:14 -0400 Subject: [PATCH 0967/1589] Update snakemake-interface-storage-plugins to 3.2.4 (#50036) --- recipes/snakemake-interface-storage-plugins/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-interface-storage-plugins/meta.yaml b/recipes/snakemake-interface-storage-plugins/meta.yaml index 377dfe94187ab..6703b8f0f17f5 100644 --- a/recipes/snakemake-interface-storage-plugins/meta.yaml +++ b/recipes/snakemake-interface-storage-plugins/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-interface-storage-plugins" %} -{% set version = "3.2.3" %} +{% set version = "3.2.4" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_interface_storage_plugins-{{ version }}.tar.gz - sha256: b5be7c7dd0b4ec283bfc24f56070aa4047f67de44d8bc64c7aa9bf6ee590b27d + sha256: a44b99339f369703e3cfa5f21f3f513ca2000c8790c364be0e5df7d03fb264d3 build: noarch: python From aa3c4385b5d07865aa647e91609a326d4f9bac97 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 04:37:28 -0400 Subject: [PATCH 0968/1589] Update sainsc to 0.1.1 (#50035) --- recipes/sainsc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sainsc/meta.yaml b/recipes/sainsc/meta.yaml index 90d868f22c6b1..178b191c18d97 100644 --- a/recipes/sainsc/meta.yaml +++ b/recipes/sainsc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "sainsc" %} -{% set version = "0.1.0" %} +{% set version = "0.1.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/sainsc-{{ version }}.tar.gz - sha256: 7dcf4326f71c57800a1ef7a2cab63d9416231004036dfc3c9ea70a2cae7b22f4 + sha256: 43afd7d2c9f1b8b891893cfe730175d0e01d5443b7f17981a233109df4cbb228 build: script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation From e6f3b30e0fd314a2b2ecb8fedf267011fa6b095b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 05:13:58 -0400 Subject: [PATCH 0969/1589] Update gempipe to 1.34.1 (#50037) Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/gempipe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gempipe/meta.yaml b/recipes/gempipe/meta.yaml index 343b9cd4741a9..5095d27cbcc0c 100755 --- a/recipes/gempipe/meta.yaml +++ b/recipes/gempipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.34.0" %} +{% set version = "1.34.1" %} package: name: "gempipe" @@ -7,7 +7,7 @@ package: source: url: https://github.com/lazzarigioele/gempipe/archive/v{{ version }}.tar.gz - sha256: 59e71c796c348cef7de9a1c1db3eefef994e2e6e03a8cb686a66df43f002b67f + sha256: 9be89964a95e191f9fd00b81d16e78e59766ac0e4ec4545ad12f6bd77821d0ac build: From 2c1c740e4ddf752217e394185a140c9f8bf83679 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 14 Aug 2024 12:16:14 +0300 Subject: [PATCH 0970/1589] discosnp & dsk & short-read-connector: add linux-aarch64 builds (#50010) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/discosnp/meta.yaml | 6 +++++- recipes/dsk/build.sh | 4 +++- recipes/dsk/meta.yaml | 6 +++++- recipes/short-read-connector/meta.yaml | 8 +++++++- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/recipes/discosnp/meta.yaml b/recipes/discosnp/meta.yaml index aa63f1e864baf..67923ba1b5953 100644 --- a/recipes/discosnp/meta.yaml +++ b/recipes/discosnp/meta.yaml @@ -10,8 +10,10 @@ source: sha256: {{ sha256 }} build: - number: 3 + number: 4 skip: True # [osx] + run_exports: + - {{ pin_subpackage('discosnp', max_pin="x") }} requirements: build: @@ -38,6 +40,8 @@ about: summary: reference-free small variant caller for short read sequencing data extra: + additional-platforms: + - linux-aarch64 identifiers: - biotools:discosnp - doi:10.1093/nar/gkn000 diff --git a/recipes/dsk/build.sh b/recipes/dsk/build.sh index aa1fe014afa92..f833350da05ec 100644 --- a/recipes/dsk/build.sh +++ b/recipes/dsk/build.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -xe + if [ `uname` == Darwin ]; then export MACOSX_DEPLOYMENT_TARGET=10.9 fi @@ -22,5 +24,5 @@ cmake .. \ -DCMAKE_PREFIX_PATH=${PREFIX} \ -DCPPUNIT_INCLUDE_DIR=${PREFIX}/include -make -j 2 +make -j ${CPU_COUNT} make install diff --git a/recipes/dsk/meta.yaml b/recipes/dsk/meta.yaml index a7090bf1d4bcb..d9f31a8beb004 100644 --- a/recipes/dsk/meta.yaml +++ b/recipes/dsk/meta.yaml @@ -11,9 +11,11 @@ source: - install_paths.patch build: - number: 4 + number: 5 # Requires clang>=4.5 skip: True # [osx] + run_exports: + - {{ pin_subpackage('dsk', max_pin='x') }} requirements: build: @@ -38,6 +40,8 @@ about: summary: DSK is a k-mer counter for reads or genomes. extra: + additional-platforms: + - linux-aarch64 identifiers: - biotools:dsk - doi:10.1093/bioinformatics/btt020 diff --git a/recipes/short-read-connector/meta.yaml b/recipes/short-read-connector/meta.yaml index b20e32de5f24b..cd9c0537505c8 100644 --- a/recipes/short-read-connector/meta.yaml +++ b/recipes/short-read-connector/meta.yaml @@ -7,8 +7,10 @@ source: md5: "2b7a3c9bdb5a3d3e2d3c9fdd9b496323" build: - number: 0 + number: 1 skip: True # [osx] + run_exports: + - {{ pin_subpackage('short-read-connector', max_pin="x") }} requirements: build: @@ -35,3 +37,7 @@ about: license_family: AGPL license_file: LICENSE summary: Short read connector enables the comparisons of two read sets + +extra: + additional-platforms: + - linux-aarch64 From cec6772b050cba73b809b4a3e948adf08d185e84 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 05:34:06 -0400 Subject: [PATCH 0971/1589] Update snakemake-storage-plugin-s3 to 0.2.12 (#50041) --- recipes/snakemake-storage-plugin-s3/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-storage-plugin-s3/meta.yaml b/recipes/snakemake-storage-plugin-s3/meta.yaml index 998e66cac163b..b0e4efbecbe32 100644 --- a/recipes/snakemake-storage-plugin-s3/meta.yaml +++ b/recipes/snakemake-storage-plugin-s3/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-storage-plugin-s3" %} -{% set version = "0.2.11" %} +{% set version = "0.2.12" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_storage_plugin_s3-{{ version }}.tar.gz - sha256: edbac21ca22d2e674eaadf05f21c611891df37366d4fbd6a712d79172d788895 + sha256: 339bd425e18baabfb1404ab91dfe56a26499bf728fa3359fb4e0b17b287786a8 build: noarch: python From 32fc42458768566e48d447dc5d2cf20dd04b37ab Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 14 Aug 2024 04:54:37 -0500 Subject: [PATCH 0972/1589] Build Unicycler on python 3.8 (#50039) --- recipes/unicycler/meta.yaml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/recipes/unicycler/meta.yaml b/recipes/unicycler/meta.yaml index 8b0db344689bb..5e1fa962a312d 100644 --- a/recipes/unicycler/meta.yaml +++ b/recipes/unicycler/meta.yaml @@ -13,8 +13,7 @@ source: - misc.py.patch build: - number: 1 - skip: True # [py < 39] + number: 2 entry_points: - unicycler = unicycler.unicycler:main script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir @@ -42,13 +41,13 @@ test: - "COLUMNS=80 unicycler -h" about: - home: https://github.com/rrwick/Unicycler - license: GPL-3.0-or-later + home: "https://github.com/rrwick/Unicycler" + license: "GPL-3.0-or-later" license_family: GPL3 license_file: LICENSE summary: "Hybrid assembly pipeline for bacterial genomes." - dev_url: https://github.com/rrwick/Unicycler - doc_url: https://github.com/rrwick/Unicycler/wiki + dev_url: "https://github.com/rrwick/Unicycler" + doc_url: "https://github.com/rrwick/Unicycler/wiki" extra: identifiers: From 8ef0ca28160a481e3e9291f70c82bce92db62493 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 06:35:35 -0400 Subject: [PATCH 0973/1589] Update pymochi to 1.1 (#50045) --- recipes/pymochi/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pymochi/meta.yaml b/recipes/pymochi/meta.yaml index 7ce09a732e24f..35f5f7f435f61 100644 --- a/recipes/pymochi/meta.yaml +++ b/recipes/pymochi/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.0" %} +{% set version = "1.1" %} {% set github = "https://github.com/lehner-lab/MoCHI" %} package: @@ -7,7 +7,7 @@ package: source: url: {{ github }}/archive/v{{ version }}.tar.gz - sha256: 93bd3c32b5a686d5bacecf3d48678497eeed3bf799198ab453e21accefecbae7 + sha256: d021a858a3929858c8e8d0a6d5173680aa6097d90a8f05858f9ae08cb6902c17 build: noarch: python From 0494190888a5e7ffc251c158b149f58daaf7b696 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 06:36:01 -0400 Subject: [PATCH 0974/1589] Update scar to 0.6.1 (#50043) --- recipes/scar/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/scar/meta.yaml b/recipes/scar/meta.yaml index ed6eb33f81d7c..dffd95bf7d98b 100644 --- a/recipes/scar/meta.yaml +++ b/recipes/scar/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.6.0" %} -{% set sha256 = "f4a3ee980dcad4465d23e146e23605df61e4ebc016f2c7279820dcbc3ee111c1" %} +{% set version = "0.6.1" %} +{% set sha256 = "909e0dd7a262fc58b596b7442cca42eb422a93ebace953bd7c21c3a278b8c394" %} package: name: scar From 05f94d0a4784b1282f1fe4e902a38cc08a32d432 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 14 Aug 2024 13:40:12 +0300 Subject: [PATCH 0975/1589] sainsc: add linux-aarch64 build (#50040) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/sainsc/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/sainsc/meta.yaml b/recipes/sainsc/meta.yaml index 178b191c18d97..9d2841ddafa25 100644 --- a/recipes/sainsc/meta.yaml +++ b/recipes/sainsc/meta.yaml @@ -11,7 +11,7 @@ source: build: script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation - number: 0 + number: 1 skip: True # [osx] run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} @@ -55,5 +55,7 @@ about: doc_url: https://sainsc.readthedocs.io/ extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - niklasmueboe From dea6ae291b0def1af70b10169e46ee195b97f9e9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 06:43:37 -0400 Subject: [PATCH 0976/1589] Update gempipe to 1.34.2 (#50044) --- recipes/gempipe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gempipe/meta.yaml b/recipes/gempipe/meta.yaml index 5095d27cbcc0c..d85734ce17dcf 100755 --- a/recipes/gempipe/meta.yaml +++ b/recipes/gempipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.34.1" %} +{% set version = "1.34.2" %} package: name: "gempipe" @@ -7,7 +7,7 @@ package: source: url: https://github.com/lazzarigioele/gempipe/archive/v{{ version }}.tar.gz - sha256: 9be89964a95e191f9fd00b81d16e78e59766ac0e4ec4545ad12f6bd77821d0ac + sha256: 1e8ceab6faf29bd382ff0d413785884c6bff29872bb2af15e6991c761c4f5761 build: From 74204a1362753a1ade09c15e4aba0b1b7f7e9fd2 Mon Sep 17 00:00:00 2001 From: entzian Date: Wed, 14 Aug 2024 14:12:59 +0200 Subject: [PATCH 0977/1589] Update idemux to version 0.3.0 (#50020) Co-authored-by: gentzian --- recipes/idemuxcpp/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/idemuxcpp/meta.yaml b/recipes/idemuxcpp/meta.yaml index 9c260e6708b31..cff5ace451cb6 100644 --- a/recipes/idemuxcpp/meta.yaml +++ b/recipes/idemuxcpp/meta.yaml @@ -1,6 +1,6 @@ {% set name = "idemuxcpp" %} -{% set version = "0.2.0" %} -{% set sha256 = "0e44ed269b57b9577141c70361e6c5871ef3d76b302f9c8a4c0ff2d54f30bf01" %} +{% set version = "0.3.0" %} +{% set sha256 = "0d2099172bbf006dc0eb21c0c0eb720f0681ed5e77d3e7194f13025c66ccd373" %} package: name: {{ name }} From d53b3244561c9c8882e46f196f274c707fb9da79 Mon Sep 17 00:00:00 2001 From: niklasmueboe <42138117+niklasmueboe@users.noreply.github.com> Date: Wed, 14 Aug 2024 12:17:10 +0000 Subject: [PATCH 0978/1589] Update sainsc: Multiple python versions (#50042) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build for multiple python versions * bump build number * fix build selector --------- Co-authored-by: Müller-Bötticher Co-authored-by: Martin Grigorov --- recipes/sainsc/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/sainsc/meta.yaml b/recipes/sainsc/meta.yaml index 9d2841ddafa25..6b87a408fe62c 100644 --- a/recipes/sainsc/meta.yaml +++ b/recipes/sainsc/meta.yaml @@ -12,7 +12,7 @@ source: build: script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation number: 1 - skip: True # [osx] + skip: True # [osx or py<310] run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} @@ -20,13 +20,13 @@ requirements: build: - {{ compiler('rust') }} host: - - python >=3.10 + - python - setuptools >=61.0.0 - setuptools-scm >=6.2 - setuptools-rust >=1.7 - pip run: - - python >=3.10 + - python - anndata >=0.9 - matplotlib-base - matplotlib-scalebar From e04c48fa056997f9c2aabda743096e6442f0ae3d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 08:20:13 -0400 Subject: [PATCH 0979/1589] Update scar to 0.7.0 (#50046) --- recipes/scar/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/scar/meta.yaml b/recipes/scar/meta.yaml index dffd95bf7d98b..18d5c9ca181d9 100644 --- a/recipes/scar/meta.yaml +++ b/recipes/scar/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.6.1" %} -{% set sha256 = "909e0dd7a262fc58b596b7442cca42eb422a93ebace953bd7c21c3a278b8c394" %} +{% set version = "0.7.0" %} +{% set sha256 = "e3d75d2ee20fa5acce2db7456c00f9ad806e2355e2936dc7db2dcfff6038a3cb" %} package: name: scar From 21a97b2a9323142851d2bdc42df204017bfe57c0 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 08:42:55 -0400 Subject: [PATCH 0980/1589] Update snakemake-executor-plugin-googlebatch to 0.5.0 (#50048) --- recipes/snakemake-executor-plugin-googlebatch/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-executor-plugin-googlebatch/meta.yaml b/recipes/snakemake-executor-plugin-googlebatch/meta.yaml index e47a6fbc91962..1cc98c04baa22 100644 --- a/recipes/snakemake-executor-plugin-googlebatch/meta.yaml +++ b/recipes/snakemake-executor-plugin-googlebatch/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-executor-plugin-googlebatch" %} -{% set version = "0.4.0" %} +{% set version = "0.5.0" %} # Upon version update, requirements have to be checked! package: @@ -8,7 +8,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_executor_plugin_googlebatch-{{ version }}.tar.gz - sha256: ad1ebf74d6558bc5ea9d1849570fb3c5991413265c771d944e99aeb8c49217d2 + sha256: 242ddb2348db1837a0676e991b257e0924791d3dab20aa8f89d63c548adfd1cd build: noarch: python From 6b32b884c3ca42880951b84ae96679753e592e62 Mon Sep 17 00:00:00 2001 From: Luuk Harbers <40829819+ljwharbers@users.noreply.github.com> Date: Wed, 14 Aug 2024 15:26:46 +0200 Subject: [PATCH 0981/1589] Add recipe for pypi flexi-formatter (#50019) * added flexi-formatter * fixed yaml file * fixed yaml file * changed python version * added versions of packages * change dlinting * made recipe using grayskull * added lint fixes * removed bioconda comment * check with setuptools * changed simplesam req * added samtools * added tests * adjusted version pins --- recipes/flexi-formatter/meta.yaml | 50 +++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 recipes/flexi-formatter/meta.yaml diff --git a/recipes/flexi-formatter/meta.yaml b/recipes/flexi-formatter/meta.yaml new file mode 100644 index 0000000000000..2f44c096358a5 --- /dev/null +++ b/recipes/flexi-formatter/meta.yaml @@ -0,0 +1,50 @@ +{% set name = "flexi-formatter" %} +{% set version = "0.0.1" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/flexi_formatter-{{ version }}.tar.gz + sha256: 25e973b73a571d5e3cc23e7da9da616e8484b15c788e83cb1211a5ce8b0cbe16 + +build: + entry_points: + - flexi_formatter = flexi_formatter.reformat_flexiplex_tags:app + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + run_exports: + - {{ pin_subpackage(name|lower, max_pin='x.x') }} + +requirements: + host: + - python >=3 + - pip + - setuptools + run: + - python >=3 + - typer + - simplesam + - samtools + +test: + imports: + - flexi_formatter + - simplesam + commands: + - flexi_formatter --help + - samtools --help + requires: + - pip + +about: + home: "https://github.com/VIB-CCB-BioIT/flexiplex_tag_formatter" + summary: Moving flexiplex barcode and UMI to bam tags + license: MIT + license_file: LICENSE + +extra: + recipe-maintainers: + - ljwharbers From 4366b0c1e84020d55aa01c234671af8c08a0c6ae Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 12:34:10 -0400 Subject: [PATCH 0982/1589] Update pasty to 2.0.1 (#50059) * Update pasty to 2.0.1 * Update meta.yaml --------- Co-authored-by: Robert A. Petit III --- recipes/pasty/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pasty/meta.yaml b/recipes/pasty/meta.yaml index c0ac5731107c1..2ccd8e7b57c0b 100644 --- a/recipes/pasty/meta.yaml +++ b/recipes/pasty/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pasty" %} -{% set version = "2.0.0" %} +{% set version = "2.0.1" %} package: name: {{ name | lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/rpetit3/pasty/archive/v{{ version }}.tar.gz - sha256: f1d6d38c1a797b88249c896030192901ea1e399387a30cda0612537387619cc8 + sha256: cb299a9d450ed288e3607b467b74f970a5ecb8b4cde26a16e8afb75dce631022 build: number: 0 @@ -17,7 +17,7 @@ build: requirements: run: - - camlhmp >=0.2.2 + - camlhmp >=0.3.1 test: commands: From 57c4177776b3061b36c9492d9e9ce9ab68aeb539 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 14:50:27 -0400 Subject: [PATCH 0983/1589] Update harpy to 1.6 (#50051) --- recipes/harpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index 700b7f7c6c316..62a1c61cda081 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.5" %} -{% set sha256 = "ae5aa811bff42620f5b8adb1d39f41a9d7e63f332b846b5f6b389e55892c9552" %} +{% set version = "1.6" %} +{% set sha256 = "1029bf65fa6ea16e94c223407e6131094de3e6192440a7ac5a5852f49065fc62" %} package: name: harpy From 93a30a8bc37ab107cd86f2b368a45ee7a8f16fd8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 14:51:05 -0400 Subject: [PATCH 0984/1589] Update snakemake-interface-common to 1.17.3 (#50064) --- recipes/snakemake-interface-common/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-interface-common/meta.yaml b/recipes/snakemake-interface-common/meta.yaml index 854fad21ef1e9..63b0ac8ef24ec 100644 --- a/recipes/snakemake-interface-common/meta.yaml +++ b/recipes/snakemake-interface-common/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-interface-common" %} -{% set version = "1.17.2" %} +{% set version = "1.17.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_interface_common-{{ version }}.tar.gz - sha256: 7a2bba88df98c1a0a5cec89b835c62dd2e6e72c1fb8fd104fe73405c800b87c0 + sha256: cca6e2c728072a285a8e750f00fdd98d9c50063912184c41f8b89e4cab66c7b0 build: noarch: python From cbd3404fb9c707f5ab651828f9130bd015bf5d36 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 14:51:27 -0400 Subject: [PATCH 0985/1589] Update psm-utils to 1.0.0 (#50053) --- recipes/psm-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/psm-utils/meta.yaml b/recipes/psm-utils/meta.yaml index 526d07c3caedb..70adfed61ccec 100644 --- a/recipes/psm-utils/meta.yaml +++ b/recipes/psm-utils/meta.yaml @@ -1,6 +1,6 @@ {% set name = "psm-utils" %} -{% set version = "0.9.0" %} -{% set sha256 = "445bb667088d237d0b78f443d184b080a9ce6b33eab3b585295ce51194950abb" %} +{% set version = "1.0.0" %} +{% set sha256 = "75377a3347e3b8d9889ec4c2939d91b565fc9473c511d6d0a590c9a7d1c345ff" %} package: name: {{ name|lower }} From 8b37a777a2ba060f6c301fd7abb26266cba99bb7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 14:51:39 -0400 Subject: [PATCH 0986/1589] Update mgikit to 0.1.6 (#50054) --- recipes/mgikit/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/mgikit/meta.yaml b/recipes/mgikit/meta.yaml index 900126f1a46ed..c519032f8deb4 100644 --- a/recipes/mgikit/meta.yaml +++ b/recipes/mgikit/meta.yaml @@ -1,17 +1,17 @@ -{% set version = "0.1.5" %} +{% set version = "0.1.6" %} package: name: mgikit version: {{ version }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('mgikit', max_pin="x.x") }} source: url: https://github.com/sagc-bioinformatics/mgikit/archive/refs/tags/v{{ version }}.tar.gz - sha256: 3f079452f3d2b2734843ae1fc821e956d45949cb3d7f8c3ce99d259af9eb2ac0 + sha256: 6f94322108cb8ac62a7dbd213d95949b6ac82eddb6ff07221e62820461be3d9d requirements: build: From 55aeac08f33bf5f81a296b3d41877af53f869c77 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 14:56:08 -0400 Subject: [PATCH 0987/1589] Update oakvar to 2.11.4 (#50055) --- recipes/oakvar/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/oakvar/meta.yaml b/recipes/oakvar/meta.yaml index 7f05f8d15b67a..447b1ecb074e9 100644 --- a/recipes/oakvar/meta.yaml +++ b/recipes/oakvar/meta.yaml @@ -1,6 +1,6 @@ {% set name = "OakVar" %} -{% set version = "2.11.3" %} -{% set sha256 = "2d79d3b313338ad22ba32588261e0795567c9687b951746472ca46e8ee6e61dd" %} +{% set version = "2.11.4" %} +{% set sha256 = "7cdb934152826f23b5d125e493e60c034c353f45ce566215020b43ba3eb1b4e7" %} package: name: {{ name|lower }} From 8aeb6a7105a9b0c1eb6abe549f4be80ae1b20ec2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 14:56:16 -0400 Subject: [PATCH 0988/1589] Update orthanq to 1.7.2 (#50056) --- recipes/orthanq/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/orthanq/meta.yaml b/recipes/orthanq/meta.yaml index 61374a7b9a177..6e1e571e1a440 100644 --- a/recipes/orthanq/meta.yaml +++ b/recipes/orthanq/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.7.1" %} +{% set version = "1.7.2" %} package: name: orthanq @@ -12,7 +12,7 @@ build: source: url: https://github.com/orthanq/orthanq/archive/v{{ version }}.tar.gz - sha256: 1e918960bd307cdd7d21ef341d1f0827abe8bb243bb4c15266c957dc5b70c07b + sha256: 12f8170e92fecf99bde81c26049f6a811b751395a1e7cda45ca0810cef42e81e requirements: build: From 273db632f27b72aa8208f43a6b004f377227f3a8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 14:59:17 -0400 Subject: [PATCH 0989/1589] Update haplotaglr to 1.1.8 (#50057) --- recipes/haplotaglr/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/haplotaglr/meta.yaml b/recipes/haplotaglr/meta.yaml index f7f9cae84e6d8..4ac843920c730 100644 --- a/recipes/haplotaglr/meta.yaml +++ b/recipes/haplotaglr/meta.yaml @@ -1,5 +1,5 @@ {% set name = "HaplotagLR" %} -{% set version = "1.1.7" %} +{% set version = "1.1.8" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: f3da6fe189e57754f2d6911d1cf497a08dcc4ab9f9a4ee25998023fcde602ed3 + sha256: 085f1c930ab0fa3452e2d421515419a8e0031d7cdb9b2a3f635ec994a708a490 build: number: 0 From ffb52a9c9aeeee9f8aab2a69bbd67a862d3e8234 Mon Sep 17 00:00:00 2001 From: niklasmueboe <42138117+niklasmueboe@users.noreply.github.com> Date: Wed, 14 Aug 2024 20:22:27 +0000 Subject: [PATCH 0990/1589] Update sainsc: add osx support (#50049) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add osx support * bump build number * osx-arm64 only * selector precedence --------- Co-authored-by: Müller-Bötticher --- recipes/sainsc/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/sainsc/meta.yaml b/recipes/sainsc/meta.yaml index 6b87a408fe62c..d426091bed58c 100644 --- a/recipes/sainsc/meta.yaml +++ b/recipes/sainsc/meta.yaml @@ -11,8 +11,8 @@ source: build: script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation - number: 1 - skip: True # [osx or py<310] + number: 2 + skip: True # [(osx and not arm64) or py<310] run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} @@ -57,5 +57,6 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 recipe-maintainers: - niklasmueboe From 211f8eaeca4087b0c60d53d6ee84b86e10697f01 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 16:49:58 -0400 Subject: [PATCH 0991/1589] Update gencove to 2.18.5 (#50052) --- recipes/gencove/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gencove/meta.yaml b/recipes/gencove/meta.yaml index dd588c788987b..da047bd0ccbbe 100644 --- a/recipes/gencove/meta.yaml +++ b/recipes/gencove/meta.yaml @@ -1,6 +1,6 @@ {% set name = "gencove" %} -{% set version = "2.18.3" %} -{% set sha256 = "e4762be0bc238bbe13c98daa1e4eead1a5a14d65b6651650238784adf8c093f2" %} +{% set version = "2.18.5" %} +{% set sha256 = "785a6f076770116f45ecb1b85458328db540c244183509e9d4ef368d78bb58bf" %} package: name: {{ name }} From 9c6c096ad4070d7dd1249f4eea9a7b5eea20132f Mon Sep 17 00:00:00 2001 From: Julian Uszkoreit Date: Wed, 14 Aug 2024 22:50:49 +0200 Subject: [PATCH 0992/1589] Update pia: Force Java version 21 (#50058) --- recipes/pia/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pia/meta.yaml b/recipes/pia/meta.yaml index 83c9eb152c594..039016c4488e9 100644 --- a/recipes/pia/meta.yaml +++ b/recipes/pia/meta.yaml @@ -8,7 +8,7 @@ package: build: noarch: generic - number: 0 + number: 2 run_exports: - {{ pin_subpackage('pia', max_pin="x") }} @@ -18,7 +18,7 @@ source: requirements: run: - - openjdk >=21 + - openjdk =21 test: commands: From e9e46e9832d28600f389b67e58736ef0aa04e222 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 17:19:47 -0400 Subject: [PATCH 0993/1589] Update pasty to 2.0.2 (#50066) --- recipes/pasty/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pasty/meta.yaml b/recipes/pasty/meta.yaml index 2ccd8e7b57c0b..094469c7fed57 100644 --- a/recipes/pasty/meta.yaml +++ b/recipes/pasty/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pasty" %} -{% set version = "2.0.1" %} +{% set version = "2.0.2" %} package: name: {{ name | lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/rpetit3/pasty/archive/v{{ version }}.tar.gz - sha256: cb299a9d450ed288e3607b467b74f970a5ecb8b4cde26a16e8afb75dce631022 + sha256: 4c1a099dd2fd7a0a190f1e13c0df98aeb744ca068619a89055a8a2e505213df6 build: number: 0 From a336de218686dfbc58748ff75faa9f0b309fd457 Mon Sep 17 00:00:00 2001 From: Stefan Janssen Date: Wed, 14 Aug 2024 23:47:09 +0200 Subject: [PATCH 0994/1589] update PASTA to 1.9.2 and SEPP to 4.5.4, i.e. unpin HMMER and lift py <=3.9 (#47895) * using latest release of upstream * use recent gapc update with hopes to compile on OSX * add subrecipe for older version 4.3.10 (pinned in qiime2) which shall additionally expose upp.config * upstream is not responding to create new tag, thus source from HEAD to get compatibility with python 3.10 * use latest upstream release lifting the hmmer pinning and relaxing py to <= 3.10 * reset build number * unpin hmmer * patch pasta files to avoid U mode * adding the v * update patch * use gsed for OSX * use new release --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/pasta/meta.yaml | 4 ++-- recipes/sepp/meta.yaml | 16 ++++++++-------- recipes/sepp/nodeps.setup.py.patch | 6 +++--- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/recipes/pasta/meta.yaml b/recipes/pasta/meta.yaml index 7f99e4ed3861d..4de487940d980 100644 --- a/recipes/pasta/meta.yaml +++ b/recipes/pasta/meta.yaml @@ -32,7 +32,7 @@ requirements: - raxml - muscle <4 # later versions expects other cmd argument names - mafft - - hmmer ==3.1b2 + - hmmer - prank run: @@ -46,7 +46,7 @@ requirements: - raxml - muscle <4 # later versions expects other cmd argument names - mafft - - hmmer ==3.1b2 + - hmmer - prank test: diff --git a/recipes/sepp/meta.yaml b/recipes/sepp/meta.yaml index 980e754e11f8c..5a7caf0a8acaa 100644 --- a/recipes/sepp/meta.yaml +++ b/recipes/sepp/meta.yaml @@ -1,11 +1,11 @@ -{% set version = "4.5.1" %} -{% set sha256 = "51e052569ae89f586a1a94c804f09fe1b7910a3ffff7664e2005f18c7d3f717b" %} +{% set version = "4.5.4" %} +{% set sha256 = "e30cfffd13adb904ef4d1d6fef3d72a49f5269438c8bc4f6fd0924abaa5d75eb" %} package: name: sepp version: '{{version}}' source: - - url: https://github.com/smirarab/sepp/archive/{{version}}.tar.gz + - url: https://github.com/smirarab/sepp/archive/v{{version}}.tar.gz sha256: '{{sha256}}' patches: - relocate.run-sepp.sh.patch @@ -15,24 +15,24 @@ source: - nodeps.setup.py.patch build: - number: 4 + number: 0 run_exports: - {{ pin_subpackage('sepp', max_pin="x") }} requirements: host: - - python <=3.9 + - python <=3.10 - setuptools - pip - dendropy <=4.5.1 - openjdk - - hmmer ==3.1b2 + - hmmer run: - - python <=3.9 + - python <=3.10 - dendropy <=4.5.1 - openjdk - - hmmer ==3.1b2 + - hmmer - pasta # TODO: source bundled binaries as conda packages. # But pplacer / guppy are not available for OSX. diff --git a/recipes/sepp/nodeps.setup.py.patch b/recipes/sepp/nodeps.setup.py.patch index f93b859cf421e..f63161a7cd5d0 100644 --- a/recipes/sepp/nodeps.setup.py.patch +++ b/recipes/sepp/nodeps.setup.py.patch @@ -4,8 +4,8 @@ author_email="smirarab@gmail.com, namphuon@cs.utah.edu", license="General Public License (GPL)", -- install_requires=["dendropy >= 4.0.0"], +- install_requires=["dendropy >= 4.6.0"], + install_requires=[], provides=["sepp"], - scripts=["run_sepp.py", 'run_tipp.py', 'run_upp.py', 'run_abundance.py', - "split_sequences.py", "run_tipp_tool.py"], + scripts=["run_sepp.py", 'run_upp.py', "split_sequences.py"], + cmdclass={"config": ConfigSepp, "upp": ConfigUPP}, From 88a033c14fb5bf883266ec9cd45b25dcd33e2447 Mon Sep 17 00:00:00 2001 From: "Robert A. Petit III" Date: Wed, 14 Aug 2024 16:57:05 -0600 Subject: [PATCH 0995/1589] rebuild pasty (#50068) --- recipes/pasty/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/pasty/meta.yaml b/recipes/pasty/meta.yaml index 094469c7fed57..eb3c86b19ff16 100644 --- a/recipes/pasty/meta.yaml +++ b/recipes/pasty/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 4c1a099dd2fd7a0a190f1e13c0df98aeb744ca068619a89055a8a2e505213df6 build: - number: 0 + number: 1 noarch: generic run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} From 9254647345438fa2379ca6f4012694195a990591 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 22:58:11 -0400 Subject: [PATCH 0996/1589] Update prot-scriber to 0.1.6 (#50069) --- recipes/prot-scriber/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/prot-scriber/meta.yaml b/recipes/prot-scriber/meta.yaml index c74897c5d6a79..a4675c6c38560 100644 --- a/recipes/prot-scriber/meta.yaml +++ b/recipes/prot-scriber/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.1.5" %} -{% set sha256 = "75d75e7a78b631716efb25f762b18405ada70eec3558a2b721c8c633c308269e" %} +{% set version = "0.1.6" %} +{% set sha256 = "f79722ec7338b354df855b94f250f509e7742cd8cc4762a21c96905fc162f92f" %} package: name: prot-scriber From ecb8e9223e29640fc88b355289fbff286274c973 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 23:02:30 -0400 Subject: [PATCH 0997/1589] Update mycotools to 0.31.48 (#50067) --- recipes/mycotools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mycotools/meta.yaml b/recipes/mycotools/meta.yaml index 300daef358a6b..8fb5793d984bd 100644 --- a/recipes/mycotools/meta.yaml +++ b/recipes/mycotools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mycotools" %} -{% set version = "0.31.46" %} +{% set version = "0.31.48" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mycotools-{{ version }}.tar.gz - sha256: 54aa3ee22d7ee95fbc3826681f54a18f33bab7d1e1fd34471085dcff39804991 + sha256: 0ab05973c50e363f6554bf15d8fa16f77765e0152acc35ba14ccca4cc054ce84 build: entry_points: From 15bbfaf993bbc9bbe016f2c27171c46a678635c7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 15 Aug 2024 03:39:38 -0400 Subject: [PATCH 0998/1589] Update bionumpy to 1.0.12 (#50060) --- recipes/bionumpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/bionumpy/meta.yaml b/recipes/bionumpy/meta.yaml index 58dd9b847dd6f..382819362ccd1 100644 --- a/recipes/bionumpy/meta.yaml +++ b/recipes/bionumpy/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.0.11" %} +{% set version = "1.0.12" %} package: name: bionumpy @@ -6,7 +6,7 @@ package: source: url: https://github.com/bionumpy/bionumpy/archive/refs/tags/v{{ version }}.tar.gz - sha256: 14883379dbae1a7cd80b1e19e7593db0f9966413c2a1ffb97f58690fec5dc929 + sha256: 7625c3087677cee45b04bda27542d3436348ae194c938d2a1c2388941471f3b8 build: noarch: python From 9924585c37594f45c2b2693b72a9039b81582159 Mon Sep 17 00:00:00 2001 From: Anshu Gupta <114828525+ang037@users.noreply.github.com> Date: Thu, 15 Aug 2024 01:05:41 -0700 Subject: [PATCH 0999/1589] Add "roadies" package (#49952) * added roadies recipe * updated meta.yaml * addressed lint errors * removed cross platform dependency * updated meta.yaml to support macos64 * removed gxx since cxx present * modified cxx env variable * removed python zlib and libboost from build deps --- recipes/roadies/build.sh | 42 +++++++++++++++++++++++ recipes/roadies/meta.yaml | 70 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 112 insertions(+) create mode 100644 recipes/roadies/build.sh create mode 100644 recipes/roadies/meta.yaml diff --git a/recipes/roadies/build.sh b/recipes/roadies/build.sh new file mode 100644 index 0000000000000..201708dac381b --- /dev/null +++ b/recipes/roadies/build.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +# Debugging: Print current directory and list its contents +echo "Current directory: $(pwd)" +echo "Contents:" +ls -al + +mkdir -p $PREFIX/ROADIES + +# Download and setup ASTER repository if not already done +if [ ! -d "ASTER-Linux" ]; then + wget -q https://github.com/chaoszhang/ASTER/archive/refs/heads/Linux.zip -O Linux.zip + unzip -q Linux.zip + cd ASTER-Linux + $CXX -D CASTLES -std=gnu++11 -march=native -Ofast -pthread src/astral-pro.cpp -o bin/astral-pro2 + cd .. +fi + +# Build sampling code +if [ ! -d "workflow/scripts/sampling/build" ]; then + cd workflow/scripts/sampling + mkdir -p build + cd build + cmake .. -DCMAKE_INSTALL_PREFIX=$PREFIX + make + cd ../../../.. +fi + +mkdir -p pasta + + +# Debugging: Print current directory and list its contents before copying +echo "Current directory before copying ROADIES: $(pwd)" +echo "Contents before copying ROADIES:" +ls -al + +# Copy the entire ROADIES directory to the PREFIX directory +cp -r . $PREFIX/ROADIES + +# Debugging: Verify the contents of the PREFIX directory +echo "Contents of PREFIX:" +ls -al $PREFIX \ No newline at end of file diff --git a/recipes/roadies/meta.yaml b/recipes/roadies/meta.yaml new file mode 100644 index 0000000000000..731f2471a53d3 --- /dev/null +++ b/recipes/roadies/meta.yaml @@ -0,0 +1,70 @@ +{% set version = "0.1.4" %} + +package: + name: roadies + version: {{ version }} + +source: + url: https://github.com/TurakhiaLab/ROADIES/archive/v{{ version }}.tar.gz + sha256: e3b4b89f247824c4b61e790f094320624bde47e295e2158a9ad83c05dfa83d54 + +build: + number: 0 + run_exports: + - {{ pin_subpackage("roadies", max_pin=None) }} + +requirements: + build: + - {{ compiler('cxx') }} + - cmake + - make + - wget + - unzip + - openjdk >=1.7 + + host: + - python ==3.9 + - pip + - libboost-devel + - zlib + run: + - python ==3.9 + - biopython + - numpy + - libboost-devel + - pip + - matplotlib-base + - seaborn + - ete3 + - pyyaml + - raxml-ng + - snakemake + - pasta >=1.9.0 + - mashtree + - treeswift >=1.1.28 + - fasttree >=2.1.11 + - alive-progress + +test: + commands: + - python $PREFIX/ROADIES/run_roadies.py --help + +about: + home: "https://github.com/TurakhiaLab/ROADIES" + license: MIT + license_family: MIT + license_file: LICENSE + doc_url: "https://turakhia.ucsd.edu/ROADIES/" + summary: "Reference-free Orthology-free Alignment-free DIscordance aware Estimation of Species tree (ROADIES)" + description: | + ROADIES is an end-to-end pipeline designed for phylogenetic tree inference of the species directly from their raw genomic assemblies. ROADIES offers a fully automated, easy-to-use, scalable solution, eliminating any error-prone manual steps and providing unique flexibility in adjusting the tradeoff between accuracy and runtime. + +extra: + recipe-maintainers: + - ang037 + identifiers: + - doi:10.1101/2024.05.27.596098 + edam: + topic: Phylogenetics + operation: Species tree estimation + \ No newline at end of file From 2e1817745dedc2ecbcafa05fabd22e1b0e3d44ec Mon Sep 17 00:00:00 2001 From: clementcoclet <94937696+clementcoclet@users.noreply.github.com> Date: Thu, 15 Aug 2024 02:05:57 -0700 Subject: [PATCH 1000/1589] Mvip (#50065) * mvip_recipes * update_meta.yaml * mvip_new_version_release * build_number_Update_meta_yaml * mvip v.1.1.1 minor issues * Reset the build number * Update package version in summary report of Module 00 --------- Co-authored-by: Clement Coclet - 067048 Co-authored-by: Martin Grigorov --- recipes/mvip/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mvip/meta.yaml b/recipes/mvip/meta.yaml index f0f8bbd911427..48a731822a9fd 100644 --- a/recipes/mvip/meta.yaml +++ b/recipes/mvip/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mvip" %} -{% set version = "1.1.1" %} +{% set version = "1.1.2" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 53e82ef6b4ffddba5c14d19d267c148a6d41432c5833a2b4750bb4ccdadcf0f3 + sha256: c76dabb1383556692f7a43efb32365a1e9ef5e4159fe10d994a49a5f4b2408af build: number: 0 From ab8c53609bd1b9c755a2e49f833493036e1ec628 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 15 Aug 2024 06:06:45 -0400 Subject: [PATCH 1001/1589] Update quantms-utils to 0.0.8 (#50076) --- recipes/quantms-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/quantms-utils/meta.yaml b/recipes/quantms-utils/meta.yaml index 7df0df88180d0..8ed626f8c28d1 100644 --- a/recipes/quantms-utils/meta.yaml +++ b/recipes/quantms-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "quantms-utils" %} -{% set version = "0.0.7" %} +{% set version = "0.0.8" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/quantms_utils-{{ version }}.tar.gz - sha256: 293561016439c01004c55670ab18b75c8ae92513724a44df23dfd436557dfe8c + sha256: 1c18f90d274002a7de421b1afcda6c3500ef3ce21dafdf5ba950066ae7a71b15 build: entry_points: From 10669a1ae9007b7955ebe5445bb34f8d58f99c8e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 15 Aug 2024 07:25:50 -0400 Subject: [PATCH 1002/1589] Update msweep to 2.1.1 (#50077) --- recipes/msweep/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/msweep/meta.yaml b/recipes/msweep/meta.yaml index 270f718e0e07e..c566243b53c2b 100644 --- a/recipes/msweep/meta.yaml +++ b/recipes/msweep/meta.yaml @@ -1,6 +1,6 @@ {% set name = "mSWEEP" %} -{% set version = "2.1.0" %} -{% set sha256 = "8654eefab5f1fa9fb483ac5bef5b46f22c7bc3e9f2023e77c7f15ebd2c176930" %} +{% set version = "2.1.1" %} +{% set sha256 = "aaa53c770e2881f6ccd89e3e075d8fcd7a500fee67fd5ecf3cda05cc4a547ecb" %} {% set user = "PROBIC" %} package: From 56b73191821e67ebb699e8e9f280b13a5e42f6b0 Mon Sep 17 00:00:00 2001 From: Stefan Janssen Date: Thu, 15 Aug 2024 13:58:51 +0200 Subject: [PATCH 1003/1589] lift restrictions of dendropy, which is a dependency of SEPP (#50075) --- recipes/pasta/meta.yaml | 6 +++--- recipes/sepp/meta.yaml | 9 +++------ 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/recipes/pasta/meta.yaml b/recipes/pasta/meta.yaml index 4de487940d980..03ae3152eaa67 100644 --- a/recipes/pasta/meta.yaml +++ b/recipes/pasta/meta.yaml @@ -13,7 +13,7 @@ source: - mpstart.patch # issue in OSX py38 (not in Linux nor OSX py37): RuntimeError: An attempt has been made to start a new process before the current process has finished its bootstrapping phase. build: - number: 0 + number: 1 skip: true # [py == 312] run_exports: - {{ pin_subpackage('pasta', max_pin="x") }} @@ -22,7 +22,7 @@ requirements: host: - python - setuptools - - dendropy <=4.5.1 + - dendropy - wget - openjdk - pcre @@ -37,7 +37,7 @@ requirements: run: - python - - dendropy <=4.5.1 # later version do not expose _convert_node_to_root_polytomy + - dendropy - openjdk - pcre - pymongo >=3.3.0 diff --git a/recipes/sepp/meta.yaml b/recipes/sepp/meta.yaml index 5a7caf0a8acaa..de593c2478bbb 100644 --- a/recipes/sepp/meta.yaml +++ b/recipes/sepp/meta.yaml @@ -10,12 +10,9 @@ source: patches: - relocate.run-sepp.sh.patch - relocate.sepp.config.patch - # prevent python's setup to search for dendropy dependency via pip. - # Instead use dendropy provided by conda: - - nodeps.setup.py.patch build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('sepp', max_pin="x") }} @@ -24,13 +21,13 @@ requirements: - python <=3.10 - setuptools - pip - - dendropy <=4.5.1 + - dendropy - openjdk - hmmer run: - python <=3.10 - - dendropy <=4.5.1 + - dendropy - openjdk - hmmer - pasta From b53932f8f12d8715f5c28ec7145ccc4e9c7be051 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 15 Aug 2024 08:01:03 -0400 Subject: [PATCH 1004/1589] Update diphase to 1.0.1 (#50078) --- recipes/diphase/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/diphase/meta.yaml b/recipes/diphase/meta.yaml index c7e671514d4ce..16aa98b52ec4c 100644 --- a/recipes/diphase/meta.yaml +++ b/recipes/diphase/meta.yaml @@ -1,6 +1,6 @@ {% set name = "diphase" %} -{% set version = "1.0.0" %} -{% set sha256 = "bd6ae483fb7763eff44935d3a19c7d8df604805e84615ed65566161458b50e77" %} +{% set version = "1.0.1" %} +{% set sha256 = "64a65bcf026b9401797e92bf1a4ec0a8151f0e7e27f7308166cdb24c9f89f03a" %} package: name: {{ name }} From 6c30c0cb5bde18b86ad323aac727bc54d0fffd25 Mon Sep 17 00:00:00 2001 From: Anup Kumar Date: Thu, 15 Aug 2024 15:12:11 +0200 Subject: [PATCH 1005/1589] Add Bioconda recipe (#50062) * add files * fix package * remove comments * add permissions * build package * fix reviw --- recipes/apu-label-propagation/build.sh | 8 ++++++++ recipes/apu-label-propagation/meta.yaml | 27 +++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 recipes/apu-label-propagation/build.sh create mode 100644 recipes/apu-label-propagation/meta.yaml diff --git a/recipes/apu-label-propagation/build.sh b/recipes/apu-label-propagation/build.sh new file mode 100644 index 0000000000000..5eb7ac1709302 --- /dev/null +++ b/recipes/apu-label-propagation/build.sh @@ -0,0 +1,8 @@ +#!/bin/bash +mkdir -p ${PREFIX}/bin + +cd src + +$CC -o $PREFIX/bin/apu-label-propagation apu_label_propagation.c -lm + +chmod u+x ${PREFIX}/bin/apu-label-propagation diff --git a/recipes/apu-label-propagation/meta.yaml b/recipes/apu-label-propagation/meta.yaml new file mode 100644 index 0000000000000..0b28bea058f5f --- /dev/null +++ b/recipes/apu-label-propagation/meta.yaml @@ -0,0 +1,27 @@ +{% set version = "1.2" %} + +package: + name: apu-label-propagation + version: {{ version }} + +source: + url: https://github.com/anuprulez/apu_label_propagation/archive/refs/tags/{{ version }}.tar.gz + sha256: bc2a108a706ce16f628b3e805902fa29c6a51c335891cc20a394f8cfec87ea88 + +build: + number: 0 + run_exports: + - {{ pin_subpackage('apu-label-propagation', max_pin="x.x") }} + +requirements: + build: + - {{ compiler('c') }} + +test: + commands: + - apu-label-propagation + +about: + home: https://github.com/AndMastro/NIAPU + license: MIT + summary: Adaptive Positive-Unlabelled label propagation From 6d7c1a8ee59498d56b391c7166ec27809f7e743f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 15 Aug 2024 09:17:06 -0400 Subject: [PATCH 1006/1589] Update pybiolib to 1.2.50 (#50079) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index 4b79d5057b32c..204fd3707d32c 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.2.31" %} +{% set version = "1.2.50" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: 39abd33afc379d9624ff7da4f0eb38acaf7a14f5c48aa0bbce6d761ca3632e6b + sha256: 126ad5392df11a3f7cb4e3def931b0d8900472c251f56e1b58ff6d74cc4726e5 build: number: 0 From 77ff7d08c60f52d5cb5211ab635cc1b4b1a84c42 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 15 Aug 2024 10:36:28 -0400 Subject: [PATCH 1007/1589] Update pbstarphase to 0.13.3 (#50084) --- recipes/pbstarphase/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pbstarphase/meta.yaml b/recipes/pbstarphase/meta.yaml index 315dbe59df582..116b3b5737bea 100644 --- a/recipes/pbstarphase/meta.yaml +++ b/recipes/pbstarphase/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pbstarphase" %} -{% set version = "0.13.2" %} -{% set sha256 = "648297e149009d7658c9425d56bbc23a6f6c051192f5dc88dc7a8f7383be9122" %} +{% set version = "0.13.3" %} +{% set sha256 = "3169cc00ef5a5a26d877893550e662bd0f9f817edbd113943178fd20f0a8d2b8" %} package: name: {{ name }} From 9bd902cf6dd241f4710aba1951a10c39d0efb058 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 15 Aug 2024 11:16:20 -0400 Subject: [PATCH 1008/1589] Update varfish-server-worker to 0.13.0 (#50085) --- recipes/varfish-server-worker/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/varfish-server-worker/meta.yaml b/recipes/varfish-server-worker/meta.yaml index 607e7a5b58f63..9c20439be990d 100644 --- a/recipes/varfish-server-worker/meta.yaml +++ b/recipes/varfish-server-worker/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.12.0" %} +{% set version = "0.13.0" %} package: name: varfish-server-worker @@ -12,7 +12,7 @@ build: source: url: https://github.com/varfish-org/varfish-server-worker/archive/refs/tags/v{{ version }}.tar.gz - sha256: da36b0cb9138adb4c30d1957f1d7d0e577fc49fc4b8bbad90fdd4d7f0f1e3b38 + sha256: 2a593575ae37bd1c9f934e45b378024912108d2391cccba1b9120c4685c2362a requirements: build: From 67a6fe571d683599cd598553c9fec37dda006728 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 15 Aug 2024 18:29:55 +0300 Subject: [PATCH 1009/1589] idemuxcpp: add aarch64/arm64 builds (#50047) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/idemuxcpp/build.sh | 4 +++- recipes/idemuxcpp/meta.yaml | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/recipes/idemuxcpp/build.sh b/recipes/idemuxcpp/build.sh index 7e69267c6d7cc..dae53d55b2803 100644 --- a/recipes/idemuxcpp/build.sh +++ b/recipes/idemuxcpp/build.sh @@ -1,8 +1,10 @@ #!/bin/sh +set -xe + export CXXFLAGS="-I${PREFIX}/include/bamtools ${CXXFLAGS}" export LDFLAGS="-L${PREFIX}/lib/ -lbamtools ${LDFLAGS}" ./configure --enable-tests --prefix="${PREFIX}" -make +make -j ${CPU_COUNT} make install make check diff --git a/recipes/idemuxcpp/meta.yaml b/recipes/idemuxcpp/meta.yaml index cff5ace451cb6..683204c9c9c9f 100644 --- a/recipes/idemuxcpp/meta.yaml +++ b/recipes/idemuxcpp/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('idemuxcpp', max_pin="x") }} @@ -40,5 +40,8 @@ about: summary: "A Lexogen tool for demultiplexing and index error correcting fastq files. Works with Lexogen i7, i5 and i1 barcodes." extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - entzian From 4cb5e5fd5c0089be9719681bdb2890d059dd3db1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 15 Aug 2024 11:33:17 -0400 Subject: [PATCH 1010/1589] Update pyrodigal-gv to 0.3.2 (#50088) --- recipes/pyrodigal-gv/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pyrodigal-gv/meta.yaml b/recipes/pyrodigal-gv/meta.yaml index 34996ec3ebe2b..fa9ca0b00d6c0 100644 --- a/recipes/pyrodigal-gv/meta.yaml +++ b/recipes/pyrodigal-gv/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pyrodigal-gv" %} -{% set version = "0.3.1" %} +{% set version = "0.3.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pyrodigal_gv-{{ version }}.tar.gz - sha256: 287f0507fad25f8c148a1d93a030e1a64b0434beba62f45354526b0eeef4ca97 + sha256: aeeff43daec2c4aec7830ae2400799aa90bf273bcca86656ef239bee8d7e5ea5 build: script: {{ PYTHON }} -m pip install . --ignore-installed --use-pep517 --no-deps -vvv From 32cf64d086a101d69abc50e095d3406ceb5a2f12 Mon Sep 17 00:00:00 2001 From: Anup Kumar Date: Thu, 15 Aug 2024 17:36:55 +0200 Subject: [PATCH 1011/1589] Add Nedbit features C script (#50081) * add files * rename folder * update upstream --- recipes/nedbit-features-calculator/build.sh | 8 ++++++ recipes/nedbit-features-calculator/meta.yaml | 27 ++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 recipes/nedbit-features-calculator/build.sh create mode 100644 recipes/nedbit-features-calculator/meta.yaml diff --git a/recipes/nedbit-features-calculator/build.sh b/recipes/nedbit-features-calculator/build.sh new file mode 100644 index 0000000000000..b57e9cfb29d0e --- /dev/null +++ b/recipes/nedbit-features-calculator/build.sh @@ -0,0 +1,8 @@ +#!/bin/bash +mkdir -p ${PREFIX}/bin + +cd src + +$CC -o $PREFIX/bin/nedbit-features-calculator nedbit_features_calculator.c -lm + +chmod u+x ${PREFIX}/bin/nedbit-features-calculator diff --git a/recipes/nedbit-features-calculator/meta.yaml b/recipes/nedbit-features-calculator/meta.yaml new file mode 100644 index 0000000000000..88dbacd2dc3a5 --- /dev/null +++ b/recipes/nedbit-features-calculator/meta.yaml @@ -0,0 +1,27 @@ +{% set version = "1.2" %} + +package: + name: nedbit-features-calculator + version: {{ version }} + +source: + url: https://github.com/anuprulez/NIAPU/archive/refs/tags/{{ version }}.tar.gz + sha256: 50424bf7df99b51dc71a4121beae89ef69b2bb4eaba559c99643baecb8544806 + +build: + number: 0 + run_exports: + - {{ pin_subpackage('nedbit-features-calculator', max_pin="x.x") }} + +requirements: + build: + - {{ compiler('c') }} + +test: + commands: + - nedbit-features-calculator + +about: + home: https://github.com/AndMastro/NIAPU + license: MIT + summary: Network diffusion and biology-informed topological features From 9edd6761369de8a5d18d4edf3c2216d0aa105cad Mon Sep 17 00:00:00 2001 From: Anup Kumar Date: Thu, 15 Aug 2024 17:37:12 +0200 Subject: [PATCH 1012/1589] add upstream (#50087) --- recipes/apu-label-propagation/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/apu-label-propagation/meta.yaml b/recipes/apu-label-propagation/meta.yaml index 0b28bea058f5f..45a66085517b2 100644 --- a/recipes/apu-label-propagation/meta.yaml +++ b/recipes/apu-label-propagation/meta.yaml @@ -5,11 +5,11 @@ package: version: {{ version }} source: - url: https://github.com/anuprulez/apu_label_propagation/archive/refs/tags/{{ version }}.tar.gz - sha256: bc2a108a706ce16f628b3e805902fa29c6a51c335891cc20a394f8cfec87ea88 + url: https://github.com/anuprulez/NIAPU/archive/refs/tags/{{ version }}.tar.gz + sha256: 50424bf7df99b51dc71a4121beae89ef69b2bb4eaba559c99643baecb8544806 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('apu-label-propagation', max_pin="x.x") }} From 118906e84f064edf3e23a5cfd59796fa629c31ea Mon Sep 17 00:00:00 2001 From: Sudaraka Mallawaarachchi Date: Fri, 16 Aug 2024 01:37:52 +1000 Subject: [PATCH 1013/1589] add tracs (#50070) * add tracs * typo fix * typo fix2 * typo fix3 * typo fix4 * fix python * rm llvm-openmp build dep * release_w_MIT_License * Fix version * Fix version_bug --------- Co-authored-by: Sudaraka88 --- recipes/tracs/meta.yaml | 64 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 recipes/tracs/meta.yaml diff --git a/recipes/tracs/meta.yaml b/recipes/tracs/meta.yaml new file mode 100644 index 0000000000000..27dd65f6653b3 --- /dev/null +++ b/recipes/tracs/meta.yaml @@ -0,0 +1,64 @@ +{% set version = "1.0.0" %} +{% set name = "tracs" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/gtonkinhill/{{ name|lower }}/archive/v{{ version }}.tar.gz + sha256: 8950cf46bf53160b03c639cf9c1aaca43e506ac60b081d3ba7ee0a3b61c800f9 + +build: + number: 0 + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" + run_exports: + - {{ pin_subpackage('tracs', max_pin="x") }} + +requirements: + build: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + host: + - python >=3.12 + - pip + - pybind11 + - boost-cpp + - zlib + - llvm-openmp + run: + - python >=3.12 + - numpy + - pandas + - sourmash + - joblib + - ncbi-genome-download + - pyfastx + - tqdm + - scipy + - plotly + - samtools + - htsbox + - minimap2 + +test: + imports: + - tracs + commands: + - tracs --help + - tracs --version + - tracs align --help + - tracs combine --help + - tracs distance --help + - tracs threshold --help + - tracs cluster --help + - tracs build-db --help + - tracs pipe --help + +about: + home: https://github.com/gtonkinhill/tracs + license: MIT + license_family: MIT + license_file: LICENSE + summary: 'Tracs - Fast pairwise transmission inference from single genome and/or metagenomic data' + doc_url: https://github.com/gtonkinhill/tracs/tree/main/docs \ No newline at end of file From 5f601b4b11b0a841c2bb3e1f58bebc683e412211 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 15 Aug 2024 12:13:59 -0400 Subject: [PATCH 1014/1589] Update orthanq to 1.7.4 (#50083) * Update orthanq to 1.7.3 * Update orthanq to 1.7.4 --- recipes/orthanq/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/orthanq/meta.yaml b/recipes/orthanq/meta.yaml index 6e1e571e1a440..4beab70fbdc47 100644 --- a/recipes/orthanq/meta.yaml +++ b/recipes/orthanq/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.7.2" %} +{% set version = "1.7.4" %} package: name: orthanq @@ -12,7 +12,7 @@ build: source: url: https://github.com/orthanq/orthanq/archive/v{{ version }}.tar.gz - sha256: 12f8170e92fecf99bde81c26049f6a811b751395a1e7cda45ca0810cef42e81e + sha256: b8cc21f9f39b5f7461b504df5a7b7201a6a6d19dba7bb849281302da21ce4772 requirements: build: From 073129e4d28cf56a14f4bd216fc2b26f88552c49 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 15 Aug 2024 15:46:15 -0400 Subject: [PATCH 1015/1589] Update hiphase to 1.4.4 (#50090) --- recipes/hiphase/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/hiphase/meta.yaml b/recipes/hiphase/meta.yaml index e87bc330fe6a5..c54d31da8d085 100644 --- a/recipes/hiphase/meta.yaml +++ b/recipes/hiphase/meta.yaml @@ -1,6 +1,6 @@ {% set name = "hiphase" %} -{% set version = "1.4.3" %} -{% set hiphase_sha256 = "e573cae2d0f90cbbf99171b1a9aa9e8e06104f54ccc93e40898354257b7f16c5" %} +{% set version = "1.4.4" %} +{% set hiphase_sha256 = "3fdff37542c0447e936525684a7e431430994ee810d60a43f319ae260a9161b0" %} package: name: {{ name }} From 03864cb47dff071765d58decda726e2190871415 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 15 Aug 2024 17:56:23 -0400 Subject: [PATCH 1016/1589] Update camlhmp to 1.0.0 (#50093) --- recipes/camlhmp/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/camlhmp/meta.yaml b/recipes/camlhmp/meta.yaml index 4a40b11a65bb0..307261630f3d6 100644 --- a/recipes/camlhmp/meta.yaml +++ b/recipes/camlhmp/meta.yaml @@ -1,5 +1,5 @@ {% set name = "camlhmp" %} -{% set version = "0.3.1" %} +{% set version = "1.0.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/camlhmp/camlhmp-{{ version }}.tar.gz - sha256: 5add4f82f4cc70bb5192a0bbe4fc3a6263aaa51353ddd0eb17833ec75ec1d008 + sha256: 91bb81e2c7e548a3e6acdd01f2276e54e4a82df491a61864aff647bd8b327c3d build: noarch: python From 75ba61e9a773519e47581c5adfedaaaa28e7c3ff Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 15 Aug 2024 22:20:56 -0400 Subject: [PATCH 1017/1589] Update sccmec to 1.1.0 (#50094) * Update sccmec to 1.1.0 * Update meta.yaml --------- Co-authored-by: Robert A. Petit III --- recipes/sccmec/meta.yaml | 72 ++++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/recipes/sccmec/meta.yaml b/recipes/sccmec/meta.yaml index 166bd125861d4..a71583506a783 100644 --- a/recipes/sccmec/meta.yaml +++ b/recipes/sccmec/meta.yaml @@ -1,36 +1,36 @@ -{% set name="sccmec" %} -{% set version = "1.0.0" %} -{% set sha256 = "1bbddeec9a1fb2d340a8971dfa6a705e0beca80c3ef03483b52079f91e242b6a" %} - -package: - name: {{ name }} - version: {{ version }} - -source: - url: https://github.com/rpetit3/sccmec/archive/v{{ version }}.tar.gz - sha256: {{ sha256 }} - -build: - number: 0 - noarch: generic - run_exports: - - {{ pin_subpackage(name, max_pin='x.x') }} - -requirements: - run: - - camlhmp >=0.1.0 - -test: - commands: - - sccmec --version - - sccmec --help - -about: - home: https://github.com/rpetit3/sccmec - license: MIT - license_file: LICENSE - summary: A tool for typing SCCmec cassettes in assemblies - -extra: - recipe-maintainers: - - rpetit3 +{% set name="sccmec" %} +{% set version = "1.1.0" %} +{% set sha256 = "176e0103a6e683583ed5caf1980781ec09ca315a0aa2cfe8d2a3d72321ce7488" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/rpetit3/sccmec/archive/v{{ version }}.tar.gz + sha256: {{ sha256 }} + +build: + number: 0 + noarch: generic + run_exports: + - {{ pin_subpackage(name, max_pin='x.x') }} + +requirements: + run: + - camlhmp >=1.0.0 + +test: + commands: + - sccmec --version + - sccmec --help + +about: + home: https://github.com/rpetit3/sccmec + license: MIT + license_file: LICENSE + summary: A tool for typing SCCmec cassettes in assemblies + +extra: + recipe-maintainers: + - rpetit3 From 8e873a15c62b1c90316d035773f8b1094a830a18 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 16 Aug 2024 00:41:01 -0400 Subject: [PATCH 1018/1589] Update blaze2 to 2.4.0 (#50098) --- recipes/blaze2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/blaze2/meta.yaml b/recipes/blaze2/meta.yaml index 90649b463cac0..329bd464af823 100644 --- a/recipes/blaze2/meta.yaml +++ b/recipes/blaze2/meta.yaml @@ -1,5 +1,5 @@ {% set name = "BLAZE2" %} -{% set version = "2.2.1" %} +{% set version = "2.4.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/shimlab/BLAZE/archive/refs/tags/v{{ version }}.tar.gz - sha256: 30a3f7ede0237d5fbb1e1fa7155c2505d0ce560ba92ea61654ae0ff18f7453e4 + sha256: b4487873d1f4ae389feed54aa7d862ff3addc458c387d6fd0e3c9550c0a2037d build: number: 0 From fa7e2ecaa2b7ebc9000e104ac822c8d0fbed78f0 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 16 Aug 2024 08:59:10 +0300 Subject: [PATCH 1019/1589] htsbox: add aarch64/arm64 build (#50073) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/htsbox/build.sh | 4 +++- recipes/htsbox/meta.yaml | 9 ++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/recipes/htsbox/build.sh b/recipes/htsbox/build.sh index 9e8848d2dc477..e54829852c86a 100644 --- a/recipes/htsbox/build.sh +++ b/recipes/htsbox/build.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -xe + #strictly use anaconda build environment export CFLAGS="${CFLAGS} -L${PREFIX}/lib" export C_INCLUDE_PATH=${PREFIX}/include @@ -7,6 +9,6 @@ export LIBRARY_PATH=${PREFIX}/lib mkdir -p $PREFIX/bin -make CC=${CC} CFLAGS="${CFLAGS}" +make -j ${CPU_COUNT} CC=${CC} CFLAGS="${CFLAGS}" mv htsbox $PREFIX/bin diff --git a/recipes/htsbox/meta.yaml b/recipes/htsbox/meta.yaml index dc6e9d426c58d..7b1af21cb9476 100644 --- a/recipes/htsbox/meta.yaml +++ b/recipes/htsbox/meta.yaml @@ -7,7 +7,9 @@ package: version: {{ version }} build: - number: 4 + number: 5 + run_exports: + - {{ pin_subpackage(name, max_pin=None) }} source: url: https://github.com/lh3/htsbox/archive/6964440d791a60a22ca5ff25dc413a362bdc0abe.tar.gz @@ -30,3 +32,8 @@ about: home: https://github.com/lh3/htsbox license: Unknown summary: HTSbox is a fork of early HTSlib. It is a collection of small experimental tools manipulating HTS-related files. + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From 350c7b20b8d2f23ae831a7adc1849ecea1e4fe31 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 16 Aug 2024 02:41:38 -0400 Subject: [PATCH 1020/1589] Update ipyrad to 0.9.98 (#50095) --- recipes/ipyrad/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ipyrad/meta.yaml b/recipes/ipyrad/meta.yaml index 74569df372f29..6b0081e1f255a 100644 --- a/recipes/ipyrad/meta.yaml +++ b/recipes/ipyrad/meta.yaml @@ -1,6 +1,6 @@ {% set name = "ipyrad" %} -{% set version = "0.9.97" %} -{% set sha256 = "34e039612f7855fab71cd4741582617abddb879241a9a15bae4b7c0593d889e8" %} +{% set version = "0.9.98" %} +{% set sha256 = "f3e8912806070a247322aaf1281fa38ff1acd1c554cfd67db733c9ac5a725786" %} package: name: {{ name }} From c648fc77e0fbc710023a69e1a2de6b5fc29ec7e7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 16 Aug 2024 02:43:07 -0400 Subject: [PATCH 1021/1589] Update ont-modkit to 0.3.2 (#50096) --- recipes/ont-modkit/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/ont-modkit/meta.yaml b/recipes/ont-modkit/meta.yaml index af34fb5a538b7..88e0459b50b17 100644 --- a/recipes/ont-modkit/meta.yaml +++ b/recipes/ont-modkit/meta.yaml @@ -1,6 +1,6 @@ {% set name = "ont-modkit" %} -{% set version = "0.3.1" %} -{% set sha256 = "f780f60411bf8a94f2b4dc7383c14a0c04050cca8b1d3e2763c480d72026b3ba" %} +{% set version = "0.3.2" %} +{% set sha256 = "9d3e56ec103f11d5d24d0e814afd83b8556b8288e012d410500e127d1652aba7" %} package: name: {{ name }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage("ont-modkit", max_pin="x.x") }} From 48369f52a2324ea380f8e6054216e43bcbbba57f Mon Sep 17 00:00:00 2001 From: Khaled196 <56037954+khaled196@users.noreply.github.com> Date: Fri, 16 Aug 2024 07:43:41 +0100 Subject: [PATCH 1022/1589] Update beacon-import tool (#50082) * Update beacon-import tool * Update meta.yaml --- recipes/beacon2-import/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/beacon2-import/meta.yaml b/recipes/beacon2-import/meta.yaml index 30562965cc5d4..82600cad4a425 100644 --- a/recipes/beacon2-import/meta.yaml +++ b/recipes/beacon2-import/meta.yaml @@ -1,13 +1,13 @@ {% set name = "beacon2-import" %} -{% set version = "2.2.1" %} +{% set version = "2.2.2" %} package: name: {{ name|lower }} version: {{ version }} source: - url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/beacon2-import-{{ version }}.tar.gz - sha256: 1c8e26beaed158563dbf46f86aec89be385fa79c40f05e081edcb5a91c954290 + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/beacon2_import-{{ version }}.tar.gz + sha256: 4926fb62d6375046d5944615a8891f13a41f1f2be5fc9646caf27add1fea4282 build: entry_points: From 8d237fb5581e2fd58b9414ba7188dab6f71d6368 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 16 Aug 2024 02:45:38 -0400 Subject: [PATCH 1023/1589] Update vcfsim to 1.0.13.alpha (#50097) --- recipes/vcfsim/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/vcfsim/meta.yaml b/recipes/vcfsim/meta.yaml index 00ad1f01fbe82..0e0d2533661dc 100644 --- a/recipes/vcfsim/meta.yaml +++ b/recipes/vcfsim/meta.yaml @@ -1,5 +1,5 @@ {% set name = "vcfsim" %} -{% set version = "1.0.12.alpha" %} +{% set version = "1.0.13.alpha" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Pie115/VCFSimulator-SamukLab/archive/{{ version }}.tar.gz - sha256: 58ff93f1652f71a5559d0e1b1660c11ecc391ecf32a82bc761aa3837f5c26e94 + sha256: 0a9f0edb40982cb2b18ca47bfabeaa3cb769c392c4fb6acd15a32b1a1c14d4b7 build: noarch: python From 4639ca9dc814ddebe36f04dcaf3da6c6780a5a3b Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Fri, 16 Aug 2024 08:53:47 +0200 Subject: [PATCH 1024/1589] Update Metabinner (Make scripts/auxilirary tools available on path) (#50089) * Make scripts/auxilirary tools avaiable on path * Fix linting * Try and fix syntax --- recipes/metabinner/build.sh | 5 +++++ recipes/metabinner/meta.yaml | 12 ++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/recipes/metabinner/build.sh b/recipes/metabinner/build.sh index 5ea0e225a2eb9..34888d0a58586 100644 --- a/recipes/metabinner/build.sh +++ b/recipes/metabinner/build.sh @@ -6,3 +6,8 @@ chmod a+x run_metabinner.sh cp run_metabinner.sh $PREFIX/bin/ cp -r auxiliary $PREFIX/bin/ cp -r scripts $PREFIX/bin/ + +## Original build by author just placed directories in bin, not scripts themsleves +## To ensure backwards compatibility, we additionally symlink the scripts to the bin directory +ln -s $PREFIX/bin/auxiliary/* $PREFIX/bin/ +ln -s $PREFIX/bin/scripts/* $PREFIX/bin/ diff --git a/recipes/metabinner/meta.yaml b/recipes/metabinner/meta.yaml index e0987b3a72b74..bd2fc3e2824a7 100644 --- a/recipes/metabinner/meta.yaml +++ b/recipes/metabinner/meta.yaml @@ -7,8 +7,10 @@ source: sha256: 087a28aeb8fe218a3a2a6dd53b3bc5cad4cf33353fde3eebb8ee992461a99119 build: - number: 0 + number: 1 noarch: generic + run_exports: + - {{ pin_subpackage("metabinner", max_pin="x") }} requirements: run: @@ -30,10 +32,12 @@ requirements: test: commands: - - which run_metabinner.sh - + - "gen_coverage_file.sh 2> /dev/null | grep 'Usage: bash gen_coverage_file.sh'" + - which gen_kmer.py + - Filter_tooshort.py --help + - "run_metabinner.sh 2> /dev/null | grep 'Usage: bash run_metabinner.sh'" + about: home: "https://github.com/ziyewang/MetaBinner" license: BSD summary: "Ensemble binning method to recover individual genomes from complex microbial communities" - From 33f612694059d43622ea4f490df5b6d8f0ef5c39 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 16 Aug 2024 03:34:09 -0400 Subject: [PATCH 1025/1589] Update harpy to 1.6.1 (#50091) * Update harpy to 1.6.1 * Update harpy to 1.6.1 --- recipes/harpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index 62a1c61cda081..f67de7a1c0b0c 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.6" %} -{% set sha256 = "1029bf65fa6ea16e94c223407e6131094de3e6192440a7ac5a5852f49065fc62" %} +{% set version = "1.6.1" %} +{% set sha256 = "a3b6a0ebfb51bcc17140a519b3c1df61211f333ba091392053a1637edec8aff7" %} package: name: harpy From 1afc660d2e6b848635bcf6adc130ab61d1d41b40 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 16 Aug 2024 04:55:43 -0400 Subject: [PATCH 1026/1589] Update snakemake-executor-plugin-kubernetes to 0.2.0 (#50105) --- recipes/snakemake-executor-plugin-kubernetes/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-executor-plugin-kubernetes/meta.yaml b/recipes/snakemake-executor-plugin-kubernetes/meta.yaml index c4ffe95046b1e..b8549963e466a 100644 --- a/recipes/snakemake-executor-plugin-kubernetes/meta.yaml +++ b/recipes/snakemake-executor-plugin-kubernetes/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-executor-plugin-kubernetes" %} -{% set version = "0.1.5" %} +{% set version = "0.2.0" %} # Upon version update, requirements have to be checked! package: @@ -8,7 +8,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_executor_plugin_kubernetes-{{ version }}.tar.gz - sha256: 7984ef057c25ce1ff46ceac5839dfad01e2938faa649e59fa439e8154e8025eb + sha256: 83981ad405515880b1b311129fd442c1e17902ee0a673ca14bab5b8ba31d7fbf build: noarch: python From 3222ed927d5668f134803415456234af434f4de2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 16 Aug 2024 10:43:25 -0400 Subject: [PATCH 1027/1589] Update el_gato to 1.19.0 (#50110) --- recipes/el_gato/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/el_gato/meta.yaml b/recipes/el_gato/meta.yaml index 7dc82c6beb55f..0c15f3b4c1530 100644 --- a/recipes/el_gato/meta.yaml +++ b/recipes/el_gato/meta.yaml @@ -1,6 +1,6 @@ {% set name = "el_gato" %} -{% set version = "1.18.2" %} -{% set hash = "328a8399d01594a69a87c11357310efe54c00159949b396f1211d7ce2787040a" %} +{% set version = "1.19.0" %} +{% set hash = "ad390572ce785707b67a00f25978c4032981ac7e6149ddc423443e9189b30e75" %} {% set user = "appliedbinf" %} package: From a3fef4f2e901c5af3c47c9aee4d7e4bbe329d2da Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 16 Aug 2024 17:56:10 +0300 Subject: [PATCH 1028/1589] ucsc-subchar: add linux-aarch64 build (#50106) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-subchar/build.sh | 24 ++++++++++++++++-------- recipes/ucsc-subchar/include.patch | 6 +++--- recipes/ucsc-subchar/meta.yaml | 22 +++++++++++++++------- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index b5321fddab0a4..50301baafa8bf 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -945,7 +945,6 @@ recipes/ucsc-spacedtotab recipes/ucsc-splitfile recipes/ucsc-splitfilebycolumn recipes/ucsc-sqltoxml -recipes/ucsc-subchar recipes/ucsc-subcolumn recipes/ucsc-taillines recipes/ucsc-tdbquery diff --git a/recipes/ucsc-subchar/build.sh b/recipes/ucsc-subchar/build.sh index e32711c636962..5129d2652ab3b 100644 --- a/recipes/ucsc-subchar/build.sh +++ b/recipes/ucsc-subchar/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/subChar && make) -cp bin/subChar "$PREFIX/bin" -chmod +x "$PREFIX/bin/subChar" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/subChar && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/subChar "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/subChar" diff --git a/recipes/ucsc-subchar/include.patch b/recipes/ucsc-subchar/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-subchar/include.patch +++ b/recipes/ucsc-subchar/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-subchar/meta.yaml b/recipes/ucsc-subchar/meta.yaml index 7c31204869979..10b943776e59c 100644 --- a/recipes/ucsc-subchar/meta.yaml +++ b/recipes/ucsc-subchar/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-subchar" %} {% set program = "subChar" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "Substitute one character for another throughout a file." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From b92bde7e659fdcf8c1e4815ed6ee5f1f222b1495 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 16 Aug 2024 17:57:53 +0300 Subject: [PATCH 1029/1589] prot-scriber: add aarch64 build (#50072) * prot-scriber: add aarch64/arm64 build Signed-off-by: Martin Tzvetanov Grigorov * Do not try to build osx-arm64. It needs more investigation --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/prot-scriber/build.sh | 6 ++---- recipes/prot-scriber/meta.yaml | 10 +++++++--- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/recipes/prot-scriber/build.sh b/recipes/prot-scriber/build.sh index 3662f6efb60db..0609d45584d5d 100644 --- a/recipes/prot-scriber/build.sh +++ b/recipes/prot-scriber/build.sh @@ -1,8 +1,6 @@ -#!/bin/bash -euo +#!/bin/bash -# Add workaround for SSH-based Git connections from Rust/cargo. See https://github.com/rust-lang/cargo/issues/2078 for details. -# We set CARGO_HOME because we don't pass on HOME to conda-build, thus rendering the default "${HOME}/.cargo" defunct. -export CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_HOME="$(pwd)/.cargo" +set -xeuo # build statically linked binary with Rust RUST_BACKTRACE=1 cargo install --verbose --path . --root $PREFIX diff --git a/recipes/prot-scriber/meta.yaml b/recipes/prot-scriber/meta.yaml index a4675c6c38560..b32921251aa5a 100644 --- a/recipes/prot-scriber/meta.yaml +++ b/recipes/prot-scriber/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("prot-scriber", max_pin="x") }} @@ -16,8 +16,8 @@ source: requirements: build: - - rust - {{ compiler('c') }} + - {{ compiler('rust') }} test: commands: @@ -25,6 +25,10 @@ test: about: home: https://github.com/usadellab/prot-scriber - license: GPL-3 + license: GPL-3.0-only summary: "Assigns short human readable descriptions (HRD) to query biological sequences using reference candidate descriptions." license_file: LICENSE + +extra: + additional-platforms: + - linux-aarch64 From 3b967c8fc63ffa299d3994632117aa1ce71bff6d Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 16 Aug 2024 17:58:25 +0300 Subject: [PATCH 1030/1589] apu-label-propagation: add aarch64/arm64 builds (#50100) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/apu-label-propagation/build.sh | 3 +++ recipes/apu-label-propagation/meta.yaml | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/recipes/apu-label-propagation/build.sh b/recipes/apu-label-propagation/build.sh index 5eb7ac1709302..11f2d38047bb7 100644 --- a/recipes/apu-label-propagation/build.sh +++ b/recipes/apu-label-propagation/build.sh @@ -1,4 +1,7 @@ #!/bin/bash + +set -xe + mkdir -p ${PREFIX}/bin cd src diff --git a/recipes/apu-label-propagation/meta.yaml b/recipes/apu-label-propagation/meta.yaml index 45a66085517b2..d8e15873d5b8d 100644 --- a/recipes/apu-label-propagation/meta.yaml +++ b/recipes/apu-label-propagation/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 50424bf7df99b51dc71a4121beae89ef69b2bb4eaba559c99643baecb8544806 build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('apu-label-propagation', max_pin="x.x") }} @@ -25,3 +25,8 @@ about: home: https://github.com/AndMastro/NIAPU license: MIT summary: Adaptive Positive-Unlabelled label propagation + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From 15a67dd05d59a7443cdc085e4ef586f2eee05544 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 16 Aug 2024 17:58:59 +0300 Subject: [PATCH 1031/1589] msweep: add linux-aarch64 build (#50099) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/msweep/meta.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/msweep/meta.yaml b/recipes/msweep/meta.yaml index c566243b53c2b..5e02c6d00cb3c 100644 --- a/recipes/msweep/meta.yaml +++ b/recipes/msweep/meta.yaml @@ -12,7 +12,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 skip: true # [osx] run_exports: - {{ pin_subpackage('msweep', max_pin='x') }} @@ -24,9 +24,9 @@ requirements: - git >=2.10.0 - cmake >=3.0.0 - make + host: - llvm-openmp # [osx] - libgomp # [linux] - host: - zlib >=1.2.0 - xz >=5.2.0 - bzip2 >=1.0.6 @@ -42,5 +42,7 @@ about: summary: 'mSWEEP - bacterial community composition estimation from pseudoalignments' extra: + additional-platforms: + - linux-aarch64 identifiers: - doi:10.12688/wellcomeopenres.15639.2 From ba2f4498d6c5e805edc0dbf67f10fff396540bfb Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 16 Aug 2024 18:02:41 +0300 Subject: [PATCH 1032/1589] varfish-server-worker: add linux-aarch64 build (#50101) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/varfish-server-worker/build.sh | 6 +----- recipes/varfish-server-worker/meta.yaml | 6 ++++-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/recipes/varfish-server-worker/build.sh b/recipes/varfish-server-worker/build.sh index 403679dd60ea7..701401e625188 100644 --- a/recipes/varfish-server-worker/build.sh +++ b/recipes/varfish-server-worker/build.sh @@ -1,10 +1,6 @@ #!/bin/bash -e -# TODO: Remove the following export when pinning is updated and we use -# {{ compiler('rust') }} in the recipe. -export \ - CARGO_NET_GIT_FETCH_WITH_CLI=true \ - CARGO_HOME="${BUILD_PREFIX}/.cargo" +set -xe export BINDGEN_EXTRA_CLANG_ARGS="${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" diff --git a/recipes/varfish-server-worker/meta.yaml b/recipes/varfish-server-worker/meta.yaml index 9c20439be990d..e7c4ceb6229c5 100644 --- a/recipes/varfish-server-worker/meta.yaml +++ b/recipes/varfish-server-worker/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 skip: True # [osx] run_exports: - {{ pin_subpackage("varfish-server-worker", max_pin="x.x") }} @@ -18,7 +18,7 @@ requirements: build: - {{ compiler('c') }} - {{ compiler('cxx') }} - - rust >=1.30 + - {{ compiler('rust') }} - clangdev - pkg-config - protobuf @@ -43,5 +43,7 @@ about: Rust-based tool for the heavy lifting in varfish-server. extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - holtgrewe From 719750e12b3e28250be425879086f95577af077c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 16 Aug 2024 11:02:54 -0400 Subject: [PATCH 1033/1589] Update beacon2-import to 2.2.3 (#50112) --- recipes/beacon2-import/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/beacon2-import/meta.yaml b/recipes/beacon2-import/meta.yaml index 82600cad4a425..f660dbc9b3253 100644 --- a/recipes/beacon2-import/meta.yaml +++ b/recipes/beacon2-import/meta.yaml @@ -1,5 +1,5 @@ {% set name = "beacon2-import" %} -{% set version = "2.2.2" %} +{% set version = "2.2.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/beacon2_import-{{ version }}.tar.gz - sha256: 4926fb62d6375046d5944615a8891f13a41f1f2be5fc9646caf27add1fea4282 + sha256: 18b57e015b84d5352ce4e1336e73b204283ec8c1f1183aa916789a1f09f6ad77 build: entry_points: From 41bea0fe262440ad6bdbd1621098d99ef5186947 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 16 Aug 2024 11:03:16 -0400 Subject: [PATCH 1034/1589] Update mgnify-pipelines-toolkit to 0.1.5 (#50111) --- recipes/mgnify-pipelines-toolkit/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mgnify-pipelines-toolkit/meta.yaml b/recipes/mgnify-pipelines-toolkit/meta.yaml index 35cb14a8d7e3a..fabcf79ac58da 100644 --- a/recipes/mgnify-pipelines-toolkit/meta.yaml +++ b/recipes/mgnify-pipelines-toolkit/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mgnify-pipelines-toolkit" %} -{% set version = "0.1.4" %} +{% set version = "0.1.5" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mgnify_pipelines_toolkit-{{ version }}.tar.gz - sha256: ad7862883b901b5aad2e542f0ff3ba86733a99e46d95abe8483b63c525a584bf + sha256: 5cbde5250ebb858ab463960fa7569274f6a1d118bcc365b1905ddce01b73129f build: entry_points: From f15b9f4812814aef2ea648f5cbf0c37f7b2c8d2a Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 16 Aug 2024 18:04:40 +0300 Subject: [PATCH 1035/1589] nedbit-features-calculator: add aarch64/arm64 builds (#50102) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/nedbit-features-calculator/meta.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/recipes/nedbit-features-calculator/meta.yaml b/recipes/nedbit-features-calculator/meta.yaml index 88dbacd2dc3a5..390e2826acadf 100644 --- a/recipes/nedbit-features-calculator/meta.yaml +++ b/recipes/nedbit-features-calculator/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 50424bf7df99b51dc71a4121beae89ef69b2bb4eaba559c99643baecb8544806 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('nedbit-features-calculator', max_pin="x.x") }} @@ -25,3 +25,8 @@ about: home: https://github.com/AndMastro/NIAPU license: MIT summary: Network diffusion and biology-informed topological features + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From 107c6a5cfebeb08dbb4164db7be88585e016e962 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 16 Aug 2024 11:04:58 -0400 Subject: [PATCH 1036/1589] Update haplotaglr to 1.1.9 (#50113) --- recipes/haplotaglr/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/haplotaglr/meta.yaml b/recipes/haplotaglr/meta.yaml index 4ac843920c730..16e231f12c2eb 100644 --- a/recipes/haplotaglr/meta.yaml +++ b/recipes/haplotaglr/meta.yaml @@ -1,5 +1,5 @@ {% set name = "HaplotagLR" %} -{% set version = "1.1.8" %} +{% set version = "1.1.9" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 085f1c930ab0fa3452e2d421515419a8e0031d7cdb9b2a3f635ec994a708a490 + sha256: e8bdcdf8628583fc3e24f2d53fc316ac8a30c1514c258c62996251523f0a9299 build: number: 0 From 62ed70bbd2acdadfe7f106b36f103aab0ff3bbad Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 16 Aug 2024 18:59:31 +0300 Subject: [PATCH 1037/1589] ucsc-qactowig: add linux-aarch64 build (#50109) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-qactowig/build.sh | 24 ++++++++++++++++-------- recipes/ucsc-qactowig/include.patch | 6 +++--- recipes/ucsc-qactowig/meta.yaml | 22 +++++++++++++++------- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 50301baafa8bf..5611a7f4fd288 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -933,7 +933,6 @@ recipes/ucsc-psltopslx recipes/ucsc-pslxtofa recipes/ucsc-qacagplift recipes/ucsc-qactoqa -recipes/ucsc-qactowig recipes/ucsc-qatoqac recipes/ucsc-randomlines recipes/ucsc-rasqlquery diff --git a/recipes/ucsc-qactowig/build.sh b/recipes/ucsc-qactowig/build.sh index 246d8ae2ab1e3..2cfa1d2934098 100644 --- a/recipes/ucsc-qactowig/build.sh +++ b/recipes/ucsc-qactowig/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/qacToWig && make) -cp bin/qacToWig "$PREFIX/bin" -chmod +x "$PREFIX/bin/qacToWig" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/qacToWig && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/qacToWig "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/qacToWig" diff --git a/recipes/ucsc-qactowig/include.patch b/recipes/ucsc-qactowig/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-qactowig/include.patch +++ b/recipes/ucsc-qactowig/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-qactowig/meta.yaml b/recipes/ucsc-qactowig/meta.yaml index 70e06d45e11c1..0b905003df6a4 100644 --- a/recipes/ucsc-qactowig/meta.yaml +++ b/recipes/ucsc-qactowig/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-qactowig" %} {% set program = "qacToWig" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "convert from compressed quality score format to wiggle format." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From b26fbec0641ce052ac2e32d1355b8964b2941978 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 16 Aug 2024 18:59:48 +0300 Subject: [PATCH 1038/1589] ucsc-pslhisto: add linux-aarch64 build (#50108) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-pslhisto/build.sh | 24 ++++++++++++++++-------- recipes/ucsc-pslhisto/include.patch | 6 +++--- recipes/ucsc-pslhisto/meta.yaml | 22 +++++++++++++++------- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 5611a7f4fd288..014fd51d5f31f 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -912,7 +912,6 @@ recipes/ucsc-pslcat recipes/ucsc-pslcheck recipes/ucsc-psldropoverlap recipes/ucsc-pslfilter -recipes/ucsc-pslhisto recipes/ucsc-pslliftsubrangeblat recipes/ucsc-pslmap recipes/ucsc-pslmappostchain diff --git a/recipes/ucsc-pslhisto/build.sh b/recipes/ucsc-pslhisto/build.sh index 238e2991da267..d1f0b2a1cdc0a 100644 --- a/recipes/ucsc-pslhisto/build.sh +++ b/recipes/ucsc-pslhisto/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/pslHisto && make) -cp bin/pslHisto "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslHisto" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/pslHisto && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/pslHisto "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/pslHisto" diff --git a/recipes/ucsc-pslhisto/include.patch b/recipes/ucsc-pslhisto/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-pslhisto/include.patch +++ b/recipes/ucsc-pslhisto/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-pslhisto/meta.yaml b/recipes/ucsc-pslhisto/meta.yaml index 4c2c365449d80..404d4c7f221a3 100644 --- a/recipes/ucsc-pslhisto/meta.yaml +++ b/recipes/ucsc-pslhisto/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslhisto" %} {% set program = "pslHisto" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,20 +27,20 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" @@ -47,3 +49,9 @@ about: Collect counts on PSL alignments for making histograms. These then be analyzed with R, textHistogram, etc. " + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From 4a1122570ff3ef24ea2eaec3da879390aaf0fa95 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 16 Aug 2024 19:00:28 +0300 Subject: [PATCH 1039/1589] ucsc-pslrecalcmatch: add linux-aarch64 build (#50107) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-pslrecalcmatch/build.sh | 24 +++++++++++++++-------- recipes/ucsc-pslrecalcmatch/include.patch | 6 +++--- recipes/ucsc-pslrecalcmatch/meta.yaml | 22 ++++++++++++++------- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 014fd51d5f31f..e4d0d4dbe405b 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -920,7 +920,6 @@ recipes/ucsc-pslpairs recipes/ucsc-pslpartition recipes/ucsc-pslpretty recipes/ucsc-pslrc -recipes/ucsc-pslrecalcmatch recipes/ucsc-pslreps recipes/ucsc-pslscore recipes/ucsc-pslselect diff --git a/recipes/ucsc-pslrecalcmatch/build.sh b/recipes/ucsc-pslrecalcmatch/build.sh index 8627cd251a72a..41a0a5d53edfe 100644 --- a/recipes/ucsc-pslrecalcmatch/build.sh +++ b/recipes/ucsc-pslrecalcmatch/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/pslRecalcMatch && make) -cp bin/pslRecalcMatch "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslRecalcMatch" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/pslRecalcMatch && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/pslRecalcMatch "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/pslRecalcMatch" diff --git a/recipes/ucsc-pslrecalcmatch/include.patch b/recipes/ucsc-pslrecalcmatch/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-pslrecalcmatch/include.patch +++ b/recipes/ucsc-pslrecalcmatch/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-pslrecalcmatch/meta.yaml b/recipes/ucsc-pslrecalcmatch/meta.yaml index 346d395661228..ecff808f4ac50 100644 --- a/recipes/ucsc-pslrecalcmatch/meta.yaml +++ b/recipes/ucsc-pslrecalcmatch/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslrecalcmatch" %} {% set program = "pslRecalcMatch" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "Recalculate match,mismatch,repMatch columns in psl file." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From f670ff520b9d35b857bc8df3a46d6fd4a518e0cf Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 16 Aug 2024 12:01:29 -0400 Subject: [PATCH 1040/1589] Update quantms-utils to 0.0.9 (#50114) --- recipes/quantms-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/quantms-utils/meta.yaml b/recipes/quantms-utils/meta.yaml index 8ed626f8c28d1..cccce41a9db28 100644 --- a/recipes/quantms-utils/meta.yaml +++ b/recipes/quantms-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "quantms-utils" %} -{% set version = "0.0.8" %} +{% set version = "0.0.9" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/quantms_utils-{{ version }}.tar.gz - sha256: 1c18f90d274002a7de421b1afcda6c3500ef3ce21dafdf5ba950066ae7a71b15 + sha256: 72f86706f6dc10e7e332317b2b78e22acb33b63cff37d8c897871934ac60c2af build: entry_points: From 537f48c287f07403c439c901fb0b88fe316c8813 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Fri, 16 Aug 2024 21:58:48 +0200 Subject: [PATCH 1041/1589] Build bustools for aarch/arm (#50119) * Build bustools for aarch/arm * Update meta.yamlf --- recipes/bustools/meta.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/recipes/bustools/meta.yaml b/recipes/bustools/meta.yaml index d2bfdf335da0a..22fc8125fe0e8 100644 --- a/recipes/bustools/meta.yaml +++ b/recipes/bustools/meta.yaml @@ -9,7 +9,7 @@ source: sha256: ad5816152644ee615316daecf5883183994bd7cc96e6c008439123f4cd750b1f build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('bustools', max_pin="x.x") }} @@ -33,3 +33,8 @@ about: license_file: LICENSE summary: | bustools is a program for manipulating BUS files for single cell RNA-Seq datasets. + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From a8a877f323b806b2df8b0fc478c41466ed8e5ba7 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Fri, 16 Aug 2024 22:00:00 +0200 Subject: [PATCH 1042/1589] Add nanocount (#50117) --- recipes/nanocount/meta.yaml | 59 +++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 recipes/nanocount/meta.yaml diff --git a/recipes/nanocount/meta.yaml b/recipes/nanocount/meta.yaml new file mode 100644 index 0000000000000..90fbda93b8280 --- /dev/null +++ b/recipes/nanocount/meta.yaml @@ -0,0 +1,59 @@ +{% set name = "NanoCount" %} +{% set version = "1.0.0.post6" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/NanoCount-{{ version }}.tar.gz + sha256: 0f24e8526ce9a0df9894cacaac957f285c90bf1d2f98507bb183981cb0ea346e + +build: + entry_points: + - NanoCount=NanoCount.__main__:main + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + run_exports: + - {{ pin_subpackage('nanocount', max_pin='x') }} + +requirements: + host: + - python >=3.6 + - pip + run: + - python >=3.6 + - tqdm >=4.51.0 + - numpy >=1.19.4 + - pysam >=0.16.0 + - pandas >=1.1.4 + - colorlog >=4.1.0 + +test: + imports: + - NanoCount + - NanoCount.NanoCount + commands: + - pip check + - NanoCount --help + requires: + - pip + +about: + home: https://github.com/a-slide/NanoCount/ + doc_url: https://a-slide.github.io/NanoCount/ + summary: Transcript abundance estimation from Nanopore *direct-RNA sequencing* datasets + description: NanoCount estimates transcripts abundance from Oxford Nanopore *direct-RNA sequencing* datasets, using an expectation-maximization approach like RSEM, Kallisto, salmon, etc to handle the uncertainty of multi-mapping reads + license: MIT + licence_url: https://mit-license.org/ + license_file: LICENSE + +extra: + recipe-maintainers: + - corneliusroemer + identifiers: + - doi:10.1093/nar/gkab1129 + author: Adrien Leger + author_email: aleg@ebi.ac.uk + author_url: https://adrienleger.com From cf36b65cd3fe68384f2fa6627a501783264686db Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 16 Aug 2024 16:59:53 -0400 Subject: [PATCH 1043/1589] Update mehari to 0.27.0 (#50124) --- recipes/mehari/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mehari/meta.yaml b/recipes/mehari/meta.yaml index 9f32745c748c1..2c733259448fa 100644 --- a/recipes/mehari/meta.yaml +++ b/recipes/mehari/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.26.1" %} -{% set sha256 = "98d3aa2e219c9e6091c7e76a0bffd74d8ae2d4a96696984cb62739b0e718e537" %} +{% set version = "0.27.0" %} +{% set sha256 = "f29f2af3cbf0f8e94887dfbd8518ed3be693f85637aca6f2617ce42ee0cd7621" %} package: name: mehari From c3eae0c4705d9aa76ab7ba22efaca32d269b37b8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 17 Aug 2024 03:16:26 -0400 Subject: [PATCH 1044/1589] Update dice to 1.1.0 (#50128) --- recipes/dice/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/dice/meta.yaml b/recipes/dice/meta.yaml index 3bb08800d67bd..491b95d5b6b15 100644 --- a/recipes/dice/meta.yaml +++ b/recipes/dice/meta.yaml @@ -1,13 +1,13 @@ {% set name = "dice" %} -{% set version = "1.0.0" %} +{% set version = "1.1.0" %} package: name: '{{ name }}' version: '{{ version }}' source: - url: https://github.com/samsonweiner/DICE/archive/refs/tags/v1.0.0.tar.gz - sha256: 67288b5b73c61a66b2d4fd04329974c529a3744b57f0a59606d610403010213f + url: https://github.com/samsonweiner/DICE/archive/refs/tags/v1.1.0.tar.gz + sha256: 4130efd20af8726544350cef76015b4f9d1f1755fef1a4f63576a73755a0d8c0 build: noarch: python @@ -38,4 +38,4 @@ about: license_file: LICENSE summary: Cell lineage reconstruction from single-cell CNA data description: | - DICE (short for Distance-based Inference of Copy-number Evolution) is a collection of fast and accurate methods for reconstructing cell lineage trees from single-cell copy number aberration data. \ No newline at end of file + DICE (short for Distance-based Inference of Copy-number Evolution) is a collection of fast and accurate methods for reconstructing cell lineage trees from single-cell copy number aberration data. From 595421423d3e24d9ea620f1d71456d078f9396c2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 17 Aug 2024 17:15:43 -0400 Subject: [PATCH 1045/1589] Update argo to 0.1.0 (#50135) --- recipes/argo/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/argo/meta.yaml b/recipes/argo/meta.yaml index ef376602011c1..60613f68a3217 100644 --- a/recipes/argo/meta.yaml +++ b/recipes/argo/meta.yaml @@ -1,5 +1,5 @@ {% set name = "argo" %} -{% set version = "0.0.1" %} +{% set version = "0.1.0" %} package: name: '{{ name|lower }}' @@ -7,7 +7,7 @@ package: source: url: https://github.com/xinehc/argo/archive/refs/tags/v{{ version }}.tar.gz - sha256: 88d4993c1509442a933db4a5d406ac5af1d0816637e3d05e53735c188291a1b4 + sha256: 8dbe2606024c78ca471dea675e4aeaa88140cca0a2f989b2d40081cf6cd62cdc build: noarch: python From bca36b5379e076f99205449c2b60d7450bbb4f82 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 17 Aug 2024 17:16:09 -0400 Subject: [PATCH 1046/1589] Update ltr_retriever to 3.0.1 (#50127) --- recipes/ltr_retriever/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ltr_retriever/meta.yaml b/recipes/ltr_retriever/meta.yaml index 874f52dab9ced..a2e668b82c87b 100644 --- a/recipes/ltr_retriever/meta.yaml +++ b/recipes/ltr_retriever/meta.yaml @@ -1,6 +1,6 @@ {% set name = "LTR_retriever" %} -{% set version = "3.0.0" %} -{% set sha256 = "36b69e3ca4d2a5771072c65f52c2da17b9e3dc2215ef00f31dcd042e62429c37" %} +{% set version = "3.0.1" %} +{% set sha256 = "a3ca3bd8d81f3a8260e1386d03bd7f8a7aa42882f92ccbaa1a4fb1d8120658a8" %} package: name: "{{ name|lower }}" From 29c9d60bd65867c61c40d994514b717d2d39178a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 17 Aug 2024 17:16:49 -0400 Subject: [PATCH 1047/1589] Update ipyrad to 0.9.99 (#50122) --- recipes/ipyrad/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ipyrad/meta.yaml b/recipes/ipyrad/meta.yaml index 6b0081e1f255a..b8e9d2790d862 100644 --- a/recipes/ipyrad/meta.yaml +++ b/recipes/ipyrad/meta.yaml @@ -1,6 +1,6 @@ {% set name = "ipyrad" %} -{% set version = "0.9.98" %} -{% set sha256 = "f3e8912806070a247322aaf1281fa38ff1acd1c554cfd67db733c9ac5a725786" %} +{% set version = "0.9.99" %} +{% set sha256 = "7a769bcfea004d603415c1d5d2d782857c3d960e38c48586abe93f7f31667d9c" %} package: name: {{ name }} From 050bf91bb7dd0d863285bb01a985fc85a04d211f Mon Sep 17 00:00:00 2001 From: "H. Soon Gweon" Date: Mon, 19 Aug 2024 05:00:24 +0100 Subject: [PATCH 1048/1589] Update PIPITS to 3.1 (#50141) * Update PIPITS to 3.1 --------- Co-authored-by: Hyun Soon Gweon --- recipes/pipits/meta.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/recipes/pipits/meta.yaml b/recipes/pipits/meta.yaml index 8cb0fa5c54ccf..0c32e5afba401 100644 --- a/recipes/pipits/meta.yaml +++ b/recipes/pipits/meta.yaml @@ -1,14 +1,16 @@ package: name: pipits - version: "3.0" + version: "3.1" source: - url: https://github.com/hsgweon/pipits/archive/refs/tags/3.0.tar.gz - sha256: ee9f142e473e57b186760d940131610c16bdfe57eefca935df35779fd85377bd + url: https://github.com/hsgweon/pipits/archive/refs/tags/3.1.tar.gz + sha256: a51bdaf4ec22487b9ed6f9111568d370ce0f9732afc010a5d0de0e642af758d7 build: number: 0 noarch: python + run_exports: + - {{ pin_subpackage('pipits', max_pin="x") }} requirements: host: From 266d09cce654fb1652b4cc9394895c78a6e75d4a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 00:01:44 -0400 Subject: [PATCH 1049/1589] Update trust4 to 1.1.4 (#50139) --- recipes/trust4/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/trust4/meta.yaml b/recipes/trust4/meta.yaml index 9781bf90f5806..39d3efbb30704 100644 --- a/recipes/trust4/meta.yaml +++ b/recipes/trust4/meta.yaml @@ -1,17 +1,17 @@ -{% set version = "1.1.3" %} +{% set version = "1.1.4" %} package: name: trust4 version: '{{ version }}' build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('trust4', max_pin="x") }} source: url: https://github.com/liulab-dfci/TRUST4/archive/v{{ version }}.tar.gz - sha256: 99bfd50a742598e6a5fbf6318b0fadeec811f635bc1d7f5f49315b64a708c378 + sha256: c369ca538143b7aaf56d8d9d34f5c1024eaca425f1e2b8c845c78c2a29e6fbfb requirements: build: From 532267c2b66a61670e0ed32a95c007a07655445f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 00:02:31 -0400 Subject: [PATCH 1050/1589] Update vcfsim to 1.0.15.alpha (#50132) * Update vcfsim to 1.0.14.alpha * Update vcfsim to 1.0.15.alpha --- recipes/vcfsim/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/vcfsim/meta.yaml b/recipes/vcfsim/meta.yaml index 0e0d2533661dc..8e4e84dec1e90 100644 --- a/recipes/vcfsim/meta.yaml +++ b/recipes/vcfsim/meta.yaml @@ -1,5 +1,5 @@ {% set name = "vcfsim" %} -{% set version = "1.0.13.alpha" %} +{% set version = "1.0.15.alpha" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Pie115/VCFSimulator-SamukLab/archive/{{ version }}.tar.gz - sha256: 0a9f0edb40982cb2b18ca47bfabeaa3cb769c392c4fb6acd15a32b1a1c14d4b7 + sha256: b69df4b6eb7702a201220b524c3dc6a0caa7573682b74d82a0b31885965b13b4 build: noarch: python From 63ba4eb934eb841b1945b92c3936c738d3614552 Mon Sep 17 00:00:00 2001 From: Zilong-Li Date: Mon, 19 Aug 2024 06:16:14 +0200 Subject: [PATCH 1051/1589] Update r-stitch version 1.7.0 (#50027) * bump stitch version 1.7.0 * clean up recipe * Update r-rcpp version * Update r-rcpp version * Update build.sh * Update libcxx version on osx * Update build.sh * Update build.sh * Update build.sh * Update meta.yaml * Delete recipes/r-stitch/conda_build_config.yaml * Update build.sh * Update build.sh --------- Co-authored-by: mencian --- recipes/r-stitch/build.sh | 12 +- recipes/r-stitch/conda_build_config.yaml | 4 - recipes/r-stitch/meta.yaml | 18 +- recipes/r-stitch/seqlib-aarch64.patch | 9340 ---------------------- 4 files changed, 11 insertions(+), 9363 deletions(-) delete mode 100644 recipes/r-stitch/conda_build_config.yaml delete mode 100644 recipes/r-stitch/seqlib-aarch64.patch diff --git a/recipes/r-stitch/build.sh b/recipes/r-stitch/build.sh index 56a790ad9541b..c2e44c1a2092e 100644 --- a/recipes/r-stitch/build.sh +++ b/recipes/r-stitch/build.sh @@ -3,11 +3,7 @@ set -xe mkdir -p $PREFIX/bin -cp STITCH.R $PREFIX/bin - -# patch a Git submodule -pushd src/SeqLib/ -patch -p1 < ${RECIPE_DIR}/seqlib-aarch64.patch -popd - -$R CMD INSTALL --build --install-tests . +cp -rf STITCH.R $PREFIX/bin + +${R} CMD INSTALL --build . + diff --git a/recipes/r-stitch/conda_build_config.yaml b/recipes/r-stitch/conda_build_config.yaml deleted file mode 100644 index 4f2dcf10e9f82..0000000000000 --- a/recipes/r-stitch/conda_build_config.yaml +++ /dev/null @@ -1,4 +0,0 @@ -c_compiler_version: - - 12 -cxx_compiler_version: - - 12 \ No newline at end of file diff --git a/recipes/r-stitch/meta.yaml b/recipes/r-stitch/meta.yaml index 34537d7679da9..dbf74b5db8888 100644 --- a/recipes/r-stitch/meta.yaml +++ b/recipes/r-stitch/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.6.11" %} -{% set sha256_package = "eb6a8e121eb9689597da9ec5a105ba5392e458ab30510fe26b260b81a6d9fdb0" %} +{% set version = "1.7.0" %} +{% set sha256_package = "818ac096fb3bfbe51b0107020a37f0b86ac1497d7b47a2de8179f2c4e3e34bba" %} {% set sha256_script = "0c61d79cf519e5c5ae33807725577da3d1599bcc89413c3a6bce3fb7c99090c7" %} package: @@ -25,10 +25,10 @@ requirements: - automake - pkg-config - make - - libcxx <17 # [osx] + - libcxx >=16 # [osx] host: - r-base - - r-rcpp >=0.12.18 + - r-rcpp <=1.0.12 - r-rcpparmadillo >=0.8.600.0.0 - r-data.table >=1.11.8 - r-rrbgen >=0.0.6 @@ -38,7 +38,7 @@ requirements: - mpc >=1.1.0 - libblas - zlib - - libcxx <17 # [osx] + - libcxx >=16 # [osx] run: - r-base - r-rcpp >=0.12.18 @@ -46,15 +46,10 @@ requirements: - r-data.table >=1.11.8 - r-rrbgen >=0.0.6 - r-optparse - - xz - - gmp - - mpfr - - mpc >=1.1.0 - r-testthat >=2.0.0 - htslib >=1.4 - samtools >=1.4 - rsync - - zlib test: commands: @@ -66,7 +61,7 @@ about: license: GPL-3.0-only license_family: GPL3 license_file: LICENSE - summary: STITCH - Sequencing To Imputation Through Constructing Haplotypes + summary: "STITCH - Sequencing To Imputation Through Constructing Haplotypes." doc_url: https://github.com/rwdavies/stitch dev_url: https://github.com/rwdavies/stitch @@ -74,4 +69,5 @@ extra: additional-platforms: - linux-aarch64 recipe-maintainers: + - Zilong-Li - rwdavies diff --git a/recipes/r-stitch/seqlib-aarch64.patch b/recipes/r-stitch/seqlib-aarch64.patch deleted file mode 100644 index b52fd6c6937ed..0000000000000 --- a/recipes/r-stitch/seqlib-aarch64.patch +++ /dev/null @@ -1,9340 +0,0 @@ -diff --git c/SeqLib/sse2neon.h i/SeqLib/sse2neon.h -new file mode 100644 -index 0000000..2b12721 ---- /dev/null -+++ i/SeqLib/sse2neon.h -@@ -0,0 +1,9301 @@ -+#ifndef SSE2NEON_H -+#define SSE2NEON_H -+ -+/* -+ * sse2neon is freely redistributable under the MIT License. -+ * -+ * Copyright (c) 2015-2024 SSE2NEON Contributors. -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining a copy -+ * of this software and associated documentation files (the "Software"), to deal -+ * in the Software without restriction, including without limitation the rights -+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -+ * copies of the Software, and to permit persons to whom the Software is -+ * furnished to do so, subject to the following conditions: -+ * -+ * The above copyright notice and this permission notice shall be included in -+ * all copies or substantial portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -+ * SOFTWARE. -+ */ -+ -+// This header file provides a simple API translation layer -+// between SSE intrinsics to their corresponding Arm/Aarch64 NEON versions -+// -+// Contributors to this work are: -+// John W. Ratcliff -+// Brandon Rowlett -+// Ken Fast -+// Eric van Beurden -+// Alexander Potylitsin -+// Hasindu Gamaarachchi -+// Jim Huang -+// Mark Cheng -+// Malcolm James MacLeod -+// Devin Hussey (easyaspi314) -+// Sebastian Pop -+// Developer Ecosystem Engineering -+// Danila Kutenin -+// François Turban (JishinMaster) -+// Pei-Hsuan Hung -+// Yang-Hao Yuan -+// Syoyo Fujita -+// Brecht Van Lommel -+// Jonathan Hue -+// Cuda Chen -+// Aymen Qader -+// Anthony Roberts -+ -+/* Tunable configurations */ -+ -+/* Enable precise implementation of math operations -+ * This would slow down the computation a bit, but gives consistent result with -+ * x86 SSE. (e.g. would solve a hole or NaN pixel in the rendering result) -+ */ -+/* _mm_min|max_ps|ss|pd|sd */ -+#ifndef SSE2NEON_PRECISE_MINMAX -+#define SSE2NEON_PRECISE_MINMAX (0) -+#endif -+/* _mm_rcp_ps */ -+#ifndef SSE2NEON_PRECISE_DIV -+#define SSE2NEON_PRECISE_DIV (0) -+#endif -+/* _mm_sqrt_ps and _mm_rsqrt_ps */ -+#ifndef SSE2NEON_PRECISE_SQRT -+#define SSE2NEON_PRECISE_SQRT (0) -+#endif -+/* _mm_dp_pd */ -+#ifndef SSE2NEON_PRECISE_DP -+#define SSE2NEON_PRECISE_DP (0) -+#endif -+ -+/* Enable inclusion of windows.h on MSVC platforms -+ * This makes _mm_clflush functional on windows, as there is no builtin. -+ */ -+#ifndef SSE2NEON_INCLUDE_WINDOWS_H -+#define SSE2NEON_INCLUDE_WINDOWS_H (0) -+#endif -+ -+/* compiler specific definitions */ -+#if defined(__GNUC__) || defined(__clang__) -+#pragma push_macro("FORCE_INLINE") -+#pragma push_macro("ALIGN_STRUCT") -+#define FORCE_INLINE static inline __attribute__((always_inline)) -+#define ALIGN_STRUCT(x) __attribute__((aligned(x))) -+#define _sse2neon_likely(x) __builtin_expect(!!(x), 1) -+#define _sse2neon_unlikely(x) __builtin_expect(!!(x), 0) -+#elif defined(_MSC_VER) -+#if _MSVC_TRADITIONAL -+#error Using the traditional MSVC preprocessor is not supported! Use /Zc:preprocessor instead. -+#endif -+#ifndef FORCE_INLINE -+#define FORCE_INLINE static inline -+#endif -+#ifndef ALIGN_STRUCT -+#define ALIGN_STRUCT(x) __declspec(align(x)) -+#endif -+#define _sse2neon_likely(x) (x) -+#define _sse2neon_unlikely(x) (x) -+#else -+#pragma message("Macro name collisions may happen with unsupported compilers.") -+#endif -+ -+ -+#if defined(__GNUC__) && !defined(__clang__) -+#pragma push_macro("FORCE_INLINE_OPTNONE") -+#define FORCE_INLINE_OPTNONE static inline __attribute__((optimize("O0"))) -+#elif defined(__clang__) -+#pragma push_macro("FORCE_INLINE_OPTNONE") -+#define FORCE_INLINE_OPTNONE static inline __attribute__((optnone)) -+#else -+#define FORCE_INLINE_OPTNONE FORCE_INLINE -+#endif -+ -+#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ < 10 -+#warning "GCC versions earlier than 10 are not supported." -+#endif -+ -+/* C language does not allow initializing a variable with a function call. */ -+#ifdef __cplusplus -+#define _sse2neon_const static const -+#else -+#define _sse2neon_const const -+#endif -+ -+#include -+#include -+ -+#if defined(_WIN32) -+/* Definitions for _mm_{malloc,free} are provided by -+ * from both MinGW-w64 and MSVC. -+ */ -+#define SSE2NEON_ALLOC_DEFINED -+#endif -+ -+/* If using MSVC */ -+#ifdef _MSC_VER -+#include -+#if SSE2NEON_INCLUDE_WINDOWS_H -+#include -+#include -+#endif -+ -+#if !defined(__cplusplus) -+#error SSE2NEON only supports C++ compilation with this compiler -+#endif -+ -+#ifdef SSE2NEON_ALLOC_DEFINED -+#include -+#endif -+ -+#if (defined(_M_AMD64) || defined(__x86_64__)) || \ -+ (defined(_M_ARM64) || defined(__arm64__)) -+#define SSE2NEON_HAS_BITSCAN64 -+#endif -+#endif -+ -+#if defined(__GNUC__) || defined(__clang__) -+#define _sse2neon_define0(type, s, body) \ -+ __extension__({ \ -+ type _a = (s); \ -+ body \ -+ }) -+#define _sse2neon_define1(type, s, body) \ -+ __extension__({ \ -+ type _a = (s); \ -+ body \ -+ }) -+#define _sse2neon_define2(type, a, b, body) \ -+ __extension__({ \ -+ type _a = (a), _b = (b); \ -+ body \ -+ }) -+#define _sse2neon_return(ret) (ret) -+#else -+#define _sse2neon_define0(type, a, body) [=](type _a) { body }(a) -+#define _sse2neon_define1(type, a, body) [](type _a) { body }(a) -+#define _sse2neon_define2(type, a, b, body) \ -+ [](type _a, type _b) { body }((a), (b)) -+#define _sse2neon_return(ret) return ret -+#endif -+ -+#define _sse2neon_init(...) \ -+ { \ -+ __VA_ARGS__ \ -+ } -+ -+/* Compiler barrier */ -+#if defined(_MSC_VER) -+#define SSE2NEON_BARRIER() _ReadWriteBarrier() -+#else -+#define SSE2NEON_BARRIER() \ -+ do { \ -+ __asm__ __volatile__("" ::: "memory"); \ -+ (void) 0; \ -+ } while (0) -+#endif -+ -+/* Memory barriers -+ * __atomic_thread_fence does not include a compiler barrier; instead, -+ * the barrier is part of __atomic_load/__atomic_store's "volatile-like" -+ * semantics. -+ */ -+#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) -+#include -+#endif -+ -+FORCE_INLINE void _sse2neon_smp_mb(void) -+{ -+ SSE2NEON_BARRIER(); -+#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && \ -+ !defined(__STDC_NO_ATOMICS__) -+ atomic_thread_fence(memory_order_seq_cst); -+#elif defined(__GNUC__) || defined(__clang__) -+ __atomic_thread_fence(__ATOMIC_SEQ_CST); -+#else /* MSVC */ -+ __dmb(_ARM64_BARRIER_ISH); -+#endif -+} -+ -+/* Architecture-specific build options */ -+/* FIXME: #pragma GCC push_options is only available on GCC */ -+#if defined(__GNUC__) -+#if defined(__arm__) && __ARM_ARCH == 7 -+/* According to ARM C Language Extensions Architecture specification, -+ * __ARM_NEON is defined to a value indicating the Advanced SIMD (NEON) -+ * architecture supported. -+ */ -+#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) -+#error "You must enable NEON instructions (e.g. -mfpu=neon) to use SSE2NEON." -+#endif -+#if !defined(__clang__) -+#pragma GCC push_options -+#pragma GCC target("fpu=neon") -+#endif -+#elif defined(__aarch64__) || defined(_M_ARM64) -+#if !defined(__clang__) && !defined(_MSC_VER) -+#pragma GCC push_options -+#pragma GCC target("+simd") -+#endif -+#elif __ARM_ARCH == 8 -+#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) -+#error \ -+ "You must enable NEON instructions (e.g. -mfpu=neon-fp-armv8) to use SSE2NEON." -+#endif -+#if !defined(__clang__) && !defined(_MSC_VER) -+#pragma GCC push_options -+#endif -+#else -+#error \ -+ "Unsupported target. Must be either ARMv7-A+NEON or ARMv8-A \ -+(you could try setting target explicitly with -march or -mcpu)" -+#endif -+#endif -+ -+#include -+#if (!defined(__aarch64__) && !defined(_M_ARM64)) && (__ARM_ARCH == 8) -+#if defined __has_include && __has_include() -+#include -+#endif -+#endif -+ -+/* Apple Silicon cache lines are double of what is commonly used by Intel, AMD -+ * and other Arm microarchitectures use. -+ * From sysctl -a on Apple M1: -+ * hw.cachelinesize: 128 -+ */ -+#if defined(__APPLE__) && (defined(__aarch64__) || defined(__arm64__)) -+#define SSE2NEON_CACHELINE_SIZE 128 -+#else -+#define SSE2NEON_CACHELINE_SIZE 64 -+#endif -+ -+/* Rounding functions require either Aarch64 instructions or libm fallback */ -+#if !defined(__aarch64__) && !defined(_M_ARM64) -+#include -+#endif -+ -+/* On ARMv7, some registers, such as PMUSERENR and PMCCNTR, are read-only -+ * or even not accessible in user mode. -+ * To write or access to these registers in user mode, -+ * we have to perform syscall instead. -+ */ -+#if (!defined(__aarch64__) && !defined(_M_ARM64)) -+#include -+#endif -+ -+/* "__has_builtin" can be used to query support for built-in functions -+ * provided by gcc/clang and other compilers that support it. -+ */ -+#ifndef __has_builtin /* GCC prior to 10 or non-clang compilers */ -+/* Compatibility with gcc <= 9 */ -+#if defined(__GNUC__) && (__GNUC__ <= 9) -+#define __has_builtin(x) HAS##x -+#define HAS__builtin_popcount 1 -+#define HAS__builtin_popcountll 1 -+ -+// __builtin_shuffle introduced in GCC 4.7.0 -+#if (__GNUC__ >= 5) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) -+#define HAS__builtin_shuffle 1 -+#else -+#define HAS__builtin_shuffle 0 -+#endif -+ -+#define HAS__builtin_shufflevector 0 -+#define HAS__builtin_nontemporal_store 0 -+#else -+#define __has_builtin(x) 0 -+#endif -+#endif -+ -+/** -+ * MACRO for shuffle parameter for _mm_shuffle_ps(). -+ * Argument fp3 is a digit[0123] that represents the fp from argument "b" -+ * of mm_shuffle_ps that will be placed in fp3 of result. fp2 is the same -+ * for fp2 in result. fp1 is a digit[0123] that represents the fp from -+ * argument "a" of mm_shuffle_ps that will be places in fp1 of result. -+ * fp0 is the same for fp0 of result. -+ */ -+#define _MM_SHUFFLE(fp3, fp2, fp1, fp0) \ -+ (((fp3) << 6) | ((fp2) << 4) | ((fp1) << 2) | ((fp0))) -+ -+#if __has_builtin(__builtin_shufflevector) -+#define _sse2neon_shuffle(type, a, b, ...) \ -+ __builtin_shufflevector(a, b, __VA_ARGS__) -+#elif __has_builtin(__builtin_shuffle) -+#define _sse2neon_shuffle(type, a, b, ...) \ -+ __extension__({ \ -+ type tmp = {__VA_ARGS__}; \ -+ __builtin_shuffle(a, b, tmp); \ -+ }) -+#endif -+ -+#ifdef _sse2neon_shuffle -+#define vshuffle_s16(a, b, ...) _sse2neon_shuffle(int16x4_t, a, b, __VA_ARGS__) -+#define vshuffleq_s16(a, b, ...) _sse2neon_shuffle(int16x8_t, a, b, __VA_ARGS__) -+#define vshuffle_s32(a, b, ...) _sse2neon_shuffle(int32x2_t, a, b, __VA_ARGS__) -+#define vshuffleq_s32(a, b, ...) _sse2neon_shuffle(int32x4_t, a, b, __VA_ARGS__) -+#define vshuffle_s64(a, b, ...) _sse2neon_shuffle(int64x1_t, a, b, __VA_ARGS__) -+#define vshuffleq_s64(a, b, ...) _sse2neon_shuffle(int64x2_t, a, b, __VA_ARGS__) -+#endif -+ -+/* Rounding mode macros. */ -+#define _MM_FROUND_TO_NEAREST_INT 0x00 -+#define _MM_FROUND_TO_NEG_INF 0x01 -+#define _MM_FROUND_TO_POS_INF 0x02 -+#define _MM_FROUND_TO_ZERO 0x03 -+#define _MM_FROUND_CUR_DIRECTION 0x04 -+#define _MM_FROUND_NO_EXC 0x08 -+#define _MM_FROUND_RAISE_EXC 0x00 -+#define _MM_FROUND_NINT (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_RAISE_EXC) -+#define _MM_FROUND_FLOOR (_MM_FROUND_TO_NEG_INF | _MM_FROUND_RAISE_EXC) -+#define _MM_FROUND_CEIL (_MM_FROUND_TO_POS_INF | _MM_FROUND_RAISE_EXC) -+#define _MM_FROUND_TRUNC (_MM_FROUND_TO_ZERO | _MM_FROUND_RAISE_EXC) -+#define _MM_FROUND_RINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_RAISE_EXC) -+#define _MM_FROUND_NEARBYINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_NO_EXC) -+#define _MM_ROUND_NEAREST 0x0000 -+#define _MM_ROUND_DOWN 0x2000 -+#define _MM_ROUND_UP 0x4000 -+#define _MM_ROUND_TOWARD_ZERO 0x6000 -+/* Flush zero mode macros. */ -+#define _MM_FLUSH_ZERO_MASK 0x8000 -+#define _MM_FLUSH_ZERO_ON 0x8000 -+#define _MM_FLUSH_ZERO_OFF 0x0000 -+/* Denormals are zeros mode macros. */ -+#define _MM_DENORMALS_ZERO_MASK 0x0040 -+#define _MM_DENORMALS_ZERO_ON 0x0040 -+#define _MM_DENORMALS_ZERO_OFF 0x0000 -+ -+/* indicate immediate constant argument in a given range */ -+#define __constrange(a, b) const -+ -+/* A few intrinsics accept traditional data types like ints or floats, but -+ * most operate on data types that are specific to SSE. -+ * If a vector type ends in d, it contains doubles, and if it does not have -+ * a suffix, it contains floats. An integer vector type can contain any type -+ * of integer, from chars to shorts to unsigned long longs. -+ */ -+typedef int64x1_t __m64; -+typedef float32x4_t __m128; /* 128-bit vector containing 4 floats */ -+// On ARM 32-bit architecture, the float64x2_t is not supported. -+// The data type __m128d should be represented in a different way for related -+// intrinsic conversion. -+#if defined(__aarch64__) || defined(_M_ARM64) -+typedef float64x2_t __m128d; /* 128-bit vector containing 2 doubles */ -+#else -+typedef float32x4_t __m128d; -+#endif -+typedef int64x2_t __m128i; /* 128-bit vector containing integers */ -+ -+// Some intrinsics operate on unaligned data types. -+typedef int16_t ALIGN_STRUCT(1) unaligned_int16_t; -+typedef int32_t ALIGN_STRUCT(1) unaligned_int32_t; -+typedef int64_t ALIGN_STRUCT(1) unaligned_int64_t; -+ -+// __int64 is defined in the Intrinsics Guide which maps to different datatype -+// in different data model -+#if !(defined(_WIN32) || defined(_WIN64) || defined(__int64)) -+#if (defined(__x86_64__) || defined(__i386__)) -+#define __int64 long long -+#else -+#define __int64 int64_t -+#endif -+#endif -+ -+/* type-safe casting between types */ -+ -+#define vreinterpretq_m128_f16(x) vreinterpretq_f32_f16(x) -+#define vreinterpretq_m128_f32(x) (x) -+#define vreinterpretq_m128_f64(x) vreinterpretq_f32_f64(x) -+ -+#define vreinterpretq_m128_u8(x) vreinterpretq_f32_u8(x) -+#define vreinterpretq_m128_u16(x) vreinterpretq_f32_u16(x) -+#define vreinterpretq_m128_u32(x) vreinterpretq_f32_u32(x) -+#define vreinterpretq_m128_u64(x) vreinterpretq_f32_u64(x) -+ -+#define vreinterpretq_m128_s8(x) vreinterpretq_f32_s8(x) -+#define vreinterpretq_m128_s16(x) vreinterpretq_f32_s16(x) -+#define vreinterpretq_m128_s32(x) vreinterpretq_f32_s32(x) -+#define vreinterpretq_m128_s64(x) vreinterpretq_f32_s64(x) -+ -+#define vreinterpretq_f16_m128(x) vreinterpretq_f16_f32(x) -+#define vreinterpretq_f32_m128(x) (x) -+#define vreinterpretq_f64_m128(x) vreinterpretq_f64_f32(x) -+ -+#define vreinterpretq_u8_m128(x) vreinterpretq_u8_f32(x) -+#define vreinterpretq_u16_m128(x) vreinterpretq_u16_f32(x) -+#define vreinterpretq_u32_m128(x) vreinterpretq_u32_f32(x) -+#define vreinterpretq_u64_m128(x) vreinterpretq_u64_f32(x) -+ -+#define vreinterpretq_s8_m128(x) vreinterpretq_s8_f32(x) -+#define vreinterpretq_s16_m128(x) vreinterpretq_s16_f32(x) -+#define vreinterpretq_s32_m128(x) vreinterpretq_s32_f32(x) -+#define vreinterpretq_s64_m128(x) vreinterpretq_s64_f32(x) -+ -+#define vreinterpretq_m128i_s8(x) vreinterpretq_s64_s8(x) -+#define vreinterpretq_m128i_s16(x) vreinterpretq_s64_s16(x) -+#define vreinterpretq_m128i_s32(x) vreinterpretq_s64_s32(x) -+#define vreinterpretq_m128i_s64(x) (x) -+ -+#define vreinterpretq_m128i_u8(x) vreinterpretq_s64_u8(x) -+#define vreinterpretq_m128i_u16(x) vreinterpretq_s64_u16(x) -+#define vreinterpretq_m128i_u32(x) vreinterpretq_s64_u32(x) -+#define vreinterpretq_m128i_u64(x) vreinterpretq_s64_u64(x) -+ -+#define vreinterpretq_f32_m128i(x) vreinterpretq_f32_s64(x) -+#define vreinterpretq_f64_m128i(x) vreinterpretq_f64_s64(x) -+ -+#define vreinterpretq_s8_m128i(x) vreinterpretq_s8_s64(x) -+#define vreinterpretq_s16_m128i(x) vreinterpretq_s16_s64(x) -+#define vreinterpretq_s32_m128i(x) vreinterpretq_s32_s64(x) -+#define vreinterpretq_s64_m128i(x) (x) -+ -+#define vreinterpretq_u8_m128i(x) vreinterpretq_u8_s64(x) -+#define vreinterpretq_u16_m128i(x) vreinterpretq_u16_s64(x) -+#define vreinterpretq_u32_m128i(x) vreinterpretq_u32_s64(x) -+#define vreinterpretq_u64_m128i(x) vreinterpretq_u64_s64(x) -+ -+#define vreinterpret_m64_s8(x) vreinterpret_s64_s8(x) -+#define vreinterpret_m64_s16(x) vreinterpret_s64_s16(x) -+#define vreinterpret_m64_s32(x) vreinterpret_s64_s32(x) -+#define vreinterpret_m64_s64(x) (x) -+ -+#define vreinterpret_m64_u8(x) vreinterpret_s64_u8(x) -+#define vreinterpret_m64_u16(x) vreinterpret_s64_u16(x) -+#define vreinterpret_m64_u32(x) vreinterpret_s64_u32(x) -+#define vreinterpret_m64_u64(x) vreinterpret_s64_u64(x) -+ -+#define vreinterpret_m64_f16(x) vreinterpret_s64_f16(x) -+#define vreinterpret_m64_f32(x) vreinterpret_s64_f32(x) -+#define vreinterpret_m64_f64(x) vreinterpret_s64_f64(x) -+ -+#define vreinterpret_u8_m64(x) vreinterpret_u8_s64(x) -+#define vreinterpret_u16_m64(x) vreinterpret_u16_s64(x) -+#define vreinterpret_u32_m64(x) vreinterpret_u32_s64(x) -+#define vreinterpret_u64_m64(x) vreinterpret_u64_s64(x) -+ -+#define vreinterpret_s8_m64(x) vreinterpret_s8_s64(x) -+#define vreinterpret_s16_m64(x) vreinterpret_s16_s64(x) -+#define vreinterpret_s32_m64(x) vreinterpret_s32_s64(x) -+#define vreinterpret_s64_m64(x) (x) -+ -+#define vreinterpret_f32_m64(x) vreinterpret_f32_s64(x) -+ -+#if defined(__aarch64__) || defined(_M_ARM64) -+#define vreinterpretq_m128d_s32(x) vreinterpretq_f64_s32(x) -+#define vreinterpretq_m128d_s64(x) vreinterpretq_f64_s64(x) -+ -+#define vreinterpretq_m128d_u64(x) vreinterpretq_f64_u64(x) -+ -+#define vreinterpretq_m128d_f32(x) vreinterpretq_f64_f32(x) -+#define vreinterpretq_m128d_f64(x) (x) -+ -+#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f64(x) -+ -+#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f64(x) -+#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f64(x) -+ -+#define vreinterpretq_f64_m128d(x) (x) -+#define vreinterpretq_f32_m128d(x) vreinterpretq_f32_f64(x) -+#else -+#define vreinterpretq_m128d_s32(x) vreinterpretq_f32_s32(x) -+#define vreinterpretq_m128d_s64(x) vreinterpretq_f32_s64(x) -+ -+#define vreinterpretq_m128d_u32(x) vreinterpretq_f32_u32(x) -+#define vreinterpretq_m128d_u64(x) vreinterpretq_f32_u64(x) -+ -+#define vreinterpretq_m128d_f32(x) (x) -+ -+#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f32(x) -+ -+#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f32(x) -+#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f32(x) -+ -+#define vreinterpretq_f32_m128d(x) (x) -+#endif -+ -+// A struct is defined in this header file called 'SIMDVec' which can be used -+// by applications which attempt to access the contents of an __m128 struct -+// directly. It is important to note that accessing the __m128 struct directly -+// is bad coding practice by Microsoft: @see: -+// https://learn.microsoft.com/en-us/cpp/cpp/m128 -+// -+// However, some legacy source code may try to access the contents of an __m128 -+// struct directly so the developer can use the SIMDVec as an alias for it. Any -+// casting must be done manually by the developer, as you cannot cast or -+// otherwise alias the base NEON data type for intrinsic operations. -+// -+// union intended to allow direct access to an __m128 variable using the names -+// that the MSVC compiler provides. This union should really only be used when -+// trying to access the members of the vector as integer values. GCC/clang -+// allow native access to the float members through a simple array access -+// operator (in C since 4.6, in C++ since 4.8). -+// -+// Ideally direct accesses to SIMD vectors should not be used since it can cause -+// a performance hit. If it really is needed however, the original __m128 -+// variable can be aliased with a pointer to this union and used to access -+// individual components. The use of this union should be hidden behind a macro -+// that is used throughout the codebase to access the members instead of always -+// declaring this type of variable. -+typedef union ALIGN_STRUCT(16) SIMDVec { -+ float m128_f32[4]; // as floats - DON'T USE. Added for convenience. -+ int8_t m128_i8[16]; // as signed 8-bit integers. -+ int16_t m128_i16[8]; // as signed 16-bit integers. -+ int32_t m128_i32[4]; // as signed 32-bit integers. -+ int64_t m128_i64[2]; // as signed 64-bit integers. -+ uint8_t m128_u8[16]; // as unsigned 8-bit integers. -+ uint16_t m128_u16[8]; // as unsigned 16-bit integers. -+ uint32_t m128_u32[4]; // as unsigned 32-bit integers. -+ uint64_t m128_u64[2]; // as unsigned 64-bit integers. -+} SIMDVec; -+ -+// casting using SIMDVec -+#define vreinterpretq_nth_u64_m128i(x, n) (((SIMDVec *) &x)->m128_u64[n]) -+#define vreinterpretq_nth_u32_m128i(x, n) (((SIMDVec *) &x)->m128_u32[n]) -+#define vreinterpretq_nth_u8_m128i(x, n) (((SIMDVec *) &x)->m128_u8[n]) -+ -+/* SSE macros */ -+#define _MM_GET_FLUSH_ZERO_MODE _sse2neon_mm_get_flush_zero_mode -+#define _MM_SET_FLUSH_ZERO_MODE _sse2neon_mm_set_flush_zero_mode -+#define _MM_GET_DENORMALS_ZERO_MODE _sse2neon_mm_get_denormals_zero_mode -+#define _MM_SET_DENORMALS_ZERO_MODE _sse2neon_mm_set_denormals_zero_mode -+ -+// Function declaration -+// SSE -+FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void); -+FORCE_INLINE __m128 _mm_move_ss(__m128, __m128); -+FORCE_INLINE __m128 _mm_or_ps(__m128, __m128); -+FORCE_INLINE __m128 _mm_set_ps1(float); -+FORCE_INLINE __m128 _mm_setzero_ps(void); -+// SSE2 -+FORCE_INLINE __m128i _mm_and_si128(__m128i, __m128i); -+FORCE_INLINE __m128i _mm_castps_si128(__m128); -+FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i, __m128i); -+FORCE_INLINE __m128i _mm_cvtps_epi32(__m128); -+FORCE_INLINE __m128d _mm_move_sd(__m128d, __m128d); -+FORCE_INLINE __m128i _mm_or_si128(__m128i, __m128i); -+FORCE_INLINE __m128i _mm_set_epi32(int, int, int, int); -+FORCE_INLINE __m128i _mm_set_epi64x(int64_t, int64_t); -+FORCE_INLINE __m128d _mm_set_pd(double, double); -+FORCE_INLINE __m128i _mm_set1_epi32(int); -+FORCE_INLINE __m128i _mm_setzero_si128(void); -+// SSE4.1 -+FORCE_INLINE __m128d _mm_ceil_pd(__m128d); -+FORCE_INLINE __m128 _mm_ceil_ps(__m128); -+FORCE_INLINE __m128d _mm_floor_pd(__m128d); -+FORCE_INLINE __m128 _mm_floor_ps(__m128); -+FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d, int); -+FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128, int); -+// SSE4.2 -+FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t, uint8_t); -+ -+/* Backwards compatibility for compilers with lack of specific type support */ -+ -+// Older gcc does not define vld1q_u8_x4 type -+#if defined(__GNUC__) && !defined(__clang__) && \ -+ ((__GNUC__ <= 13 && defined(__arm__)) || \ -+ (__GNUC__ == 10 && __GNUC_MINOR__ < 3 && defined(__aarch64__)) || \ -+ (__GNUC__ <= 9 && defined(__aarch64__))) -+FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) -+{ -+ uint8x16x4_t ret; -+ ret.val[0] = vld1q_u8(p + 0); -+ ret.val[1] = vld1q_u8(p + 16); -+ ret.val[2] = vld1q_u8(p + 32); -+ ret.val[3] = vld1q_u8(p + 48); -+ return ret; -+} -+#else -+// Wraps vld1q_u8_x4 -+FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) -+{ -+ return vld1q_u8_x4(p); -+} -+#endif -+ -+#if !defined(__aarch64__) && !defined(_M_ARM64) -+/* emulate vaddv u8 variant */ -+FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) -+{ -+ const uint64x1_t v1 = vpaddl_u32(vpaddl_u16(vpaddl_u8(v8))); -+ return vget_lane_u8(vreinterpret_u8_u64(v1), 0); -+} -+#else -+// Wraps vaddv_u8 -+FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) -+{ -+ return vaddv_u8(v8); -+} -+#endif -+ -+#if !defined(__aarch64__) && !defined(_M_ARM64) -+/* emulate vaddvq u8 variant */ -+FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) -+{ -+ uint8x8_t tmp = vpadd_u8(vget_low_u8(a), vget_high_u8(a)); -+ uint8_t res = 0; -+ for (int i = 0; i < 8; ++i) -+ res += tmp[i]; -+ return res; -+} -+#else -+// Wraps vaddvq_u8 -+FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) -+{ -+ return vaddvq_u8(a); -+} -+#endif -+ -+#if !defined(__aarch64__) && !defined(_M_ARM64) -+/* emulate vaddvq u16 variant */ -+FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) -+{ -+ uint32x4_t m = vpaddlq_u16(a); -+ uint64x2_t n = vpaddlq_u32(m); -+ uint64x1_t o = vget_low_u64(n) + vget_high_u64(n); -+ -+ return vget_lane_u32((uint32x2_t) o, 0); -+} -+#else -+// Wraps vaddvq_u16 -+FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) -+{ -+ return vaddvq_u16(a); -+} -+#endif -+ -+/* Function Naming Conventions -+ * The naming convention of SSE intrinsics is straightforward. A generic SSE -+ * intrinsic function is given as follows: -+ * _mm__ -+ * -+ * The parts of this format are given as follows: -+ * 1. describes the operation performed by the intrinsic -+ * 2. identifies the data type of the function's primary arguments -+ * -+ * This last part, , is a little complicated. It identifies the -+ * content of the input values, and can be set to any of the following values: -+ * + ps - vectors contain floats (ps stands for packed single-precision) -+ * + pd - vectors contain doubles (pd stands for packed double-precision) -+ * + epi8/epi16/epi32/epi64 - vectors contain 8-bit/16-bit/32-bit/64-bit -+ * signed integers -+ * + epu8/epu16/epu32/epu64 - vectors contain 8-bit/16-bit/32-bit/64-bit -+ * unsigned integers -+ * + si128 - unspecified 128-bit vector or 256-bit vector -+ * + m128/m128i/m128d - identifies input vector types when they are different -+ * than the type of the returned vector -+ * -+ * For example, _mm_setzero_ps. The _mm implies that the function returns -+ * a 128-bit vector. The _ps at the end implies that the argument vectors -+ * contain floats. -+ * -+ * A complete example: Byte Shuffle - pshufb (_mm_shuffle_epi8) -+ * // Set packed 16-bit integers. 128 bits, 8 short, per 16 bits -+ * __m128i v_in = _mm_setr_epi16(1, 2, 3, 4, 5, 6, 7, 8); -+ * // Set packed 8-bit integers -+ * // 128 bits, 16 chars, per 8 bits -+ * __m128i v_perm = _mm_setr_epi8(1, 0, 2, 3, 8, 9, 10, 11, -+ * 4, 5, 12, 13, 6, 7, 14, 15); -+ * // Shuffle packed 8-bit integers -+ * __m128i v_out = _mm_shuffle_epi8(v_in, v_perm); // pshufb -+ */ -+ -+/* Constants for use with _mm_prefetch. */ -+enum _mm_hint { -+ _MM_HINT_NTA = 0, /* load data to L1 and L2 cache, mark it as NTA */ -+ _MM_HINT_T0 = 1, /* load data to L1 and L2 cache */ -+ _MM_HINT_T1 = 2, /* load data to L2 cache only */ -+ _MM_HINT_T2 = 3, /* load data to L2 cache only, mark it as NTA */ -+}; -+ -+// The bit field mapping to the FPCR(floating-point control register) -+typedef struct { -+ uint16_t res0; -+ uint8_t res1 : 6; -+ uint8_t bit22 : 1; -+ uint8_t bit23 : 1; -+ uint8_t bit24 : 1; -+ uint8_t res2 : 7; -+#if defined(__aarch64__) || defined(_M_ARM64) -+ uint32_t res3; -+#endif -+} fpcr_bitfield; -+ -+// Takes the upper 64 bits of a and places it in the low end of the result -+// Takes the lower 64 bits of b and places it into the high end of the result. -+FORCE_INLINE __m128 _mm_shuffle_ps_1032(__m128 a, __m128 b) -+{ -+ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); -+ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); -+ return vreinterpretq_m128_f32(vcombine_f32(a32, b10)); -+} -+ -+// takes the lower two 32-bit values from a and swaps them and places in high -+// end of result takes the higher two 32 bit values from b and swaps them and -+// places in low end of result. -+FORCE_INLINE __m128 _mm_shuffle_ps_2301(__m128 a, __m128 b) -+{ -+ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); -+ float32x2_t b23 = vrev64_f32(vget_high_f32(vreinterpretq_f32_m128(b))); -+ return vreinterpretq_m128_f32(vcombine_f32(a01, b23)); -+} -+ -+FORCE_INLINE __m128 _mm_shuffle_ps_0321(__m128 a, __m128 b) -+{ -+ float32x2_t a21 = vget_high_f32( -+ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); -+ float32x2_t b03 = vget_low_f32( -+ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); -+ return vreinterpretq_m128_f32(vcombine_f32(a21, b03)); -+} -+ -+FORCE_INLINE __m128 _mm_shuffle_ps_2103(__m128 a, __m128 b) -+{ -+ float32x2_t a03 = vget_low_f32( -+ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); -+ float32x2_t b21 = vget_high_f32( -+ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); -+ return vreinterpretq_m128_f32(vcombine_f32(a03, b21)); -+} -+ -+FORCE_INLINE __m128 _mm_shuffle_ps_1010(__m128 a, __m128 b) -+{ -+ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); -+ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); -+ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); -+} -+ -+FORCE_INLINE __m128 _mm_shuffle_ps_1001(__m128 a, __m128 b) -+{ -+ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); -+ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); -+ return vreinterpretq_m128_f32(vcombine_f32(a01, b10)); -+} -+ -+FORCE_INLINE __m128 _mm_shuffle_ps_0101(__m128 a, __m128 b) -+{ -+ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); -+ float32x2_t b01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(b))); -+ return vreinterpretq_m128_f32(vcombine_f32(a01, b01)); -+} -+ -+// keeps the low 64 bits of b in the low and puts the high 64 bits of a in the -+// high -+FORCE_INLINE __m128 _mm_shuffle_ps_3210(__m128 a, __m128 b) -+{ -+ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); -+ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); -+ return vreinterpretq_m128_f32(vcombine_f32(a10, b32)); -+} -+ -+FORCE_INLINE __m128 _mm_shuffle_ps_0011(__m128 a, __m128 b) -+{ -+ float32x2_t a11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 1); -+ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); -+ return vreinterpretq_m128_f32(vcombine_f32(a11, b00)); -+} -+ -+FORCE_INLINE __m128 _mm_shuffle_ps_0022(__m128 a, __m128 b) -+{ -+ float32x2_t a22 = -+ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); -+ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); -+ return vreinterpretq_m128_f32(vcombine_f32(a22, b00)); -+} -+ -+FORCE_INLINE __m128 _mm_shuffle_ps_2200(__m128 a, __m128 b) -+{ -+ float32x2_t a00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 0); -+ float32x2_t b22 = -+ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(b)), 0); -+ return vreinterpretq_m128_f32(vcombine_f32(a00, b22)); -+} -+ -+FORCE_INLINE __m128 _mm_shuffle_ps_3202(__m128 a, __m128 b) -+{ -+ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); -+ float32x2_t a22 = -+ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); -+ float32x2_t a02 = vset_lane_f32(a0, a22, 1); /* TODO: use vzip ?*/ -+ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); -+ return vreinterpretq_m128_f32(vcombine_f32(a02, b32)); -+} -+ -+FORCE_INLINE __m128 _mm_shuffle_ps_1133(__m128 a, __m128 b) -+{ -+ float32x2_t a33 = -+ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 1); -+ float32x2_t b11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 1); -+ return vreinterpretq_m128_f32(vcombine_f32(a33, b11)); -+} -+ -+FORCE_INLINE __m128 _mm_shuffle_ps_2010(__m128 a, __m128 b) -+{ -+ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); -+ float32_t b2 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 2); -+ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); -+ float32x2_t b20 = vset_lane_f32(b2, b00, 1); -+ return vreinterpretq_m128_f32(vcombine_f32(a10, b20)); -+} -+ -+FORCE_INLINE __m128 _mm_shuffle_ps_2001(__m128 a, __m128 b) -+{ -+ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); -+ float32_t b2 = vgetq_lane_f32(b, 2); -+ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); -+ float32x2_t b20 = vset_lane_f32(b2, b00, 1); -+ return vreinterpretq_m128_f32(vcombine_f32(a01, b20)); -+} -+ -+FORCE_INLINE __m128 _mm_shuffle_ps_2032(__m128 a, __m128 b) -+{ -+ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); -+ float32_t b2 = vgetq_lane_f32(b, 2); -+ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); -+ float32x2_t b20 = vset_lane_f32(b2, b00, 1); -+ return vreinterpretq_m128_f32(vcombine_f32(a32, b20)); -+} -+ -+// For MSVC, we check only if it is ARM64, as every single ARM64 processor -+// supported by WoA has crypto extensions. If this changes in the future, -+// this can be verified via the runtime-only method of: -+// IsProcessorFeaturePresent(PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE) -+#if (defined(_M_ARM64) && !defined(__clang__)) || \ -+ (defined(__ARM_FEATURE_CRYPTO) && \ -+ (defined(__aarch64__) || __has_builtin(__builtin_arm_crypto_vmullp64))) -+// Wraps vmull_p64 -+FORCE_INLINE uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) -+{ -+ poly64_t a = vget_lane_p64(vreinterpret_p64_u64(_a), 0); -+ poly64_t b = vget_lane_p64(vreinterpret_p64_u64(_b), 0); -+#if defined(_MSC_VER) -+ __n64 a1 = {a}, b1 = {b}; -+ return vreinterpretq_u64_p128(vmull_p64(a1, b1)); -+#else -+ return vreinterpretq_u64_p128(vmull_p64(a, b)); -+#endif -+} -+#else // ARMv7 polyfill -+// ARMv7/some A64 lacks vmull_p64, but it has vmull_p8. -+// -+// vmull_p8 calculates 8 8-bit->16-bit polynomial multiplies, but we need a -+// 64-bit->128-bit polynomial multiply. -+// -+// It needs some work and is somewhat slow, but it is still faster than all -+// known scalar methods. -+// -+// Algorithm adapted to C from -+// https://www.workofard.com/2017/07/ghash-for-low-end-cores/, which is adapted -+// from "Fast Software Polynomial Multiplication on ARM Processors Using the -+// NEON Engine" by Danilo Camara, Conrado Gouvea, Julio Lopez and Ricardo Dahab -+// (https://hal.inria.fr/hal-01506572) -+static uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) -+{ -+ poly8x8_t a = vreinterpret_p8_u64(_a); -+ poly8x8_t b = vreinterpret_p8_u64(_b); -+ -+ // Masks -+ uint8x16_t k48_32 = vcombine_u8(vcreate_u8(0x0000ffffffffffff), -+ vcreate_u8(0x00000000ffffffff)); -+ uint8x16_t k16_00 = vcombine_u8(vcreate_u8(0x000000000000ffff), -+ vcreate_u8(0x0000000000000000)); -+ -+ // Do the multiplies, rotating with vext to get all combinations -+ uint8x16_t d = vreinterpretq_u8_p16(vmull_p8(a, b)); // D = A0 * B0 -+ uint8x16_t e = -+ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 1))); // E = A0 * B1 -+ uint8x16_t f = -+ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 1), b)); // F = A1 * B0 -+ uint8x16_t g = -+ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 2))); // G = A0 * B2 -+ uint8x16_t h = -+ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 2), b)); // H = A2 * B0 -+ uint8x16_t i = -+ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 3))); // I = A0 * B3 -+ uint8x16_t j = -+ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 3), b)); // J = A3 * B0 -+ uint8x16_t k = -+ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 4))); // L = A0 * B4 -+ -+ // Add cross products -+ uint8x16_t l = veorq_u8(e, f); // L = E + F -+ uint8x16_t m = veorq_u8(g, h); // M = G + H -+ uint8x16_t n = veorq_u8(i, j); // N = I + J -+ -+ // Interleave. Using vzip1 and vzip2 prevents Clang from emitting TBL -+ // instructions. -+#if defined(__aarch64__) -+ uint8x16_t lm_p0 = vreinterpretq_u8_u64( -+ vzip1q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); -+ uint8x16_t lm_p1 = vreinterpretq_u8_u64( -+ vzip2q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); -+ uint8x16_t nk_p0 = vreinterpretq_u8_u64( -+ vzip1q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); -+ uint8x16_t nk_p1 = vreinterpretq_u8_u64( -+ vzip2q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); -+#else -+ uint8x16_t lm_p0 = vcombine_u8(vget_low_u8(l), vget_low_u8(m)); -+ uint8x16_t lm_p1 = vcombine_u8(vget_high_u8(l), vget_high_u8(m)); -+ uint8x16_t nk_p0 = vcombine_u8(vget_low_u8(n), vget_low_u8(k)); -+ uint8x16_t nk_p1 = vcombine_u8(vget_high_u8(n), vget_high_u8(k)); -+#endif -+ // t0 = (L) (P0 + P1) << 8 -+ // t1 = (M) (P2 + P3) << 16 -+ uint8x16_t t0t1_tmp = veorq_u8(lm_p0, lm_p1); -+ uint8x16_t t0t1_h = vandq_u8(lm_p1, k48_32); -+ uint8x16_t t0t1_l = veorq_u8(t0t1_tmp, t0t1_h); -+ -+ // t2 = (N) (P4 + P5) << 24 -+ // t3 = (K) (P6 + P7) << 32 -+ uint8x16_t t2t3_tmp = veorq_u8(nk_p0, nk_p1); -+ uint8x16_t t2t3_h = vandq_u8(nk_p1, k16_00); -+ uint8x16_t t2t3_l = veorq_u8(t2t3_tmp, t2t3_h); -+ -+ // De-interleave -+#if defined(__aarch64__) -+ uint8x16_t t0 = vreinterpretq_u8_u64( -+ vuzp1q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); -+ uint8x16_t t1 = vreinterpretq_u8_u64( -+ vuzp2q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); -+ uint8x16_t t2 = vreinterpretq_u8_u64( -+ vuzp1q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); -+ uint8x16_t t3 = vreinterpretq_u8_u64( -+ vuzp2q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); -+#else -+ uint8x16_t t1 = vcombine_u8(vget_high_u8(t0t1_l), vget_high_u8(t0t1_h)); -+ uint8x16_t t0 = vcombine_u8(vget_low_u8(t0t1_l), vget_low_u8(t0t1_h)); -+ uint8x16_t t3 = vcombine_u8(vget_high_u8(t2t3_l), vget_high_u8(t2t3_h)); -+ uint8x16_t t2 = vcombine_u8(vget_low_u8(t2t3_l), vget_low_u8(t2t3_h)); -+#endif -+ // Shift the cross products -+ uint8x16_t t0_shift = vextq_u8(t0, t0, 15); // t0 << 8 -+ uint8x16_t t1_shift = vextq_u8(t1, t1, 14); // t1 << 16 -+ uint8x16_t t2_shift = vextq_u8(t2, t2, 13); // t2 << 24 -+ uint8x16_t t3_shift = vextq_u8(t3, t3, 12); // t3 << 32 -+ -+ // Accumulate the products -+ uint8x16_t cross1 = veorq_u8(t0_shift, t1_shift); -+ uint8x16_t cross2 = veorq_u8(t2_shift, t3_shift); -+ uint8x16_t mix = veorq_u8(d, cross1); -+ uint8x16_t r = veorq_u8(mix, cross2); -+ return vreinterpretq_u64_u8(r); -+} -+#endif // ARMv7 polyfill -+ -+// C equivalent: -+// __m128i _mm_shuffle_epi32_default(__m128i a, -+// __constrange(0, 255) int imm) { -+// __m128i ret; -+// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; -+// ret[2] = a[(imm >> 4) & 0x03]; ret[3] = a[(imm >> 6) & 0x03]; -+// return ret; -+// } -+#define _mm_shuffle_epi32_default(a, imm) \ -+ vreinterpretq_m128i_s32(vsetq_lane_s32( \ -+ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 6) & 0x3), \ -+ vsetq_lane_s32( \ -+ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 4) & 0x3), \ -+ vsetq_lane_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), \ -+ ((imm) >> 2) & 0x3), \ -+ vmovq_n_s32(vgetq_lane_s32( \ -+ vreinterpretq_s32_m128i(a), (imm) & (0x3))), \ -+ 1), \ -+ 2), \ -+ 3)) -+ -+// Takes the upper 64 bits of a and places it in the low end of the result -+// Takes the lower 64 bits of a and places it into the high end of the result. -+FORCE_INLINE __m128i _mm_shuffle_epi_1032(__m128i a) -+{ -+ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); -+ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); -+ return vreinterpretq_m128i_s32(vcombine_s32(a32, a10)); -+} -+ -+// takes the lower two 32-bit values from a and swaps them and places in low end -+// of result takes the higher two 32 bit values from a and swaps them and places -+// in high end of result. -+FORCE_INLINE __m128i _mm_shuffle_epi_2301(__m128i a) -+{ -+ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); -+ int32x2_t a23 = vrev64_s32(vget_high_s32(vreinterpretq_s32_m128i(a))); -+ return vreinterpretq_m128i_s32(vcombine_s32(a01, a23)); -+} -+ -+// rotates the least significant 32 bits into the most significant 32 bits, and -+// shifts the rest down -+FORCE_INLINE __m128i _mm_shuffle_epi_0321(__m128i a) -+{ -+ return vreinterpretq_m128i_s32( -+ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 1)); -+} -+ -+// rotates the most significant 32 bits into the least significant 32 bits, and -+// shifts the rest up -+FORCE_INLINE __m128i _mm_shuffle_epi_2103(__m128i a) -+{ -+ return vreinterpretq_m128i_s32( -+ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 3)); -+} -+ -+// gets the lower 64 bits of a, and places it in the upper 64 bits -+// gets the lower 64 bits of a and places it in the lower 64 bits -+FORCE_INLINE __m128i _mm_shuffle_epi_1010(__m128i a) -+{ -+ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); -+ return vreinterpretq_m128i_s32(vcombine_s32(a10, a10)); -+} -+ -+// gets the lower 64 bits of a, swaps the 0 and 1 elements, and places it in the -+// lower 64 bits gets the lower 64 bits of a, and places it in the upper 64 bits -+FORCE_INLINE __m128i _mm_shuffle_epi_1001(__m128i a) -+{ -+ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); -+ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); -+ return vreinterpretq_m128i_s32(vcombine_s32(a01, a10)); -+} -+ -+// gets the lower 64 bits of a, swaps the 0 and 1 elements and places it in the -+// upper 64 bits gets the lower 64 bits of a, swaps the 0 and 1 elements, and -+// places it in the lower 64 bits -+FORCE_INLINE __m128i _mm_shuffle_epi_0101(__m128i a) -+{ -+ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); -+ return vreinterpretq_m128i_s32(vcombine_s32(a01, a01)); -+} -+ -+FORCE_INLINE __m128i _mm_shuffle_epi_2211(__m128i a) -+{ -+ int32x2_t a11 = vdup_lane_s32(vget_low_s32(vreinterpretq_s32_m128i(a)), 1); -+ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); -+ return vreinterpretq_m128i_s32(vcombine_s32(a11, a22)); -+} -+ -+FORCE_INLINE __m128i _mm_shuffle_epi_0122(__m128i a) -+{ -+ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); -+ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); -+ return vreinterpretq_m128i_s32(vcombine_s32(a22, a01)); -+} -+ -+FORCE_INLINE __m128i _mm_shuffle_epi_3332(__m128i a) -+{ -+ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); -+ int32x2_t a33 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 1); -+ return vreinterpretq_m128i_s32(vcombine_s32(a32, a33)); -+} -+ -+#if defined(__aarch64__) || defined(_M_ARM64) -+#define _mm_shuffle_epi32_splat(a, imm) \ -+ vreinterpretq_m128i_s32(vdupq_laneq_s32(vreinterpretq_s32_m128i(a), (imm))) -+#else -+#define _mm_shuffle_epi32_splat(a, imm) \ -+ vreinterpretq_m128i_s32( \ -+ vdupq_n_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)))) -+#endif -+ -+// NEON does not support a general purpose permute intrinsic. -+// Shuffle single-precision (32-bit) floating-point elements in a using the -+// control in imm8, and store the results in dst. -+// -+// C equivalent: -+// __m128 _mm_shuffle_ps_default(__m128 a, __m128 b, -+// __constrange(0, 255) int imm) { -+// __m128 ret; -+// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; -+// ret[2] = b[(imm >> 4) & 0x03]; ret[3] = b[(imm >> 6) & 0x03]; -+// return ret; -+// } -+// -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_ps -+#define _mm_shuffle_ps_default(a, b, imm) \ -+ vreinterpretq_m128_f32(vsetq_lane_f32( \ -+ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 6) & 0x3), \ -+ vsetq_lane_f32( \ -+ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 4) & 0x3), \ -+ vsetq_lane_f32( \ -+ vgetq_lane_f32(vreinterpretq_f32_m128(a), ((imm) >> 2) & 0x3), \ -+ vmovq_n_f32( \ -+ vgetq_lane_f32(vreinterpretq_f32_m128(a), (imm) & (0x3))), \ -+ 1), \ -+ 2), \ -+ 3)) -+ -+// Shuffle 16-bit integers in the low 64 bits of a using the control in imm8. -+// Store the results in the low 64 bits of dst, with the high 64 bits being -+// copied from a to dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflelo_epi16 -+#define _mm_shufflelo_epi16_function(a, imm) \ -+ _sse2neon_define1( \ -+ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ -+ int16x4_t lowBits = vget_low_s16(ret); \ -+ ret = vsetq_lane_s16(vget_lane_s16(lowBits, (imm) & (0x3)), ret, 0); \ -+ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 2) & 0x3), ret, \ -+ 1); \ -+ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 4) & 0x3), ret, \ -+ 2); \ -+ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 6) & 0x3), ret, \ -+ 3); \ -+ _sse2neon_return(vreinterpretq_m128i_s16(ret));) -+ -+// Shuffle 16-bit integers in the high 64 bits of a using the control in imm8. -+// Store the results in the high 64 bits of dst, with the low 64 bits being -+// copied from a to dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflehi_epi16 -+#define _mm_shufflehi_epi16_function(a, imm) \ -+ _sse2neon_define1( \ -+ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ -+ int16x4_t highBits = vget_high_s16(ret); \ -+ ret = vsetq_lane_s16(vget_lane_s16(highBits, (imm) & (0x3)), ret, 4); \ -+ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 2) & 0x3), ret, \ -+ 5); \ -+ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 4) & 0x3), ret, \ -+ 6); \ -+ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 6) & 0x3), ret, \ -+ 7); \ -+ _sse2neon_return(vreinterpretq_m128i_s16(ret));) -+ -+/* MMX */ -+ -+//_mm_empty is a no-op on arm -+FORCE_INLINE void _mm_empty(void) {} -+ -+/* SSE */ -+ -+// Add packed single-precision (32-bit) floating-point elements in a and b, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ps -+FORCE_INLINE __m128 _mm_add_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_f32( -+ vaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); -+} -+ -+// Add the lower single-precision (32-bit) floating-point element in a and b, -+// store the result in the lower element of dst, and copy the upper 3 packed -+// elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ss -+FORCE_INLINE __m128 _mm_add_ss(__m128 a, __m128 b) -+{ -+ float32_t b0 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); -+ float32x4_t value = vsetq_lane_f32(b0, vdupq_n_f32(0), 0); -+ // the upper values in the result must be the remnants of . -+ return vreinterpretq_m128_f32(vaddq_f32(a, value)); -+} -+ -+// Compute the bitwise AND of packed single-precision (32-bit) floating-point -+// elements in a and b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_ps -+FORCE_INLINE __m128 _mm_and_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_s32( -+ vandq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); -+} -+ -+// Compute the bitwise NOT of packed single-precision (32-bit) floating-point -+// elements in a and then AND with b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_ps -+FORCE_INLINE __m128 _mm_andnot_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_s32( -+ vbicq_s32(vreinterpretq_s32_m128(b), -+ vreinterpretq_s32_m128(a))); // *NOTE* argument swap -+} -+ -+// Average packed unsigned 16-bit integers in a and b, and store the results in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu16 -+FORCE_INLINE __m64 _mm_avg_pu16(__m64 a, __m64 b) -+{ -+ return vreinterpret_m64_u16( -+ vrhadd_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b))); -+} -+ -+// Average packed unsigned 8-bit integers in a and b, and store the results in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu8 -+FORCE_INLINE __m64 _mm_avg_pu8(__m64 a, __m64 b) -+{ -+ return vreinterpret_m64_u8( -+ vrhadd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); -+} -+ -+// Compare packed single-precision (32-bit) floating-point elements in a and b -+// for equality, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ps -+FORCE_INLINE __m128 _mm_cmpeq_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_u32( -+ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point elements in a and -+// b for equality, store the result in the lower element of dst, and copy the -+// upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ss -+FORCE_INLINE __m128 _mm_cmpeq_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_cmpeq_ps(a, b)); -+} -+ -+// Compare packed single-precision (32-bit) floating-point elements in a and b -+// for greater-than-or-equal, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ps -+FORCE_INLINE __m128 _mm_cmpge_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_u32( -+ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point elements in a and -+// b for greater-than-or-equal, store the result in the lower element of dst, -+// and copy the upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ss -+FORCE_INLINE __m128 _mm_cmpge_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_cmpge_ps(a, b)); -+} -+ -+// Compare packed single-precision (32-bit) floating-point elements in a and b -+// for greater-than, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ps -+FORCE_INLINE __m128 _mm_cmpgt_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_u32( -+ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point elements in a and -+// b for greater-than, store the result in the lower element of dst, and copy -+// the upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ss -+FORCE_INLINE __m128 _mm_cmpgt_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_cmpgt_ps(a, b)); -+} -+ -+// Compare packed single-precision (32-bit) floating-point elements in a and b -+// for less-than-or-equal, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ps -+FORCE_INLINE __m128 _mm_cmple_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_u32( -+ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point elements in a and -+// b for less-than-or-equal, store the result in the lower element of dst, and -+// copy the upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ss -+FORCE_INLINE __m128 _mm_cmple_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_cmple_ps(a, b)); -+} -+ -+// Compare packed single-precision (32-bit) floating-point elements in a and b -+// for less-than, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ps -+FORCE_INLINE __m128 _mm_cmplt_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_u32( -+ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point elements in a and -+// b for less-than, store the result in the lower element of dst, and copy the -+// upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ss -+FORCE_INLINE __m128 _mm_cmplt_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_cmplt_ps(a, b)); -+} -+ -+// Compare packed single-precision (32-bit) floating-point elements in a and b -+// for not-equal, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ps -+FORCE_INLINE __m128 _mm_cmpneq_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_u32(vmvnq_u32( -+ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point elements in a and -+// b for not-equal, store the result in the lower element of dst, and copy the -+// upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ss -+FORCE_INLINE __m128 _mm_cmpneq_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_cmpneq_ps(a, b)); -+} -+ -+// Compare packed single-precision (32-bit) floating-point elements in a and b -+// for not-greater-than-or-equal, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ps -+FORCE_INLINE __m128 _mm_cmpnge_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_u32(vmvnq_u32( -+ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point elements in a and -+// b for not-greater-than-or-equal, store the result in the lower element of -+// dst, and copy the upper 3 packed elements from a to the upper elements of -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ss -+FORCE_INLINE __m128 _mm_cmpnge_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_cmpnge_ps(a, b)); -+} -+ -+// Compare packed single-precision (32-bit) floating-point elements in a and b -+// for not-greater-than, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ps -+FORCE_INLINE __m128 _mm_cmpngt_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_u32(vmvnq_u32( -+ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point elements in a and -+// b for not-greater-than, store the result in the lower element of dst, and -+// copy the upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ss -+FORCE_INLINE __m128 _mm_cmpngt_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_cmpngt_ps(a, b)); -+} -+ -+// Compare packed single-precision (32-bit) floating-point elements in a and b -+// for not-less-than-or-equal, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ps -+FORCE_INLINE __m128 _mm_cmpnle_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_u32(vmvnq_u32( -+ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point elements in a and -+// b for not-less-than-or-equal, store the result in the lower element of dst, -+// and copy the upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ss -+FORCE_INLINE __m128 _mm_cmpnle_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_cmpnle_ps(a, b)); -+} -+ -+// Compare packed single-precision (32-bit) floating-point elements in a and b -+// for not-less-than, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ps -+FORCE_INLINE __m128 _mm_cmpnlt_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_u32(vmvnq_u32( -+ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point elements in a and -+// b for not-less-than, store the result in the lower element of dst, and copy -+// the upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ss -+FORCE_INLINE __m128 _mm_cmpnlt_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_cmpnlt_ps(a, b)); -+} -+ -+// Compare packed single-precision (32-bit) floating-point elements in a and b -+// to see if neither is NaN, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ps -+// -+// See also: -+// http://stackoverflow.com/questions/8627331/what-does-ordered-unordered-comparison-mean -+// http://stackoverflow.com/questions/29349621/neon-isnanval-intrinsics -+FORCE_INLINE __m128 _mm_cmpord_ps(__m128 a, __m128 b) -+{ -+ // Note: NEON does not have ordered compare builtin -+ // Need to compare a eq a and b eq b to check for NaN -+ // Do AND of results to get final -+ uint32x4_t ceqaa = -+ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); -+ uint32x4_t ceqbb = -+ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); -+ return vreinterpretq_m128_u32(vandq_u32(ceqaa, ceqbb)); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point elements in a and -+// b to see if neither is NaN, store the result in the lower element of dst, and -+// copy the upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ss -+FORCE_INLINE __m128 _mm_cmpord_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_cmpord_ps(a, b)); -+} -+ -+// Compare packed single-precision (32-bit) floating-point elements in a and b -+// to see if either is NaN, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ps -+FORCE_INLINE __m128 _mm_cmpunord_ps(__m128 a, __m128 b) -+{ -+ uint32x4_t f32a = -+ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); -+ uint32x4_t f32b = -+ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); -+ return vreinterpretq_m128_u32(vmvnq_u32(vandq_u32(f32a, f32b))); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point elements in a and -+// b to see if either is NaN, store the result in the lower element of dst, and -+// copy the upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ss -+FORCE_INLINE __m128 _mm_cmpunord_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_cmpunord_ps(a, b)); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point element in a and b -+// for equality, and return the boolean result (0 or 1). -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_ss -+FORCE_INLINE int _mm_comieq_ss(__m128 a, __m128 b) -+{ -+ uint32x4_t a_eq_b = -+ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); -+ return vgetq_lane_u32(a_eq_b, 0) & 0x1; -+} -+ -+// Compare the lower single-precision (32-bit) floating-point element in a and b -+// for greater-than-or-equal, and return the boolean result (0 or 1). -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_ss -+FORCE_INLINE int _mm_comige_ss(__m128 a, __m128 b) -+{ -+ uint32x4_t a_ge_b = -+ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); -+ return vgetq_lane_u32(a_ge_b, 0) & 0x1; -+} -+ -+// Compare the lower single-precision (32-bit) floating-point element in a and b -+// for greater-than, and return the boolean result (0 or 1). -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_ss -+FORCE_INLINE int _mm_comigt_ss(__m128 a, __m128 b) -+{ -+ uint32x4_t a_gt_b = -+ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); -+ return vgetq_lane_u32(a_gt_b, 0) & 0x1; -+} -+ -+// Compare the lower single-precision (32-bit) floating-point element in a and b -+// for less-than-or-equal, and return the boolean result (0 or 1). -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_ss -+FORCE_INLINE int _mm_comile_ss(__m128 a, __m128 b) -+{ -+ uint32x4_t a_le_b = -+ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); -+ return vgetq_lane_u32(a_le_b, 0) & 0x1; -+} -+ -+// Compare the lower single-precision (32-bit) floating-point element in a and b -+// for less-than, and return the boolean result (0 or 1). -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_ss -+FORCE_INLINE int _mm_comilt_ss(__m128 a, __m128 b) -+{ -+ uint32x4_t a_lt_b = -+ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); -+ return vgetq_lane_u32(a_lt_b, 0) & 0x1; -+} -+ -+// Compare the lower single-precision (32-bit) floating-point element in a and b -+// for not-equal, and return the boolean result (0 or 1). -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_ss -+FORCE_INLINE int _mm_comineq_ss(__m128 a, __m128 b) -+{ -+ return !_mm_comieq_ss(a, b); -+} -+ -+// Convert packed signed 32-bit integers in b to packed single-precision -+// (32-bit) floating-point elements, store the results in the lower 2 elements -+// of dst, and copy the upper 2 packed elements from a to the upper elements of -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_pi2ps -+FORCE_INLINE __m128 _mm_cvt_pi2ps(__m128 a, __m64 b) -+{ -+ return vreinterpretq_m128_f32( -+ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), -+ vget_high_f32(vreinterpretq_f32_m128(a)))); -+} -+ -+// Convert packed single-precision (32-bit) floating-point elements in a to -+// packed 32-bit integers, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ps2pi -+FORCE_INLINE __m64 _mm_cvt_ps2pi(__m128 a) -+{ -+#if (defined(__aarch64__) || defined(_M_ARM64)) || \ -+ defined(__ARM_FEATURE_DIRECTED_ROUNDING) -+ return vreinterpret_m64_s32( -+ vget_low_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))))); -+#else -+ return vreinterpret_m64_s32(vcvt_s32_f32(vget_low_f32( -+ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION))))); -+#endif -+} -+ -+// Convert the signed 32-bit integer b to a single-precision (32-bit) -+// floating-point element, store the result in the lower element of dst, and -+// copy the upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_si2ss -+FORCE_INLINE __m128 _mm_cvt_si2ss(__m128 a, int b) -+{ -+ return vreinterpretq_m128_f32( -+ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); -+} -+ -+// Convert the lower single-precision (32-bit) floating-point element in a to a -+// 32-bit integer, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ss2si -+FORCE_INLINE int _mm_cvt_ss2si(__m128 a) -+{ -+#if (defined(__aarch64__) || defined(_M_ARM64)) || \ -+ defined(__ARM_FEATURE_DIRECTED_ROUNDING) -+ return vgetq_lane_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))), -+ 0); -+#else -+ float32_t data = vgetq_lane_f32( -+ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); -+ return (int32_t) data; -+#endif -+} -+ -+// Convert packed 16-bit integers in a to packed single-precision (32-bit) -+// floating-point elements, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi16_ps -+FORCE_INLINE __m128 _mm_cvtpi16_ps(__m64 a) -+{ -+ return vreinterpretq_m128_f32( -+ vcvtq_f32_s32(vmovl_s16(vreinterpret_s16_m64(a)))); -+} -+ -+// Convert packed 32-bit integers in b to packed single-precision (32-bit) -+// floating-point elements, store the results in the lower 2 elements of dst, -+// and copy the upper 2 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_ps -+FORCE_INLINE __m128 _mm_cvtpi32_ps(__m128 a, __m64 b) -+{ -+ return vreinterpretq_m128_f32( -+ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), -+ vget_high_f32(vreinterpretq_f32_m128(a)))); -+} -+ -+// Convert packed signed 32-bit integers in a to packed single-precision -+// (32-bit) floating-point elements, store the results in the lower 2 elements -+// of dst, then convert the packed signed 32-bit integers in b to -+// single-precision (32-bit) floating-point element, and store the results in -+// the upper 2 elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32x2_ps -+FORCE_INLINE __m128 _mm_cvtpi32x2_ps(__m64 a, __m64 b) -+{ -+ return vreinterpretq_m128_f32(vcvtq_f32_s32( -+ vcombine_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b)))); -+} -+ -+// Convert the lower packed 8-bit integers in a to packed single-precision -+// (32-bit) floating-point elements, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi8_ps -+FORCE_INLINE __m128 _mm_cvtpi8_ps(__m64 a) -+{ -+ return vreinterpretq_m128_f32(vcvtq_f32_s32( -+ vmovl_s16(vget_low_s16(vmovl_s8(vreinterpret_s8_m64(a)))))); -+} -+ -+// Convert packed single-precision (32-bit) floating-point elements in a to -+// packed 16-bit integers, and store the results in dst. Note: this intrinsic -+// will generate 0x7FFF, rather than 0x8000, for input values between 0x7FFF and -+// 0x7FFFFFFF. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi16 -+FORCE_INLINE __m64 _mm_cvtps_pi16(__m128 a) -+{ -+ return vreinterpret_m64_s16( -+ vqmovn_s32(vreinterpretq_s32_m128i(_mm_cvtps_epi32(a)))); -+} -+ -+// Convert packed single-precision (32-bit) floating-point elements in a to -+// packed 32-bit integers, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi32 -+#define _mm_cvtps_pi32(a) _mm_cvt_ps2pi(a) -+ -+// Convert packed single-precision (32-bit) floating-point elements in a to -+// packed 8-bit integers, and store the results in lower 4 elements of dst. -+// Note: this intrinsic will generate 0x7F, rather than 0x80, for input values -+// between 0x7F and 0x7FFFFFFF. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi8 -+FORCE_INLINE __m64 _mm_cvtps_pi8(__m128 a) -+{ -+ return vreinterpret_m64_s8(vqmovn_s16( -+ vcombine_s16(vreinterpret_s16_m64(_mm_cvtps_pi16(a)), vdup_n_s16(0)))); -+} -+ -+// Convert packed unsigned 16-bit integers in a to packed single-precision -+// (32-bit) floating-point elements, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu16_ps -+FORCE_INLINE __m128 _mm_cvtpu16_ps(__m64 a) -+{ -+ return vreinterpretq_m128_f32( -+ vcvtq_f32_u32(vmovl_u16(vreinterpret_u16_m64(a)))); -+} -+ -+// Convert the lower packed unsigned 8-bit integers in a to packed -+// single-precision (32-bit) floating-point elements, and store the results in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu8_ps -+FORCE_INLINE __m128 _mm_cvtpu8_ps(__m64 a) -+{ -+ return vreinterpretq_m128_f32(vcvtq_f32_u32( -+ vmovl_u16(vget_low_u16(vmovl_u8(vreinterpret_u8_m64(a)))))); -+} -+ -+// Convert the signed 32-bit integer b to a single-precision (32-bit) -+// floating-point element, store the result in the lower element of dst, and -+// copy the upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_ss -+#define _mm_cvtsi32_ss(a, b) _mm_cvt_si2ss(a, b) -+ -+// Convert the signed 64-bit integer b to a single-precision (32-bit) -+// floating-point element, store the result in the lower element of dst, and -+// copy the upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_ss -+FORCE_INLINE __m128 _mm_cvtsi64_ss(__m128 a, int64_t b) -+{ -+ return vreinterpretq_m128_f32( -+ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); -+} -+ -+// Copy the lower single-precision (32-bit) floating-point element of a to dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_f32 -+FORCE_INLINE float _mm_cvtss_f32(__m128 a) -+{ -+ return vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); -+} -+ -+// Convert the lower single-precision (32-bit) floating-point element in a to a -+// 32-bit integer, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si32 -+#define _mm_cvtss_si32(a) _mm_cvt_ss2si(a) -+ -+// Convert the lower single-precision (32-bit) floating-point element in a to a -+// 64-bit integer, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si64 -+FORCE_INLINE int64_t _mm_cvtss_si64(__m128 a) -+{ -+#if (defined(__aarch64__) || defined(_M_ARM64)) || \ -+ defined(__ARM_FEATURE_DIRECTED_ROUNDING) -+ return (int64_t) vgetq_lane_f32(vrndiq_f32(vreinterpretq_f32_m128(a)), 0); -+#else -+ float32_t data = vgetq_lane_f32( -+ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); -+ return (int64_t) data; -+#endif -+} -+ -+// Convert packed single-precision (32-bit) floating-point elements in a to -+// packed 32-bit integers with truncation, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ps2pi -+FORCE_INLINE __m64 _mm_cvtt_ps2pi(__m128 a) -+{ -+ return vreinterpret_m64_s32( -+ vget_low_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)))); -+} -+ -+// Convert the lower single-precision (32-bit) floating-point element in a to a -+// 32-bit integer with truncation, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ss2si -+FORCE_INLINE int _mm_cvtt_ss2si(__m128 a) -+{ -+ return vgetq_lane_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)), 0); -+} -+ -+// Convert packed single-precision (32-bit) floating-point elements in a to -+// packed 32-bit integers with truncation, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_pi32 -+#define _mm_cvttps_pi32(a) _mm_cvtt_ps2pi(a) -+ -+// Convert the lower single-precision (32-bit) floating-point element in a to a -+// 32-bit integer with truncation, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si32 -+#define _mm_cvttss_si32(a) _mm_cvtt_ss2si(a) -+ -+// Convert the lower single-precision (32-bit) floating-point element in a to a -+// 64-bit integer with truncation, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si64 -+FORCE_INLINE int64_t _mm_cvttss_si64(__m128 a) -+{ -+ return (int64_t) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); -+} -+ -+// Divide packed single-precision (32-bit) floating-point elements in a by -+// packed elements in b, and store the results in dst. -+// Due to ARMv7-A NEON's lack of a precise division intrinsic, we implement -+// division by multiplying a by b's reciprocal before using the Newton-Raphson -+// method to approximate the results. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ps -+FORCE_INLINE __m128 _mm_div_ps(__m128 a, __m128 b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128_f32( -+ vdivq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); -+#else -+ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(b)); -+ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); -+ // Additional Netwon-Raphson iteration for accuracy -+ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); -+ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(a), recip)); -+#endif -+} -+ -+// Divide the lower single-precision (32-bit) floating-point element in a by the -+// lower single-precision (32-bit) floating-point element in b, store the result -+// in the lower element of dst, and copy the upper 3 packed elements from a to -+// the upper elements of dst. -+// Warning: ARMv7-A does not produce the same result compared to Intel and not -+// IEEE-compliant. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ss -+FORCE_INLINE __m128 _mm_div_ss(__m128 a, __m128 b) -+{ -+ float32_t value = -+ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_div_ps(a, b)), 0); -+ return vreinterpretq_m128_f32( -+ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); -+} -+ -+// Extract a 16-bit integer from a, selected with imm8, and store the result in -+// the lower element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_pi16 -+#define _mm_extract_pi16(a, imm) \ -+ (int32_t) vget_lane_u16(vreinterpret_u16_m64(a), (imm)) -+ -+// Free aligned memory that was allocated with _mm_malloc. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_free -+#if !defined(SSE2NEON_ALLOC_DEFINED) -+FORCE_INLINE void _mm_free(void *addr) -+{ -+ free(addr); -+} -+#endif -+ -+FORCE_INLINE uint64_t _sse2neon_get_fpcr(void) -+{ -+ uint64_t value; -+#if defined(_MSC_VER) -+ value = _ReadStatusReg(ARM64_FPCR); -+#else -+ __asm__ __volatile__("mrs %0, FPCR" : "=r"(value)); /* read */ -+#endif -+ return value; -+} -+ -+FORCE_INLINE void _sse2neon_set_fpcr(uint64_t value) -+{ -+#if defined(_MSC_VER) -+ _WriteStatusReg(ARM64_FPCR, value); -+#else -+ __asm__ __volatile__("msr FPCR, %0" ::"r"(value)); /* write */ -+#endif -+} -+ -+// Macro: Get the flush zero bits from the MXCSR control and status register. -+// The flush zero may contain any of the following flags: _MM_FLUSH_ZERO_ON or -+// _MM_FLUSH_ZERO_OFF -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_FLUSH_ZERO_MODE -+FORCE_INLINE unsigned int _sse2neon_mm_get_flush_zero_mode(void) -+{ -+ union { -+ fpcr_bitfield field; -+#if defined(__aarch64__) || defined(_M_ARM64) -+ uint64_t value; -+#else -+ uint32_t value; -+#endif -+ } r; -+ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ r.value = _sse2neon_get_fpcr(); -+#else -+ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ -+#endif -+ -+ return r.field.bit24 ? _MM_FLUSH_ZERO_ON : _MM_FLUSH_ZERO_OFF; -+} -+ -+// Macro: Get the rounding mode bits from the MXCSR control and status register. -+// The rounding mode may contain any of the following flags: _MM_ROUND_NEAREST, -+// _MM_ROUND_DOWN, _MM_ROUND_UP, _MM_ROUND_TOWARD_ZERO -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_ROUNDING_MODE -+FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void) -+{ -+ union { -+ fpcr_bitfield field; -+#if defined(__aarch64__) || defined(_M_ARM64) -+ uint64_t value; -+#else -+ uint32_t value; -+#endif -+ } r; -+ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ r.value = _sse2neon_get_fpcr(); -+#else -+ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ -+#endif -+ -+ if (r.field.bit22) { -+ return r.field.bit23 ? _MM_ROUND_TOWARD_ZERO : _MM_ROUND_UP; -+ } else { -+ return r.field.bit23 ? _MM_ROUND_DOWN : _MM_ROUND_NEAREST; -+ } -+} -+ -+// Copy a to dst, and insert the 16-bit integer i into dst at the location -+// specified by imm8. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_pi16 -+#define _mm_insert_pi16(a, b, imm) \ -+ vreinterpret_m64_s16(vset_lane_s16((b), vreinterpret_s16_m64(a), (imm))) -+ -+// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point -+// elements) from memory into dst. mem_addr must be aligned on a 16-byte -+// boundary or a general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps -+FORCE_INLINE __m128 _mm_load_ps(const float *p) -+{ -+ return vreinterpretq_m128_f32(vld1q_f32(p)); -+} -+ -+// Load a single-precision (32-bit) floating-point element from memory into all -+// elements of dst. -+// -+// dst[31:0] := MEM[mem_addr+31:mem_addr] -+// dst[63:32] := MEM[mem_addr+31:mem_addr] -+// dst[95:64] := MEM[mem_addr+31:mem_addr] -+// dst[127:96] := MEM[mem_addr+31:mem_addr] -+// -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps1 -+#define _mm_load_ps1 _mm_load1_ps -+ -+// Load a single-precision (32-bit) floating-point element from memory into the -+// lower of dst, and zero the upper 3 elements. mem_addr does not need to be -+// aligned on any particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ss -+FORCE_INLINE __m128 _mm_load_ss(const float *p) -+{ -+ return vreinterpretq_m128_f32(vsetq_lane_f32(*p, vdupq_n_f32(0), 0)); -+} -+ -+// Load a single-precision (32-bit) floating-point element from memory into all -+// elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_ps -+FORCE_INLINE __m128 _mm_load1_ps(const float *p) -+{ -+ return vreinterpretq_m128_f32(vld1q_dup_f32(p)); -+} -+ -+// Load 2 single-precision (32-bit) floating-point elements from memory into the -+// upper 2 elements of dst, and copy the lower 2 elements from a to dst. -+// mem_addr does not need to be aligned on any particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pi -+FORCE_INLINE __m128 _mm_loadh_pi(__m128 a, __m64 const *p) -+{ -+ return vreinterpretq_m128_f32( -+ vcombine_f32(vget_low_f32(a), vld1_f32((const float32_t *) p))); -+} -+ -+// Load 2 single-precision (32-bit) floating-point elements from memory into the -+// lower 2 elements of dst, and copy the upper 2 elements from a to dst. -+// mem_addr does not need to be aligned on any particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pi -+FORCE_INLINE __m128 _mm_loadl_pi(__m128 a, __m64 const *p) -+{ -+ return vreinterpretq_m128_f32( -+ vcombine_f32(vld1_f32((const float32_t *) p), vget_high_f32(a))); -+} -+ -+// Load 4 single-precision (32-bit) floating-point elements from memory into dst -+// in reverse order. mem_addr must be aligned on a 16-byte boundary or a -+// general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_ps -+FORCE_INLINE __m128 _mm_loadr_ps(const float *p) -+{ -+ float32x4_t v = vrev64q_f32(vld1q_f32(p)); -+ return vreinterpretq_m128_f32(vextq_f32(v, v, 2)); -+} -+ -+// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point -+// elements) from memory into dst. mem_addr does not need to be aligned on any -+// particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_ps -+FORCE_INLINE __m128 _mm_loadu_ps(const float *p) -+{ -+ // for neon, alignment doesn't matter, so _mm_load_ps and _mm_loadu_ps are -+ // equivalent for neon -+ return vreinterpretq_m128_f32(vld1q_f32(p)); -+} -+ -+// Load unaligned 16-bit integer from memory into the first element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si16 -+FORCE_INLINE __m128i _mm_loadu_si16(const void *p) -+{ -+ return vreinterpretq_m128i_s16( -+ vsetq_lane_s16(*(const unaligned_int16_t *) p, vdupq_n_s16(0), 0)); -+} -+ -+// Load unaligned 64-bit integer from memory into the first element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si64 -+FORCE_INLINE __m128i _mm_loadu_si64(const void *p) -+{ -+ return vreinterpretq_m128i_s64( -+ vsetq_lane_s64(*(const unaligned_int64_t *) p, vdupq_n_s64(0), 0)); -+} -+ -+// Allocate size bytes of memory, aligned to the alignment specified in align, -+// and return a pointer to the allocated memory. _mm_free should be used to free -+// memory that is allocated with _mm_malloc. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_malloc -+#if !defined(SSE2NEON_ALLOC_DEFINED) -+FORCE_INLINE void *_mm_malloc(size_t size, size_t align) -+{ -+ void *ptr; -+ if (align == 1) -+ return malloc(size); -+ if (align == 2 || (sizeof(void *) == 8 && align == 4)) -+ align = sizeof(void *); -+ if (!posix_memalign(&ptr, align, size)) -+ return ptr; -+ return NULL; -+} -+#endif -+ -+// Conditionally store 8-bit integer elements from a into memory using mask -+// (elements are not stored when the highest bit is not set in the corresponding -+// element) and a non-temporal memory hint. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmove_si64 -+FORCE_INLINE void _mm_maskmove_si64(__m64 a, __m64 mask, char *mem_addr) -+{ -+ int8x8_t shr_mask = vshr_n_s8(vreinterpret_s8_m64(mask), 7); -+ __m128 b = _mm_load_ps((const float *) mem_addr); -+ int8x8_t masked = -+ vbsl_s8(vreinterpret_u8_s8(shr_mask), vreinterpret_s8_m64(a), -+ vreinterpret_s8_u64(vget_low_u64(vreinterpretq_u64_m128(b)))); -+ vst1_s8((int8_t *) mem_addr, masked); -+} -+ -+// Conditionally store 8-bit integer elements from a into memory using mask -+// (elements are not stored when the highest bit is not set in the corresponding -+// element) and a non-temporal memory hint. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_maskmovq -+#define _m_maskmovq(a, mask, mem_addr) _mm_maskmove_si64(a, mask, mem_addr) -+ -+// Compare packed signed 16-bit integers in a and b, and store packed maximum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pi16 -+FORCE_INLINE __m64 _mm_max_pi16(__m64 a, __m64 b) -+{ -+ return vreinterpret_m64_s16( -+ vmax_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); -+} -+ -+// Compare packed single-precision (32-bit) floating-point elements in a and b, -+// and store packed maximum values in dst. dst does not follow the IEEE Standard -+// for Floating-Point Arithmetic (IEEE 754) maximum value when inputs are NaN or -+// signed-zero values. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ps -+FORCE_INLINE __m128 _mm_max_ps(__m128 a, __m128 b) -+{ -+#if SSE2NEON_PRECISE_MINMAX -+ float32x4_t _a = vreinterpretq_f32_m128(a); -+ float32x4_t _b = vreinterpretq_f32_m128(b); -+ return vreinterpretq_m128_f32(vbslq_f32(vcgtq_f32(_a, _b), _a, _b)); -+#else -+ return vreinterpretq_m128_f32( -+ vmaxq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); -+#endif -+} -+ -+// Compare packed unsigned 8-bit integers in a and b, and store packed maximum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pu8 -+FORCE_INLINE __m64 _mm_max_pu8(__m64 a, __m64 b) -+{ -+ return vreinterpret_m64_u8( -+ vmax_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point elements in a and -+// b, store the maximum value in the lower element of dst, and copy the upper 3 -+// packed elements from a to the upper element of dst. dst does not follow the -+// IEEE Standard for Floating-Point Arithmetic (IEEE 754) maximum value when -+// inputs are NaN or signed-zero values. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ss -+FORCE_INLINE __m128 _mm_max_ss(__m128 a, __m128 b) -+{ -+ float32_t value = vgetq_lane_f32(_mm_max_ps(a, b), 0); -+ return vreinterpretq_m128_f32( -+ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); -+} -+ -+// Compare packed signed 16-bit integers in a and b, and store packed minimum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pi16 -+FORCE_INLINE __m64 _mm_min_pi16(__m64 a, __m64 b) -+{ -+ return vreinterpret_m64_s16( -+ vmin_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); -+} -+ -+// Compare packed single-precision (32-bit) floating-point elements in a and b, -+// and store packed minimum values in dst. dst does not follow the IEEE Standard -+// for Floating-Point Arithmetic (IEEE 754) minimum value when inputs are NaN or -+// signed-zero values. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ps -+FORCE_INLINE __m128 _mm_min_ps(__m128 a, __m128 b) -+{ -+#if SSE2NEON_PRECISE_MINMAX -+ float32x4_t _a = vreinterpretq_f32_m128(a); -+ float32x4_t _b = vreinterpretq_f32_m128(b); -+ return vreinterpretq_m128_f32(vbslq_f32(vcltq_f32(_a, _b), _a, _b)); -+#else -+ return vreinterpretq_m128_f32( -+ vminq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); -+#endif -+} -+ -+// Compare packed unsigned 8-bit integers in a and b, and store packed minimum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pu8 -+FORCE_INLINE __m64 _mm_min_pu8(__m64 a, __m64 b) -+{ -+ return vreinterpret_m64_u8( -+ vmin_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point elements in a and -+// b, store the minimum value in the lower element of dst, and copy the upper 3 -+// packed elements from a to the upper element of dst. dst does not follow the -+// IEEE Standard for Floating-Point Arithmetic (IEEE 754) minimum value when -+// inputs are NaN or signed-zero values. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ss -+FORCE_INLINE __m128 _mm_min_ss(__m128 a, __m128 b) -+{ -+ float32_t value = vgetq_lane_f32(_mm_min_ps(a, b), 0); -+ return vreinterpretq_m128_f32( -+ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); -+} -+ -+// Move the lower single-precision (32-bit) floating-point element from b to the -+// lower element of dst, and copy the upper 3 packed elements from a to the -+// upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_ss -+FORCE_INLINE __m128 _mm_move_ss(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_f32( -+ vsetq_lane_f32(vgetq_lane_f32(vreinterpretq_f32_m128(b), 0), -+ vreinterpretq_f32_m128(a), 0)); -+} -+ -+// Move the upper 2 single-precision (32-bit) floating-point elements from b to -+// the lower 2 elements of dst, and copy the upper 2 elements from a to the -+// upper 2 elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehl_ps -+FORCE_INLINE __m128 _mm_movehl_ps(__m128 a, __m128 b) -+{ -+#if defined(aarch64__) -+ return vreinterpretq_m128_u64( -+ vzip2q_u64(vreinterpretq_u64_m128(b), vreinterpretq_u64_m128(a))); -+#else -+ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); -+ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); -+ return vreinterpretq_m128_f32(vcombine_f32(b32, a32)); -+#endif -+} -+ -+// Move the lower 2 single-precision (32-bit) floating-point elements from b to -+// the upper 2 elements of dst, and copy the lower 2 elements from a to the -+// lower 2 elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movelh_ps -+FORCE_INLINE __m128 _mm_movelh_ps(__m128 __A, __m128 __B) -+{ -+ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(__A)); -+ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(__B)); -+ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); -+} -+ -+// Create mask from the most significant bit of each 8-bit element in a, and -+// store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pi8 -+FORCE_INLINE int _mm_movemask_pi8(__m64 a) -+{ -+ uint8x8_t input = vreinterpret_u8_m64(a); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ static const int8_t shift[8] = {0, 1, 2, 3, 4, 5, 6, 7}; -+ uint8x8_t tmp = vshr_n_u8(input, 7); -+ return vaddv_u8(vshl_u8(tmp, vld1_s8(shift))); -+#else -+ // Refer the implementation of `_mm_movemask_epi8` -+ uint16x4_t high_bits = vreinterpret_u16_u8(vshr_n_u8(input, 7)); -+ uint32x2_t paired16 = -+ vreinterpret_u32_u16(vsra_n_u16(high_bits, high_bits, 7)); -+ uint8x8_t paired32 = -+ vreinterpret_u8_u32(vsra_n_u32(paired16, paired16, 14)); -+ return vget_lane_u8(paired32, 0) | ((int) vget_lane_u8(paired32, 4) << 4); -+#endif -+} -+ -+// Set each bit of mask dst based on the most significant bit of the -+// corresponding packed single-precision (32-bit) floating-point element in a. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_ps -+FORCE_INLINE int _mm_movemask_ps(__m128 a) -+{ -+ uint32x4_t input = vreinterpretq_u32_m128(a); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ static const int32_t shift[4] = {0, 1, 2, 3}; -+ uint32x4_t tmp = vshrq_n_u32(input, 31); -+ return vaddvq_u32(vshlq_u32(tmp, vld1q_s32(shift))); -+#else -+ // Uses the exact same method as _mm_movemask_epi8, see that for details. -+ // Shift out everything but the sign bits with a 32-bit unsigned shift -+ // right. -+ uint64x2_t high_bits = vreinterpretq_u64_u32(vshrq_n_u32(input, 31)); -+ // Merge the two pairs together with a 64-bit unsigned shift right + add. -+ uint8x16_t paired = -+ vreinterpretq_u8_u64(vsraq_n_u64(high_bits, high_bits, 31)); -+ // Extract the result. -+ return vgetq_lane_u8(paired, 0) | (vgetq_lane_u8(paired, 8) << 2); -+#endif -+} -+ -+// Multiply packed single-precision (32-bit) floating-point elements in a and b, -+// and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ps -+FORCE_INLINE_OPTNONE __m128 _mm_mul_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_f32( -+ vmulq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); -+} -+ -+// Multiply the lower single-precision (32-bit) floating-point element in a and -+// b, store the result in the lower element of dst, and copy the upper 3 packed -+// elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ss -+FORCE_INLINE __m128 _mm_mul_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_mul_ps(a, b)); -+} -+ -+// Multiply the packed unsigned 16-bit integers in a and b, producing -+// intermediate 32-bit integers, and store the high 16 bits of the intermediate -+// integers in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_pu16 -+FORCE_INLINE __m64 _mm_mulhi_pu16(__m64 a, __m64 b) -+{ -+ return vreinterpret_m64_u16(vshrn_n_u32( -+ vmull_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b)), 16)); -+} -+ -+// Compute the bitwise OR of packed single-precision (32-bit) floating-point -+// elements in a and b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_ps -+FORCE_INLINE __m128 _mm_or_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_s32( -+ vorrq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); -+} -+ -+// Average packed unsigned 8-bit integers in a and b, and store the results in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgb -+#define _m_pavgb(a, b) _mm_avg_pu8(a, b) -+ -+// Average packed unsigned 16-bit integers in a and b, and store the results in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgw -+#define _m_pavgw(a, b) _mm_avg_pu16(a, b) -+ -+// Extract a 16-bit integer from a, selected with imm8, and store the result in -+// the lower element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pextrw -+#define _m_pextrw(a, imm) _mm_extract_pi16(a, imm) -+ -+// Copy a to dst, and insert the 16-bit integer i into dst at the location -+// specified by imm8. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_pinsrw -+#define _m_pinsrw(a, i, imm) _mm_insert_pi16(a, i, imm) -+ -+// Compare packed signed 16-bit integers in a and b, and store packed maximum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxsw -+#define _m_pmaxsw(a, b) _mm_max_pi16(a, b) -+ -+// Compare packed unsigned 8-bit integers in a and b, and store packed maximum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxub -+#define _m_pmaxub(a, b) _mm_max_pu8(a, b) -+ -+// Compare packed signed 16-bit integers in a and b, and store packed minimum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminsw -+#define _m_pminsw(a, b) _mm_min_pi16(a, b) -+ -+// Compare packed unsigned 8-bit integers in a and b, and store packed minimum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminub -+#define _m_pminub(a, b) _mm_min_pu8(a, b) -+ -+// Create mask from the most significant bit of each 8-bit element in a, and -+// store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmovmskb -+#define _m_pmovmskb(a) _mm_movemask_pi8(a) -+ -+// Multiply the packed unsigned 16-bit integers in a and b, producing -+// intermediate 32-bit integers, and store the high 16 bits of the intermediate -+// integers in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmulhuw -+#define _m_pmulhuw(a, b) _mm_mulhi_pu16(a, b) -+ -+// Fetch the line of data from memory that contains address p to a location in -+// the cache hierarchy specified by the locality hint i. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_prefetch -+FORCE_INLINE void _mm_prefetch(char const *p, int i) -+{ -+ (void) i; -+#if defined(_MSC_VER) -+ switch (i) { -+ case _MM_HINT_NTA: -+ __prefetch2(p, 1); -+ break; -+ case _MM_HINT_T0: -+ __prefetch2(p, 0); -+ break; -+ case _MM_HINT_T1: -+ __prefetch2(p, 2); -+ break; -+ case _MM_HINT_T2: -+ __prefetch2(p, 4); -+ break; -+ } -+#else -+ switch (i) { -+ case _MM_HINT_NTA: -+ __builtin_prefetch(p, 0, 0); -+ break; -+ case _MM_HINT_T0: -+ __builtin_prefetch(p, 0, 3); -+ break; -+ case _MM_HINT_T1: -+ __builtin_prefetch(p, 0, 2); -+ break; -+ case _MM_HINT_T2: -+ __builtin_prefetch(p, 0, 1); -+ break; -+ } -+#endif -+} -+ -+// Compute the absolute differences of packed unsigned 8-bit integers in a and -+// b, then horizontally sum each consecutive 8 differences to produce four -+// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low -+// 16 bits of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_psadbw -+#define _m_psadbw(a, b) _mm_sad_pu8(a, b) -+ -+// Shuffle 16-bit integers in a using the control in imm8, and store the results -+// in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pshufw -+#define _m_pshufw(a, imm) _mm_shuffle_pi16(a, imm) -+ -+// Compute the approximate reciprocal of packed single-precision (32-bit) -+// floating-point elements in a, and store the results in dst. The maximum -+// relative error for this approximation is less than 1.5*2^-12. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ps -+FORCE_INLINE __m128 _mm_rcp_ps(__m128 in) -+{ -+ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(in)); -+ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); -+#if SSE2NEON_PRECISE_DIV -+ // Additional Netwon-Raphson iteration for accuracy -+ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); -+#endif -+ return vreinterpretq_m128_f32(recip); -+} -+ -+// Compute the approximate reciprocal of the lower single-precision (32-bit) -+// floating-point element in a, store the result in the lower element of dst, -+// and copy the upper 3 packed elements from a to the upper elements of dst. The -+// maximum relative error for this approximation is less than 1.5*2^-12. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ss -+FORCE_INLINE __m128 _mm_rcp_ss(__m128 a) -+{ -+ return _mm_move_ss(a, _mm_rcp_ps(a)); -+} -+ -+// Compute the approximate reciprocal square root of packed single-precision -+// (32-bit) floating-point elements in a, and store the results in dst. The -+// maximum relative error for this approximation is less than 1.5*2^-12. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ps -+FORCE_INLINE __m128 _mm_rsqrt_ps(__m128 in) -+{ -+ float32x4_t out = vrsqrteq_f32(vreinterpretq_f32_m128(in)); -+ -+ // Generate masks for detecting whether input has any 0.0f/-0.0f -+ // (which becomes positive/negative infinity by IEEE-754 arithmetic rules). -+ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); -+ const uint32x4_t neg_inf = vdupq_n_u32(0xFF800000); -+ const uint32x4_t has_pos_zero = -+ vceqq_u32(pos_inf, vreinterpretq_u32_f32(out)); -+ const uint32x4_t has_neg_zero = -+ vceqq_u32(neg_inf, vreinterpretq_u32_f32(out)); -+ -+ out = vmulq_f32( -+ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); -+#if SSE2NEON_PRECISE_SQRT -+ // Additional Netwon-Raphson iteration for accuracy -+ out = vmulq_f32( -+ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); -+#endif -+ -+ // Set output vector element to infinity/negative-infinity if -+ // the corresponding input vector element is 0.0f/-0.0f. -+ out = vbslq_f32(has_pos_zero, (float32x4_t) pos_inf, out); -+ out = vbslq_f32(has_neg_zero, (float32x4_t) neg_inf, out); -+ -+ return vreinterpretq_m128_f32(out); -+} -+ -+// Compute the approximate reciprocal square root of the lower single-precision -+// (32-bit) floating-point element in a, store the result in the lower element -+// of dst, and copy the upper 3 packed elements from a to the upper elements of -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ss -+FORCE_INLINE __m128 _mm_rsqrt_ss(__m128 in) -+{ -+ return vsetq_lane_f32(vgetq_lane_f32(_mm_rsqrt_ps(in), 0), in, 0); -+} -+ -+// Compute the absolute differences of packed unsigned 8-bit integers in a and -+// b, then horizontally sum each consecutive 8 differences to produce four -+// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low -+// 16 bits of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_pu8 -+FORCE_INLINE __m64 _mm_sad_pu8(__m64 a, __m64 b) -+{ -+ uint64x1_t t = vpaddl_u32(vpaddl_u16( -+ vpaddl_u8(vabd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))))); -+ return vreinterpret_m64_u16( -+ vset_lane_u16((int) vget_lane_u64(t, 0), vdup_n_u16(0), 0)); -+} -+ -+// Macro: Set the flush zero bits of the MXCSR control and status register to -+// the value in unsigned 32-bit integer a. The flush zero may contain any of the -+// following flags: _MM_FLUSH_ZERO_ON or _MM_FLUSH_ZERO_OFF -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_FLUSH_ZERO_MODE -+FORCE_INLINE void _sse2neon_mm_set_flush_zero_mode(unsigned int flag) -+{ -+ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, -+ // regardless of the value of the FZ bit. -+ union { -+ fpcr_bitfield field; -+#if defined(__aarch64__) || defined(_M_ARM64) -+ uint64_t value; -+#else -+ uint32_t value; -+#endif -+ } r; -+ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ r.value = _sse2neon_get_fpcr(); -+#else -+ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ -+#endif -+ -+ r.field.bit24 = (flag & _MM_FLUSH_ZERO_MASK) == _MM_FLUSH_ZERO_ON; -+ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ _sse2neon_set_fpcr(r.value); -+#else -+ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ -+#endif -+} -+ -+// Set packed single-precision (32-bit) floating-point elements in dst with the -+// supplied values. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps -+FORCE_INLINE __m128 _mm_set_ps(float w, float z, float y, float x) -+{ -+ float ALIGN_STRUCT(16) data[4] = {x, y, z, w}; -+ return vreinterpretq_m128_f32(vld1q_f32(data)); -+} -+ -+// Broadcast single-precision (32-bit) floating-point value a to all elements of -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps1 -+FORCE_INLINE __m128 _mm_set_ps1(float _w) -+{ -+ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); -+} -+ -+// Macro: Set the rounding mode bits of the MXCSR control and status register to -+// the value in unsigned 32-bit integer a. The rounding mode may contain any of -+// the following flags: _MM_ROUND_NEAREST, _MM_ROUND_DOWN, _MM_ROUND_UP, -+// _MM_ROUND_TOWARD_ZERO -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_ROUNDING_MODE -+FORCE_INLINE void _MM_SET_ROUNDING_MODE(int rounding) -+{ -+ union { -+ fpcr_bitfield field; -+#if defined(__aarch64__) || defined(_M_ARM64) -+ uint64_t value; -+#else -+ uint32_t value; -+#endif -+ } r; -+ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ r.value = _sse2neon_get_fpcr(); -+#else -+ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ -+#endif -+ -+ switch (rounding) { -+ case _MM_ROUND_TOWARD_ZERO: -+ r.field.bit22 = 1; -+ r.field.bit23 = 1; -+ break; -+ case _MM_ROUND_DOWN: -+ r.field.bit22 = 0; -+ r.field.bit23 = 1; -+ break; -+ case _MM_ROUND_UP: -+ r.field.bit22 = 1; -+ r.field.bit23 = 0; -+ break; -+ default: //_MM_ROUND_NEAREST -+ r.field.bit22 = 0; -+ r.field.bit23 = 0; -+ } -+ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ _sse2neon_set_fpcr(r.value); -+#else -+ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ -+#endif -+} -+ -+// Copy single-precision (32-bit) floating-point element a to the lower element -+// of dst, and zero the upper 3 elements. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ss -+FORCE_INLINE __m128 _mm_set_ss(float a) -+{ -+ return vreinterpretq_m128_f32(vsetq_lane_f32(a, vdupq_n_f32(0), 0)); -+} -+ -+// Broadcast single-precision (32-bit) floating-point value a to all elements of -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_ps -+FORCE_INLINE __m128 _mm_set1_ps(float _w) -+{ -+ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); -+} -+ -+// Set the MXCSR control and status register with the value in unsigned 32-bit -+// integer a. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setcsr -+// FIXME: _mm_setcsr() implementation supports changing the rounding mode only. -+FORCE_INLINE void _mm_setcsr(unsigned int a) -+{ -+ _MM_SET_ROUNDING_MODE(a); -+} -+ -+// Get the unsigned 32-bit value of the MXCSR control and status register. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_getcsr -+// FIXME: _mm_getcsr() implementation supports reading the rounding mode only. -+FORCE_INLINE unsigned int _mm_getcsr(void) -+{ -+ return _MM_GET_ROUNDING_MODE(); -+} -+ -+// Set packed single-precision (32-bit) floating-point elements in dst with the -+// supplied values in reverse order. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_ps -+FORCE_INLINE __m128 _mm_setr_ps(float w, float z, float y, float x) -+{ -+ float ALIGN_STRUCT(16) data[4] = {w, z, y, x}; -+ return vreinterpretq_m128_f32(vld1q_f32(data)); -+} -+ -+// Return vector of type __m128 with all elements set to zero. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_ps -+FORCE_INLINE __m128 _mm_setzero_ps(void) -+{ -+ return vreinterpretq_m128_f32(vdupq_n_f32(0)); -+} -+ -+// Shuffle 16-bit integers in a using the control in imm8, and store the results -+// in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi16 -+#ifdef _sse2neon_shuffle -+#define _mm_shuffle_pi16(a, imm) \ -+ vreinterpret_m64_s16(vshuffle_s16( \ -+ vreinterpret_s16_m64(a), vreinterpret_s16_m64(a), (imm & 0x3), \ -+ ((imm >> 2) & 0x3), ((imm >> 4) & 0x3), ((imm >> 6) & 0x3))) -+#else -+#define _mm_shuffle_pi16(a, imm) \ -+ _sse2neon_define1( \ -+ __m64, a, int16x4_t ret; \ -+ ret = vmov_n_s16( \ -+ vget_lane_s16(vreinterpret_s16_m64(_a), (imm) & (0x3))); \ -+ ret = vset_lane_s16( \ -+ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 2) & 0x3), ret, \ -+ 1); \ -+ ret = vset_lane_s16( \ -+ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 4) & 0x3), ret, \ -+ 2); \ -+ ret = vset_lane_s16( \ -+ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 6) & 0x3), ret, \ -+ 3); \ -+ _sse2neon_return(vreinterpret_m64_s16(ret));) -+#endif -+ -+// Perform a serializing operation on all store-to-memory instructions that were -+// issued prior to this instruction. Guarantees that every store instruction -+// that precedes, in program order, is globally visible before any store -+// instruction which follows the fence in program order. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sfence -+FORCE_INLINE void _mm_sfence(void) -+{ -+ _sse2neon_smp_mb(); -+} -+ -+// Perform a serializing operation on all load-from-memory and store-to-memory -+// instructions that were issued prior to this instruction. Guarantees that -+// every memory access that precedes, in program order, the memory fence -+// instruction is globally visible before any memory instruction which follows -+// the fence in program order. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mfence -+FORCE_INLINE void _mm_mfence(void) -+{ -+ _sse2neon_smp_mb(); -+} -+ -+// Perform a serializing operation on all load-from-memory instructions that -+// were issued prior to this instruction. Guarantees that every load instruction -+// that precedes, in program order, is globally visible before any load -+// instruction which follows the fence in program order. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lfence -+FORCE_INLINE void _mm_lfence(void) -+{ -+ _sse2neon_smp_mb(); -+} -+ -+// FORCE_INLINE __m128 _mm_shuffle_ps(__m128 a, __m128 b, __constrange(0,255) -+// int imm) -+#ifdef _sse2neon_shuffle -+#define _mm_shuffle_ps(a, b, imm) \ -+ __extension__({ \ -+ float32x4_t _input1 = vreinterpretq_f32_m128(a); \ -+ float32x4_t _input2 = vreinterpretq_f32_m128(b); \ -+ float32x4_t _shuf = \ -+ vshuffleq_s32(_input1, _input2, (imm) & (0x3), ((imm) >> 2) & 0x3, \ -+ (((imm) >> 4) & 0x3) + 4, (((imm) >> 6) & 0x3) + 4); \ -+ vreinterpretq_m128_f32(_shuf); \ -+ }) -+#else // generic -+#define _mm_shuffle_ps(a, b, imm) \ -+ _sse2neon_define2( \ -+ __m128, a, b, __m128 ret; switch (imm) { \ -+ case _MM_SHUFFLE(1, 0, 3, 2): \ -+ ret = _mm_shuffle_ps_1032(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(2, 3, 0, 1): \ -+ ret = _mm_shuffle_ps_2301(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(0, 3, 2, 1): \ -+ ret = _mm_shuffle_ps_0321(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(2, 1, 0, 3): \ -+ ret = _mm_shuffle_ps_2103(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(1, 0, 1, 0): \ -+ ret = _mm_movelh_ps(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(1, 0, 0, 1): \ -+ ret = _mm_shuffle_ps_1001(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(0, 1, 0, 1): \ -+ ret = _mm_shuffle_ps_0101(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(3, 2, 1, 0): \ -+ ret = _mm_shuffle_ps_3210(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(0, 0, 1, 1): \ -+ ret = _mm_shuffle_ps_0011(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(0, 0, 2, 2): \ -+ ret = _mm_shuffle_ps_0022(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(2, 2, 0, 0): \ -+ ret = _mm_shuffle_ps_2200(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(3, 2, 0, 2): \ -+ ret = _mm_shuffle_ps_3202(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(3, 2, 3, 2): \ -+ ret = _mm_movehl_ps(_b, _a); \ -+ break; \ -+ case _MM_SHUFFLE(1, 1, 3, 3): \ -+ ret = _mm_shuffle_ps_1133(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(2, 0, 1, 0): \ -+ ret = _mm_shuffle_ps_2010(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(2, 0, 0, 1): \ -+ ret = _mm_shuffle_ps_2001(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(2, 0, 3, 2): \ -+ ret = _mm_shuffle_ps_2032(_a, _b); \ -+ break; \ -+ default: \ -+ ret = _mm_shuffle_ps_default(_a, _b, (imm)); \ -+ break; \ -+ } _sse2neon_return(ret);) -+#endif -+ -+// Compute the square root of packed single-precision (32-bit) floating-point -+// elements in a, and store the results in dst. -+// Due to ARMv7-A NEON's lack of a precise square root intrinsic, we implement -+// square root by multiplying input in with its reciprocal square root before -+// using the Newton-Raphson method to approximate the results. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ps -+FORCE_INLINE __m128 _mm_sqrt_ps(__m128 in) -+{ -+#if (defined(__aarch64__) || defined(_M_ARM64)) && !SSE2NEON_PRECISE_SQRT -+ return vreinterpretq_m128_f32(vsqrtq_f32(vreinterpretq_f32_m128(in))); -+#else -+ float32x4_t recip = vrsqrteq_f32(vreinterpretq_f32_m128(in)); -+ -+ // Test for vrsqrteq_f32(0) -> positive infinity case. -+ // Change to zero, so that s * 1/sqrt(s) result is zero too. -+ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); -+ const uint32x4_t div_by_zero = -+ vceqq_u32(pos_inf, vreinterpretq_u32_f32(recip)); -+ recip = vreinterpretq_f32_u32( -+ vandq_u32(vmvnq_u32(div_by_zero), vreinterpretq_u32_f32(recip))); -+ -+ recip = vmulq_f32( -+ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), -+ recip); -+ // Additional Netwon-Raphson iteration for accuracy -+ recip = vmulq_f32( -+ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), -+ recip); -+ -+ // sqrt(s) = s * 1/sqrt(s) -+ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(in), recip)); -+#endif -+} -+ -+// Compute the square root of the lower single-precision (32-bit) floating-point -+// element in a, store the result in the lower element of dst, and copy the -+// upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ss -+FORCE_INLINE __m128 _mm_sqrt_ss(__m128 in) -+{ -+ float32_t value = -+ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_sqrt_ps(in)), 0); -+ return vreinterpretq_m128_f32( -+ vsetq_lane_f32(value, vreinterpretq_f32_m128(in), 0)); -+} -+ -+// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point -+// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary -+// or a general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps -+FORCE_INLINE void _mm_store_ps(float *p, __m128 a) -+{ -+ vst1q_f32(p, vreinterpretq_f32_m128(a)); -+} -+ -+// Store the lower single-precision (32-bit) floating-point element from a into -+// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte -+// boundary or a general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps1 -+FORCE_INLINE void _mm_store_ps1(float *p, __m128 a) -+{ -+ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); -+ vst1q_f32(p, vdupq_n_f32(a0)); -+} -+ -+// Store the lower single-precision (32-bit) floating-point element from a into -+// memory. mem_addr does not need to be aligned on any particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ss -+FORCE_INLINE void _mm_store_ss(float *p, __m128 a) -+{ -+ vst1q_lane_f32(p, vreinterpretq_f32_m128(a), 0); -+} -+ -+// Store the lower single-precision (32-bit) floating-point element from a into -+// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte -+// boundary or a general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store1_ps -+#define _mm_store1_ps _mm_store_ps1 -+ -+// Store the upper 2 single-precision (32-bit) floating-point elements from a -+// into memory. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pi -+FORCE_INLINE void _mm_storeh_pi(__m64 *p, __m128 a) -+{ -+ *p = vreinterpret_m64_f32(vget_high_f32(a)); -+} -+ -+// Store the lower 2 single-precision (32-bit) floating-point elements from a -+// into memory. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pi -+FORCE_INLINE void _mm_storel_pi(__m64 *p, __m128 a) -+{ -+ *p = vreinterpret_m64_f32(vget_low_f32(a)); -+} -+ -+// Store 4 single-precision (32-bit) floating-point elements from a into memory -+// in reverse order. mem_addr must be aligned on a 16-byte boundary or a -+// general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_ps -+FORCE_INLINE void _mm_storer_ps(float *p, __m128 a) -+{ -+ float32x4_t tmp = vrev64q_f32(vreinterpretq_f32_m128(a)); -+ float32x4_t rev = vextq_f32(tmp, tmp, 2); -+ vst1q_f32(p, rev); -+} -+ -+// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point -+// elements) from a into memory. mem_addr does not need to be aligned on any -+// particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_ps -+FORCE_INLINE void _mm_storeu_ps(float *p, __m128 a) -+{ -+ vst1q_f32(p, vreinterpretq_f32_m128(a)); -+} -+ -+// Stores 16-bits of integer data a at the address p. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si16 -+FORCE_INLINE void _mm_storeu_si16(void *p, __m128i a) -+{ -+ vst1q_lane_s16((int16_t *) p, vreinterpretq_s16_m128i(a), 0); -+} -+ -+// Stores 64-bits of integer data a at the address p. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si64 -+FORCE_INLINE void _mm_storeu_si64(void *p, __m128i a) -+{ -+ vst1q_lane_s64((int64_t *) p, vreinterpretq_s64_m128i(a), 0); -+} -+ -+// Store 64-bits of integer data from a into memory using a non-temporal memory -+// hint. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pi -+FORCE_INLINE void _mm_stream_pi(__m64 *p, __m64 a) -+{ -+ vst1_s64((int64_t *) p, vreinterpret_s64_m64(a)); -+} -+ -+// Store 128-bits (composed of 4 packed single-precision (32-bit) floating- -+// point elements) from a into memory using a non-temporal memory hint. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_ps -+FORCE_INLINE void _mm_stream_ps(float *p, __m128 a) -+{ -+#if __has_builtin(__builtin_nontemporal_store) -+ __builtin_nontemporal_store(a, (float32x4_t *) p); -+#else -+ vst1q_f32(p, vreinterpretq_f32_m128(a)); -+#endif -+} -+ -+// Subtract packed single-precision (32-bit) floating-point elements in b from -+// packed single-precision (32-bit) floating-point elements in a, and store the -+// results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ps -+FORCE_INLINE __m128 _mm_sub_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_f32( -+ vsubq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); -+} -+ -+// Subtract the lower single-precision (32-bit) floating-point element in b from -+// the lower single-precision (32-bit) floating-point element in a, store the -+// result in the lower element of dst, and copy the upper 3 packed elements from -+// a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ss -+FORCE_INLINE __m128 _mm_sub_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_sub_ps(a, b)); -+} -+ -+// Macro: Transpose the 4x4 matrix formed by the 4 rows of single-precision -+// (32-bit) floating-point elements in row0, row1, row2, and row3, and store the -+// transposed matrix in these vectors (row0 now contains column 0, etc.). -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=MM_TRANSPOSE4_PS -+#define _MM_TRANSPOSE4_PS(row0, row1, row2, row3) \ -+ do { \ -+ float32x4x2_t ROW01 = vtrnq_f32(row0, row1); \ -+ float32x4x2_t ROW23 = vtrnq_f32(row2, row3); \ -+ row0 = vcombine_f32(vget_low_f32(ROW01.val[0]), \ -+ vget_low_f32(ROW23.val[0])); \ -+ row1 = vcombine_f32(vget_low_f32(ROW01.val[1]), \ -+ vget_low_f32(ROW23.val[1])); \ -+ row2 = vcombine_f32(vget_high_f32(ROW01.val[0]), \ -+ vget_high_f32(ROW23.val[0])); \ -+ row3 = vcombine_f32(vget_high_f32(ROW01.val[1]), \ -+ vget_high_f32(ROW23.val[1])); \ -+ } while (0) -+ -+// according to the documentation, these intrinsics behave the same as the -+// non-'u' versions. We'll just alias them here. -+#define _mm_ucomieq_ss _mm_comieq_ss -+#define _mm_ucomige_ss _mm_comige_ss -+#define _mm_ucomigt_ss _mm_comigt_ss -+#define _mm_ucomile_ss _mm_comile_ss -+#define _mm_ucomilt_ss _mm_comilt_ss -+#define _mm_ucomineq_ss _mm_comineq_ss -+ -+// Return vector of type __m128i with undefined elements. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_undefined_si128 -+FORCE_INLINE __m128i _mm_undefined_si128(void) -+{ -+#if defined(__GNUC__) || defined(__clang__) -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wuninitialized" -+#endif -+ __m128i a; -+#if defined(_MSC_VER) -+ a = _mm_setzero_si128(); -+#endif -+ return a; -+#if defined(__GNUC__) || defined(__clang__) -+#pragma GCC diagnostic pop -+#endif -+} -+ -+// Return vector of type __m128 with undefined elements. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_ps -+FORCE_INLINE __m128 _mm_undefined_ps(void) -+{ -+#if defined(__GNUC__) || defined(__clang__) -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wuninitialized" -+#endif -+ __m128 a; -+#if defined(_MSC_VER) -+ a = _mm_setzero_ps(); -+#endif -+ return a; -+#if defined(__GNUC__) || defined(__clang__) -+#pragma GCC diagnostic pop -+#endif -+} -+ -+// Unpack and interleave single-precision (32-bit) floating-point elements from -+// the high half a and b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_ps -+FORCE_INLINE __m128 _mm_unpackhi_ps(__m128 a, __m128 b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128_f32( -+ vzip2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); -+#else -+ float32x2_t a1 = vget_high_f32(vreinterpretq_f32_m128(a)); -+ float32x2_t b1 = vget_high_f32(vreinterpretq_f32_m128(b)); -+ float32x2x2_t result = vzip_f32(a1, b1); -+ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); -+#endif -+} -+ -+// Unpack and interleave single-precision (32-bit) floating-point elements from -+// the low half of a and b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_ps -+FORCE_INLINE __m128 _mm_unpacklo_ps(__m128 a, __m128 b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128_f32( -+ vzip1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); -+#else -+ float32x2_t a1 = vget_low_f32(vreinterpretq_f32_m128(a)); -+ float32x2_t b1 = vget_low_f32(vreinterpretq_f32_m128(b)); -+ float32x2x2_t result = vzip_f32(a1, b1); -+ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); -+#endif -+} -+ -+// Compute the bitwise XOR of packed single-precision (32-bit) floating-point -+// elements in a and b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_ps -+FORCE_INLINE __m128 _mm_xor_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_s32( -+ veorq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); -+} -+ -+/* SSE2 */ -+ -+// Add packed 16-bit integers in a and b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi16 -+FORCE_INLINE __m128i _mm_add_epi16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s16( -+ vaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); -+} -+ -+// Add packed 32-bit integers in a and b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi32 -+FORCE_INLINE __m128i _mm_add_epi32(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s32( -+ vaddq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); -+} -+ -+// Add packed 64-bit integers in a and b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi64 -+FORCE_INLINE __m128i _mm_add_epi64(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s64( -+ vaddq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); -+} -+ -+// Add packed 8-bit integers in a and b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi8 -+FORCE_INLINE __m128i _mm_add_epi8(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s8( -+ vaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); -+} -+ -+// Add packed double-precision (64-bit) floating-point elements in a and b, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_pd -+FORCE_INLINE __m128d _mm_add_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); -+#else -+ double *da = (double *) &a; -+ double *db = (double *) &b; -+ double c[2]; -+ c[0] = da[0] + db[0]; -+ c[1] = da[1] + db[1]; -+ return vld1q_f32((float32_t *) c); -+#endif -+} -+ -+// Add the lower double-precision (64-bit) floating-point element in a and b, -+// store the result in the lower element of dst, and copy the upper element from -+// a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_sd -+FORCE_INLINE __m128d _mm_add_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return _mm_move_sd(a, _mm_add_pd(a, b)); -+#else -+ double *da = (double *) &a; -+ double *db = (double *) &b; -+ double c[2]; -+ c[0] = da[0] + db[0]; -+ c[1] = da[1]; -+ return vld1q_f32((float32_t *) c); -+#endif -+} -+ -+// Add 64-bit integers a and b, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_si64 -+FORCE_INLINE __m64 _mm_add_si64(__m64 a, __m64 b) -+{ -+ return vreinterpret_m64_s64( -+ vadd_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); -+} -+ -+// Add packed signed 16-bit integers in a and b using saturation, and store the -+// results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi16 -+FORCE_INLINE __m128i _mm_adds_epi16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s16( -+ vqaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); -+} -+ -+// Add packed signed 8-bit integers in a and b using saturation, and store the -+// results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi8 -+FORCE_INLINE __m128i _mm_adds_epi8(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s8( -+ vqaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); -+} -+ -+// Add packed unsigned 16-bit integers in a and b using saturation, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu16 -+FORCE_INLINE __m128i _mm_adds_epu16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u16( -+ vqaddq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); -+} -+ -+// Add packed unsigned 8-bit integers in a and b using saturation, and store the -+// results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu8 -+FORCE_INLINE __m128i _mm_adds_epu8(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u8( -+ vqaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); -+} -+ -+// Compute the bitwise AND of packed double-precision (64-bit) floating-point -+// elements in a and b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_pd -+FORCE_INLINE __m128d _mm_and_pd(__m128d a, __m128d b) -+{ -+ return vreinterpretq_m128d_s64( -+ vandq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); -+} -+ -+// Compute the bitwise AND of 128 bits (representing integer data) in a and b, -+// and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_si128 -+FORCE_INLINE __m128i _mm_and_si128(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s32( -+ vandq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); -+} -+ -+// Compute the bitwise NOT of packed double-precision (64-bit) floating-point -+// elements in a and then AND with b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_pd -+FORCE_INLINE __m128d _mm_andnot_pd(__m128d a, __m128d b) -+{ -+ // *NOTE* argument swap -+ return vreinterpretq_m128d_s64( -+ vbicq_s64(vreinterpretq_s64_m128d(b), vreinterpretq_s64_m128d(a))); -+} -+ -+// Compute the bitwise NOT of 128 bits (representing integer data) in a and then -+// AND with b, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_si128 -+FORCE_INLINE __m128i _mm_andnot_si128(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s32( -+ vbicq_s32(vreinterpretq_s32_m128i(b), -+ vreinterpretq_s32_m128i(a))); // *NOTE* argument swap -+} -+ -+// Average packed unsigned 16-bit integers in a and b, and store the results in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu16 -+FORCE_INLINE __m128i _mm_avg_epu16(__m128i a, __m128i b) -+{ -+ return (__m128i) vrhaddq_u16(vreinterpretq_u16_m128i(a), -+ vreinterpretq_u16_m128i(b)); -+} -+ -+// Average packed unsigned 8-bit integers in a and b, and store the results in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu8 -+FORCE_INLINE __m128i _mm_avg_epu8(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u8( -+ vrhaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); -+} -+ -+// Shift a left by imm8 bytes while shifting in zeros, and store the results in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bslli_si128 -+#define _mm_bslli_si128(a, imm) _mm_slli_si128(a, imm) -+ -+// Shift a right by imm8 bytes while shifting in zeros, and store the results in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bsrli_si128 -+#define _mm_bsrli_si128(a, imm) _mm_srli_si128(a, imm) -+ -+// Cast vector of type __m128d to type __m128. This intrinsic is only used for -+// compilation and does not generate any instructions, thus it has zero latency. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_ps -+FORCE_INLINE __m128 _mm_castpd_ps(__m128d a) -+{ -+ return vreinterpretq_m128_s64(vreinterpretq_s64_m128d(a)); -+} -+ -+// Cast vector of type __m128d to type __m128i. This intrinsic is only used for -+// compilation and does not generate any instructions, thus it has zero latency. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_si128 -+FORCE_INLINE __m128i _mm_castpd_si128(__m128d a) -+{ -+ return vreinterpretq_m128i_s64(vreinterpretq_s64_m128d(a)); -+} -+ -+// Cast vector of type __m128 to type __m128d. This intrinsic is only used for -+// compilation and does not generate any instructions, thus it has zero latency. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_pd -+FORCE_INLINE __m128d _mm_castps_pd(__m128 a) -+{ -+ return vreinterpretq_m128d_s32(vreinterpretq_s32_m128(a)); -+} -+ -+// Cast vector of type __m128 to type __m128i. This intrinsic is only used for -+// compilation and does not generate any instructions, thus it has zero latency. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_si128 -+FORCE_INLINE __m128i _mm_castps_si128(__m128 a) -+{ -+ return vreinterpretq_m128i_s32(vreinterpretq_s32_m128(a)); -+} -+ -+// Cast vector of type __m128i to type __m128d. This intrinsic is only used for -+// compilation and does not generate any instructions, thus it has zero latency. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_pd -+FORCE_INLINE __m128d _mm_castsi128_pd(__m128i a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64(vreinterpretq_f64_m128i(a)); -+#else -+ return vreinterpretq_m128d_f32(vreinterpretq_f32_m128i(a)); -+#endif -+} -+ -+// Cast vector of type __m128i to type __m128. This intrinsic is only used for -+// compilation and does not generate any instructions, thus it has zero latency. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_ps -+FORCE_INLINE __m128 _mm_castsi128_ps(__m128i a) -+{ -+ return vreinterpretq_m128_s32(vreinterpretq_s32_m128i(a)); -+} -+ -+// Invalidate and flush the cache line that contains p from all levels of the -+// cache hierarchy. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clflush -+#if defined(__APPLE__) -+#include -+#endif -+FORCE_INLINE void _mm_clflush(void const *p) -+{ -+ (void) p; -+ -+ /* sys_icache_invalidate is supported since macOS 10.5. -+ * However, it does not work on non-jailbroken iOS devices, although the -+ * compilation is successful. -+ */ -+#if defined(__APPLE__) -+ sys_icache_invalidate((void *) (uintptr_t) p, SSE2NEON_CACHELINE_SIZE); -+#elif defined(__GNUC__) || defined(__clang__) -+ uintptr_t ptr = (uintptr_t) p; -+ __builtin___clear_cache((char *) ptr, -+ (char *) ptr + SSE2NEON_CACHELINE_SIZE); -+#elif (_MSC_VER) && SSE2NEON_INCLUDE_WINDOWS_H -+ FlushInstructionCache(GetCurrentProcess(), p, SSE2NEON_CACHELINE_SIZE); -+#endif -+} -+ -+// Compare packed 16-bit integers in a and b for equality, and store the results -+// in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi16 -+FORCE_INLINE __m128i _mm_cmpeq_epi16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u16( -+ vceqq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); -+} -+ -+// Compare packed 32-bit integers in a and b for equality, and store the results -+// in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi32 -+FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u32( -+ vceqq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); -+} -+ -+// Compare packed 8-bit integers in a and b for equality, and store the results -+// in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi8 -+FORCE_INLINE __m128i _mm_cmpeq_epi8(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u8( -+ vceqq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); -+} -+ -+// Compare packed double-precision (64-bit) floating-point elements in a and b -+// for equality, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_pd -+FORCE_INLINE __m128d _mm_cmpeq_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_u64( -+ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); -+#else -+ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) -+ uint32x4_t cmp = -+ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); -+ uint32x4_t swapped = vrev64q_u32(cmp); -+ return vreinterpretq_m128d_u32(vandq_u32(cmp, swapped)); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point elements in a and -+// b for equality, store the result in the lower element of dst, and copy the -+// upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_sd -+FORCE_INLINE __m128d _mm_cmpeq_sd(__m128d a, __m128d b) -+{ -+ return _mm_move_sd(a, _mm_cmpeq_pd(a, b)); -+} -+ -+// Compare packed double-precision (64-bit) floating-point elements in a and b -+// for greater-than-or-equal, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_pd -+FORCE_INLINE __m128d _mm_cmpge_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_u64( -+ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); -+ d[1] = (*(double *) &a1) >= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point elements in a and -+// b for greater-than-or-equal, store the result in the lower element of dst, -+// and copy the upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_sd -+FORCE_INLINE __m128d _mm_cmpge_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return _mm_move_sd(a, _mm_cmpge_pd(a, b)); -+#else -+ // expand "_mm_cmpge_pd()" to reduce unnecessary operations -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); -+ d[1] = a1; -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare packed signed 16-bit integers in a and b for greater-than, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi16 -+FORCE_INLINE __m128i _mm_cmpgt_epi16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u16( -+ vcgtq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); -+} -+ -+// Compare packed signed 32-bit integers in a and b for greater-than, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi32 -+FORCE_INLINE __m128i _mm_cmpgt_epi32(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u32( -+ vcgtq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); -+} -+ -+// Compare packed signed 8-bit integers in a and b for greater-than, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi8 -+FORCE_INLINE __m128i _mm_cmpgt_epi8(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u8( -+ vcgtq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); -+} -+ -+// Compare packed double-precision (64-bit) floating-point elements in a and b -+// for greater-than, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_pd -+FORCE_INLINE __m128d _mm_cmpgt_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_u64( -+ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); -+ d[1] = (*(double *) &a1) > (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point elements in a and -+// b for greater-than, store the result in the lower element of dst, and copy -+// the upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_sd -+FORCE_INLINE __m128d _mm_cmpgt_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return _mm_move_sd(a, _mm_cmpgt_pd(a, b)); -+#else -+ // expand "_mm_cmpge_pd()" to reduce unnecessary operations -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); -+ d[1] = a1; -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare packed double-precision (64-bit) floating-point elements in a and b -+// for less-than-or-equal, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_pd -+FORCE_INLINE __m128d _mm_cmple_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_u64( -+ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); -+ d[1] = (*(double *) &a1) <= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point elements in a and -+// b for less-than-or-equal, store the result in the lower element of dst, and -+// copy the upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_sd -+FORCE_INLINE __m128d _mm_cmple_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return _mm_move_sd(a, _mm_cmple_pd(a, b)); -+#else -+ // expand "_mm_cmpge_pd()" to reduce unnecessary operations -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); -+ d[1] = a1; -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare packed signed 16-bit integers in a and b for less-than, and store the -+// results in dst. Note: This intrinsic emits the pcmpgtw instruction with the -+// order of the operands switched. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi16 -+FORCE_INLINE __m128i _mm_cmplt_epi16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u16( -+ vcltq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); -+} -+ -+// Compare packed signed 32-bit integers in a and b for less-than, and store the -+// results in dst. Note: This intrinsic emits the pcmpgtd instruction with the -+// order of the operands switched. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi32 -+FORCE_INLINE __m128i _mm_cmplt_epi32(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u32( -+ vcltq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); -+} -+ -+// Compare packed signed 8-bit integers in a and b for less-than, and store the -+// results in dst. Note: This intrinsic emits the pcmpgtb instruction with the -+// order of the operands switched. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi8 -+FORCE_INLINE __m128i _mm_cmplt_epi8(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u8( -+ vcltq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); -+} -+ -+// Compare packed double-precision (64-bit) floating-point elements in a and b -+// for less-than, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_pd -+FORCE_INLINE __m128d _mm_cmplt_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_u64( -+ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); -+ d[1] = (*(double *) &a1) < (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point elements in a and -+// b for less-than, store the result in the lower element of dst, and copy the -+// upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_sd -+FORCE_INLINE __m128d _mm_cmplt_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return _mm_move_sd(a, _mm_cmplt_pd(a, b)); -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); -+ d[1] = a1; -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare packed double-precision (64-bit) floating-point elements in a and b -+// for not-equal, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_pd -+FORCE_INLINE __m128d _mm_cmpneq_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_s32(vmvnq_s32(vreinterpretq_s32_u64( -+ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))))); -+#else -+ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) -+ uint32x4_t cmp = -+ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); -+ uint32x4_t swapped = vrev64q_u32(cmp); -+ return vreinterpretq_m128d_u32(vmvnq_u32(vandq_u32(cmp, swapped))); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point elements in a and -+// b for not-equal, store the result in the lower element of dst, and copy the -+// upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_sd -+FORCE_INLINE __m128d _mm_cmpneq_sd(__m128d a, __m128d b) -+{ -+ return _mm_move_sd(a, _mm_cmpneq_pd(a, b)); -+} -+ -+// Compare packed double-precision (64-bit) floating-point elements in a and b -+// for not-greater-than-or-equal, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_pd -+FORCE_INLINE __m128d _mm_cmpnge_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_u64(veorq_u64( -+ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), -+ vdupq_n_u64(UINT64_MAX))); -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = -+ !((*(double *) &a0) >= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); -+ d[1] = -+ !((*(double *) &a1) >= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point elements in a and -+// b for not-greater-than-or-equal, store the result in the lower element of -+// dst, and copy the upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_sd -+FORCE_INLINE __m128d _mm_cmpnge_sd(__m128d a, __m128d b) -+{ -+ return _mm_move_sd(a, _mm_cmpnge_pd(a, b)); -+} -+ -+// Compare packed double-precision (64-bit) floating-point elements in a and b -+// for not-greater-than, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_cmpngt_pd -+FORCE_INLINE __m128d _mm_cmpngt_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_u64(veorq_u64( -+ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), -+ vdupq_n_u64(UINT64_MAX))); -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = -+ !((*(double *) &a0) > (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); -+ d[1] = -+ !((*(double *) &a1) > (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point elements in a and -+// b for not-greater-than, store the result in the lower element of dst, and -+// copy the upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_sd -+FORCE_INLINE __m128d _mm_cmpngt_sd(__m128d a, __m128d b) -+{ -+ return _mm_move_sd(a, _mm_cmpngt_pd(a, b)); -+} -+ -+// Compare packed double-precision (64-bit) floating-point elements in a and b -+// for not-less-than-or-equal, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_pd -+FORCE_INLINE __m128d _mm_cmpnle_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_u64(veorq_u64( -+ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), -+ vdupq_n_u64(UINT64_MAX))); -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = -+ !((*(double *) &a0) <= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); -+ d[1] = -+ !((*(double *) &a1) <= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point elements in a and -+// b for not-less-than-or-equal, store the result in the lower element of dst, -+// and copy the upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_sd -+FORCE_INLINE __m128d _mm_cmpnle_sd(__m128d a, __m128d b) -+{ -+ return _mm_move_sd(a, _mm_cmpnle_pd(a, b)); -+} -+ -+// Compare packed double-precision (64-bit) floating-point elements in a and b -+// for not-less-than, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_pd -+FORCE_INLINE __m128d _mm_cmpnlt_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_u64(veorq_u64( -+ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), -+ vdupq_n_u64(UINT64_MAX))); -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = -+ !((*(double *) &a0) < (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); -+ d[1] = -+ !((*(double *) &a1) < (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point elements in a and -+// b for not-less-than, store the result in the lower element of dst, and copy -+// the upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_sd -+FORCE_INLINE __m128d _mm_cmpnlt_sd(__m128d a, __m128d b) -+{ -+ return _mm_move_sd(a, _mm_cmpnlt_pd(a, b)); -+} -+ -+// Compare packed double-precision (64-bit) floating-point elements in a and b -+// to see if neither is NaN, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_pd -+FORCE_INLINE __m128d _mm_cmpord_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ // Excluding NaNs, any two floating point numbers can be compared. -+ uint64x2_t not_nan_a = -+ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); -+ uint64x2_t not_nan_b = -+ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); -+ return vreinterpretq_m128d_u64(vandq_u64(not_nan_a, not_nan_b)); -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = ((*(double *) &a0) == (*(double *) &a0) && -+ (*(double *) &b0) == (*(double *) &b0)) -+ ? ~UINT64_C(0) -+ : UINT64_C(0); -+ d[1] = ((*(double *) &a1) == (*(double *) &a1) && -+ (*(double *) &b1) == (*(double *) &b1)) -+ ? ~UINT64_C(0) -+ : UINT64_C(0); -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point elements in a and -+// b to see if neither is NaN, store the result in the lower element of dst, and -+// copy the upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_sd -+FORCE_INLINE __m128d _mm_cmpord_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return _mm_move_sd(a, _mm_cmpord_pd(a, b)); -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t d[2]; -+ d[0] = ((*(double *) &a0) == (*(double *) &a0) && -+ (*(double *) &b0) == (*(double *) &b0)) -+ ? ~UINT64_C(0) -+ : UINT64_C(0); -+ d[1] = a1; -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare packed double-precision (64-bit) floating-point elements in a and b -+// to see if either is NaN, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_pd -+FORCE_INLINE __m128d _mm_cmpunord_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ // Two NaNs are not equal in comparison operation. -+ uint64x2_t not_nan_a = -+ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); -+ uint64x2_t not_nan_b = -+ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); -+ return vreinterpretq_m128d_s32( -+ vmvnq_s32(vreinterpretq_s32_u64(vandq_u64(not_nan_a, not_nan_b)))); -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = ((*(double *) &a0) == (*(double *) &a0) && -+ (*(double *) &b0) == (*(double *) &b0)) -+ ? UINT64_C(0) -+ : ~UINT64_C(0); -+ d[1] = ((*(double *) &a1) == (*(double *) &a1) && -+ (*(double *) &b1) == (*(double *) &b1)) -+ ? UINT64_C(0) -+ : ~UINT64_C(0); -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point elements in a and -+// b to see if either is NaN, store the result in the lower element of dst, and -+// copy the upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_sd -+FORCE_INLINE __m128d _mm_cmpunord_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return _mm_move_sd(a, _mm_cmpunord_pd(a, b)); -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t d[2]; -+ d[0] = ((*(double *) &a0) == (*(double *) &a0) && -+ (*(double *) &b0) == (*(double *) &b0)) -+ ? UINT64_C(0) -+ : ~UINT64_C(0); -+ d[1] = a1; -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point element in a and b -+// for greater-than-or-equal, and return the boolean result (0 or 1). -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_sd -+FORCE_INLINE int _mm_comige_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vgetq_lane_u64(vcgeq_f64(a, b), 0) & 0x1; -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ -+ return (*(double *) &a0 >= *(double *) &b0); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point element in a and b -+// for greater-than, and return the boolean result (0 or 1). -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_sd -+FORCE_INLINE int _mm_comigt_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vgetq_lane_u64(vcgtq_f64(a, b), 0) & 0x1; -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ -+ return (*(double *) &a0 > *(double *) &b0); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point element in a and b -+// for less-than-or-equal, and return the boolean result (0 or 1). -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_sd -+FORCE_INLINE int _mm_comile_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vgetq_lane_u64(vcleq_f64(a, b), 0) & 0x1; -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ -+ return (*(double *) &a0 <= *(double *) &b0); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point element in a and b -+// for less-than, and return the boolean result (0 or 1). -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_sd -+FORCE_INLINE int _mm_comilt_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vgetq_lane_u64(vcltq_f64(a, b), 0) & 0x1; -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ -+ return (*(double *) &a0 < *(double *) &b0); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point element in a and b -+// for equality, and return the boolean result (0 or 1). -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_sd -+FORCE_INLINE int _mm_comieq_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vgetq_lane_u64(vceqq_f64(a, b), 0) & 0x1; -+#else -+ uint32x4_t a_not_nan = -+ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(a)); -+ uint32x4_t b_not_nan = -+ vceqq_u32(vreinterpretq_u32_m128d(b), vreinterpretq_u32_m128d(b)); -+ uint32x4_t a_and_b_not_nan = vandq_u32(a_not_nan, b_not_nan); -+ uint32x4_t a_eq_b = -+ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); -+ uint64x2_t and_results = vandq_u64(vreinterpretq_u64_u32(a_and_b_not_nan), -+ vreinterpretq_u64_u32(a_eq_b)); -+ return vgetq_lane_u64(and_results, 0) & 0x1; -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point element in a and b -+// for not-equal, and return the boolean result (0 or 1). -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_sd -+FORCE_INLINE int _mm_comineq_sd(__m128d a, __m128d b) -+{ -+ return !_mm_comieq_sd(a, b); -+} -+ -+// Convert packed signed 32-bit integers in a to packed double-precision -+// (64-bit) floating-point elements, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_pd -+FORCE_INLINE __m128d _mm_cvtepi32_pd(__m128i a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vcvtq_f64_s64(vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a))))); -+#else -+ double a0 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); -+ double a1 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 1); -+ return _mm_set_pd(a1, a0); -+#endif -+} -+ -+// Convert packed signed 32-bit integers in a to packed single-precision -+// (32-bit) floating-point elements, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_ps -+FORCE_INLINE __m128 _mm_cvtepi32_ps(__m128i a) -+{ -+ return vreinterpretq_m128_f32(vcvtq_f32_s32(vreinterpretq_s32_m128i(a))); -+} -+ -+// Convert packed double-precision (64-bit) floating-point elements in a to -+// packed 32-bit integers, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_epi32 -+FORCE_INLINE_OPTNONE __m128i _mm_cvtpd_epi32(__m128d a) -+{ -+// vrnd32xq_f64 not supported on clang -+#if defined(__ARM_FEATURE_FRINT) && !defined(__clang__) -+ float64x2_t rounded = vrnd32xq_f64(vreinterpretq_f64_m128d(a)); -+ int64x2_t integers = vcvtq_s64_f64(rounded); -+ return vreinterpretq_m128i_s32( -+ vcombine_s32(vmovn_s64(integers), vdup_n_s32(0))); -+#else -+ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); -+ double d0 = ((double *) &rnd)[0]; -+ double d1 = ((double *) &rnd)[1]; -+ return _mm_set_epi32(0, 0, (int32_t) d1, (int32_t) d0); -+#endif -+} -+ -+// Convert packed double-precision (64-bit) floating-point elements in a to -+// packed 32-bit integers, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_pi32 -+FORCE_INLINE_OPTNONE __m64 _mm_cvtpd_pi32(__m128d a) -+{ -+ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); -+ double d0 = ((double *) &rnd)[0]; -+ double d1 = ((double *) &rnd)[1]; -+ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) d0, (int32_t) d1}; -+ return vreinterpret_m64_s32(vld1_s32(data)); -+} -+ -+// Convert packed double-precision (64-bit) floating-point elements in a to -+// packed single-precision (32-bit) floating-point elements, and store the -+// results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_ps -+FORCE_INLINE __m128 _mm_cvtpd_ps(__m128d a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ float32x2_t tmp = vcvt_f32_f64(vreinterpretq_f64_m128d(a)); -+ return vreinterpretq_m128_f32(vcombine_f32(tmp, vdup_n_f32(0))); -+#else -+ float a0 = (float) ((double *) &a)[0]; -+ float a1 = (float) ((double *) &a)[1]; -+ return _mm_set_ps(0, 0, a1, a0); -+#endif -+} -+ -+// Convert packed signed 32-bit integers in a to packed double-precision -+// (64-bit) floating-point elements, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_pd -+FORCE_INLINE __m128d _mm_cvtpi32_pd(__m64 a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vcvtq_f64_s64(vmovl_s32(vreinterpret_s32_m64(a)))); -+#else -+ double a0 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 0); -+ double a1 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 1); -+ return _mm_set_pd(a1, a0); -+#endif -+} -+ -+// Convert packed single-precision (32-bit) floating-point elements in a to -+// packed 32-bit integers, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_epi32 -+// *NOTE*. The default rounding mode on SSE is 'round to even', which ARMv7-A -+// does not support! It is supported on ARMv8-A however. -+FORCE_INLINE __m128i _mm_cvtps_epi32(__m128 a) -+{ -+#if defined(__ARM_FEATURE_FRINT) -+ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vrnd32xq_f32(a))); -+#elif (defined(__aarch64__) || defined(_M_ARM64)) || \ -+ defined(__ARM_FEATURE_DIRECTED_ROUNDING) -+ switch (_MM_GET_ROUNDING_MODE()) { -+ case _MM_ROUND_NEAREST: -+ return vreinterpretq_m128i_s32(vcvtnq_s32_f32(a)); -+ case _MM_ROUND_DOWN: -+ return vreinterpretq_m128i_s32(vcvtmq_s32_f32(a)); -+ case _MM_ROUND_UP: -+ return vreinterpretq_m128i_s32(vcvtpq_s32_f32(a)); -+ default: // _MM_ROUND_TOWARD_ZERO -+ return vreinterpretq_m128i_s32(vcvtq_s32_f32(a)); -+ } -+#else -+ float *f = (float *) &a; -+ switch (_MM_GET_ROUNDING_MODE()) { -+ case _MM_ROUND_NEAREST: { -+ uint32x4_t signmask = vdupq_n_u32(0x80000000); -+ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), -+ vdupq_n_f32(0.5f)); /* +/- 0.5 */ -+ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( -+ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ -+ int32x4_t r_trunc = vcvtq_s32_f32( -+ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ -+ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( -+ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ -+ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), -+ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ -+ float32x4_t delta = vsubq_f32( -+ vreinterpretq_f32_m128(a), -+ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ -+ uint32x4_t is_delta_half = -+ vceqq_f32(delta, half); /* delta == +/- 0.5 */ -+ return vreinterpretq_m128i_s32( -+ vbslq_s32(is_delta_half, r_even, r_normal)); -+ } -+ case _MM_ROUND_DOWN: -+ return _mm_set_epi32(floorf(f[3]), floorf(f[2]), floorf(f[1]), -+ floorf(f[0])); -+ case _MM_ROUND_UP: -+ return _mm_set_epi32(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), -+ ceilf(f[0])); -+ default: // _MM_ROUND_TOWARD_ZERO -+ return _mm_set_epi32((int32_t) f[3], (int32_t) f[2], (int32_t) f[1], -+ (int32_t) f[0]); -+ } -+#endif -+} -+ -+// Convert packed single-precision (32-bit) floating-point elements in a to -+// packed double-precision (64-bit) floating-point elements, and store the -+// results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pd -+FORCE_INLINE __m128d _mm_cvtps_pd(__m128 a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vcvt_f64_f32(vget_low_f32(vreinterpretq_f32_m128(a)))); -+#else -+ double a0 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); -+ double a1 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); -+ return _mm_set_pd(a1, a0); -+#endif -+} -+ -+// Copy the lower double-precision (64-bit) floating-point element of a to dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_f64 -+FORCE_INLINE double _mm_cvtsd_f64(__m128d a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return (double) vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0); -+#else -+ return ((double *) &a)[0]; -+#endif -+} -+ -+// Convert the lower double-precision (64-bit) floating-point element in a to a -+// 32-bit integer, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si32 -+FORCE_INLINE int32_t _mm_cvtsd_si32(__m128d a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return (int32_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); -+#else -+ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); -+ double ret = ((double *) &rnd)[0]; -+ return (int32_t) ret; -+#endif -+} -+ -+// Convert the lower double-precision (64-bit) floating-point element in a to a -+// 64-bit integer, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64 -+FORCE_INLINE int64_t _mm_cvtsd_si64(__m128d a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return (int64_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); -+#else -+ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); -+ double ret = ((double *) &rnd)[0]; -+ return (int64_t) ret; -+#endif -+} -+ -+// Convert the lower double-precision (64-bit) floating-point element in a to a -+// 64-bit integer, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64x -+#define _mm_cvtsd_si64x _mm_cvtsd_si64 -+ -+// Convert the lower double-precision (64-bit) floating-point element in b to a -+// single-precision (32-bit) floating-point element, store the result in the -+// lower element of dst, and copy the upper 3 packed elements from a to the -+// upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_ss -+FORCE_INLINE __m128 _mm_cvtsd_ss(__m128 a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128_f32(vsetq_lane_f32( -+ vget_lane_f32(vcvt_f32_f64(vreinterpretq_f64_m128d(b)), 0), -+ vreinterpretq_f32_m128(a), 0)); -+#else -+ return vreinterpretq_m128_f32(vsetq_lane_f32((float) ((double *) &b)[0], -+ vreinterpretq_f32_m128(a), 0)); -+#endif -+} -+ -+// Copy the lower 32-bit integer in a to dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si32 -+FORCE_INLINE int _mm_cvtsi128_si32(__m128i a) -+{ -+ return vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); -+} -+ -+// Copy the lower 64-bit integer in a to dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64 -+FORCE_INLINE int64_t _mm_cvtsi128_si64(__m128i a) -+{ -+ return vgetq_lane_s64(vreinterpretq_s64_m128i(a), 0); -+} -+ -+// Copy the lower 64-bit integer in a to dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x -+#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) -+ -+// Convert the signed 32-bit integer b to a double-precision (64-bit) -+// floating-point element, store the result in the lower element of dst, and -+// copy the upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_sd -+FORCE_INLINE __m128d _mm_cvtsi32_sd(__m128d a, int32_t b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); -+#else -+ double bf = (double) b; -+ return vreinterpretq_m128d_s64( -+ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); -+#endif -+} -+ -+// Copy the lower 64-bit integer in a to dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x -+#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) -+ -+// Copy 32-bit integer a to the lower elements of dst, and zero the upper -+// elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_si128 -+FORCE_INLINE __m128i _mm_cvtsi32_si128(int a) -+{ -+ return vreinterpretq_m128i_s32(vsetq_lane_s32(a, vdupq_n_s32(0), 0)); -+} -+ -+// Convert the signed 64-bit integer b to a double-precision (64-bit) -+// floating-point element, store the result in the lower element of dst, and -+// copy the upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_sd -+FORCE_INLINE __m128d _mm_cvtsi64_sd(__m128d a, int64_t b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); -+#else -+ double bf = (double) b; -+ return vreinterpretq_m128d_s64( -+ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); -+#endif -+} -+ -+// Copy 64-bit integer a to the lower element of dst, and zero the upper -+// element. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_si128 -+FORCE_INLINE __m128i _mm_cvtsi64_si128(int64_t a) -+{ -+ return vreinterpretq_m128i_s64(vsetq_lane_s64(a, vdupq_n_s64(0), 0)); -+} -+ -+// Copy 64-bit integer a to the lower element of dst, and zero the upper -+// element. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_si128 -+#define _mm_cvtsi64x_si128(a) _mm_cvtsi64_si128(a) -+ -+// Convert the signed 64-bit integer b to a double-precision (64-bit) -+// floating-point element, store the result in the lower element of dst, and -+// copy the upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_sd -+#define _mm_cvtsi64x_sd(a, b) _mm_cvtsi64_sd(a, b) -+ -+// Convert the lower single-precision (32-bit) floating-point element in b to a -+// double-precision (64-bit) floating-point element, store the result in the -+// lower element of dst, and copy the upper element from a to the upper element -+// of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_sd -+FORCE_INLINE __m128d _mm_cvtss_sd(__m128d a, __m128 b) -+{ -+ double d = (double) vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vsetq_lane_f64(d, vreinterpretq_f64_m128d(a), 0)); -+#else -+ return vreinterpretq_m128d_s64( -+ vsetq_lane_s64(*(int64_t *) &d, vreinterpretq_s64_m128d(a), 0)); -+#endif -+} -+ -+// Convert packed double-precision (64-bit) floating-point elements in a to -+// packed 32-bit integers with truncation, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_epi32 -+FORCE_INLINE __m128i _mm_cvttpd_epi32(__m128d a) -+{ -+ double a0 = ((double *) &a)[0]; -+ double a1 = ((double *) &a)[1]; -+ return _mm_set_epi32(0, 0, (int32_t) a1, (int32_t) a0); -+} -+ -+// Convert packed double-precision (64-bit) floating-point elements in a to -+// packed 32-bit integers with truncation, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_pi32 -+FORCE_INLINE __m64 _mm_cvttpd_pi32(__m128d a) -+{ -+ double a0 = ((double *) &a)[0]; -+ double a1 = ((double *) &a)[1]; -+ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) a0, (int32_t) a1}; -+ return vreinterpret_m64_s32(vld1_s32(data)); -+} -+ -+// Convert packed single-precision (32-bit) floating-point elements in a to -+// packed 32-bit integers with truncation, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_epi32 -+FORCE_INLINE __m128i _mm_cvttps_epi32(__m128 a) -+{ -+ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a))); -+} -+ -+// Convert the lower double-precision (64-bit) floating-point element in a to a -+// 32-bit integer with truncation, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si32 -+FORCE_INLINE int32_t _mm_cvttsd_si32(__m128d a) -+{ -+ double ret = *((double *) &a); -+ return (int32_t) ret; -+} -+ -+// Convert the lower double-precision (64-bit) floating-point element in a to a -+// 64-bit integer with truncation, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64 -+FORCE_INLINE int64_t _mm_cvttsd_si64(__m128d a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vgetq_lane_s64(vcvtq_s64_f64(vreinterpretq_f64_m128d(a)), 0); -+#else -+ double ret = *((double *) &a); -+ return (int64_t) ret; -+#endif -+} -+ -+// Convert the lower double-precision (64-bit) floating-point element in a to a -+// 64-bit integer with truncation, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64x -+#define _mm_cvttsd_si64x(a) _mm_cvttsd_si64(a) -+ -+// Divide packed double-precision (64-bit) floating-point elements in a by -+// packed elements in b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_pd -+FORCE_INLINE __m128d _mm_div_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); -+#else -+ double *da = (double *) &a; -+ double *db = (double *) &b; -+ double c[2]; -+ c[0] = da[0] / db[0]; -+ c[1] = da[1] / db[1]; -+ return vld1q_f32((float32_t *) c); -+#endif -+} -+ -+// Divide the lower double-precision (64-bit) floating-point element in a by the -+// lower double-precision (64-bit) floating-point element in b, store the result -+// in the lower element of dst, and copy the upper element from a to the upper -+// element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_sd -+FORCE_INLINE __m128d _mm_div_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ float64x2_t tmp = -+ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)); -+ return vreinterpretq_m128d_f64( -+ vsetq_lane_f64(vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1), tmp, 1)); -+#else -+ return _mm_move_sd(a, _mm_div_pd(a, b)); -+#endif -+} -+ -+// Extract a 16-bit integer from a, selected with imm8, and store the result in -+// the lower element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi16 -+// FORCE_INLINE int _mm_extract_epi16(__m128i a, __constrange(0,8) int imm) -+#define _mm_extract_epi16(a, imm) \ -+ vgetq_lane_u16(vreinterpretq_u16_m128i(a), (imm)) -+ -+// Copy a to dst, and insert the 16-bit integer i into dst at the location -+// specified by imm8. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi16 -+// FORCE_INLINE __m128i _mm_insert_epi16(__m128i a, int b, -+// __constrange(0,8) int imm) -+#define _mm_insert_epi16(a, b, imm) \ -+ vreinterpretq_m128i_s16( \ -+ vsetq_lane_s16((b), vreinterpretq_s16_m128i(a), (imm))) -+ -+// Load 128-bits (composed of 2 packed double-precision (64-bit) floating-point -+// elements) from memory into dst. mem_addr must be aligned on a 16-byte -+// boundary or a general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd -+FORCE_INLINE __m128d _mm_load_pd(const double *p) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64(vld1q_f64(p)); -+#else -+ const float *fp = (const float *) p; -+ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], fp[2], fp[3]}; -+ return vreinterpretq_m128d_f32(vld1q_f32(data)); -+#endif -+} -+ -+// Load a double-precision (64-bit) floating-point element from memory into both -+// elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd1 -+#define _mm_load_pd1 _mm_load1_pd -+ -+// Load a double-precision (64-bit) floating-point element from memory into the -+// lower of dst, and zero the upper element. mem_addr does not need to be -+// aligned on any particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_sd -+FORCE_INLINE __m128d _mm_load_sd(const double *p) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64(vsetq_lane_f64(*p, vdupq_n_f64(0), 0)); -+#else -+ const float *fp = (const float *) p; -+ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], 0, 0}; -+ return vreinterpretq_m128d_f32(vld1q_f32(data)); -+#endif -+} -+ -+// Load 128-bits of integer data from memory into dst. mem_addr must be aligned -+// on a 16-byte boundary or a general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_si128 -+FORCE_INLINE __m128i _mm_load_si128(const __m128i *p) -+{ -+ return vreinterpretq_m128i_s32(vld1q_s32((const int32_t *) p)); -+} -+ -+// Load a double-precision (64-bit) floating-point element from memory into both -+// elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_pd -+FORCE_INLINE __m128d _mm_load1_pd(const double *p) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64(vld1q_dup_f64(p)); -+#else -+ return vreinterpretq_m128d_s64(vdupq_n_s64(*(const int64_t *) p)); -+#endif -+} -+ -+// Load a double-precision (64-bit) floating-point element from memory into the -+// upper element of dst, and copy the lower element from a to dst. mem_addr does -+// not need to be aligned on any particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pd -+FORCE_INLINE __m128d _mm_loadh_pd(__m128d a, const double *p) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vcombine_f64(vget_low_f64(vreinterpretq_f64_m128d(a)), vld1_f64(p))); -+#else -+ return vreinterpretq_m128d_f32(vcombine_f32( -+ vget_low_f32(vreinterpretq_f32_m128d(a)), vld1_f32((const float *) p))); -+#endif -+} -+ -+// Load 64-bit integer from memory into the first element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_epi64 -+FORCE_INLINE __m128i _mm_loadl_epi64(__m128i const *p) -+{ -+ /* Load the lower 64 bits of the value pointed to by p into the -+ * lower 64 bits of the result, zeroing the upper 64 bits of the result. -+ */ -+ return vreinterpretq_m128i_s32( -+ vcombine_s32(vld1_s32((int32_t const *) p), vcreate_s32(0))); -+} -+ -+// Load a double-precision (64-bit) floating-point element from memory into the -+// lower element of dst, and copy the upper element from a to dst. mem_addr does -+// not need to be aligned on any particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pd -+FORCE_INLINE __m128d _mm_loadl_pd(__m128d a, const double *p) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vcombine_f64(vld1_f64(p), vget_high_f64(vreinterpretq_f64_m128d(a)))); -+#else -+ return vreinterpretq_m128d_f32( -+ vcombine_f32(vld1_f32((const float *) p), -+ vget_high_f32(vreinterpretq_f32_m128d(a)))); -+#endif -+} -+ -+// Load 2 double-precision (64-bit) floating-point elements from memory into dst -+// in reverse order. mem_addr must be aligned on a 16-byte boundary or a -+// general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_pd -+FORCE_INLINE __m128d _mm_loadr_pd(const double *p) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ float64x2_t v = vld1q_f64(p); -+ return vreinterpretq_m128d_f64(vextq_f64(v, v, 1)); -+#else -+ int64x2_t v = vld1q_s64((const int64_t *) p); -+ return vreinterpretq_m128d_s64(vextq_s64(v, v, 1)); -+#endif -+} -+ -+// Loads two double-precision from unaligned memory, floating-point values. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_pd -+FORCE_INLINE __m128d _mm_loadu_pd(const double *p) -+{ -+ return _mm_load_pd(p); -+} -+ -+// Load 128-bits of integer data from memory into dst. mem_addr does not need to -+// be aligned on any particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si128 -+FORCE_INLINE __m128i _mm_loadu_si128(const __m128i *p) -+{ -+ return vreinterpretq_m128i_s32(vld1q_s32((const unaligned_int32_t *) p)); -+} -+ -+// Load unaligned 32-bit integer from memory into the first element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si32 -+FORCE_INLINE __m128i _mm_loadu_si32(const void *p) -+{ -+ return vreinterpretq_m128i_s32( -+ vsetq_lane_s32(*(const unaligned_int32_t *) p, vdupq_n_s32(0), 0)); -+} -+ -+// Multiply packed signed 16-bit integers in a and b, producing intermediate -+// signed 32-bit integers. Horizontally add adjacent pairs of intermediate -+// 32-bit integers, and pack the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_madd_epi16 -+FORCE_INLINE __m128i _mm_madd_epi16(__m128i a, __m128i b) -+{ -+ int32x4_t low = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), -+ vget_low_s16(vreinterpretq_s16_m128i(b))); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ int32x4_t high = -+ vmull_high_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b)); -+ -+ return vreinterpretq_m128i_s32(vpaddq_s32(low, high)); -+#else -+ int32x4_t high = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), -+ vget_high_s16(vreinterpretq_s16_m128i(b))); -+ -+ int32x2_t low_sum = vpadd_s32(vget_low_s32(low), vget_high_s32(low)); -+ int32x2_t high_sum = vpadd_s32(vget_low_s32(high), vget_high_s32(high)); -+ -+ return vreinterpretq_m128i_s32(vcombine_s32(low_sum, high_sum)); -+#endif -+} -+ -+// Conditionally store 8-bit integer elements from a into memory using mask -+// (elements are not stored when the highest bit is not set in the corresponding -+// element) and a non-temporal memory hint. mem_addr does not need to be aligned -+// on any particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmoveu_si128 -+FORCE_INLINE void _mm_maskmoveu_si128(__m128i a, __m128i mask, char *mem_addr) -+{ -+ int8x16_t shr_mask = vshrq_n_s8(vreinterpretq_s8_m128i(mask), 7); -+ __m128 b = _mm_load_ps((const float *) mem_addr); -+ int8x16_t masked = -+ vbslq_s8(vreinterpretq_u8_s8(shr_mask), vreinterpretq_s8_m128i(a), -+ vreinterpretq_s8_m128(b)); -+ vst1q_s8((int8_t *) mem_addr, masked); -+} -+ -+// Compare packed signed 16-bit integers in a and b, and store packed maximum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi16 -+FORCE_INLINE __m128i _mm_max_epi16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s16( -+ vmaxq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); -+} -+ -+// Compare packed unsigned 8-bit integers in a and b, and store packed maximum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu8 -+FORCE_INLINE __m128i _mm_max_epu8(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u8( -+ vmaxq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); -+} -+ -+// Compare packed double-precision (64-bit) floating-point elements in a and b, -+// and store packed maximum values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pd -+FORCE_INLINE __m128d _mm_max_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+#if SSE2NEON_PRECISE_MINMAX -+ float64x2_t _a = vreinterpretq_f64_m128d(a); -+ float64x2_t _b = vreinterpretq_f64_m128d(b); -+ return vreinterpretq_m128d_f64(vbslq_f64(vcgtq_f64(_a, _b), _a, _b)); -+#else -+ return vreinterpretq_m128d_f64( -+ vmaxq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); -+#endif -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = (*(double *) &a0) > (*(double *) &b0) ? a0 : b0; -+ d[1] = (*(double *) &a1) > (*(double *) &b1) ? a1 : b1; -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point elements in a and -+// b, store the maximum value in the lower element of dst, and copy the upper -+// element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_sd -+FORCE_INLINE __m128d _mm_max_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return _mm_move_sd(a, _mm_max_pd(a, b)); -+#else -+ double *da = (double *) &a; -+ double *db = (double *) &b; -+ double c[2] = {da[0] > db[0] ? da[0] : db[0], da[1]}; -+ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); -+#endif -+} -+ -+// Compare packed signed 16-bit integers in a and b, and store packed minimum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi16 -+FORCE_INLINE __m128i _mm_min_epi16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s16( -+ vminq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); -+} -+ -+// Compare packed unsigned 8-bit integers in a and b, and store packed minimum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu8 -+FORCE_INLINE __m128i _mm_min_epu8(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u8( -+ vminq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); -+} -+ -+// Compare packed double-precision (64-bit) floating-point elements in a and b, -+// and store packed minimum values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pd -+FORCE_INLINE __m128d _mm_min_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+#if SSE2NEON_PRECISE_MINMAX -+ float64x2_t _a = vreinterpretq_f64_m128d(a); -+ float64x2_t _b = vreinterpretq_f64_m128d(b); -+ return vreinterpretq_m128d_f64(vbslq_f64(vcltq_f64(_a, _b), _a, _b)); -+#else -+ return vreinterpretq_m128d_f64( -+ vminq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); -+#endif -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = (*(double *) &a0) < (*(double *) &b0) ? a0 : b0; -+ d[1] = (*(double *) &a1) < (*(double *) &b1) ? a1 : b1; -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point elements in a and -+// b, store the minimum value in the lower element of dst, and copy the upper -+// element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_sd -+FORCE_INLINE __m128d _mm_min_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return _mm_move_sd(a, _mm_min_pd(a, b)); -+#else -+ double *da = (double *) &a; -+ double *db = (double *) &b; -+ double c[2] = {da[0] < db[0] ? da[0] : db[0], da[1]}; -+ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); -+#endif -+} -+ -+// Copy the lower 64-bit integer in a to the lower element of dst, and zero the -+// upper element. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_epi64 -+FORCE_INLINE __m128i _mm_move_epi64(__m128i a) -+{ -+ return vreinterpretq_m128i_s64( -+ vsetq_lane_s64(0, vreinterpretq_s64_m128i(a), 1)); -+} -+ -+// Move the lower double-precision (64-bit) floating-point element from b to the -+// lower element of dst, and copy the upper element from a to the upper element -+// of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_sd -+FORCE_INLINE __m128d _mm_move_sd(__m128d a, __m128d b) -+{ -+ return vreinterpretq_m128d_f32( -+ vcombine_f32(vget_low_f32(vreinterpretq_f32_m128d(b)), -+ vget_high_f32(vreinterpretq_f32_m128d(a)))); -+} -+ -+// Create mask from the most significant bit of each 8-bit element in a, and -+// store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_epi8 -+FORCE_INLINE int _mm_movemask_epi8(__m128i a) -+{ -+ // Use increasingly wide shifts+adds to collect the sign bits -+ // together. -+ // Since the widening shifts would be rather confusing to follow in little -+ // endian, everything will be illustrated in big endian order instead. This -+ // has a different result - the bits would actually be reversed on a big -+ // endian machine. -+ -+ // Starting input (only half the elements are shown): -+ // 89 ff 1d c0 00 10 99 33 -+ uint8x16_t input = vreinterpretq_u8_m128i(a); -+ -+ // Shift out everything but the sign bits with an unsigned shift right. -+ // -+ // Bytes of the vector:: -+ // 89 ff 1d c0 00 10 99 33 -+ // \ \ \ \ \ \ \ \ high_bits = (uint16x4_t)(input >> 7) -+ // | | | | | | | | -+ // 01 01 00 01 00 00 01 00 -+ // -+ // Bits of first important lane(s): -+ // 10001001 (89) -+ // \______ -+ // | -+ // 00000001 (01) -+ uint16x8_t high_bits = vreinterpretq_u16_u8(vshrq_n_u8(input, 7)); -+ -+ // Merge the even lanes together with a 16-bit unsigned shift right + add. -+ // 'xx' represents garbage data which will be ignored in the final result. -+ // In the important bytes, the add functions like a binary OR. -+ // -+ // 01 01 00 01 00 00 01 00 -+ // \_ | \_ | \_ | \_ | paired16 = (uint32x4_t)(input + (input >> 7)) -+ // \| \| \| \| -+ // xx 03 xx 01 xx 00 xx 02 -+ // -+ // 00000001 00000001 (01 01) -+ // \_______ | -+ // \| -+ // xxxxxxxx xxxxxx11 (xx 03) -+ uint32x4_t paired16 = -+ vreinterpretq_u32_u16(vsraq_n_u16(high_bits, high_bits, 7)); -+ -+ // Repeat with a wider 32-bit shift + add. -+ // xx 03 xx 01 xx 00 xx 02 -+ // \____ | \____ | paired32 = (uint64x1_t)(paired16 + (paired16 >> -+ // 14)) -+ // \| \| -+ // xx xx xx 0d xx xx xx 02 -+ // -+ // 00000011 00000001 (03 01) -+ // \\_____ || -+ // '----.\|| -+ // xxxxxxxx xxxx1101 (xx 0d) -+ uint64x2_t paired32 = -+ vreinterpretq_u64_u32(vsraq_n_u32(paired16, paired16, 14)); -+ -+ // Last, an even wider 64-bit shift + add to get our result in the low 8 bit -+ // lanes. xx xx xx 0d xx xx xx 02 -+ // \_________ | paired64 = (uint8x8_t)(paired32 + (paired32 >> -+ // 28)) -+ // \| -+ // xx xx xx xx xx xx xx d2 -+ // -+ // 00001101 00000010 (0d 02) -+ // \ \___ | | -+ // '---. \| | -+ // xxxxxxxx 11010010 (xx d2) -+ uint8x16_t paired64 = -+ vreinterpretq_u8_u64(vsraq_n_u64(paired32, paired32, 28)); -+ -+ // Extract the low 8 bits from each 64-bit lane with 2 8-bit extracts. -+ // xx xx xx xx xx xx xx d2 -+ // || return paired64[0] -+ // d2 -+ // Note: Little endian would return the correct value 4b (01001011) instead. -+ return vgetq_lane_u8(paired64, 0) | ((int) vgetq_lane_u8(paired64, 8) << 8); -+} -+ -+// Set each bit of mask dst based on the most significant bit of the -+// corresponding packed double-precision (64-bit) floating-point element in a. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pd -+FORCE_INLINE int _mm_movemask_pd(__m128d a) -+{ -+ uint64x2_t input = vreinterpretq_u64_m128d(a); -+ uint64x2_t high_bits = vshrq_n_u64(input, 63); -+ return (int) (vgetq_lane_u64(high_bits, 0) | -+ (vgetq_lane_u64(high_bits, 1) << 1)); -+} -+ -+// Copy the lower 64-bit integer in a to dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movepi64_pi64 -+FORCE_INLINE __m64 _mm_movepi64_pi64(__m128i a) -+{ -+ return vreinterpret_m64_s64(vget_low_s64(vreinterpretq_s64_m128i(a))); -+} -+ -+// Copy the 64-bit integer a to the lower element of dst, and zero the upper -+// element. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movpi64_epi64 -+FORCE_INLINE __m128i _mm_movpi64_epi64(__m64 a) -+{ -+ return vreinterpretq_m128i_s64( -+ vcombine_s64(vreinterpret_s64_m64(a), vdup_n_s64(0))); -+} -+ -+// Multiply the low unsigned 32-bit integers from each packed 64-bit element in -+// a and b, and store the unsigned 64-bit results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epu32 -+FORCE_INLINE __m128i _mm_mul_epu32(__m128i a, __m128i b) -+{ -+ // vmull_u32 upcasts instead of masking, so we downcast. -+ uint32x2_t a_lo = vmovn_u64(vreinterpretq_u64_m128i(a)); -+ uint32x2_t b_lo = vmovn_u64(vreinterpretq_u64_m128i(b)); -+ return vreinterpretq_m128i_u64(vmull_u32(a_lo, b_lo)); -+} -+ -+// Multiply packed double-precision (64-bit) floating-point elements in a and b, -+// and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_pd -+FORCE_INLINE __m128d _mm_mul_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vmulq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); -+#else -+ double *da = (double *) &a; -+ double *db = (double *) &b; -+ double c[2]; -+ c[0] = da[0] * db[0]; -+ c[1] = da[1] * db[1]; -+ return vld1q_f32((float32_t *) c); -+#endif -+} -+ -+// Multiply the lower double-precision (64-bit) floating-point element in a and -+// b, store the result in the lower element of dst, and copy the upper element -+// from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_mul_sd -+FORCE_INLINE __m128d _mm_mul_sd(__m128d a, __m128d b) -+{ -+ return _mm_move_sd(a, _mm_mul_pd(a, b)); -+} -+ -+// Multiply the low unsigned 32-bit integers from a and b, and store the -+// unsigned 64-bit result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_su32 -+FORCE_INLINE __m64 _mm_mul_su32(__m64 a, __m64 b) -+{ -+ return vreinterpret_m64_u64(vget_low_u64( -+ vmull_u32(vreinterpret_u32_m64(a), vreinterpret_u32_m64(b)))); -+} -+ -+// Multiply the packed signed 16-bit integers in a and b, producing intermediate -+// 32-bit integers, and store the high 16 bits of the intermediate integers in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epi16 -+FORCE_INLINE __m128i _mm_mulhi_epi16(__m128i a, __m128i b) -+{ -+ /* FIXME: issue with large values because of result saturation */ -+ // int16x8_t ret = vqdmulhq_s16(vreinterpretq_s16_m128i(a), -+ // vreinterpretq_s16_m128i(b)); /* =2*a*b */ return -+ // vreinterpretq_m128i_s16(vshrq_n_s16(ret, 1)); -+ int16x4_t a3210 = vget_low_s16(vreinterpretq_s16_m128i(a)); -+ int16x4_t b3210 = vget_low_s16(vreinterpretq_s16_m128i(b)); -+ int32x4_t ab3210 = vmull_s16(a3210, b3210); /* 3333222211110000 */ -+ int16x4_t a7654 = vget_high_s16(vreinterpretq_s16_m128i(a)); -+ int16x4_t b7654 = vget_high_s16(vreinterpretq_s16_m128i(b)); -+ int32x4_t ab7654 = vmull_s16(a7654, b7654); /* 7777666655554444 */ -+ uint16x8x2_t r = -+ vuzpq_u16(vreinterpretq_u16_s32(ab3210), vreinterpretq_u16_s32(ab7654)); -+ return vreinterpretq_m128i_u16(r.val[1]); -+} -+ -+// Multiply the packed unsigned 16-bit integers in a and b, producing -+// intermediate 32-bit integers, and store the high 16 bits of the intermediate -+// integers in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epu16 -+FORCE_INLINE __m128i _mm_mulhi_epu16(__m128i a, __m128i b) -+{ -+ uint16x4_t a3210 = vget_low_u16(vreinterpretq_u16_m128i(a)); -+ uint16x4_t b3210 = vget_low_u16(vreinterpretq_u16_m128i(b)); -+ uint32x4_t ab3210 = vmull_u16(a3210, b3210); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ uint32x4_t ab7654 = -+ vmull_high_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); -+ uint16x8_t r = vuzp2q_u16(vreinterpretq_u16_u32(ab3210), -+ vreinterpretq_u16_u32(ab7654)); -+ return vreinterpretq_m128i_u16(r); -+#else -+ uint16x4_t a7654 = vget_high_u16(vreinterpretq_u16_m128i(a)); -+ uint16x4_t b7654 = vget_high_u16(vreinterpretq_u16_m128i(b)); -+ uint32x4_t ab7654 = vmull_u16(a7654, b7654); -+ uint16x8x2_t r = -+ vuzpq_u16(vreinterpretq_u16_u32(ab3210), vreinterpretq_u16_u32(ab7654)); -+ return vreinterpretq_m128i_u16(r.val[1]); -+#endif -+} -+ -+// Multiply the packed 16-bit integers in a and b, producing intermediate 32-bit -+// integers, and store the low 16 bits of the intermediate integers in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi16 -+FORCE_INLINE __m128i _mm_mullo_epi16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s16( -+ vmulq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); -+} -+ -+// Compute the bitwise OR of packed double-precision (64-bit) floating-point -+// elements in a and b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_or_pd -+FORCE_INLINE __m128d _mm_or_pd(__m128d a, __m128d b) -+{ -+ return vreinterpretq_m128d_s64( -+ vorrq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); -+} -+ -+// Compute the bitwise OR of 128 bits (representing integer data) in a and b, -+// and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_si128 -+FORCE_INLINE __m128i _mm_or_si128(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s32( -+ vorrq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); -+} -+ -+// Convert packed signed 16-bit integers from a and b to packed 8-bit integers -+// using signed saturation, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi16 -+FORCE_INLINE __m128i _mm_packs_epi16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s8( -+ vcombine_s8(vqmovn_s16(vreinterpretq_s16_m128i(a)), -+ vqmovn_s16(vreinterpretq_s16_m128i(b)))); -+} -+ -+// Convert packed signed 32-bit integers from a and b to packed 16-bit integers -+// using signed saturation, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi32 -+FORCE_INLINE __m128i _mm_packs_epi32(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s16( -+ vcombine_s16(vqmovn_s32(vreinterpretq_s32_m128i(a)), -+ vqmovn_s32(vreinterpretq_s32_m128i(b)))); -+} -+ -+// Convert packed signed 16-bit integers from a and b to packed 8-bit integers -+// using unsigned saturation, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi16 -+FORCE_INLINE __m128i _mm_packus_epi16(const __m128i a, const __m128i b) -+{ -+ return vreinterpretq_m128i_u8( -+ vcombine_u8(vqmovun_s16(vreinterpretq_s16_m128i(a)), -+ vqmovun_s16(vreinterpretq_s16_m128i(b)))); -+} -+ -+// Pause the processor. This is typically used in spin-wait loops and depending -+// on the x86 processor typical values are in the 40-100 cycle range. The -+// 'yield' instruction isn't a good fit because it's effectively a nop on most -+// Arm cores. Experience with several databases has shown has shown an 'isb' is -+// a reasonable approximation. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_pause -+FORCE_INLINE void _mm_pause(void) -+{ -+#if defined(_MSC_VER) -+ __isb(_ARM64_BARRIER_SY); -+#else -+ __asm__ __volatile__("isb\n"); -+#endif -+} -+ -+// Compute the absolute differences of packed unsigned 8-bit integers in a and -+// b, then horizontally sum each consecutive 8 differences to produce two -+// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low -+// 16 bits of 64-bit elements in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_epu8 -+FORCE_INLINE __m128i _mm_sad_epu8(__m128i a, __m128i b) -+{ -+ uint16x8_t t = vpaddlq_u8(vabdq_u8((uint8x16_t) a, (uint8x16_t) b)); -+ return vreinterpretq_m128i_u64(vpaddlq_u32(vpaddlq_u16(t))); -+} -+ -+// Set packed 16-bit integers in dst with the supplied values. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi16 -+FORCE_INLINE __m128i _mm_set_epi16(short i7, -+ short i6, -+ short i5, -+ short i4, -+ short i3, -+ short i2, -+ short i1, -+ short i0) -+{ -+ int16_t ALIGN_STRUCT(16) data[8] = {i0, i1, i2, i3, i4, i5, i6, i7}; -+ return vreinterpretq_m128i_s16(vld1q_s16(data)); -+} -+ -+// Set packed 32-bit integers in dst with the supplied values. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi32 -+FORCE_INLINE __m128i _mm_set_epi32(int i3, int i2, int i1, int i0) -+{ -+ int32_t ALIGN_STRUCT(16) data[4] = {i0, i1, i2, i3}; -+ return vreinterpretq_m128i_s32(vld1q_s32(data)); -+} -+ -+// Set packed 64-bit integers in dst with the supplied values. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64 -+FORCE_INLINE __m128i _mm_set_epi64(__m64 i1, __m64 i2) -+{ -+ return _mm_set_epi64x(vget_lane_s64(i1, 0), vget_lane_s64(i2, 0)); -+} -+ -+// Set packed 64-bit integers in dst with the supplied values. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64x -+FORCE_INLINE __m128i _mm_set_epi64x(int64_t i1, int64_t i2) -+{ -+ return vreinterpretq_m128i_s64( -+ vcombine_s64(vcreate_s64(i2), vcreate_s64(i1))); -+} -+ -+// Set packed 8-bit integers in dst with the supplied values. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi8 -+FORCE_INLINE __m128i _mm_set_epi8(signed char b15, -+ signed char b14, -+ signed char b13, -+ signed char b12, -+ signed char b11, -+ signed char b10, -+ signed char b9, -+ signed char b8, -+ signed char b7, -+ signed char b6, -+ signed char b5, -+ signed char b4, -+ signed char b3, -+ signed char b2, -+ signed char b1, -+ signed char b0) -+{ -+ int8_t ALIGN_STRUCT(16) -+ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, -+ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, -+ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, -+ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; -+ return (__m128i) vld1q_s8(data); -+} -+ -+// Set packed double-precision (64-bit) floating-point elements in dst with the -+// supplied values. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd -+FORCE_INLINE __m128d _mm_set_pd(double e1, double e0) -+{ -+ double ALIGN_STRUCT(16) data[2] = {e0, e1}; -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64(vld1q_f64((float64_t *) data)); -+#else -+ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) data)); -+#endif -+} -+ -+// Broadcast double-precision (64-bit) floating-point value a to all elements of -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd1 -+#define _mm_set_pd1 _mm_set1_pd -+ -+// Copy double-precision (64-bit) floating-point element a to the lower element -+// of dst, and zero the upper element. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_sd -+FORCE_INLINE __m128d _mm_set_sd(double a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64(vsetq_lane_f64(a, vdupq_n_f64(0), 0)); -+#else -+ return _mm_set_pd(0, a); -+#endif -+} -+ -+// Broadcast 16-bit integer a to all elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi16 -+FORCE_INLINE __m128i _mm_set1_epi16(short w) -+{ -+ return vreinterpretq_m128i_s16(vdupq_n_s16(w)); -+} -+ -+// Broadcast 32-bit integer a to all elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi32 -+FORCE_INLINE __m128i _mm_set1_epi32(int _i) -+{ -+ return vreinterpretq_m128i_s32(vdupq_n_s32(_i)); -+} -+ -+// Broadcast 64-bit integer a to all elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64 -+FORCE_INLINE __m128i _mm_set1_epi64(__m64 _i) -+{ -+ return vreinterpretq_m128i_s64(vdupq_lane_s64(_i, 0)); -+} -+ -+// Broadcast 64-bit integer a to all elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64x -+FORCE_INLINE __m128i _mm_set1_epi64x(int64_t _i) -+{ -+ return vreinterpretq_m128i_s64(vdupq_n_s64(_i)); -+} -+ -+// Broadcast 8-bit integer a to all elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi8 -+FORCE_INLINE __m128i _mm_set1_epi8(signed char w) -+{ -+ return vreinterpretq_m128i_s8(vdupq_n_s8(w)); -+} -+ -+// Broadcast double-precision (64-bit) floating-point value a to all elements of -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_pd -+FORCE_INLINE __m128d _mm_set1_pd(double d) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64(vdupq_n_f64(d)); -+#else -+ return vreinterpretq_m128d_s64(vdupq_n_s64(*(int64_t *) &d)); -+#endif -+} -+ -+// Set packed 16-bit integers in dst with the supplied values in reverse order. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi16 -+FORCE_INLINE __m128i _mm_setr_epi16(short w0, -+ short w1, -+ short w2, -+ short w3, -+ short w4, -+ short w5, -+ short w6, -+ short w7) -+{ -+ int16_t ALIGN_STRUCT(16) data[8] = {w0, w1, w2, w3, w4, w5, w6, w7}; -+ return vreinterpretq_m128i_s16(vld1q_s16((int16_t *) data)); -+} -+ -+// Set packed 32-bit integers in dst with the supplied values in reverse order. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi32 -+FORCE_INLINE __m128i _mm_setr_epi32(int i3, int i2, int i1, int i0) -+{ -+ int32_t ALIGN_STRUCT(16) data[4] = {i3, i2, i1, i0}; -+ return vreinterpretq_m128i_s32(vld1q_s32(data)); -+} -+ -+// Set packed 64-bit integers in dst with the supplied values in reverse order. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi64 -+FORCE_INLINE __m128i _mm_setr_epi64(__m64 e1, __m64 e0) -+{ -+ return vreinterpretq_m128i_s64(vcombine_s64(e1, e0)); -+} -+ -+// Set packed 8-bit integers in dst with the supplied values in reverse order. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi8 -+FORCE_INLINE __m128i _mm_setr_epi8(signed char b0, -+ signed char b1, -+ signed char b2, -+ signed char b3, -+ signed char b4, -+ signed char b5, -+ signed char b6, -+ signed char b7, -+ signed char b8, -+ signed char b9, -+ signed char b10, -+ signed char b11, -+ signed char b12, -+ signed char b13, -+ signed char b14, -+ signed char b15) -+{ -+ int8_t ALIGN_STRUCT(16) -+ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, -+ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, -+ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, -+ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; -+ return (__m128i) vld1q_s8(data); -+} -+ -+// Set packed double-precision (64-bit) floating-point elements in dst with the -+// supplied values in reverse order. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_pd -+FORCE_INLINE __m128d _mm_setr_pd(double e1, double e0) -+{ -+ return _mm_set_pd(e0, e1); -+} -+ -+// Return vector of type __m128d with all elements set to zero. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_pd -+FORCE_INLINE __m128d _mm_setzero_pd(void) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64(vdupq_n_f64(0)); -+#else -+ return vreinterpretq_m128d_f32(vdupq_n_f32(0)); -+#endif -+} -+ -+// Return vector of type __m128i with all elements set to zero. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_si128 -+FORCE_INLINE __m128i _mm_setzero_si128(void) -+{ -+ return vreinterpretq_m128i_s32(vdupq_n_s32(0)); -+} -+ -+// Shuffle 32-bit integers in a using the control in imm8, and store the results -+// in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi32 -+// FORCE_INLINE __m128i _mm_shuffle_epi32(__m128i a, -+// __constrange(0,255) int imm) -+#if defined(_sse2neon_shuffle) -+#define _mm_shuffle_epi32(a, imm) \ -+ __extension__({ \ -+ int32x4_t _input = vreinterpretq_s32_m128i(a); \ -+ int32x4_t _shuf = \ -+ vshuffleq_s32(_input, _input, (imm) & (0x3), ((imm) >> 2) & 0x3, \ -+ ((imm) >> 4) & 0x3, ((imm) >> 6) & 0x3); \ -+ vreinterpretq_m128i_s32(_shuf); \ -+ }) -+#else // generic -+#define _mm_shuffle_epi32(a, imm) \ -+ _sse2neon_define1( \ -+ __m128i, a, __m128i ret; switch (imm) { \ -+ case _MM_SHUFFLE(1, 0, 3, 2): \ -+ ret = _mm_shuffle_epi_1032(_a); \ -+ break; \ -+ case _MM_SHUFFLE(2, 3, 0, 1): \ -+ ret = _mm_shuffle_epi_2301(_a); \ -+ break; \ -+ case _MM_SHUFFLE(0, 3, 2, 1): \ -+ ret = _mm_shuffle_epi_0321(_a); \ -+ break; \ -+ case _MM_SHUFFLE(2, 1, 0, 3): \ -+ ret = _mm_shuffle_epi_2103(_a); \ -+ break; \ -+ case _MM_SHUFFLE(1, 0, 1, 0): \ -+ ret = _mm_shuffle_epi_1010(_a); \ -+ break; \ -+ case _MM_SHUFFLE(1, 0, 0, 1): \ -+ ret = _mm_shuffle_epi_1001(_a); \ -+ break; \ -+ case _MM_SHUFFLE(0, 1, 0, 1): \ -+ ret = _mm_shuffle_epi_0101(_a); \ -+ break; \ -+ case _MM_SHUFFLE(2, 2, 1, 1): \ -+ ret = _mm_shuffle_epi_2211(_a); \ -+ break; \ -+ case _MM_SHUFFLE(0, 1, 2, 2): \ -+ ret = _mm_shuffle_epi_0122(_a); \ -+ break; \ -+ case _MM_SHUFFLE(3, 3, 3, 2): \ -+ ret = _mm_shuffle_epi_3332(_a); \ -+ break; \ -+ case _MM_SHUFFLE(0, 0, 0, 0): \ -+ ret = _mm_shuffle_epi32_splat(_a, 0); \ -+ break; \ -+ case _MM_SHUFFLE(1, 1, 1, 1): \ -+ ret = _mm_shuffle_epi32_splat(_a, 1); \ -+ break; \ -+ case _MM_SHUFFLE(2, 2, 2, 2): \ -+ ret = _mm_shuffle_epi32_splat(_a, 2); \ -+ break; \ -+ case _MM_SHUFFLE(3, 3, 3, 3): \ -+ ret = _mm_shuffle_epi32_splat(_a, 3); \ -+ break; \ -+ default: \ -+ ret = _mm_shuffle_epi32_default(_a, (imm)); \ -+ break; \ -+ } _sse2neon_return(ret);) -+#endif -+ -+// Shuffle double-precision (64-bit) floating-point elements using the control -+// in imm8, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pd -+#ifdef _sse2neon_shuffle -+#define _mm_shuffle_pd(a, b, imm8) \ -+ vreinterpretq_m128d_s64( \ -+ vshuffleq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b), \ -+ imm8 & 0x1, ((imm8 & 0x2) >> 1) + 2)) -+#else -+#define _mm_shuffle_pd(a, b, imm8) \ -+ _mm_castsi128_pd(_mm_set_epi64x( \ -+ vgetq_lane_s64(vreinterpretq_s64_m128d(b), (imm8 & 0x2) >> 1), \ -+ vgetq_lane_s64(vreinterpretq_s64_m128d(a), imm8 & 0x1))) -+#endif -+ -+// FORCE_INLINE __m128i _mm_shufflehi_epi16(__m128i a, -+// __constrange(0,255) int imm) -+#if defined(_sse2neon_shuffle) -+#define _mm_shufflehi_epi16(a, imm) \ -+ __extension__({ \ -+ int16x8_t _input = vreinterpretq_s16_m128i(a); \ -+ int16x8_t _shuf = \ -+ vshuffleq_s16(_input, _input, 0, 1, 2, 3, ((imm) & (0x3)) + 4, \ -+ (((imm) >> 2) & 0x3) + 4, (((imm) >> 4) & 0x3) + 4, \ -+ (((imm) >> 6) & 0x3) + 4); \ -+ vreinterpretq_m128i_s16(_shuf); \ -+ }) -+#else // generic -+#define _mm_shufflehi_epi16(a, imm) _mm_shufflehi_epi16_function((a), (imm)) -+#endif -+ -+// FORCE_INLINE __m128i _mm_shufflelo_epi16(__m128i a, -+// __constrange(0,255) int imm) -+#if defined(_sse2neon_shuffle) -+#define _mm_shufflelo_epi16(a, imm) \ -+ __extension__({ \ -+ int16x8_t _input = vreinterpretq_s16_m128i(a); \ -+ int16x8_t _shuf = vshuffleq_s16( \ -+ _input, _input, ((imm) & (0x3)), (((imm) >> 2) & 0x3), \ -+ (((imm) >> 4) & 0x3), (((imm) >> 6) & 0x3), 4, 5, 6, 7); \ -+ vreinterpretq_m128i_s16(_shuf); \ -+ }) -+#else // generic -+#define _mm_shufflelo_epi16(a, imm) _mm_shufflelo_epi16_function((a), (imm)) -+#endif -+ -+// Shift packed 16-bit integers in a left by count while shifting in zeros, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi16 -+FORCE_INLINE __m128i _mm_sll_epi16(__m128i a, __m128i count) -+{ -+ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); -+ if (_sse2neon_unlikely(c & ~15)) -+ return _mm_setzero_si128(); -+ -+ int16x8_t vc = vdupq_n_s16((int16_t) c); -+ return vreinterpretq_m128i_s16(vshlq_s16(vreinterpretq_s16_m128i(a), vc)); -+} -+ -+// Shift packed 32-bit integers in a left by count while shifting in zeros, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi32 -+FORCE_INLINE __m128i _mm_sll_epi32(__m128i a, __m128i count) -+{ -+ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); -+ if (_sse2neon_unlikely(c & ~31)) -+ return _mm_setzero_si128(); -+ -+ int32x4_t vc = vdupq_n_s32((int32_t) c); -+ return vreinterpretq_m128i_s32(vshlq_s32(vreinterpretq_s32_m128i(a), vc)); -+} -+ -+// Shift packed 64-bit integers in a left by count while shifting in zeros, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi64 -+FORCE_INLINE __m128i _mm_sll_epi64(__m128i a, __m128i count) -+{ -+ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); -+ if (_sse2neon_unlikely(c & ~63)) -+ return _mm_setzero_si128(); -+ -+ int64x2_t vc = vdupq_n_s64((int64_t) c); -+ return vreinterpretq_m128i_s64(vshlq_s64(vreinterpretq_s64_m128i(a), vc)); -+} -+ -+// Shift packed 16-bit integers in a left by imm8 while shifting in zeros, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi16 -+FORCE_INLINE __m128i _mm_slli_epi16(__m128i a, int imm) -+{ -+ if (_sse2neon_unlikely(imm & ~15)) -+ return _mm_setzero_si128(); -+ return vreinterpretq_m128i_s16( -+ vshlq_s16(vreinterpretq_s16_m128i(a), vdupq_n_s16(imm))); -+} -+ -+// Shift packed 32-bit integers in a left by imm8 while shifting in zeros, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi32 -+FORCE_INLINE __m128i _mm_slli_epi32(__m128i a, int imm) -+{ -+ if (_sse2neon_unlikely(imm & ~31)) -+ return _mm_setzero_si128(); -+ return vreinterpretq_m128i_s32( -+ vshlq_s32(vreinterpretq_s32_m128i(a), vdupq_n_s32(imm))); -+} -+ -+// Shift packed 64-bit integers in a left by imm8 while shifting in zeros, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi64 -+FORCE_INLINE __m128i _mm_slli_epi64(__m128i a, int imm) -+{ -+ if (_sse2neon_unlikely(imm & ~63)) -+ return _mm_setzero_si128(); -+ return vreinterpretq_m128i_s64( -+ vshlq_s64(vreinterpretq_s64_m128i(a), vdupq_n_s64(imm))); -+} -+ -+// Shift a left by imm8 bytes while shifting in zeros, and store the results in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_si128 -+#define _mm_slli_si128(a, imm) \ -+ _sse2neon_define1( \ -+ __m128i, a, int8x16_t ret; \ -+ if (_sse2neon_unlikely(imm == 0)) ret = vreinterpretq_s8_m128i(_a); \ -+ else if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ -+ else ret = vextq_s8(vdupq_n_s8(0), vreinterpretq_s8_m128i(_a), \ -+ ((imm <= 0 || imm > 15) ? 0 : (16 - imm))); \ -+ _sse2neon_return(vreinterpretq_m128i_s8(ret));) -+ -+// Compute the square root of packed double-precision (64-bit) floating-point -+// elements in a, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_pd -+FORCE_INLINE __m128d _mm_sqrt_pd(__m128d a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64(vsqrtq_f64(vreinterpretq_f64_m128d(a))); -+#else -+ double a0 = sqrt(((double *) &a)[0]); -+ double a1 = sqrt(((double *) &a)[1]); -+ return _mm_set_pd(a1, a0); -+#endif -+} -+ -+// Compute the square root of the lower double-precision (64-bit) floating-point -+// element in b, store the result in the lower element of dst, and copy the -+// upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_sd -+FORCE_INLINE __m128d _mm_sqrt_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return _mm_move_sd(a, _mm_sqrt_pd(b)); -+#else -+ return _mm_set_pd(((double *) &a)[1], sqrt(((double *) &b)[0])); -+#endif -+} -+ -+// Shift packed 16-bit integers in a right by count while shifting in sign bits, -+// and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi16 -+FORCE_INLINE __m128i _mm_sra_epi16(__m128i a, __m128i count) -+{ -+ int64_t c = vgetq_lane_s64(count, 0); -+ if (_sse2neon_unlikely(c & ~15)) -+ return _mm_cmplt_epi16(a, _mm_setzero_si128()); -+ return vreinterpretq_m128i_s16( -+ vshlq_s16((int16x8_t) a, vdupq_n_s16((int) -c))); -+} -+ -+// Shift packed 32-bit integers in a right by count while shifting in sign bits, -+// and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi32 -+FORCE_INLINE __m128i _mm_sra_epi32(__m128i a, __m128i count) -+{ -+ int64_t c = vgetq_lane_s64(count, 0); -+ if (_sse2neon_unlikely(c & ~31)) -+ return _mm_cmplt_epi32(a, _mm_setzero_si128()); -+ return vreinterpretq_m128i_s32( -+ vshlq_s32((int32x4_t) a, vdupq_n_s32((int) -c))); -+} -+ -+// Shift packed 16-bit integers in a right by imm8 while shifting in sign -+// bits, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi16 -+FORCE_INLINE __m128i _mm_srai_epi16(__m128i a, int imm) -+{ -+ const int count = (imm & ~15) ? 15 : imm; -+ return (__m128i) vshlq_s16((int16x8_t) a, vdupq_n_s16(-count)); -+} -+ -+// Shift packed 32-bit integers in a right by imm8 while shifting in sign bits, -+// and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi32 -+// FORCE_INLINE __m128i _mm_srai_epi32(__m128i a, __constrange(0,255) int imm) -+#define _mm_srai_epi32(a, imm) \ -+ _sse2neon_define0( \ -+ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) == 0)) { \ -+ ret = _a; \ -+ } else if (_sse2neon_likely(0 < (imm) && (imm) < 32)) { \ -+ ret = vreinterpretq_m128i_s32( \ -+ vshlq_s32(vreinterpretq_s32_m128i(_a), vdupq_n_s32(-(imm)))); \ -+ } else { \ -+ ret = vreinterpretq_m128i_s32( \ -+ vshrq_n_s32(vreinterpretq_s32_m128i(_a), 31)); \ -+ } _sse2neon_return(ret);) -+ -+// Shift packed 16-bit integers in a right by count while shifting in zeros, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi16 -+FORCE_INLINE __m128i _mm_srl_epi16(__m128i a, __m128i count) -+{ -+ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); -+ if (_sse2neon_unlikely(c & ~15)) -+ return _mm_setzero_si128(); -+ -+ int16x8_t vc = vdupq_n_s16(-(int16_t) c); -+ return vreinterpretq_m128i_u16(vshlq_u16(vreinterpretq_u16_m128i(a), vc)); -+} -+ -+// Shift packed 32-bit integers in a right by count while shifting in zeros, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi32 -+FORCE_INLINE __m128i _mm_srl_epi32(__m128i a, __m128i count) -+{ -+ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); -+ if (_sse2neon_unlikely(c & ~31)) -+ return _mm_setzero_si128(); -+ -+ int32x4_t vc = vdupq_n_s32(-(int32_t) c); -+ return vreinterpretq_m128i_u32(vshlq_u32(vreinterpretq_u32_m128i(a), vc)); -+} -+ -+// Shift packed 64-bit integers in a right by count while shifting in zeros, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi64 -+FORCE_INLINE __m128i _mm_srl_epi64(__m128i a, __m128i count) -+{ -+ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); -+ if (_sse2neon_unlikely(c & ~63)) -+ return _mm_setzero_si128(); -+ -+ int64x2_t vc = vdupq_n_s64(-(int64_t) c); -+ return vreinterpretq_m128i_u64(vshlq_u64(vreinterpretq_u64_m128i(a), vc)); -+} -+ -+// Shift packed 16-bit integers in a right by imm8 while shifting in zeros, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi16 -+#define _mm_srli_epi16(a, imm) \ -+ _sse2neon_define0( \ -+ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~15)) { \ -+ ret = _mm_setzero_si128(); \ -+ } else { \ -+ ret = vreinterpretq_m128i_u16( \ -+ vshlq_u16(vreinterpretq_u16_m128i(_a), vdupq_n_s16(-(imm)))); \ -+ } _sse2neon_return(ret);) -+ -+// Shift packed 32-bit integers in a right by imm8 while shifting in zeros, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi32 -+// FORCE_INLINE __m128i _mm_srli_epi32(__m128i a, __constrange(0,255) int imm) -+#define _mm_srli_epi32(a, imm) \ -+ _sse2neon_define0( \ -+ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~31)) { \ -+ ret = _mm_setzero_si128(); \ -+ } else { \ -+ ret = vreinterpretq_m128i_u32( \ -+ vshlq_u32(vreinterpretq_u32_m128i(_a), vdupq_n_s32(-(imm)))); \ -+ } _sse2neon_return(ret);) -+ -+// Shift packed 64-bit integers in a right by imm8 while shifting in zeros, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi64 -+#define _mm_srli_epi64(a, imm) \ -+ _sse2neon_define0( \ -+ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~63)) { \ -+ ret = _mm_setzero_si128(); \ -+ } else { \ -+ ret = vreinterpretq_m128i_u64( \ -+ vshlq_u64(vreinterpretq_u64_m128i(_a), vdupq_n_s64(-(imm)))); \ -+ } _sse2neon_return(ret);) -+ -+// Shift a right by imm8 bytes while shifting in zeros, and store the results in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_si128 -+#define _mm_srli_si128(a, imm) \ -+ _sse2neon_define1( \ -+ __m128i, a, int8x16_t ret; \ -+ if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ -+ else ret = vextq_s8(vreinterpretq_s8_m128i(_a), vdupq_n_s8(0), \ -+ (imm > 15 ? 0 : imm)); \ -+ _sse2neon_return(vreinterpretq_m128i_s8(ret));) -+ -+// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point -+// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary -+// or a general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd -+FORCE_INLINE void _mm_store_pd(double *mem_addr, __m128d a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ vst1q_f64((float64_t *) mem_addr, vreinterpretq_f64_m128d(a)); -+#else -+ vst1q_f32((float32_t *) mem_addr, vreinterpretq_f32_m128d(a)); -+#endif -+} -+ -+// Store the lower double-precision (64-bit) floating-point element from a into -+// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte -+// boundary or a general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd1 -+FORCE_INLINE void _mm_store_pd1(double *mem_addr, __m128d a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ float64x1_t a_low = vget_low_f64(vreinterpretq_f64_m128d(a)); -+ vst1q_f64((float64_t *) mem_addr, -+ vreinterpretq_f64_m128d(vcombine_f64(a_low, a_low))); -+#else -+ float32x2_t a_low = vget_low_f32(vreinterpretq_f32_m128d(a)); -+ vst1q_f32((float32_t *) mem_addr, -+ vreinterpretq_f32_m128d(vcombine_f32(a_low, a_low))); -+#endif -+} -+ -+// Store the lower double-precision (64-bit) floating-point element from a into -+// memory. mem_addr does not need to be aligned on any particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_store_sd -+FORCE_INLINE void _mm_store_sd(double *mem_addr, __m128d a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); -+#else -+ vst1_u64((uint64_t *) mem_addr, vget_low_u64(vreinterpretq_u64_m128d(a))); -+#endif -+} -+ -+// Store 128-bits of integer data from a into memory. mem_addr must be aligned -+// on a 16-byte boundary or a general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_si128 -+FORCE_INLINE void _mm_store_si128(__m128i *p, __m128i a) -+{ -+ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); -+} -+ -+// Store the lower double-precision (64-bit) floating-point element from a into -+// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte -+// boundary or a general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#expand=9,526,5601&text=_mm_store1_pd -+#define _mm_store1_pd _mm_store_pd1 -+ -+// Store the upper double-precision (64-bit) floating-point element from a into -+// memory. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pd -+FORCE_INLINE void _mm_storeh_pd(double *mem_addr, __m128d a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ vst1_f64((float64_t *) mem_addr, vget_high_f64(vreinterpretq_f64_m128d(a))); -+#else -+ vst1_f32((float32_t *) mem_addr, vget_high_f32(vreinterpretq_f32_m128d(a))); -+#endif -+} -+ -+// Store 64-bit integer from the first element of a into memory. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_epi64 -+FORCE_INLINE void _mm_storel_epi64(__m128i *a, __m128i b) -+{ -+ vst1_u64((uint64_t *) a, vget_low_u64(vreinterpretq_u64_m128i(b))); -+} -+ -+// Store the lower double-precision (64-bit) floating-point element from a into -+// memory. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pd -+FORCE_INLINE void _mm_storel_pd(double *mem_addr, __m128d a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); -+#else -+ vst1_f32((float32_t *) mem_addr, vget_low_f32(vreinterpretq_f32_m128d(a))); -+#endif -+} -+ -+// Store 2 double-precision (64-bit) floating-point elements from a into memory -+// in reverse order. mem_addr must be aligned on a 16-byte boundary or a -+// general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_pd -+FORCE_INLINE void _mm_storer_pd(double *mem_addr, __m128d a) -+{ -+ float32x4_t f = vreinterpretq_f32_m128d(a); -+ _mm_store_pd(mem_addr, vreinterpretq_m128d_f32(vextq_f32(f, f, 2))); -+} -+ -+// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point -+// elements) from a into memory. mem_addr does not need to be aligned on any -+// particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_pd -+FORCE_INLINE void _mm_storeu_pd(double *mem_addr, __m128d a) -+{ -+ _mm_store_pd(mem_addr, a); -+} -+ -+// Store 128-bits of integer data from a into memory. mem_addr does not need to -+// be aligned on any particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si128 -+FORCE_INLINE void _mm_storeu_si128(__m128i *p, __m128i a) -+{ -+ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); -+} -+ -+// Store 32-bit integer from the first element of a into memory. mem_addr does -+// not need to be aligned on any particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si32 -+FORCE_INLINE void _mm_storeu_si32(void *p, __m128i a) -+{ -+ vst1q_lane_s32((int32_t *) p, vreinterpretq_s32_m128i(a), 0); -+} -+ -+// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point -+// elements) from a into memory using a non-temporal memory hint. mem_addr must -+// be aligned on a 16-byte boundary or a general-protection exception may be -+// generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pd -+FORCE_INLINE void _mm_stream_pd(double *p, __m128d a) -+{ -+#if __has_builtin(__builtin_nontemporal_store) -+ __builtin_nontemporal_store(a, (__m128d *) p); -+#elif defined(__aarch64__) || defined(_M_ARM64) -+ vst1q_f64(p, vreinterpretq_f64_m128d(a)); -+#else -+ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128d(a)); -+#endif -+} -+ -+// Store 128-bits of integer data from a into memory using a non-temporal memory -+// hint. mem_addr must be aligned on a 16-byte boundary or a general-protection -+// exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si128 -+FORCE_INLINE void _mm_stream_si128(__m128i *p, __m128i a) -+{ -+#if __has_builtin(__builtin_nontemporal_store) -+ __builtin_nontemporal_store(a, p); -+#else -+ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128i(a)); -+#endif -+} -+ -+// Store 32-bit integer a into memory using a non-temporal hint to minimize -+// cache pollution. If the cache line containing address mem_addr is already in -+// the cache, the cache will be updated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si32 -+FORCE_INLINE void _mm_stream_si32(int *p, int a) -+{ -+ vst1q_lane_s32((int32_t *) p, vdupq_n_s32(a), 0); -+} -+ -+// Store 64-bit integer a into memory using a non-temporal hint to minimize -+// cache pollution. If the cache line containing address mem_addr is already in -+// the cache, the cache will be updated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si64 -+FORCE_INLINE void _mm_stream_si64(__int64 *p, __int64 a) -+{ -+ vst1_s64((int64_t *) p, vdup_n_s64((int64_t) a)); -+} -+ -+// Subtract packed 16-bit integers in b from packed 16-bit integers in a, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi16 -+FORCE_INLINE __m128i _mm_sub_epi16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s16( -+ vsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); -+} -+ -+// Subtract packed 32-bit integers in b from packed 32-bit integers in a, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi32 -+FORCE_INLINE __m128i _mm_sub_epi32(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s32( -+ vsubq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); -+} -+ -+// Subtract packed 64-bit integers in b from packed 64-bit integers in a, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi64 -+FORCE_INLINE __m128i _mm_sub_epi64(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s64( -+ vsubq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); -+} -+ -+// Subtract packed 8-bit integers in b from packed 8-bit integers in a, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi8 -+FORCE_INLINE __m128i _mm_sub_epi8(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s8( -+ vsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); -+} -+ -+// Subtract packed double-precision (64-bit) floating-point elements in b from -+// packed double-precision (64-bit) floating-point elements in a, and store the -+// results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_sub_pd -+FORCE_INLINE __m128d _mm_sub_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vsubq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); -+#else -+ double *da = (double *) &a; -+ double *db = (double *) &b; -+ double c[2]; -+ c[0] = da[0] - db[0]; -+ c[1] = da[1] - db[1]; -+ return vld1q_f32((float32_t *) c); -+#endif -+} -+ -+// Subtract the lower double-precision (64-bit) floating-point element in b from -+// the lower double-precision (64-bit) floating-point element in a, store the -+// result in the lower element of dst, and copy the upper element from a to the -+// upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_sd -+FORCE_INLINE __m128d _mm_sub_sd(__m128d a, __m128d b) -+{ -+ return _mm_move_sd(a, _mm_sub_pd(a, b)); -+} -+ -+// Subtract 64-bit integer b from 64-bit integer a, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_si64 -+FORCE_INLINE __m64 _mm_sub_si64(__m64 a, __m64 b) -+{ -+ return vreinterpret_m64_s64( -+ vsub_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); -+} -+ -+// Subtract packed signed 16-bit integers in b from packed 16-bit integers in a -+// using saturation, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi16 -+FORCE_INLINE __m128i _mm_subs_epi16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s16( -+ vqsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); -+} -+ -+// Subtract packed signed 8-bit integers in b from packed 8-bit integers in a -+// using saturation, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi8 -+FORCE_INLINE __m128i _mm_subs_epi8(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s8( -+ vqsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); -+} -+ -+// Subtract packed unsigned 16-bit integers in b from packed unsigned 16-bit -+// integers in a using saturation, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu16 -+FORCE_INLINE __m128i _mm_subs_epu16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u16( -+ vqsubq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); -+} -+ -+// Subtract packed unsigned 8-bit integers in b from packed unsigned 8-bit -+// integers in a using saturation, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu8 -+FORCE_INLINE __m128i _mm_subs_epu8(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u8( -+ vqsubq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); -+} -+ -+#define _mm_ucomieq_sd _mm_comieq_sd -+#define _mm_ucomige_sd _mm_comige_sd -+#define _mm_ucomigt_sd _mm_comigt_sd -+#define _mm_ucomile_sd _mm_comile_sd -+#define _mm_ucomilt_sd _mm_comilt_sd -+#define _mm_ucomineq_sd _mm_comineq_sd -+ -+// Return vector of type __m128d with undefined elements. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_pd -+FORCE_INLINE __m128d _mm_undefined_pd(void) -+{ -+#if defined(__GNUC__) || defined(__clang__) -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wuninitialized" -+#endif -+ __m128d a; -+#if defined(_MSC_VER) -+ a = _mm_setzero_pd(); -+#endif -+ return a; -+#if defined(__GNUC__) || defined(__clang__) -+#pragma GCC diagnostic pop -+#endif -+} -+ -+// Unpack and interleave 16-bit integers from the high half of a and b, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi16 -+FORCE_INLINE __m128i _mm_unpackhi_epi16(__m128i a, __m128i b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_s16( -+ vzip2q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); -+#else -+ int16x4_t a1 = vget_high_s16(vreinterpretq_s16_m128i(a)); -+ int16x4_t b1 = vget_high_s16(vreinterpretq_s16_m128i(b)); -+ int16x4x2_t result = vzip_s16(a1, b1); -+ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); -+#endif -+} -+ -+// Unpack and interleave 32-bit integers from the high half of a and b, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi32 -+FORCE_INLINE __m128i _mm_unpackhi_epi32(__m128i a, __m128i b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_s32( -+ vzip2q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); -+#else -+ int32x2_t a1 = vget_high_s32(vreinterpretq_s32_m128i(a)); -+ int32x2_t b1 = vget_high_s32(vreinterpretq_s32_m128i(b)); -+ int32x2x2_t result = vzip_s32(a1, b1); -+ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); -+#endif -+} -+ -+// Unpack and interleave 64-bit integers from the high half of a and b, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi64 -+FORCE_INLINE __m128i _mm_unpackhi_epi64(__m128i a, __m128i b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_s64( -+ vzip2q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); -+#else -+ int64x1_t a_h = vget_high_s64(vreinterpretq_s64_m128i(a)); -+ int64x1_t b_h = vget_high_s64(vreinterpretq_s64_m128i(b)); -+ return vreinterpretq_m128i_s64(vcombine_s64(a_h, b_h)); -+#endif -+} -+ -+// Unpack and interleave 8-bit integers from the high half of a and b, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi8 -+FORCE_INLINE __m128i _mm_unpackhi_epi8(__m128i a, __m128i b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_s8( -+ vzip2q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); -+#else -+ int8x8_t a1 = -+ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(a))); -+ int8x8_t b1 = -+ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(b))); -+ int8x8x2_t result = vzip_s8(a1, b1); -+ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); -+#endif -+} -+ -+// Unpack and interleave double-precision (64-bit) floating-point elements from -+// the high half of a and b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_pd -+FORCE_INLINE __m128d _mm_unpackhi_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vzip2q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); -+#else -+ return vreinterpretq_m128d_s64( -+ vcombine_s64(vget_high_s64(vreinterpretq_s64_m128d(a)), -+ vget_high_s64(vreinterpretq_s64_m128d(b)))); -+#endif -+} -+ -+// Unpack and interleave 16-bit integers from the low half of a and b, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi16 -+FORCE_INLINE __m128i _mm_unpacklo_epi16(__m128i a, __m128i b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_s16( -+ vzip1q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); -+#else -+ int16x4_t a1 = vget_low_s16(vreinterpretq_s16_m128i(a)); -+ int16x4_t b1 = vget_low_s16(vreinterpretq_s16_m128i(b)); -+ int16x4x2_t result = vzip_s16(a1, b1); -+ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); -+#endif -+} -+ -+// Unpack and interleave 32-bit integers from the low half of a and b, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi32 -+FORCE_INLINE __m128i _mm_unpacklo_epi32(__m128i a, __m128i b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_s32( -+ vzip1q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); -+#else -+ int32x2_t a1 = vget_low_s32(vreinterpretq_s32_m128i(a)); -+ int32x2_t b1 = vget_low_s32(vreinterpretq_s32_m128i(b)); -+ int32x2x2_t result = vzip_s32(a1, b1); -+ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); -+#endif -+} -+ -+// Unpack and interleave 64-bit integers from the low half of a and b, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi64 -+FORCE_INLINE __m128i _mm_unpacklo_epi64(__m128i a, __m128i b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_s64( -+ vzip1q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); -+#else -+ int64x1_t a_l = vget_low_s64(vreinterpretq_s64_m128i(a)); -+ int64x1_t b_l = vget_low_s64(vreinterpretq_s64_m128i(b)); -+ return vreinterpretq_m128i_s64(vcombine_s64(a_l, b_l)); -+#endif -+} -+ -+// Unpack and interleave 8-bit integers from the low half of a and b, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi8 -+FORCE_INLINE __m128i _mm_unpacklo_epi8(__m128i a, __m128i b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_s8( -+ vzip1q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); -+#else -+ int8x8_t a1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(a))); -+ int8x8_t b1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(b))); -+ int8x8x2_t result = vzip_s8(a1, b1); -+ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); -+#endif -+} -+ -+// Unpack and interleave double-precision (64-bit) floating-point elements from -+// the low half of a and b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_pd -+FORCE_INLINE __m128d _mm_unpacklo_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vzip1q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); -+#else -+ return vreinterpretq_m128d_s64( -+ vcombine_s64(vget_low_s64(vreinterpretq_s64_m128d(a)), -+ vget_low_s64(vreinterpretq_s64_m128d(b)))); -+#endif -+} -+ -+// Compute the bitwise XOR of packed double-precision (64-bit) floating-point -+// elements in a and b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_pd -+FORCE_INLINE __m128d _mm_xor_pd(__m128d a, __m128d b) -+{ -+ return vreinterpretq_m128d_s64( -+ veorq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); -+} -+ -+// Compute the bitwise XOR of 128 bits (representing integer data) in a and b, -+// and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_si128 -+FORCE_INLINE __m128i _mm_xor_si128(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s32( -+ veorq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); -+} -+ -+/* SSE3 */ -+ -+// Alternatively add and subtract packed double-precision (64-bit) -+// floating-point elements in a to/from packed elements in b, and store the -+// results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_addsub_pd -+FORCE_INLINE __m128d _mm_addsub_pd(__m128d a, __m128d b) -+{ -+ _sse2neon_const __m128d mask = _mm_set_pd(1.0f, -1.0f); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64(vfmaq_f64(vreinterpretq_f64_m128d(a), -+ vreinterpretq_f64_m128d(b), -+ vreinterpretq_f64_m128d(mask))); -+#else -+ return _mm_add_pd(_mm_mul_pd(b, mask), a); -+#endif -+} -+ -+// Alternatively add and subtract packed single-precision (32-bit) -+// floating-point elements in a to/from packed elements in b, and store the -+// results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=addsub_ps -+FORCE_INLINE __m128 _mm_addsub_ps(__m128 a, __m128 b) -+{ -+ _sse2neon_const __m128 mask = _mm_setr_ps(-1.0f, 1.0f, -1.0f, 1.0f); -+#if (defined(__aarch64__) || defined(_M_ARM64)) || \ -+ defined(__ARM_FEATURE_FMA) /* VFPv4+ */ -+ return vreinterpretq_m128_f32(vfmaq_f32(vreinterpretq_f32_m128(a), -+ vreinterpretq_f32_m128(mask), -+ vreinterpretq_f32_m128(b))); -+#else -+ return _mm_add_ps(_mm_mul_ps(b, mask), a); -+#endif -+} -+ -+// Horizontally add adjacent pairs of double-precision (64-bit) floating-point -+// elements in a and b, and pack the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pd -+FORCE_INLINE __m128d _mm_hadd_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vpaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); -+#else -+ double *da = (double *) &a; -+ double *db = (double *) &b; -+ double c[] = {da[0] + da[1], db[0] + db[1]}; -+ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); -+#endif -+} -+ -+// Horizontally add adjacent pairs of single-precision (32-bit) floating-point -+// elements in a and b, and pack the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_ps -+FORCE_INLINE __m128 _mm_hadd_ps(__m128 a, __m128 b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128_f32( -+ vpaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); -+#else -+ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); -+ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); -+ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); -+ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); -+ return vreinterpretq_m128_f32( -+ vcombine_f32(vpadd_f32(a10, a32), vpadd_f32(b10, b32))); -+#endif -+} -+ -+// Horizontally subtract adjacent pairs of double-precision (64-bit) -+// floating-point elements in a and b, and pack the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pd -+FORCE_INLINE __m128d _mm_hsub_pd(__m128d _a, __m128d _b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ float64x2_t a = vreinterpretq_f64_m128d(_a); -+ float64x2_t b = vreinterpretq_f64_m128d(_b); -+ return vreinterpretq_m128d_f64( -+ vsubq_f64(vuzp1q_f64(a, b), vuzp2q_f64(a, b))); -+#else -+ double *da = (double *) &_a; -+ double *db = (double *) &_b; -+ double c[] = {da[0] - da[1], db[0] - db[1]}; -+ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); -+#endif -+} -+ -+// Horizontally subtract adjacent pairs of single-precision (32-bit) -+// floating-point elements in a and b, and pack the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_ps -+FORCE_INLINE __m128 _mm_hsub_ps(__m128 _a, __m128 _b) -+{ -+ float32x4_t a = vreinterpretq_f32_m128(_a); -+ float32x4_t b = vreinterpretq_f32_m128(_b); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128_f32( -+ vsubq_f32(vuzp1q_f32(a, b), vuzp2q_f32(a, b))); -+#else -+ float32x4x2_t c = vuzpq_f32(a, b); -+ return vreinterpretq_m128_f32(vsubq_f32(c.val[0], c.val[1])); -+#endif -+} -+ -+// Load 128-bits of integer data from unaligned memory into dst. This intrinsic -+// may perform better than _mm_loadu_si128 when the data crosses a cache line -+// boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lddqu_si128 -+#define _mm_lddqu_si128 _mm_loadu_si128 -+ -+// Load a double-precision (64-bit) floating-point element from memory into both -+// elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loaddup_pd -+#define _mm_loaddup_pd _mm_load1_pd -+ -+// Duplicate the low double-precision (64-bit) floating-point element from a, -+// and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movedup_pd -+FORCE_INLINE __m128d _mm_movedup_pd(__m128d a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vdupq_laneq_f64(vreinterpretq_f64_m128d(a), 0)); -+#else -+ return vreinterpretq_m128d_u64( -+ vdupq_n_u64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0))); -+#endif -+} -+ -+// Duplicate odd-indexed single-precision (32-bit) floating-point elements -+// from a, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehdup_ps -+FORCE_INLINE __m128 _mm_movehdup_ps(__m128 a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128_f32( -+ vtrn2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); -+#elif defined(_sse2neon_shuffle) -+ return vreinterpretq_m128_f32(vshuffleq_s32( -+ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 1, 1, 3, 3)); -+#else -+ float32_t a1 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); -+ float32_t a3 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 3); -+ float ALIGN_STRUCT(16) data[4] = {a1, a1, a3, a3}; -+ return vreinterpretq_m128_f32(vld1q_f32(data)); -+#endif -+} -+ -+// Duplicate even-indexed single-precision (32-bit) floating-point elements -+// from a, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_moveldup_ps -+FORCE_INLINE __m128 _mm_moveldup_ps(__m128 a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128_f32( -+ vtrn1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); -+#elif defined(_sse2neon_shuffle) -+ return vreinterpretq_m128_f32(vshuffleq_s32( -+ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 0, 0, 2, 2)); -+#else -+ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); -+ float32_t a2 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 2); -+ float ALIGN_STRUCT(16) data[4] = {a0, a0, a2, a2}; -+ return vreinterpretq_m128_f32(vld1q_f32(data)); -+#endif -+} -+ -+/* SSSE3 */ -+ -+// Compute the absolute value of packed signed 16-bit integers in a, and store -+// the unsigned results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi16 -+FORCE_INLINE __m128i _mm_abs_epi16(__m128i a) -+{ -+ return vreinterpretq_m128i_s16(vabsq_s16(vreinterpretq_s16_m128i(a))); -+} -+ -+// Compute the absolute value of packed signed 32-bit integers in a, and store -+// the unsigned results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi32 -+FORCE_INLINE __m128i _mm_abs_epi32(__m128i a) -+{ -+ return vreinterpretq_m128i_s32(vabsq_s32(vreinterpretq_s32_m128i(a))); -+} -+ -+// Compute the absolute value of packed signed 8-bit integers in a, and store -+// the unsigned results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi8 -+FORCE_INLINE __m128i _mm_abs_epi8(__m128i a) -+{ -+ return vreinterpretq_m128i_s8(vabsq_s8(vreinterpretq_s8_m128i(a))); -+} -+ -+// Compute the absolute value of packed signed 16-bit integers in a, and store -+// the unsigned results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi16 -+FORCE_INLINE __m64 _mm_abs_pi16(__m64 a) -+{ -+ return vreinterpret_m64_s16(vabs_s16(vreinterpret_s16_m64(a))); -+} -+ -+// Compute the absolute value of packed signed 32-bit integers in a, and store -+// the unsigned results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi32 -+FORCE_INLINE __m64 _mm_abs_pi32(__m64 a) -+{ -+ return vreinterpret_m64_s32(vabs_s32(vreinterpret_s32_m64(a))); -+} -+ -+// Compute the absolute value of packed signed 8-bit integers in a, and store -+// the unsigned results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi8 -+FORCE_INLINE __m64 _mm_abs_pi8(__m64 a) -+{ -+ return vreinterpret_m64_s8(vabs_s8(vreinterpret_s8_m64(a))); -+} -+ -+// Concatenate 16-byte blocks in a and b into a 32-byte temporary result, shift -+// the result right by imm8 bytes, and store the low 16 bytes in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_epi8 -+#if defined(__GNUC__) && !defined(__clang__) -+#define _mm_alignr_epi8(a, b, imm) \ -+ __extension__({ \ -+ uint8x16_t _a = vreinterpretq_u8_m128i(a); \ -+ uint8x16_t _b = vreinterpretq_u8_m128i(b); \ -+ __m128i ret; \ -+ if (_sse2neon_unlikely((imm) & ~31)) \ -+ ret = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ -+ else if (imm >= 16) \ -+ ret = _mm_srli_si128(a, imm >= 16 ? imm - 16 : 0); \ -+ else \ -+ ret = \ -+ vreinterpretq_m128i_u8(vextq_u8(_b, _a, imm < 16 ? imm : 0)); \ -+ ret; \ -+ }) -+ -+#else -+#define _mm_alignr_epi8(a, b, imm) \ -+ _sse2neon_define2( \ -+ __m128i, a, b, uint8x16_t __a = vreinterpretq_u8_m128i(_a); \ -+ uint8x16_t __b = vreinterpretq_u8_m128i(_b); __m128i ret; \ -+ if (_sse2neon_unlikely((imm) & ~31)) ret = \ -+ vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ -+ else if (imm >= 16) ret = \ -+ _mm_srli_si128(_a, imm >= 16 ? imm - 16 : 0); \ -+ else ret = \ -+ vreinterpretq_m128i_u8(vextq_u8(__b, __a, imm < 16 ? imm : 0)); \ -+ _sse2neon_return(ret);) -+ -+#endif -+ -+// Concatenate 8-byte blocks in a and b into a 16-byte temporary result, shift -+// the result right by imm8 bytes, and store the low 8 bytes in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_pi8 -+#define _mm_alignr_pi8(a, b, imm) \ -+ _sse2neon_define2( \ -+ __m64, a, b, __m64 ret; if (_sse2neon_unlikely((imm) >= 16)) { \ -+ ret = vreinterpret_m64_s8(vdup_n_s8(0)); \ -+ } else { \ -+ uint8x8_t tmp_low; \ -+ uint8x8_t tmp_high; \ -+ if ((imm) >= 8) { \ -+ const int idx = (imm) -8; \ -+ tmp_low = vreinterpret_u8_m64(_a); \ -+ tmp_high = vdup_n_u8(0); \ -+ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ -+ } else { \ -+ const int idx = (imm); \ -+ tmp_low = vreinterpret_u8_m64(_b); \ -+ tmp_high = vreinterpret_u8_m64(_a); \ -+ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ -+ } \ -+ } _sse2neon_return(ret);) -+ -+// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the -+// signed 16-bit results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi16 -+FORCE_INLINE __m128i _mm_hadd_epi16(__m128i _a, __m128i _b) -+{ -+ int16x8_t a = vreinterpretq_s16_m128i(_a); -+ int16x8_t b = vreinterpretq_s16_m128i(_b); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_s16(vpaddq_s16(a, b)); -+#else -+ return vreinterpretq_m128i_s16( -+ vcombine_s16(vpadd_s16(vget_low_s16(a), vget_high_s16(a)), -+ vpadd_s16(vget_low_s16(b), vget_high_s16(b)))); -+#endif -+} -+ -+// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the -+// signed 32-bit results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi32 -+FORCE_INLINE __m128i _mm_hadd_epi32(__m128i _a, __m128i _b) -+{ -+ int32x4_t a = vreinterpretq_s32_m128i(_a); -+ int32x4_t b = vreinterpretq_s32_m128i(_b); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_s32(vpaddq_s32(a, b)); -+#else -+ return vreinterpretq_m128i_s32( -+ vcombine_s32(vpadd_s32(vget_low_s32(a), vget_high_s32(a)), -+ vpadd_s32(vget_low_s32(b), vget_high_s32(b)))); -+#endif -+} -+ -+// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the -+// signed 16-bit results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi16 -+FORCE_INLINE __m64 _mm_hadd_pi16(__m64 a, __m64 b) -+{ -+ return vreinterpret_m64_s16( -+ vpadd_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); -+} -+ -+// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the -+// signed 32-bit results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi32 -+FORCE_INLINE __m64 _mm_hadd_pi32(__m64 a, __m64 b) -+{ -+ return vreinterpret_m64_s32( -+ vpadd_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b))); -+} -+ -+// Horizontally add adjacent pairs of signed 16-bit integers in a and b using -+// saturation, and pack the signed 16-bit results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_epi16 -+FORCE_INLINE __m128i _mm_hadds_epi16(__m128i _a, __m128i _b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ int16x8_t a = vreinterpretq_s16_m128i(_a); -+ int16x8_t b = vreinterpretq_s16_m128i(_b); -+ return vreinterpretq_s64_s16( -+ vqaddq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); -+#else -+ int32x4_t a = vreinterpretq_s32_m128i(_a); -+ int32x4_t b = vreinterpretq_s32_m128i(_b); -+ // Interleave using vshrn/vmovn -+ // [a0|a2|a4|a6|b0|b2|b4|b6] -+ // [a1|a3|a5|a7|b1|b3|b5|b7] -+ int16x8_t ab0246 = vcombine_s16(vmovn_s32(a), vmovn_s32(b)); -+ int16x8_t ab1357 = vcombine_s16(vshrn_n_s32(a, 16), vshrn_n_s32(b, 16)); -+ // Saturated add -+ return vreinterpretq_m128i_s16(vqaddq_s16(ab0246, ab1357)); -+#endif -+} -+ -+// Horizontally add adjacent pairs of signed 16-bit integers in a and b using -+// saturation, and pack the signed 16-bit results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_pi16 -+FORCE_INLINE __m64 _mm_hadds_pi16(__m64 _a, __m64 _b) -+{ -+ int16x4_t a = vreinterpret_s16_m64(_a); -+ int16x4_t b = vreinterpret_s16_m64(_b); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpret_s64_s16(vqadd_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); -+#else -+ int16x4x2_t res = vuzp_s16(a, b); -+ return vreinterpret_s64_s16(vqadd_s16(res.val[0], res.val[1])); -+#endif -+} -+ -+// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack -+// the signed 16-bit results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi16 -+FORCE_INLINE __m128i _mm_hsub_epi16(__m128i _a, __m128i _b) -+{ -+ int16x8_t a = vreinterpretq_s16_m128i(_a); -+ int16x8_t b = vreinterpretq_s16_m128i(_b); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_s16( -+ vsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); -+#else -+ int16x8x2_t c = vuzpq_s16(a, b); -+ return vreinterpretq_m128i_s16(vsubq_s16(c.val[0], c.val[1])); -+#endif -+} -+ -+// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack -+// the signed 32-bit results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi32 -+FORCE_INLINE __m128i _mm_hsub_epi32(__m128i _a, __m128i _b) -+{ -+ int32x4_t a = vreinterpretq_s32_m128i(_a); -+ int32x4_t b = vreinterpretq_s32_m128i(_b); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_s32( -+ vsubq_s32(vuzp1q_s32(a, b), vuzp2q_s32(a, b))); -+#else -+ int32x4x2_t c = vuzpq_s32(a, b); -+ return vreinterpretq_m128i_s32(vsubq_s32(c.val[0], c.val[1])); -+#endif -+} -+ -+// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack -+// the signed 16-bit results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pi16 -+FORCE_INLINE __m64 _mm_hsub_pi16(__m64 _a, __m64 _b) -+{ -+ int16x4_t a = vreinterpret_s16_m64(_a); -+ int16x4_t b = vreinterpret_s16_m64(_b); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpret_m64_s16(vsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); -+#else -+ int16x4x2_t c = vuzp_s16(a, b); -+ return vreinterpret_m64_s16(vsub_s16(c.val[0], c.val[1])); -+#endif -+} -+ -+// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack -+// the signed 32-bit results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_hsub_pi32 -+FORCE_INLINE __m64 _mm_hsub_pi32(__m64 _a, __m64 _b) -+{ -+ int32x2_t a = vreinterpret_s32_m64(_a); -+ int32x2_t b = vreinterpret_s32_m64(_b); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpret_m64_s32(vsub_s32(vuzp1_s32(a, b), vuzp2_s32(a, b))); -+#else -+ int32x2x2_t c = vuzp_s32(a, b); -+ return vreinterpret_m64_s32(vsub_s32(c.val[0], c.val[1])); -+#endif -+} -+ -+// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b -+// using saturation, and pack the signed 16-bit results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_epi16 -+FORCE_INLINE __m128i _mm_hsubs_epi16(__m128i _a, __m128i _b) -+{ -+ int16x8_t a = vreinterpretq_s16_m128i(_a); -+ int16x8_t b = vreinterpretq_s16_m128i(_b); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_s16( -+ vqsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); -+#else -+ int16x8x2_t c = vuzpq_s16(a, b); -+ return vreinterpretq_m128i_s16(vqsubq_s16(c.val[0], c.val[1])); -+#endif -+} -+ -+// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b -+// using saturation, and pack the signed 16-bit results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_pi16 -+FORCE_INLINE __m64 _mm_hsubs_pi16(__m64 _a, __m64 _b) -+{ -+ int16x4_t a = vreinterpret_s16_m64(_a); -+ int16x4_t b = vreinterpret_s16_m64(_b); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpret_m64_s16(vqsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); -+#else -+ int16x4x2_t c = vuzp_s16(a, b); -+ return vreinterpret_m64_s16(vqsub_s16(c.val[0], c.val[1])); -+#endif -+} -+ -+// Vertically multiply each unsigned 8-bit integer from a with the corresponding -+// signed 8-bit integer from b, producing intermediate signed 16-bit integers. -+// Horizontally add adjacent pairs of intermediate signed 16-bit integers, -+// and pack the saturated results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_epi16 -+FORCE_INLINE __m128i _mm_maddubs_epi16(__m128i _a, __m128i _b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ uint8x16_t a = vreinterpretq_u8_m128i(_a); -+ int8x16_t b = vreinterpretq_s8_m128i(_b); -+ int16x8_t tl = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_low_u8(a))), -+ vmovl_s8(vget_low_s8(b))); -+ int16x8_t th = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_high_u8(a))), -+ vmovl_s8(vget_high_s8(b))); -+ return vreinterpretq_m128i_s16( -+ vqaddq_s16(vuzp1q_s16(tl, th), vuzp2q_s16(tl, th))); -+#else -+ // This would be much simpler if x86 would choose to zero extend OR sign -+ // extend, not both. This could probably be optimized better. -+ uint16x8_t a = vreinterpretq_u16_m128i(_a); -+ int16x8_t b = vreinterpretq_s16_m128i(_b); -+ -+ // Zero extend a -+ int16x8_t a_odd = vreinterpretq_s16_u16(vshrq_n_u16(a, 8)); -+ int16x8_t a_even = vreinterpretq_s16_u16(vbicq_u16(a, vdupq_n_u16(0xff00))); -+ -+ // Sign extend by shifting left then shifting right. -+ int16x8_t b_even = vshrq_n_s16(vshlq_n_s16(b, 8), 8); -+ int16x8_t b_odd = vshrq_n_s16(b, 8); -+ -+ // multiply -+ int16x8_t prod1 = vmulq_s16(a_even, b_even); -+ int16x8_t prod2 = vmulq_s16(a_odd, b_odd); -+ -+ // saturated add -+ return vreinterpretq_m128i_s16(vqaddq_s16(prod1, prod2)); -+#endif -+} -+ -+// Vertically multiply each unsigned 8-bit integer from a with the corresponding -+// signed 8-bit integer from b, producing intermediate signed 16-bit integers. -+// Horizontally add adjacent pairs of intermediate signed 16-bit integers, and -+// pack the saturated results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_pi16 -+FORCE_INLINE __m64 _mm_maddubs_pi16(__m64 _a, __m64 _b) -+{ -+ uint16x4_t a = vreinterpret_u16_m64(_a); -+ int16x4_t b = vreinterpret_s16_m64(_b); -+ -+ // Zero extend a -+ int16x4_t a_odd = vreinterpret_s16_u16(vshr_n_u16(a, 8)); -+ int16x4_t a_even = vreinterpret_s16_u16(vand_u16(a, vdup_n_u16(0xff))); -+ -+ // Sign extend by shifting left then shifting right. -+ int16x4_t b_even = vshr_n_s16(vshl_n_s16(b, 8), 8); -+ int16x4_t b_odd = vshr_n_s16(b, 8); -+ -+ // multiply -+ int16x4_t prod1 = vmul_s16(a_even, b_even); -+ int16x4_t prod2 = vmul_s16(a_odd, b_odd); -+ -+ // saturated add -+ return vreinterpret_m64_s16(vqadd_s16(prod1, prod2)); -+} -+ -+// Multiply packed signed 16-bit integers in a and b, producing intermediate -+// signed 32-bit integers. Shift right by 15 bits while rounding up, and store -+// the packed 16-bit integers in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_epi16 -+FORCE_INLINE __m128i _mm_mulhrs_epi16(__m128i a, __m128i b) -+{ -+ // Has issues due to saturation -+ // return vreinterpretq_m128i_s16(vqrdmulhq_s16(a, b)); -+ -+ // Multiply -+ int32x4_t mul_lo = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), -+ vget_low_s16(vreinterpretq_s16_m128i(b))); -+ int32x4_t mul_hi = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), -+ vget_high_s16(vreinterpretq_s16_m128i(b))); -+ -+ // Rounding narrowing shift right -+ // narrow = (int16_t)((mul + 16384) >> 15); -+ int16x4_t narrow_lo = vrshrn_n_s32(mul_lo, 15); -+ int16x4_t narrow_hi = vrshrn_n_s32(mul_hi, 15); -+ -+ // Join together -+ return vreinterpretq_m128i_s16(vcombine_s16(narrow_lo, narrow_hi)); -+} -+ -+// Multiply packed signed 16-bit integers in a and b, producing intermediate -+// signed 32-bit integers. Truncate each intermediate integer to the 18 most -+// significant bits, round by adding 1, and store bits [16:1] to dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_pi16 -+FORCE_INLINE __m64 _mm_mulhrs_pi16(__m64 a, __m64 b) -+{ -+ int32x4_t mul_extend = -+ vmull_s16((vreinterpret_s16_m64(a)), (vreinterpret_s16_m64(b))); -+ -+ // Rounding narrowing shift right -+ return vreinterpret_m64_s16(vrshrn_n_s32(mul_extend, 15)); -+} -+ -+// Shuffle packed 8-bit integers in a according to shuffle control mask in the -+// corresponding 8-bit element of b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi8 -+FORCE_INLINE __m128i _mm_shuffle_epi8(__m128i a, __m128i b) -+{ -+ int8x16_t tbl = vreinterpretq_s8_m128i(a); // input a -+ uint8x16_t idx = vreinterpretq_u8_m128i(b); // input b -+ uint8x16_t idx_masked = -+ vandq_u8(idx, vdupq_n_u8(0x8F)); // avoid using meaningless bits -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_s8(vqtbl1q_s8(tbl, idx_masked)); -+#elif defined(__GNUC__) -+ int8x16_t ret; -+ // %e and %f represent the even and odd D registers -+ // respectively. -+ __asm__ __volatile__( -+ "vtbl.8 %e[ret], {%e[tbl], %f[tbl]}, %e[idx]\n" -+ "vtbl.8 %f[ret], {%e[tbl], %f[tbl]}, %f[idx]\n" -+ : [ret] "=&w"(ret) -+ : [tbl] "w"(tbl), [idx] "w"(idx_masked)); -+ return vreinterpretq_m128i_s8(ret); -+#else -+ // use this line if testing on aarch64 -+ int8x8x2_t a_split = {vget_low_s8(tbl), vget_high_s8(tbl)}; -+ return vreinterpretq_m128i_s8( -+ vcombine_s8(vtbl2_s8(a_split, vget_low_u8(idx_masked)), -+ vtbl2_s8(a_split, vget_high_u8(idx_masked)))); -+#endif -+} -+ -+// Shuffle packed 8-bit integers in a according to shuffle control mask in the -+// corresponding 8-bit element of b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi8 -+FORCE_INLINE __m64 _mm_shuffle_pi8(__m64 a, __m64 b) -+{ -+ const int8x8_t controlMask = -+ vand_s8(vreinterpret_s8_m64(b), vdup_n_s8((int8_t) (0x1 << 7 | 0x07))); -+ int8x8_t res = vtbl1_s8(vreinterpret_s8_m64(a), controlMask); -+ return vreinterpret_m64_s8(res); -+} -+ -+// Negate packed 16-bit integers in a when the corresponding signed -+// 16-bit integer in b is negative, and store the results in dst. -+// Element in dst are zeroed out when the corresponding element -+// in b is zero. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi16 -+FORCE_INLINE __m128i _mm_sign_epi16(__m128i _a, __m128i _b) -+{ -+ int16x8_t a = vreinterpretq_s16_m128i(_a); -+ int16x8_t b = vreinterpretq_s16_m128i(_b); -+ -+ // signed shift right: faster than vclt -+ // (b < 0) ? 0xFFFF : 0 -+ uint16x8_t ltMask = vreinterpretq_u16_s16(vshrq_n_s16(b, 15)); -+ // (b == 0) ? 0xFFFF : 0 -+#if defined(__aarch64__) || defined(_M_ARM64) -+ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqzq_s16(b)); -+#else -+ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqq_s16(b, vdupq_n_s16(0))); -+#endif -+ -+ // bitwise select either a or negative 'a' (vnegq_s16(a) equals to negative -+ // 'a') based on ltMask -+ int16x8_t masked = vbslq_s16(ltMask, vnegq_s16(a), a); -+ // res = masked & (~zeroMask) -+ int16x8_t res = vbicq_s16(masked, zeroMask); -+ return vreinterpretq_m128i_s16(res); -+} -+ -+// Negate packed 32-bit integers in a when the corresponding signed -+// 32-bit integer in b is negative, and store the results in dst. -+// Element in dst are zeroed out when the corresponding element -+// in b is zero. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi32 -+FORCE_INLINE __m128i _mm_sign_epi32(__m128i _a, __m128i _b) -+{ -+ int32x4_t a = vreinterpretq_s32_m128i(_a); -+ int32x4_t b = vreinterpretq_s32_m128i(_b); -+ -+ // signed shift right: faster than vclt -+ // (b < 0) ? 0xFFFFFFFF : 0 -+ uint32x4_t ltMask = vreinterpretq_u32_s32(vshrq_n_s32(b, 31)); -+ -+ // (b == 0) ? 0xFFFFFFFF : 0 -+#if defined(__aarch64__) || defined(_M_ARM64) -+ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqzq_s32(b)); -+#else -+ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqq_s32(b, vdupq_n_s32(0))); -+#endif -+ -+ // bitwise select either a or negative 'a' (vnegq_s32(a) equals to negative -+ // 'a') based on ltMask -+ int32x4_t masked = vbslq_s32(ltMask, vnegq_s32(a), a); -+ // res = masked & (~zeroMask) -+ int32x4_t res = vbicq_s32(masked, zeroMask); -+ return vreinterpretq_m128i_s32(res); -+} -+ -+// Negate packed 8-bit integers in a when the corresponding signed -+// 8-bit integer in b is negative, and store the results in dst. -+// Element in dst are zeroed out when the corresponding element -+// in b is zero. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi8 -+FORCE_INLINE __m128i _mm_sign_epi8(__m128i _a, __m128i _b) -+{ -+ int8x16_t a = vreinterpretq_s8_m128i(_a); -+ int8x16_t b = vreinterpretq_s8_m128i(_b); -+ -+ // signed shift right: faster than vclt -+ // (b < 0) ? 0xFF : 0 -+ uint8x16_t ltMask = vreinterpretq_u8_s8(vshrq_n_s8(b, 7)); -+ -+ // (b == 0) ? 0xFF : 0 -+#if defined(__aarch64__) || defined(_M_ARM64) -+ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqzq_s8(b)); -+#else -+ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqq_s8(b, vdupq_n_s8(0))); -+#endif -+ -+ // bitwise select either a or negative 'a' (vnegq_s8(a) return negative 'a') -+ // based on ltMask -+ int8x16_t masked = vbslq_s8(ltMask, vnegq_s8(a), a); -+ // res = masked & (~zeroMask) -+ int8x16_t res = vbicq_s8(masked, zeroMask); -+ -+ return vreinterpretq_m128i_s8(res); -+} -+ -+// Negate packed 16-bit integers in a when the corresponding signed 16-bit -+// integer in b is negative, and store the results in dst. Element in dst are -+// zeroed out when the corresponding element in b is zero. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi16 -+FORCE_INLINE __m64 _mm_sign_pi16(__m64 _a, __m64 _b) -+{ -+ int16x4_t a = vreinterpret_s16_m64(_a); -+ int16x4_t b = vreinterpret_s16_m64(_b); -+ -+ // signed shift right: faster than vclt -+ // (b < 0) ? 0xFFFF : 0 -+ uint16x4_t ltMask = vreinterpret_u16_s16(vshr_n_s16(b, 15)); -+ -+ // (b == 0) ? 0xFFFF : 0 -+#if defined(__aarch64__) || defined(_M_ARM64) -+ int16x4_t zeroMask = vreinterpret_s16_u16(vceqz_s16(b)); -+#else -+ int16x4_t zeroMask = vreinterpret_s16_u16(vceq_s16(b, vdup_n_s16(0))); -+#endif -+ -+ // bitwise select either a or negative 'a' (vneg_s16(a) return negative 'a') -+ // based on ltMask -+ int16x4_t masked = vbsl_s16(ltMask, vneg_s16(a), a); -+ // res = masked & (~zeroMask) -+ int16x4_t res = vbic_s16(masked, zeroMask); -+ -+ return vreinterpret_m64_s16(res); -+} -+ -+// Negate packed 32-bit integers in a when the corresponding signed 32-bit -+// integer in b is negative, and store the results in dst. Element in dst are -+// zeroed out when the corresponding element in b is zero. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi32 -+FORCE_INLINE __m64 _mm_sign_pi32(__m64 _a, __m64 _b) -+{ -+ int32x2_t a = vreinterpret_s32_m64(_a); -+ int32x2_t b = vreinterpret_s32_m64(_b); -+ -+ // signed shift right: faster than vclt -+ // (b < 0) ? 0xFFFFFFFF : 0 -+ uint32x2_t ltMask = vreinterpret_u32_s32(vshr_n_s32(b, 31)); -+ -+ // (b == 0) ? 0xFFFFFFFF : 0 -+#if defined(__aarch64__) || defined(_M_ARM64) -+ int32x2_t zeroMask = vreinterpret_s32_u32(vceqz_s32(b)); -+#else -+ int32x2_t zeroMask = vreinterpret_s32_u32(vceq_s32(b, vdup_n_s32(0))); -+#endif -+ -+ // bitwise select either a or negative 'a' (vneg_s32(a) return negative 'a') -+ // based on ltMask -+ int32x2_t masked = vbsl_s32(ltMask, vneg_s32(a), a); -+ // res = masked & (~zeroMask) -+ int32x2_t res = vbic_s32(masked, zeroMask); -+ -+ return vreinterpret_m64_s32(res); -+} -+ -+// Negate packed 8-bit integers in a when the corresponding signed 8-bit integer -+// in b is negative, and store the results in dst. Element in dst are zeroed out -+// when the corresponding element in b is zero. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi8 -+FORCE_INLINE __m64 _mm_sign_pi8(__m64 _a, __m64 _b) -+{ -+ int8x8_t a = vreinterpret_s8_m64(_a); -+ int8x8_t b = vreinterpret_s8_m64(_b); -+ -+ // signed shift right: faster than vclt -+ // (b < 0) ? 0xFF : 0 -+ uint8x8_t ltMask = vreinterpret_u8_s8(vshr_n_s8(b, 7)); -+ -+ // (b == 0) ? 0xFF : 0 -+#if defined(__aarch64__) || defined(_M_ARM64) -+ int8x8_t zeroMask = vreinterpret_s8_u8(vceqz_s8(b)); -+#else -+ int8x8_t zeroMask = vreinterpret_s8_u8(vceq_s8(b, vdup_n_s8(0))); -+#endif -+ -+ // bitwise select either a or negative 'a' (vneg_s8(a) return negative 'a') -+ // based on ltMask -+ int8x8_t masked = vbsl_s8(ltMask, vneg_s8(a), a); -+ // res = masked & (~zeroMask) -+ int8x8_t res = vbic_s8(masked, zeroMask); -+ -+ return vreinterpret_m64_s8(res); -+} -+ -+/* SSE4.1 */ -+ -+// Blend packed 16-bit integers from a and b using control mask imm8, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_epi16 -+// FORCE_INLINE __m128i _mm_blend_epi16(__m128i a, __m128i b, -+// __constrange(0,255) int imm) -+#define _mm_blend_epi16(a, b, imm) \ -+ _sse2neon_define2( \ -+ __m128i, a, b, \ -+ const uint16_t _mask[8] = \ -+ _sse2neon_init(((imm) & (1 << 0)) ? (uint16_t) -1 : 0x0, \ -+ ((imm) & (1 << 1)) ? (uint16_t) -1 : 0x0, \ -+ ((imm) & (1 << 2)) ? (uint16_t) -1 : 0x0, \ -+ ((imm) & (1 << 3)) ? (uint16_t) -1 : 0x0, \ -+ ((imm) & (1 << 4)) ? (uint16_t) -1 : 0x0, \ -+ ((imm) & (1 << 5)) ? (uint16_t) -1 : 0x0, \ -+ ((imm) & (1 << 6)) ? (uint16_t) -1 : 0x0, \ -+ ((imm) & (1 << 7)) ? (uint16_t) -1 : 0x0); \ -+ uint16x8_t _mask_vec = vld1q_u16(_mask); \ -+ uint16x8_t __a = vreinterpretq_u16_m128i(_a); \ -+ uint16x8_t __b = vreinterpretq_u16_m128i(_b); _sse2neon_return( \ -+ vreinterpretq_m128i_u16(vbslq_u16(_mask_vec, __b, __a)));) -+ -+// Blend packed double-precision (64-bit) floating-point elements from a and b -+// using control mask imm8, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_pd -+#define _mm_blend_pd(a, b, imm) \ -+ _sse2neon_define2( \ -+ __m128d, a, b, \ -+ const uint64_t _mask[2] = \ -+ _sse2neon_init(((imm) & (1 << 0)) ? ~UINT64_C(0) : UINT64_C(0), \ -+ ((imm) & (1 << 1)) ? ~UINT64_C(0) : UINT64_C(0)); \ -+ uint64x2_t _mask_vec = vld1q_u64(_mask); \ -+ uint64x2_t __a = vreinterpretq_u64_m128d(_a); \ -+ uint64x2_t __b = vreinterpretq_u64_m128d(_b); _sse2neon_return( \ -+ vreinterpretq_m128d_u64(vbslq_u64(_mask_vec, __b, __a)));) -+ -+// Blend packed single-precision (32-bit) floating-point elements from a and b -+// using mask, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_ps -+FORCE_INLINE __m128 _mm_blend_ps(__m128 _a, __m128 _b, const char imm8) -+{ -+ const uint32_t ALIGN_STRUCT(16) -+ data[4] = {((imm8) & (1 << 0)) ? UINT32_MAX : 0, -+ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, -+ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, -+ ((imm8) & (1 << 3)) ? UINT32_MAX : 0}; -+ uint32x4_t mask = vld1q_u32(data); -+ float32x4_t a = vreinterpretq_f32_m128(_a); -+ float32x4_t b = vreinterpretq_f32_m128(_b); -+ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); -+} -+ -+// Blend packed 8-bit integers from a and b using mask, and store the results in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_epi8 -+FORCE_INLINE __m128i _mm_blendv_epi8(__m128i _a, __m128i _b, __m128i _mask) -+{ -+ // Use a signed shift right to create a mask with the sign bit -+ uint8x16_t mask = -+ vreinterpretq_u8_s8(vshrq_n_s8(vreinterpretq_s8_m128i(_mask), 7)); -+ uint8x16_t a = vreinterpretq_u8_m128i(_a); -+ uint8x16_t b = vreinterpretq_u8_m128i(_b); -+ return vreinterpretq_m128i_u8(vbslq_u8(mask, b, a)); -+} -+ -+// Blend packed double-precision (64-bit) floating-point elements from a and b -+// using mask, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_pd -+FORCE_INLINE __m128d _mm_blendv_pd(__m128d _a, __m128d _b, __m128d _mask) -+{ -+ uint64x2_t mask = -+ vreinterpretq_u64_s64(vshrq_n_s64(vreinterpretq_s64_m128d(_mask), 63)); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ float64x2_t a = vreinterpretq_f64_m128d(_a); -+ float64x2_t b = vreinterpretq_f64_m128d(_b); -+ return vreinterpretq_m128d_f64(vbslq_f64(mask, b, a)); -+#else -+ uint64x2_t a = vreinterpretq_u64_m128d(_a); -+ uint64x2_t b = vreinterpretq_u64_m128d(_b); -+ return vreinterpretq_m128d_u64(vbslq_u64(mask, b, a)); -+#endif -+} -+ -+// Blend packed single-precision (32-bit) floating-point elements from a and b -+// using mask, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_ps -+FORCE_INLINE __m128 _mm_blendv_ps(__m128 _a, __m128 _b, __m128 _mask) -+{ -+ // Use a signed shift right to create a mask with the sign bit -+ uint32x4_t mask = -+ vreinterpretq_u32_s32(vshrq_n_s32(vreinterpretq_s32_m128(_mask), 31)); -+ float32x4_t a = vreinterpretq_f32_m128(_a); -+ float32x4_t b = vreinterpretq_f32_m128(_b); -+ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); -+} -+ -+// Round the packed double-precision (64-bit) floating-point elements in a up -+// to an integer value, and store the results as packed double-precision -+// floating-point elements in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_pd -+FORCE_INLINE __m128d _mm_ceil_pd(__m128d a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64(vrndpq_f64(vreinterpretq_f64_m128d(a))); -+#else -+ double *f = (double *) &a; -+ return _mm_set_pd(ceil(f[1]), ceil(f[0])); -+#endif -+} -+ -+// Round the packed single-precision (32-bit) floating-point elements in a up to -+// an integer value, and store the results as packed single-precision -+// floating-point elements in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ps -+FORCE_INLINE __m128 _mm_ceil_ps(__m128 a) -+{ -+#if (defined(__aarch64__) || defined(_M_ARM64)) || \ -+ defined(__ARM_FEATURE_DIRECTED_ROUNDING) -+ return vreinterpretq_m128_f32(vrndpq_f32(vreinterpretq_f32_m128(a))); -+#else -+ float *f = (float *) &a; -+ return _mm_set_ps(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ceilf(f[0])); -+#endif -+} -+ -+// Round the lower double-precision (64-bit) floating-point element in b up to -+// an integer value, store the result as a double-precision floating-point -+// element in the lower element of dst, and copy the upper element from a to the -+// upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_sd -+FORCE_INLINE __m128d _mm_ceil_sd(__m128d a, __m128d b) -+{ -+ return _mm_move_sd(a, _mm_ceil_pd(b)); -+} -+ -+// Round the lower single-precision (32-bit) floating-point element in b up to -+// an integer value, store the result as a single-precision floating-point -+// element in the lower element of dst, and copy the upper 3 packed elements -+// from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ss -+FORCE_INLINE __m128 _mm_ceil_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_ceil_ps(b)); -+} -+ -+// Compare packed 64-bit integers in a and b for equality, and store the results -+// in dst -+FORCE_INLINE __m128i _mm_cmpeq_epi64(__m128i a, __m128i b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_u64( -+ vceqq_u64(vreinterpretq_u64_m128i(a), vreinterpretq_u64_m128i(b))); -+#else -+ // ARMv7 lacks vceqq_u64 -+ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) -+ uint32x4_t cmp = -+ vceqq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b)); -+ uint32x4_t swapped = vrev64q_u32(cmp); -+ return vreinterpretq_m128i_u32(vandq_u32(cmp, swapped)); -+#endif -+} -+ -+// Sign extend packed 16-bit integers in a to packed 32-bit integers, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi32 -+FORCE_INLINE __m128i _mm_cvtepi16_epi32(__m128i a) -+{ -+ return vreinterpretq_m128i_s32( -+ vmovl_s16(vget_low_s16(vreinterpretq_s16_m128i(a)))); -+} -+ -+// Sign extend packed 16-bit integers in a to packed 64-bit integers, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi64 -+FORCE_INLINE __m128i _mm_cvtepi16_epi64(__m128i a) -+{ -+ int16x8_t s16x8 = vreinterpretq_s16_m128i(a); /* xxxx xxxx xxxx 0B0A */ -+ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ -+ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ -+ return vreinterpretq_m128i_s64(s64x2); -+} -+ -+// Sign extend packed 32-bit integers in a to packed 64-bit integers, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_epi64 -+FORCE_INLINE __m128i _mm_cvtepi32_epi64(__m128i a) -+{ -+ return vreinterpretq_m128i_s64( -+ vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a)))); -+} -+ -+// Sign extend packed 8-bit integers in a to packed 16-bit integers, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi16 -+FORCE_INLINE __m128i _mm_cvtepi8_epi16(__m128i a) -+{ -+ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ -+ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ -+ return vreinterpretq_m128i_s16(s16x8); -+} -+ -+// Sign extend packed 8-bit integers in a to packed 32-bit integers, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi32 -+FORCE_INLINE __m128i _mm_cvtepi8_epi32(__m128i a) -+{ -+ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ -+ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ -+ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000D 000C 000B 000A */ -+ return vreinterpretq_m128i_s32(s32x4); -+} -+ -+// Sign extend packed 8-bit integers in the low 8 bytes of a to packed 64-bit -+// integers, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi64 -+FORCE_INLINE __m128i _mm_cvtepi8_epi64(__m128i a) -+{ -+ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx xxBA */ -+ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0x0x 0B0A */ -+ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ -+ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ -+ return vreinterpretq_m128i_s64(s64x2); -+} -+ -+// Zero extend packed unsigned 16-bit integers in a to packed 32-bit integers, -+// and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi32 -+FORCE_INLINE __m128i _mm_cvtepu16_epi32(__m128i a) -+{ -+ return vreinterpretq_m128i_u32( -+ vmovl_u16(vget_low_u16(vreinterpretq_u16_m128i(a)))); -+} -+ -+// Zero extend packed unsigned 16-bit integers in a to packed 64-bit integers, -+// and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi64 -+FORCE_INLINE __m128i _mm_cvtepu16_epi64(__m128i a) -+{ -+ uint16x8_t u16x8 = vreinterpretq_u16_m128i(a); /* xxxx xxxx xxxx 0B0A */ -+ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ -+ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ -+ return vreinterpretq_m128i_u64(u64x2); -+} -+ -+// Zero extend packed unsigned 32-bit integers in a to packed 64-bit integers, -+// and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu32_epi64 -+FORCE_INLINE __m128i _mm_cvtepu32_epi64(__m128i a) -+{ -+ return vreinterpretq_m128i_u64( -+ vmovl_u32(vget_low_u32(vreinterpretq_u32_m128i(a)))); -+} -+ -+// Zero extend packed unsigned 8-bit integers in a to packed 16-bit integers, -+// and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi16 -+FORCE_INLINE __m128i _mm_cvtepu8_epi16(__m128i a) -+{ -+ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx HGFE DCBA */ -+ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0H0G 0F0E 0D0C 0B0A */ -+ return vreinterpretq_m128i_u16(u16x8); -+} -+ -+// Zero extend packed unsigned 8-bit integers in a to packed 32-bit integers, -+// and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi32 -+FORCE_INLINE __m128i _mm_cvtepu8_epi32(__m128i a) -+{ -+ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx DCBA */ -+ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0D0C 0B0A */ -+ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000D 000C 000B 000A */ -+ return vreinterpretq_m128i_u32(u32x4); -+} -+ -+// Zero extend packed unsigned 8-bit integers in the low 8 bytes of a to packed -+// 64-bit integers, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi64 -+FORCE_INLINE __m128i _mm_cvtepu8_epi64(__m128i a) -+{ -+ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx xxBA */ -+ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0x0x 0B0A */ -+ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ -+ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ -+ return vreinterpretq_m128i_u64(u64x2); -+} -+ -+// Conditionally multiply the packed double-precision (64-bit) floating-point -+// elements in a and b using the high 4 bits in imm8, sum the four products, and -+// conditionally store the sum in dst using the low 4 bits of imm8. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_pd -+FORCE_INLINE __m128d _mm_dp_pd(__m128d a, __m128d b, const int imm) -+{ -+ // Generate mask value from constant immediate bit value -+ const int64_t bit0Mask = imm & 0x01 ? UINT64_MAX : 0; -+ const int64_t bit1Mask = imm & 0x02 ? UINT64_MAX : 0; -+#if !SSE2NEON_PRECISE_DP -+ const int64_t bit4Mask = imm & 0x10 ? UINT64_MAX : 0; -+ const int64_t bit5Mask = imm & 0x20 ? UINT64_MAX : 0; -+#endif -+ // Conditional multiplication -+#if !SSE2NEON_PRECISE_DP -+ __m128d mul = _mm_mul_pd(a, b); -+ const __m128d mulMask = -+ _mm_castsi128_pd(_mm_set_epi64x(bit5Mask, bit4Mask)); -+ __m128d tmp = _mm_and_pd(mul, mulMask); -+#else -+#if defined(__aarch64__) || defined(_M_ARM64) -+ double d0 = (imm & 0x10) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0) * -+ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 0) -+ : 0; -+ double d1 = (imm & 0x20) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1) * -+ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 1) -+ : 0; -+#else -+ double d0 = (imm & 0x10) ? ((double *) &a)[0] * ((double *) &b)[0] : 0; -+ double d1 = (imm & 0x20) ? ((double *) &a)[1] * ((double *) &b)[1] : 0; -+#endif -+ __m128d tmp = _mm_set_pd(d1, d0); -+#endif -+ // Sum the products -+#if defined(__aarch64__) || defined(_M_ARM64) -+ double sum = vpaddd_f64(vreinterpretq_f64_m128d(tmp)); -+#else -+ double sum = *((double *) &tmp) + *(((double *) &tmp) + 1); -+#endif -+ // Conditionally store the sum -+ const __m128d sumMask = -+ _mm_castsi128_pd(_mm_set_epi64x(bit1Mask, bit0Mask)); -+ __m128d res = _mm_and_pd(_mm_set_pd1(sum), sumMask); -+ return res; -+} -+ -+// Conditionally multiply the packed single-precision (32-bit) floating-point -+// elements in a and b using the high 4 bits in imm8, sum the four products, -+// and conditionally store the sum in dst using the low 4 bits of imm. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_ps -+FORCE_INLINE __m128 _mm_dp_ps(__m128 a, __m128 b, const int imm) -+{ -+ float32x4_t elementwise_prod = _mm_mul_ps(a, b); -+ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ /* shortcuts */ -+ if (imm == 0xFF) { -+ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); -+ } -+ -+ if ((imm & 0x0F) == 0x0F) { -+ if (!(imm & (1 << 4))) -+ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 0); -+ if (!(imm & (1 << 5))) -+ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 1); -+ if (!(imm & (1 << 6))) -+ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 2); -+ if (!(imm & (1 << 7))) -+ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 3); -+ -+ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); -+ } -+#endif -+ -+ float s = 0.0f; -+ -+ if (imm & (1 << 4)) -+ s += vgetq_lane_f32(elementwise_prod, 0); -+ if (imm & (1 << 5)) -+ s += vgetq_lane_f32(elementwise_prod, 1); -+ if (imm & (1 << 6)) -+ s += vgetq_lane_f32(elementwise_prod, 2); -+ if (imm & (1 << 7)) -+ s += vgetq_lane_f32(elementwise_prod, 3); -+ -+ const float32_t res[4] = { -+ (imm & 0x1) ? s : 0.0f, -+ (imm & 0x2) ? s : 0.0f, -+ (imm & 0x4) ? s : 0.0f, -+ (imm & 0x8) ? s : 0.0f, -+ }; -+ return vreinterpretq_m128_f32(vld1q_f32(res)); -+} -+ -+// Extract a 32-bit integer from a, selected with imm8, and store the result in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi32 -+// FORCE_INLINE int _mm_extract_epi32(__m128i a, __constrange(0,4) int imm) -+#define _mm_extract_epi32(a, imm) \ -+ vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)) -+ -+// Extract a 64-bit integer from a, selected with imm8, and store the result in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi64 -+// FORCE_INLINE __int64 _mm_extract_epi64(__m128i a, __constrange(0,2) int imm) -+#define _mm_extract_epi64(a, imm) \ -+ vgetq_lane_s64(vreinterpretq_s64_m128i(a), (imm)) -+ -+// Extract an 8-bit integer from a, selected with imm8, and store the result in -+// the lower element of dst. FORCE_INLINE int _mm_extract_epi8(__m128i a, -+// __constrange(0,16) int imm) -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi8 -+#define _mm_extract_epi8(a, imm) vgetq_lane_u8(vreinterpretq_u8_m128i(a), (imm)) -+ -+// Extracts the selected single-precision (32-bit) floating-point from a. -+// FORCE_INLINE int _mm_extract_ps(__m128 a, __constrange(0,4) int imm) -+#define _mm_extract_ps(a, imm) vgetq_lane_s32(vreinterpretq_s32_m128(a), (imm)) -+ -+// Round the packed double-precision (64-bit) floating-point elements in a down -+// to an integer value, and store the results as packed double-precision -+// floating-point elements in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_pd -+FORCE_INLINE __m128d _mm_floor_pd(__m128d a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64(vrndmq_f64(vreinterpretq_f64_m128d(a))); -+#else -+ double *f = (double *) &a; -+ return _mm_set_pd(floor(f[1]), floor(f[0])); -+#endif -+} -+ -+// Round the packed single-precision (32-bit) floating-point elements in a down -+// to an integer value, and store the results as packed single-precision -+// floating-point elements in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ps -+FORCE_INLINE __m128 _mm_floor_ps(__m128 a) -+{ -+#if (defined(__aarch64__) || defined(_M_ARM64)) || \ -+ defined(__ARM_FEATURE_DIRECTED_ROUNDING) -+ return vreinterpretq_m128_f32(vrndmq_f32(vreinterpretq_f32_m128(a))); -+#else -+ float *f = (float *) &a; -+ return _mm_set_ps(floorf(f[3]), floorf(f[2]), floorf(f[1]), floorf(f[0])); -+#endif -+} -+ -+// Round the lower double-precision (64-bit) floating-point element in b down to -+// an integer value, store the result as a double-precision floating-point -+// element in the lower element of dst, and copy the upper element from a to the -+// upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_sd -+FORCE_INLINE __m128d _mm_floor_sd(__m128d a, __m128d b) -+{ -+ return _mm_move_sd(a, _mm_floor_pd(b)); -+} -+ -+// Round the lower single-precision (32-bit) floating-point element in b down to -+// an integer value, store the result as a single-precision floating-point -+// element in the lower element of dst, and copy the upper 3 packed elements -+// from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ss -+FORCE_INLINE __m128 _mm_floor_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_floor_ps(b)); -+} -+ -+// Copy a to dst, and insert the 32-bit integer i into dst at the location -+// specified by imm8. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi32 -+// FORCE_INLINE __m128i _mm_insert_epi32(__m128i a, int b, -+// __constrange(0,4) int imm) -+#define _mm_insert_epi32(a, b, imm) \ -+ vreinterpretq_m128i_s32( \ -+ vsetq_lane_s32((b), vreinterpretq_s32_m128i(a), (imm))) -+ -+// Copy a to dst, and insert the 64-bit integer i into dst at the location -+// specified by imm8. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi64 -+// FORCE_INLINE __m128i _mm_insert_epi64(__m128i a, __int64 b, -+// __constrange(0,2) int imm) -+#define _mm_insert_epi64(a, b, imm) \ -+ vreinterpretq_m128i_s64( \ -+ vsetq_lane_s64((b), vreinterpretq_s64_m128i(a), (imm))) -+ -+// Copy a to dst, and insert the lower 8-bit integer from i into dst at the -+// location specified by imm8. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi8 -+// FORCE_INLINE __m128i _mm_insert_epi8(__m128i a, int b, -+// __constrange(0,16) int imm) -+#define _mm_insert_epi8(a, b, imm) \ -+ vreinterpretq_m128i_s8(vsetq_lane_s8((b), vreinterpretq_s8_m128i(a), (imm))) -+ -+// Copy a to tmp, then insert a single-precision (32-bit) floating-point -+// element from b into tmp using the control in imm8. Store tmp to dst using -+// the mask in imm8 (elements are zeroed out when the corresponding bit is set). -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=insert_ps -+#define _mm_insert_ps(a, b, imm8) \ -+ _sse2neon_define2( \ -+ __m128, a, b, \ -+ float32x4_t tmp1 = \ -+ vsetq_lane_f32(vgetq_lane_f32(_b, (imm8 >> 6) & 0x3), \ -+ vreinterpretq_f32_m128(_a), 0); \ -+ float32x4_t tmp2 = \ -+ vsetq_lane_f32(vgetq_lane_f32(tmp1, 0), \ -+ vreinterpretq_f32_m128(_a), ((imm8 >> 4) & 0x3)); \ -+ const uint32_t data[4] = \ -+ _sse2neon_init(((imm8) & (1 << 0)) ? UINT32_MAX : 0, \ -+ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, \ -+ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, \ -+ ((imm8) & (1 << 3)) ? UINT32_MAX : 0); \ -+ uint32x4_t mask = vld1q_u32(data); \ -+ float32x4_t all_zeros = vdupq_n_f32(0); \ -+ \ -+ _sse2neon_return(vreinterpretq_m128_f32( \ -+ vbslq_f32(mask, all_zeros, vreinterpretq_f32_m128(tmp2))));) -+ -+// Compare packed signed 32-bit integers in a and b, and store packed maximum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi32 -+FORCE_INLINE __m128i _mm_max_epi32(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s32( -+ vmaxq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); -+} -+ -+// Compare packed signed 8-bit integers in a and b, and store packed maximum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi8 -+FORCE_INLINE __m128i _mm_max_epi8(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s8( -+ vmaxq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); -+} -+ -+// Compare packed unsigned 16-bit integers in a and b, and store packed maximum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu16 -+FORCE_INLINE __m128i _mm_max_epu16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u16( -+ vmaxq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); -+} -+ -+// Compare packed unsigned 32-bit integers in a and b, and store packed maximum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 -+FORCE_INLINE __m128i _mm_max_epu32(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u32( -+ vmaxq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); -+} -+ -+// Compare packed signed 32-bit integers in a and b, and store packed minimum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi32 -+FORCE_INLINE __m128i _mm_min_epi32(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s32( -+ vminq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); -+} -+ -+// Compare packed signed 8-bit integers in a and b, and store packed minimum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi8 -+FORCE_INLINE __m128i _mm_min_epi8(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s8( -+ vminq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); -+} -+ -+// Compare packed unsigned 16-bit integers in a and b, and store packed minimum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu16 -+FORCE_INLINE __m128i _mm_min_epu16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u16( -+ vminq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); -+} -+ -+// Compare packed unsigned 32-bit integers in a and b, and store packed minimum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 -+FORCE_INLINE __m128i _mm_min_epu32(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u32( -+ vminq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); -+} -+ -+// Horizontally compute the minimum amongst the packed unsigned 16-bit integers -+// in a, store the minimum and index in dst, and zero the remaining bits in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_minpos_epu16 -+FORCE_INLINE __m128i _mm_minpos_epu16(__m128i a) -+{ -+ __m128i dst; -+ uint16_t min, idx = 0; -+#if defined(__aarch64__) || defined(_M_ARM64) -+ // Find the minimum value -+ min = vminvq_u16(vreinterpretq_u16_m128i(a)); -+ -+ // Get the index of the minimum value -+ static const uint16_t idxv[] = {0, 1, 2, 3, 4, 5, 6, 7}; -+ uint16x8_t minv = vdupq_n_u16(min); -+ uint16x8_t cmeq = vceqq_u16(minv, vreinterpretq_u16_m128i(a)); -+ idx = vminvq_u16(vornq_u16(vld1q_u16(idxv), cmeq)); -+#else -+ // Find the minimum value -+ __m64 tmp; -+ tmp = vreinterpret_m64_u16( -+ vmin_u16(vget_low_u16(vreinterpretq_u16_m128i(a)), -+ vget_high_u16(vreinterpretq_u16_m128i(a)))); -+ tmp = vreinterpret_m64_u16( -+ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); -+ tmp = vreinterpret_m64_u16( -+ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); -+ min = vget_lane_u16(vreinterpret_u16_m64(tmp), 0); -+ // Get the index of the minimum value -+ int i; -+ for (i = 0; i < 8; i++) { -+ if (min == vgetq_lane_u16(vreinterpretq_u16_m128i(a), 0)) { -+ idx = (uint16_t) i; -+ break; -+ } -+ a = _mm_srli_si128(a, 2); -+ } -+#endif -+ // Generate result -+ dst = _mm_setzero_si128(); -+ dst = vreinterpretq_m128i_u16( -+ vsetq_lane_u16(min, vreinterpretq_u16_m128i(dst), 0)); -+ dst = vreinterpretq_m128i_u16( -+ vsetq_lane_u16(idx, vreinterpretq_u16_m128i(dst), 1)); -+ return dst; -+} -+ -+// Compute the sum of absolute differences (SADs) of quadruplets of unsigned -+// 8-bit integers in a compared to those in b, and store the 16-bit results in -+// dst. Eight SADs are performed using one quadruplet from b and eight -+// quadruplets from a. One quadruplet is selected from b starting at on the -+// offset specified in imm8. Eight quadruplets are formed from sequential 8-bit -+// integers selected from a starting at the offset specified in imm8. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mpsadbw_epu8 -+FORCE_INLINE __m128i _mm_mpsadbw_epu8(__m128i a, __m128i b, const int imm) -+{ -+ uint8x16_t _a, _b; -+ -+ switch (imm & 0x4) { -+ case 0: -+ // do nothing -+ _a = vreinterpretq_u8_m128i(a); -+ break; -+ case 4: -+ _a = vreinterpretq_u8_u32(vextq_u32(vreinterpretq_u32_m128i(a), -+ vreinterpretq_u32_m128i(a), 1)); -+ break; -+ default: -+#if defined(__GNUC__) || defined(__clang__) -+ __builtin_unreachable(); -+#elif defined(_MSC_VER) -+ __assume(0); -+#endif -+ break; -+ } -+ -+ switch (imm & 0x3) { -+ case 0: -+ _b = vreinterpretq_u8_u32( -+ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 0))); -+ break; -+ case 1: -+ _b = vreinterpretq_u8_u32( -+ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 1))); -+ break; -+ case 2: -+ _b = vreinterpretq_u8_u32( -+ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 2))); -+ break; -+ case 3: -+ _b = vreinterpretq_u8_u32( -+ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 3))); -+ break; -+ default: -+#if defined(__GNUC__) || defined(__clang__) -+ __builtin_unreachable(); -+#elif defined(_MSC_VER) -+ __assume(0); -+#endif -+ break; -+ } -+ -+ int16x8_t c04, c15, c26, c37; -+ uint8x8_t low_b = vget_low_u8(_b); -+ c04 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a), low_b)); -+ uint8x16_t _a_1 = vextq_u8(_a, _a, 1); -+ c15 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_1), low_b)); -+ uint8x16_t _a_2 = vextq_u8(_a, _a, 2); -+ c26 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_2), low_b)); -+ uint8x16_t _a_3 = vextq_u8(_a, _a, 3); -+ c37 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_3), low_b)); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ // |0|4|2|6| -+ c04 = vpaddq_s16(c04, c26); -+ // |1|5|3|7| -+ c15 = vpaddq_s16(c15, c37); -+ -+ int32x4_t trn1_c = -+ vtrn1q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); -+ int32x4_t trn2_c = -+ vtrn2q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); -+ return vreinterpretq_m128i_s16(vpaddq_s16(vreinterpretq_s16_s32(trn1_c), -+ vreinterpretq_s16_s32(trn2_c))); -+#else -+ int16x4_t c01, c23, c45, c67; -+ c01 = vpadd_s16(vget_low_s16(c04), vget_low_s16(c15)); -+ c23 = vpadd_s16(vget_low_s16(c26), vget_low_s16(c37)); -+ c45 = vpadd_s16(vget_high_s16(c04), vget_high_s16(c15)); -+ c67 = vpadd_s16(vget_high_s16(c26), vget_high_s16(c37)); -+ -+ return vreinterpretq_m128i_s16( -+ vcombine_s16(vpadd_s16(c01, c23), vpadd_s16(c45, c67))); -+#endif -+} -+ -+// Multiply the low signed 32-bit integers from each packed 64-bit element in -+// a and b, and store the signed 64-bit results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epi32 -+FORCE_INLINE __m128i _mm_mul_epi32(__m128i a, __m128i b) -+{ -+ // vmull_s32 upcasts instead of masking, so we downcast. -+ int32x2_t a_lo = vmovn_s64(vreinterpretq_s64_m128i(a)); -+ int32x2_t b_lo = vmovn_s64(vreinterpretq_s64_m128i(b)); -+ return vreinterpretq_m128i_s64(vmull_s32(a_lo, b_lo)); -+} -+ -+// Multiply the packed 32-bit integers in a and b, producing intermediate 64-bit -+// integers, and store the low 32 bits of the intermediate integers in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi32 -+FORCE_INLINE __m128i _mm_mullo_epi32(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s32( -+ vmulq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); -+} -+ -+// Convert packed signed 32-bit integers from a and b to packed 16-bit integers -+// using unsigned saturation, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi32 -+FORCE_INLINE __m128i _mm_packus_epi32(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u16( -+ vcombine_u16(vqmovun_s32(vreinterpretq_s32_m128i(a)), -+ vqmovun_s32(vreinterpretq_s32_m128i(b)))); -+} -+ -+// Round the packed double-precision (64-bit) floating-point elements in a using -+// the rounding parameter, and store the results as packed double-precision -+// floating-point elements in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_pd -+FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d a, int rounding) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ switch (rounding) { -+ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): -+ return vreinterpretq_m128d_f64(vrndnq_f64(vreinterpretq_f64_m128d(a))); -+ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): -+ return _mm_floor_pd(a); -+ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): -+ return _mm_ceil_pd(a); -+ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): -+ return vreinterpretq_m128d_f64(vrndq_f64(vreinterpretq_f64_m128d(a))); -+ default: //_MM_FROUND_CUR_DIRECTION -+ return vreinterpretq_m128d_f64(vrndiq_f64(vreinterpretq_f64_m128d(a))); -+ } -+#else -+ double *v_double = (double *) &a; -+ -+ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || -+ (rounding == _MM_FROUND_CUR_DIRECTION && -+ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { -+ double res[2], tmp; -+ for (int i = 0; i < 2; i++) { -+ tmp = (v_double[i] < 0) ? -v_double[i] : v_double[i]; -+ double roundDown = floor(tmp); // Round down value -+ double roundUp = ceil(tmp); // Round up value -+ double diffDown = tmp - roundDown; -+ double diffUp = roundUp - tmp; -+ if (diffDown < diffUp) { -+ /* If it's closer to the round down value, then use it */ -+ res[i] = roundDown; -+ } else if (diffDown > diffUp) { -+ /* If it's closer to the round up value, then use it */ -+ res[i] = roundUp; -+ } else { -+ /* If it's equidistant between round up and round down value, -+ * pick the one which is an even number */ -+ double half = roundDown / 2; -+ if (half != floor(half)) { -+ /* If the round down value is odd, return the round up value -+ */ -+ res[i] = roundUp; -+ } else { -+ /* If the round up value is odd, return the round down value -+ */ -+ res[i] = roundDown; -+ } -+ } -+ res[i] = (v_double[i] < 0) ? -res[i] : res[i]; -+ } -+ return _mm_set_pd(res[1], res[0]); -+ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || -+ (rounding == _MM_FROUND_CUR_DIRECTION && -+ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { -+ return _mm_floor_pd(a); -+ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || -+ (rounding == _MM_FROUND_CUR_DIRECTION && -+ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { -+ return _mm_ceil_pd(a); -+ } -+ return _mm_set_pd(v_double[1] > 0 ? floor(v_double[1]) : ceil(v_double[1]), -+ v_double[0] > 0 ? floor(v_double[0]) : ceil(v_double[0])); -+#endif -+} -+ -+// Round the packed single-precision (32-bit) floating-point elements in a using -+// the rounding parameter, and store the results as packed single-precision -+// floating-point elements in dst. -+// software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_round_ps -+FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128 a, int rounding) -+{ -+#if (defined(__aarch64__) || defined(_M_ARM64)) || \ -+ defined(__ARM_FEATURE_DIRECTED_ROUNDING) -+ switch (rounding) { -+ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): -+ return vreinterpretq_m128_f32(vrndnq_f32(vreinterpretq_f32_m128(a))); -+ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): -+ return _mm_floor_ps(a); -+ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): -+ return _mm_ceil_ps(a); -+ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): -+ return vreinterpretq_m128_f32(vrndq_f32(vreinterpretq_f32_m128(a))); -+ default: //_MM_FROUND_CUR_DIRECTION -+ return vreinterpretq_m128_f32(vrndiq_f32(vreinterpretq_f32_m128(a))); -+ } -+#else -+ float *v_float = (float *) &a; -+ -+ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || -+ (rounding == _MM_FROUND_CUR_DIRECTION && -+ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { -+ uint32x4_t signmask = vdupq_n_u32(0x80000000); -+ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), -+ vdupq_n_f32(0.5f)); /* +/- 0.5 */ -+ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( -+ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ -+ int32x4_t r_trunc = vcvtq_s32_f32( -+ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ -+ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( -+ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ -+ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), -+ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ -+ float32x4_t delta = vsubq_f32( -+ vreinterpretq_f32_m128(a), -+ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ -+ uint32x4_t is_delta_half = -+ vceqq_f32(delta, half); /* delta == +/- 0.5 */ -+ return vreinterpretq_m128_f32( -+ vcvtq_f32_s32(vbslq_s32(is_delta_half, r_even, r_normal))); -+ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || -+ (rounding == _MM_FROUND_CUR_DIRECTION && -+ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { -+ return _mm_floor_ps(a); -+ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || -+ (rounding == _MM_FROUND_CUR_DIRECTION && -+ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { -+ return _mm_ceil_ps(a); -+ } -+ return _mm_set_ps(v_float[3] > 0 ? floorf(v_float[3]) : ceilf(v_float[3]), -+ v_float[2] > 0 ? floorf(v_float[2]) : ceilf(v_float[2]), -+ v_float[1] > 0 ? floorf(v_float[1]) : ceilf(v_float[1]), -+ v_float[0] > 0 ? floorf(v_float[0]) : ceilf(v_float[0])); -+#endif -+} -+ -+// Round the lower double-precision (64-bit) floating-point element in b using -+// the rounding parameter, store the result as a double-precision floating-point -+// element in the lower element of dst, and copy the upper element from a to the -+// upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_sd -+FORCE_INLINE __m128d _mm_round_sd(__m128d a, __m128d b, int rounding) -+{ -+ return _mm_move_sd(a, _mm_round_pd(b, rounding)); -+} -+ -+// Round the lower single-precision (32-bit) floating-point element in b using -+// the rounding parameter, store the result as a single-precision floating-point -+// element in the lower element of dst, and copy the upper 3 packed elements -+// from a to the upper elements of dst. Rounding is done according to the -+// rounding[3:0] parameter, which can be one of: -+// (_MM_FROUND_TO_NEAREST_INT |_MM_FROUND_NO_EXC) // round to nearest, and -+// suppress exceptions -+// (_MM_FROUND_TO_NEG_INF |_MM_FROUND_NO_EXC) // round down, and -+// suppress exceptions -+// (_MM_FROUND_TO_POS_INF |_MM_FROUND_NO_EXC) // round up, and suppress -+// exceptions -+// (_MM_FROUND_TO_ZERO |_MM_FROUND_NO_EXC) // truncate, and suppress -+// exceptions _MM_FROUND_CUR_DIRECTION // use MXCSR.RC; see -+// _MM_SET_ROUNDING_MODE -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_ss -+FORCE_INLINE __m128 _mm_round_ss(__m128 a, __m128 b, int rounding) -+{ -+ return _mm_move_ss(a, _mm_round_ps(b, rounding)); -+} -+ -+// Load 128-bits of integer data from memory into dst using a non-temporal -+// memory hint. mem_addr must be aligned on a 16-byte boundary or a -+// general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_load_si128 -+FORCE_INLINE __m128i _mm_stream_load_si128(__m128i *p) -+{ -+#if __has_builtin(__builtin_nontemporal_store) -+ return __builtin_nontemporal_load(p); -+#else -+ return vreinterpretq_m128i_s64(vld1q_s64((int64_t *) p)); -+#endif -+} -+ -+// Compute the bitwise NOT of a and then AND with a 128-bit vector containing -+// all 1's, and return 1 if the result is zero, otherwise return 0. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_ones -+FORCE_INLINE int _mm_test_all_ones(__m128i a) -+{ -+ return (uint64_t) (vgetq_lane_s64(a, 0) & vgetq_lane_s64(a, 1)) == -+ ~(uint64_t) 0; -+} -+ -+// Compute the bitwise AND of 128 bits (representing integer data) in a and -+// mask, and return 1 if the result is zero, otherwise return 0. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_zeros -+FORCE_INLINE int _mm_test_all_zeros(__m128i a, __m128i mask) -+{ -+ int64x2_t a_and_mask = -+ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(mask)); -+ return !(vgetq_lane_s64(a_and_mask, 0) | vgetq_lane_s64(a_and_mask, 1)); -+} -+ -+// Compute the bitwise AND of 128 bits (representing integer data) in a and -+// mask, and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute -+// the bitwise NOT of a and then AND with mask, and set CF to 1 if the result is -+// zero, otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, -+// otherwise return 0. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_test_mix_ones_zero -+// Note: Argument names may be wrong in the Intel intrinsics guide. -+FORCE_INLINE int _mm_test_mix_ones_zeros(__m128i a, __m128i mask) -+{ -+ uint64x2_t v = vreinterpretq_u64_m128i(a); -+ uint64x2_t m = vreinterpretq_u64_m128i(mask); -+ -+ // find ones (set-bits) and zeros (clear-bits) under clip mask -+ uint64x2_t ones = vandq_u64(m, v); -+ uint64x2_t zeros = vbicq_u64(m, v); -+ -+ // If both 128-bit variables are populated (non-zero) then return 1. -+ // For comparison purposes, first compact each var down to 32-bits. -+ uint32x2_t reduced = vpmax_u32(vqmovn_u64(ones), vqmovn_u64(zeros)); -+ -+ // if folding minimum is non-zero then both vars must be non-zero -+ return (vget_lane_u32(vpmin_u32(reduced, reduced), 0) != 0); -+} -+ -+// Compute the bitwise AND of 128 bits (representing integer data) in a and b, -+// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the -+// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, -+// otherwise set CF to 0. Return the CF value. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testc_si128 -+FORCE_INLINE int _mm_testc_si128(__m128i a, __m128i b) -+{ -+ int64x2_t s64 = -+ vbicq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)); -+ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); -+} -+ -+// Compute the bitwise AND of 128 bits (representing integer data) in a and b, -+// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the -+// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, -+// otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, -+// otherwise return 0. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testnzc_si128 -+#define _mm_testnzc_si128(a, b) _mm_test_mix_ones_zeros(a, b) -+ -+// Compute the bitwise AND of 128 bits (representing integer data) in a and b, -+// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the -+// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, -+// otherwise set CF to 0. Return the ZF value. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testz_si128 -+FORCE_INLINE int _mm_testz_si128(__m128i a, __m128i b) -+{ -+ int64x2_t s64 = -+ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b)); -+ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); -+} -+ -+/* SSE4.2 */ -+ -+static const uint16_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask16b[8] = { -+ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, -+}; -+static const uint8_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask8b[16] = { -+ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, -+ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, -+}; -+ -+/* specify the source data format */ -+#define _SIDD_UBYTE_OPS 0x00 /* unsigned 8-bit characters */ -+#define _SIDD_UWORD_OPS 0x01 /* unsigned 16-bit characters */ -+#define _SIDD_SBYTE_OPS 0x02 /* signed 8-bit characters */ -+#define _SIDD_SWORD_OPS 0x03 /* signed 16-bit characters */ -+ -+/* specify the comparison operation */ -+#define _SIDD_CMP_EQUAL_ANY 0x00 /* compare equal any: strchr */ -+#define _SIDD_CMP_RANGES 0x04 /* compare ranges */ -+#define _SIDD_CMP_EQUAL_EACH 0x08 /* compare equal each: strcmp */ -+#define _SIDD_CMP_EQUAL_ORDERED 0x0C /* compare equal ordered */ -+ -+/* specify the polarity */ -+#define _SIDD_POSITIVE_POLARITY 0x00 -+#define _SIDD_MASKED_POSITIVE_POLARITY 0x20 -+#define _SIDD_NEGATIVE_POLARITY 0x10 /* negate results */ -+#define _SIDD_MASKED_NEGATIVE_POLARITY \ -+ 0x30 /* negate results only before end of string */ -+ -+/* specify the output selection in _mm_cmpXstri */ -+#define _SIDD_LEAST_SIGNIFICANT 0x00 -+#define _SIDD_MOST_SIGNIFICANT 0x40 -+ -+/* specify the output selection in _mm_cmpXstrm */ -+#define _SIDD_BIT_MASK 0x00 -+#define _SIDD_UNIT_MASK 0x40 -+ -+/* Pattern Matching for C macros. -+ * https://github.com/pfultz2/Cloak/wiki/C-Preprocessor-tricks,-tips,-and-idioms -+ */ -+ -+/* catenate */ -+#define SSE2NEON_PRIMITIVE_CAT(a, ...) a##__VA_ARGS__ -+#define SSE2NEON_CAT(a, b) SSE2NEON_PRIMITIVE_CAT(a, b) -+ -+#define SSE2NEON_IIF(c) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_IIF_, c) -+/* run the 2nd parameter */ -+#define SSE2NEON_IIF_0(t, ...) __VA_ARGS__ -+/* run the 1st parameter */ -+#define SSE2NEON_IIF_1(t, ...) t -+ -+#define SSE2NEON_COMPL(b) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_COMPL_, b) -+#define SSE2NEON_COMPL_0 1 -+#define SSE2NEON_COMPL_1 0 -+ -+#define SSE2NEON_DEC(x) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_DEC_, x) -+#define SSE2NEON_DEC_1 0 -+#define SSE2NEON_DEC_2 1 -+#define SSE2NEON_DEC_3 2 -+#define SSE2NEON_DEC_4 3 -+#define SSE2NEON_DEC_5 4 -+#define SSE2NEON_DEC_6 5 -+#define SSE2NEON_DEC_7 6 -+#define SSE2NEON_DEC_8 7 -+#define SSE2NEON_DEC_9 8 -+#define SSE2NEON_DEC_10 9 -+#define SSE2NEON_DEC_11 10 -+#define SSE2NEON_DEC_12 11 -+#define SSE2NEON_DEC_13 12 -+#define SSE2NEON_DEC_14 13 -+#define SSE2NEON_DEC_15 14 -+#define SSE2NEON_DEC_16 15 -+ -+/* detection */ -+#define SSE2NEON_CHECK_N(x, n, ...) n -+#define SSE2NEON_CHECK(...) SSE2NEON_CHECK_N(__VA_ARGS__, 0, ) -+#define SSE2NEON_PROBE(x) x, 1, -+ -+#define SSE2NEON_NOT(x) SSE2NEON_CHECK(SSE2NEON_PRIMITIVE_CAT(SSE2NEON_NOT_, x)) -+#define SSE2NEON_NOT_0 SSE2NEON_PROBE(~) -+ -+#define SSE2NEON_BOOL(x) SSE2NEON_COMPL(SSE2NEON_NOT(x)) -+#define SSE2NEON_IF(c) SSE2NEON_IIF(SSE2NEON_BOOL(c)) -+ -+#define SSE2NEON_EAT(...) -+#define SSE2NEON_EXPAND(...) __VA_ARGS__ -+#define SSE2NEON_WHEN(c) SSE2NEON_IF(c)(SSE2NEON_EXPAND, SSE2NEON_EAT) -+ -+/* recursion */ -+/* deferred expression */ -+#define SSE2NEON_EMPTY() -+#define SSE2NEON_DEFER(id) id SSE2NEON_EMPTY() -+#define SSE2NEON_OBSTRUCT(...) __VA_ARGS__ SSE2NEON_DEFER(SSE2NEON_EMPTY)() -+#define SSE2NEON_EXPAND(...) __VA_ARGS__ -+ -+#define SSE2NEON_EVAL(...) \ -+ SSE2NEON_EVAL1(SSE2NEON_EVAL1(SSE2NEON_EVAL1(__VA_ARGS__))) -+#define SSE2NEON_EVAL1(...) \ -+ SSE2NEON_EVAL2(SSE2NEON_EVAL2(SSE2NEON_EVAL2(__VA_ARGS__))) -+#define SSE2NEON_EVAL2(...) \ -+ SSE2NEON_EVAL3(SSE2NEON_EVAL3(SSE2NEON_EVAL3(__VA_ARGS__))) -+#define SSE2NEON_EVAL3(...) __VA_ARGS__ -+ -+#define SSE2NEON_REPEAT(count, macro, ...) \ -+ SSE2NEON_WHEN(count) \ -+ (SSE2NEON_OBSTRUCT(SSE2NEON_REPEAT_INDIRECT)()( \ -+ SSE2NEON_DEC(count), macro, \ -+ __VA_ARGS__) SSE2NEON_OBSTRUCT(macro)(SSE2NEON_DEC(count), \ -+ __VA_ARGS__)) -+#define SSE2NEON_REPEAT_INDIRECT() SSE2NEON_REPEAT -+ -+#define SSE2NEON_SIZE_OF_byte 8 -+#define SSE2NEON_NUMBER_OF_LANES_byte 16 -+#define SSE2NEON_SIZE_OF_word 16 -+#define SSE2NEON_NUMBER_OF_LANES_word 8 -+ -+#define SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE(i, type) \ -+ mtx[i] = vreinterpretq_m128i_##type(vceqq_##type( \ -+ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)), \ -+ vreinterpretq_##type##_m128i(a))); -+ -+#define SSE2NEON_FILL_LANE(i, type) \ -+ vec_b[i] = \ -+ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)); -+ -+#define PCMPSTR_RANGES(a, b, mtx, data_type_prefix, type_prefix, size, \ -+ number_of_lanes, byte_or_word) \ -+ do { \ -+ SSE2NEON_CAT( \ -+ data_type_prefix, \ -+ SSE2NEON_CAT(size, \ -+ SSE2NEON_CAT(x, SSE2NEON_CAT(number_of_lanes, _t)))) \ -+ vec_b[number_of_lanes]; \ -+ __m128i mask = SSE2NEON_IIF(byte_or_word)( \ -+ vreinterpretq_m128i_u16(vdupq_n_u16(0xff)), \ -+ vreinterpretq_m128i_u32(vdupq_n_u32(0xffff))); \ -+ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, SSE2NEON_FILL_LANE, \ -+ SSE2NEON_CAT(type_prefix, size))) \ -+ for (int i = 0; i < number_of_lanes; i++) { \ -+ mtx[i] = SSE2NEON_CAT(vreinterpretq_m128i_u, \ -+ size)(SSE2NEON_CAT(vbslq_u, size)( \ -+ SSE2NEON_CAT(vreinterpretq_u, \ -+ SSE2NEON_CAT(size, _m128i))(mask), \ -+ SSE2NEON_CAT(vcgeq_, SSE2NEON_CAT(type_prefix, size))( \ -+ vec_b[i], \ -+ SSE2NEON_CAT( \ -+ vreinterpretq_, \ -+ SSE2NEON_CAT(type_prefix, \ -+ SSE2NEON_CAT(size, _m128i(a))))), \ -+ SSE2NEON_CAT(vcleq_, SSE2NEON_CAT(type_prefix, size))( \ -+ vec_b[i], \ -+ SSE2NEON_CAT( \ -+ vreinterpretq_, \ -+ SSE2NEON_CAT(type_prefix, \ -+ SSE2NEON_CAT(size, _m128i(a))))))); \ -+ } \ -+ } while (0) -+ -+#define PCMPSTR_EQ(a, b, mtx, size, number_of_lanes) \ -+ do { \ -+ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, \ -+ SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE, \ -+ SSE2NEON_CAT(u, size))) \ -+ } while (0) -+ -+#define SSE2NEON_CMP_EQUAL_ANY_IMPL(type) \ -+ static int _sse2neon_cmp_##type##_equal_any(__m128i a, int la, __m128i b, \ -+ int lb) \ -+ { \ -+ __m128i mtx[16]; \ -+ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ -+ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ -+ return SSE2NEON_CAT( \ -+ _sse2neon_aggregate_equal_any_, \ -+ SSE2NEON_CAT( \ -+ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ -+ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ -+ type))))(la, lb, mtx); \ -+ } -+ -+#define SSE2NEON_CMP_RANGES_IMPL(type, data_type, us, byte_or_word) \ -+ static int _sse2neon_cmp_##us##type##_ranges(__m128i a, int la, __m128i b, \ -+ int lb) \ -+ { \ -+ __m128i mtx[16]; \ -+ PCMPSTR_RANGES( \ -+ a, b, mtx, data_type, us, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ -+ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), byte_or_word); \ -+ return SSE2NEON_CAT( \ -+ _sse2neon_aggregate_ranges_, \ -+ SSE2NEON_CAT( \ -+ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ -+ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ -+ type))))(la, lb, mtx); \ -+ } -+ -+#define SSE2NEON_CMP_EQUAL_ORDERED_IMPL(type) \ -+ static int _sse2neon_cmp_##type##_equal_ordered(__m128i a, int la, \ -+ __m128i b, int lb) \ -+ { \ -+ __m128i mtx[16]; \ -+ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ -+ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ -+ return SSE2NEON_CAT( \ -+ _sse2neon_aggregate_equal_ordered_, \ -+ SSE2NEON_CAT( \ -+ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ -+ SSE2NEON_CAT(x, \ -+ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type))))( \ -+ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), la, lb, mtx); \ -+ } -+ -+static int _sse2neon_aggregate_equal_any_8x16(int la, int lb, __m128i mtx[16]) -+{ -+ int res = 0; -+ int m = (1 << la) - 1; -+ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); -+ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); -+ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); -+ uint8x16_t vec = vcombine_u8(t_lo, t_hi); -+ for (int j = 0; j < lb; j++) { -+ mtx[j] = vreinterpretq_m128i_u8( -+ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); -+ mtx[j] = vreinterpretq_m128i_u8( -+ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); -+ int tmp = _sse2neon_vaddvq_u8(vreinterpretq_u8_m128i(mtx[j])) ? 1 : 0; -+ res |= (tmp << j); -+ } -+ return res; -+} -+ -+static int _sse2neon_aggregate_equal_any_16x8(int la, int lb, __m128i mtx[16]) -+{ -+ int res = 0; -+ int m = (1 << la) - 1; -+ uint16x8_t vec = -+ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); -+ for (int j = 0; j < lb; j++) { -+ mtx[j] = vreinterpretq_m128i_u16( -+ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); -+ mtx[j] = vreinterpretq_m128i_u16( -+ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); -+ int tmp = _sse2neon_vaddvq_u16(vreinterpretq_u16_m128i(mtx[j])) ? 1 : 0; -+ res |= (tmp << j); -+ } -+ return res; -+} -+ -+/* clang-format off */ -+#define SSE2NEON_GENERATE_CMP_EQUAL_ANY(prefix) \ -+ prefix##IMPL(byte) \ -+ prefix##IMPL(word) -+/* clang-format on */ -+ -+SSE2NEON_GENERATE_CMP_EQUAL_ANY(SSE2NEON_CMP_EQUAL_ANY_) -+ -+static int _sse2neon_aggregate_ranges_16x8(int la, int lb, __m128i mtx[16]) -+{ -+ int res = 0; -+ int m = (1 << la) - 1; -+ uint16x8_t vec = -+ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); -+ for (int j = 0; j < lb; j++) { -+ mtx[j] = vreinterpretq_m128i_u16( -+ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); -+ mtx[j] = vreinterpretq_m128i_u16( -+ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); -+ __m128i tmp = vreinterpretq_m128i_u32( -+ vshrq_n_u32(vreinterpretq_u32_m128i(mtx[j]), 16)); -+ uint32x4_t vec_res = vandq_u32(vreinterpretq_u32_m128i(mtx[j]), -+ vreinterpretq_u32_m128i(tmp)); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ int t = vaddvq_u32(vec_res) ? 1 : 0; -+#else -+ uint64x2_t sumh = vpaddlq_u32(vec_res); -+ int t = vgetq_lane_u64(sumh, 0) + vgetq_lane_u64(sumh, 1); -+#endif -+ res |= (t << j); -+ } -+ return res; -+} -+ -+static int _sse2neon_aggregate_ranges_8x16(int la, int lb, __m128i mtx[16]) -+{ -+ int res = 0; -+ int m = (1 << la) - 1; -+ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); -+ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); -+ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); -+ uint8x16_t vec = vcombine_u8(t_lo, t_hi); -+ for (int j = 0; j < lb; j++) { -+ mtx[j] = vreinterpretq_m128i_u8( -+ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); -+ mtx[j] = vreinterpretq_m128i_u8( -+ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); -+ __m128i tmp = vreinterpretq_m128i_u16( -+ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 8)); -+ uint16x8_t vec_res = vandq_u16(vreinterpretq_u16_m128i(mtx[j]), -+ vreinterpretq_u16_m128i(tmp)); -+ int t = _sse2neon_vaddvq_u16(vec_res) ? 1 : 0; -+ res |= (t << j); -+ } -+ return res; -+} -+ -+#define SSE2NEON_CMP_RANGES_IS_BYTE 1 -+#define SSE2NEON_CMP_RANGES_IS_WORD 0 -+ -+/* clang-format off */ -+#define SSE2NEON_GENERATE_CMP_RANGES(prefix) \ -+ prefix##IMPL(byte, uint, u, prefix##IS_BYTE) \ -+ prefix##IMPL(byte, int, s, prefix##IS_BYTE) \ -+ prefix##IMPL(word, uint, u, prefix##IS_WORD) \ -+ prefix##IMPL(word, int, s, prefix##IS_WORD) -+/* clang-format on */ -+ -+SSE2NEON_GENERATE_CMP_RANGES(SSE2NEON_CMP_RANGES_) -+ -+#undef SSE2NEON_CMP_RANGES_IS_BYTE -+#undef SSE2NEON_CMP_RANGES_IS_WORD -+ -+static int _sse2neon_cmp_byte_equal_each(__m128i a, int la, __m128i b, int lb) -+{ -+ uint8x16_t mtx = -+ vceqq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b)); -+ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); -+ int m1 = 0x10000 - (1 << la); -+ int tb = 0x10000 - (1 << lb); -+ uint8x8_t vec_mask, vec0_lo, vec0_hi, vec1_lo, vec1_hi; -+ uint8x8_t tmp_lo, tmp_hi, res_lo, res_hi; -+ vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); -+ vec0_lo = vtst_u8(vdup_n_u8(m0), vec_mask); -+ vec0_hi = vtst_u8(vdup_n_u8(m0 >> 8), vec_mask); -+ vec1_lo = vtst_u8(vdup_n_u8(m1), vec_mask); -+ vec1_hi = vtst_u8(vdup_n_u8(m1 >> 8), vec_mask); -+ tmp_lo = vtst_u8(vdup_n_u8(tb), vec_mask); -+ tmp_hi = vtst_u8(vdup_n_u8(tb >> 8), vec_mask); -+ -+ res_lo = vbsl_u8(vec0_lo, vdup_n_u8(0), vget_low_u8(mtx)); -+ res_hi = vbsl_u8(vec0_hi, vdup_n_u8(0), vget_high_u8(mtx)); -+ res_lo = vbsl_u8(vec1_lo, tmp_lo, res_lo); -+ res_hi = vbsl_u8(vec1_hi, tmp_hi, res_hi); -+ res_lo = vand_u8(res_lo, vec_mask); -+ res_hi = vand_u8(res_hi, vec_mask); -+ -+ int res = _sse2neon_vaddv_u8(res_lo) + (_sse2neon_vaddv_u8(res_hi) << 8); -+ return res; -+} -+ -+static int _sse2neon_cmp_word_equal_each(__m128i a, int la, __m128i b, int lb) -+{ -+ uint16x8_t mtx = -+ vceqq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); -+ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); -+ int m1 = 0x100 - (1 << la); -+ int tb = 0x100 - (1 << lb); -+ uint16x8_t vec_mask = vld1q_u16(_sse2neon_cmpestr_mask16b); -+ uint16x8_t vec0 = vtstq_u16(vdupq_n_u16(m0), vec_mask); -+ uint16x8_t vec1 = vtstq_u16(vdupq_n_u16(m1), vec_mask); -+ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(tb), vec_mask); -+ mtx = vbslq_u16(vec0, vdupq_n_u16(0), mtx); -+ mtx = vbslq_u16(vec1, tmp, mtx); -+ mtx = vandq_u16(mtx, vec_mask); -+ return _sse2neon_vaddvq_u16(mtx); -+} -+ -+#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE 1 -+#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD 0 -+ -+#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IMPL(size, number_of_lanes, data_type) \ -+ static int _sse2neon_aggregate_equal_ordered_##size##x##number_of_lanes( \ -+ int bound, int la, int lb, __m128i mtx[16]) \ -+ { \ -+ int res = 0; \ -+ int m1 = SSE2NEON_IIF(data_type)(0x10000, 0x100) - (1 << la); \ -+ uint##size##x8_t vec_mask = SSE2NEON_IIF(data_type)( \ -+ vld1_u##size(_sse2neon_cmpestr_mask##size##b), \ -+ vld1q_u##size(_sse2neon_cmpestr_mask##size##b)); \ -+ uint##size##x##number_of_lanes##_t vec1 = SSE2NEON_IIF(data_type)( \ -+ vcombine_u##size(vtst_u##size(vdup_n_u##size(m1), vec_mask), \ -+ vtst_u##size(vdup_n_u##size(m1 >> 8), vec_mask)), \ -+ vtstq_u##size(vdupq_n_u##size(m1), vec_mask)); \ -+ uint##size##x##number_of_lanes##_t vec_minusone = vdupq_n_u##size(-1); \ -+ uint##size##x##number_of_lanes##_t vec_zero = vdupq_n_u##size(0); \ -+ for (int j = 0; j < lb; j++) { \ -+ mtx[j] = vreinterpretq_m128i_u##size(vbslq_u##size( \ -+ vec1, vec_minusone, vreinterpretq_u##size##_m128i(mtx[j]))); \ -+ } \ -+ for (int j = lb; j < bound; j++) { \ -+ mtx[j] = vreinterpretq_m128i_u##size( \ -+ vbslq_u##size(vec1, vec_minusone, vec_zero)); \ -+ } \ -+ unsigned SSE2NEON_IIF(data_type)(char, short) *ptr = \ -+ (unsigned SSE2NEON_IIF(data_type)(char, short) *) mtx; \ -+ for (int i = 0; i < bound; i++) { \ -+ int val = 1; \ -+ for (int j = 0, k = i; j < bound - i && k < bound; j++, k++) \ -+ val &= ptr[k * bound + j]; \ -+ res += val << i; \ -+ } \ -+ return res; \ -+ } -+ -+/* clang-format off */ -+#define SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(prefix) \ -+ prefix##IMPL(8, 16, prefix##IS_UBYTE) \ -+ prefix##IMPL(16, 8, prefix##IS_UWORD) -+/* clang-format on */ -+ -+SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(SSE2NEON_AGGREGATE_EQUAL_ORDER_) -+ -+#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE -+#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD -+ -+/* clang-format off */ -+#define SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(prefix) \ -+ prefix##IMPL(byte) \ -+ prefix##IMPL(word) -+/* clang-format on */ -+ -+SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(SSE2NEON_CMP_EQUAL_ORDERED_) -+ -+#define SSE2NEON_CMPESTR_LIST \ -+ _(CMP_UBYTE_EQUAL_ANY, cmp_byte_equal_any) \ -+ _(CMP_UWORD_EQUAL_ANY, cmp_word_equal_any) \ -+ _(CMP_SBYTE_EQUAL_ANY, cmp_byte_equal_any) \ -+ _(CMP_SWORD_EQUAL_ANY, cmp_word_equal_any) \ -+ _(CMP_UBYTE_RANGES, cmp_ubyte_ranges) \ -+ _(CMP_UWORD_RANGES, cmp_uword_ranges) \ -+ _(CMP_SBYTE_RANGES, cmp_sbyte_ranges) \ -+ _(CMP_SWORD_RANGES, cmp_sword_ranges) \ -+ _(CMP_UBYTE_EQUAL_EACH, cmp_byte_equal_each) \ -+ _(CMP_UWORD_EQUAL_EACH, cmp_word_equal_each) \ -+ _(CMP_SBYTE_EQUAL_EACH, cmp_byte_equal_each) \ -+ _(CMP_SWORD_EQUAL_EACH, cmp_word_equal_each) \ -+ _(CMP_UBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ -+ _(CMP_UWORD_EQUAL_ORDERED, cmp_word_equal_ordered) \ -+ _(CMP_SBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ -+ _(CMP_SWORD_EQUAL_ORDERED, cmp_word_equal_ordered) -+ -+enum { -+#define _(name, func_suffix) name, -+ SSE2NEON_CMPESTR_LIST -+#undef _ -+}; -+typedef int (*cmpestr_func_t)(__m128i a, int la, __m128i b, int lb); -+static cmpestr_func_t _sse2neon_cmpfunc_table[] = { -+#define _(name, func_suffix) _sse2neon_##func_suffix, -+ SSE2NEON_CMPESTR_LIST -+#undef _ -+}; -+ -+FORCE_INLINE int _sse2neon_sido_negative(int res, int lb, int imm8, int bound) -+{ -+ switch (imm8 & 0x30) { -+ case _SIDD_NEGATIVE_POLARITY: -+ res ^= 0xffffffff; -+ break; -+ case _SIDD_MASKED_NEGATIVE_POLARITY: -+ res ^= (1 << lb) - 1; -+ break; -+ default: -+ break; -+ } -+ -+ return res & ((bound == 8) ? 0xFF : 0xFFFF); -+} -+ -+FORCE_INLINE int _sse2neon_clz(unsigned int x) -+{ -+#ifdef _MSC_VER -+ unsigned long cnt = 0; -+ if (_BitScanReverse(&cnt, x)) -+ return 31 - cnt; -+ return 32; -+#else -+ return x != 0 ? __builtin_clz(x) : 32; -+#endif -+} -+ -+FORCE_INLINE int _sse2neon_ctz(unsigned int x) -+{ -+#ifdef _MSC_VER -+ unsigned long cnt = 0; -+ if (_BitScanForward(&cnt, x)) -+ return cnt; -+ return 32; -+#else -+ return x != 0 ? __builtin_ctz(x) : 32; -+#endif -+} -+ -+FORCE_INLINE int _sse2neon_ctzll(unsigned long long x) -+{ -+#ifdef _MSC_VER -+ unsigned long cnt; -+#if defined(SSE2NEON_HAS_BITSCAN64) -+ if (_BitScanForward64(&cnt, x)) -+ return (int) (cnt); -+#else -+ if (_BitScanForward(&cnt, (unsigned long) (x))) -+ return (int) cnt; -+ if (_BitScanForward(&cnt, (unsigned long) (x >> 32))) -+ return (int) (cnt + 32); -+#endif /* SSE2NEON_HAS_BITSCAN64 */ -+ return 64; -+#else /* assume GNU compatible compilers */ -+ return x != 0 ? __builtin_ctzll(x) : 64; -+#endif -+} -+ -+#define SSE2NEON_MIN(x, y) (x) < (y) ? (x) : (y) -+ -+#define SSE2NEON_CMPSTR_SET_UPPER(var, imm) \ -+ const int var = (imm & 0x01) ? 8 : 16 -+ -+#define SSE2NEON_CMPESTRX_LEN_PAIR(a, b, la, lb) \ -+ int tmp1 = la ^ (la >> 31); \ -+ la = tmp1 - (la >> 31); \ -+ int tmp2 = lb ^ (lb >> 31); \ -+ lb = tmp2 - (lb >> 31); \ -+ la = SSE2NEON_MIN(la, bound); \ -+ lb = SSE2NEON_MIN(lb, bound) -+ -+// Compare all pairs of character in string a and b, -+// then aggregate the result. -+// As the only difference of PCMPESTR* and PCMPISTR* is the way to calculate the -+// length of string, we use SSE2NEON_CMP{I,E}STRX_GET_LEN to get the length of -+// string a and b. -+#define SSE2NEON_COMP_AGG(a, b, la, lb, imm8, IE) \ -+ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); \ -+ SSE2NEON_##IE##_LEN_PAIR(a, b, la, lb); \ -+ int r2 = (_sse2neon_cmpfunc_table[imm8 & 0x0f])(a, la, b, lb); \ -+ r2 = _sse2neon_sido_negative(r2, lb, imm8, bound) -+ -+#define SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8) \ -+ return (r2 == 0) ? bound \ -+ : ((imm8 & 0x40) ? (31 - _sse2neon_clz(r2)) \ -+ : _sse2neon_ctz(r2)) -+ -+#define SSE2NEON_CMPSTR_GENERATE_MASK(dst) \ -+ __m128i dst = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ -+ if (imm8 & 0x40) { \ -+ if (bound == 8) { \ -+ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(r2), \ -+ vld1q_u16(_sse2neon_cmpestr_mask16b)); \ -+ dst = vreinterpretq_m128i_u16(vbslq_u16( \ -+ tmp, vdupq_n_u16(-1), vreinterpretq_u16_m128i(dst))); \ -+ } else { \ -+ uint8x16_t vec_r2 = \ -+ vcombine_u8(vdup_n_u8(r2), vdup_n_u8(r2 >> 8)); \ -+ uint8x16_t tmp = \ -+ vtstq_u8(vec_r2, vld1q_u8(_sse2neon_cmpestr_mask8b)); \ -+ dst = vreinterpretq_m128i_u8( \ -+ vbslq_u8(tmp, vdupq_n_u8(-1), vreinterpretq_u8_m128i(dst))); \ -+ } \ -+ } else { \ -+ if (bound == 16) { \ -+ dst = vreinterpretq_m128i_u16( \ -+ vsetq_lane_u16(r2 & 0xffff, vreinterpretq_u16_m128i(dst), 0)); \ -+ } else { \ -+ dst = vreinterpretq_m128i_u8( \ -+ vsetq_lane_u8(r2 & 0xff, vreinterpretq_u8_m128i(dst), 0)); \ -+ } \ -+ } \ -+ return dst -+ -+// Compare packed strings in a and b with lengths la and lb using the control -+// in imm8, and returns 1 if b did not contain a null character and the -+// resulting mask was zero, and 0 otherwise. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestra -+FORCE_INLINE int _mm_cmpestra(__m128i a, -+ int la, -+ __m128i b, -+ int lb, -+ const int imm8) -+{ -+ int lb_cpy = lb; -+ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); -+ return !r2 & (lb_cpy > bound); -+} -+ -+// Compare packed strings in a and b with lengths la and lb using the control in -+// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrc -+FORCE_INLINE int _mm_cmpestrc(__m128i a, -+ int la, -+ __m128i b, -+ int lb, -+ const int imm8) -+{ -+ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); -+ return r2 != 0; -+} -+ -+// Compare packed strings in a and b with lengths la and lb using the control -+// in imm8, and store the generated index in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestri -+FORCE_INLINE int _mm_cmpestri(__m128i a, -+ int la, -+ __m128i b, -+ int lb, -+ const int imm8) -+{ -+ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); -+ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); -+} -+ -+// Compare packed strings in a and b with lengths la and lb using the control -+// in imm8, and store the generated mask in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrm -+FORCE_INLINE __m128i -+_mm_cmpestrm(__m128i a, int la, __m128i b, int lb, const int imm8) -+{ -+ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); -+ SSE2NEON_CMPSTR_GENERATE_MASK(dst); -+} -+ -+// Compare packed strings in a and b with lengths la and lb using the control in -+// imm8, and returns bit 0 of the resulting bit mask. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestro -+FORCE_INLINE int _mm_cmpestro(__m128i a, -+ int la, -+ __m128i b, -+ int lb, -+ const int imm8) -+{ -+ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); -+ return r2 & 1; -+} -+ -+// Compare packed strings in a and b with lengths la and lb using the control in -+// imm8, and returns 1 if any character in a was null, and 0 otherwise. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrs -+FORCE_INLINE int _mm_cmpestrs(__m128i a, -+ int la, -+ __m128i b, -+ int lb, -+ const int imm8) -+{ -+ (void) a; -+ (void) b; -+ (void) lb; -+ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); -+ return la <= (bound - 1); -+} -+ -+// Compare packed strings in a and b with lengths la and lb using the control in -+// imm8, and returns 1 if any character in b was null, and 0 otherwise. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrz -+FORCE_INLINE int _mm_cmpestrz(__m128i a, -+ int la, -+ __m128i b, -+ int lb, -+ const int imm8) -+{ -+ (void) a; -+ (void) b; -+ (void) la; -+ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); -+ return lb <= (bound - 1); -+} -+ -+#define SSE2NEON_CMPISTRX_LENGTH(str, len, imm8) \ -+ do { \ -+ if (imm8 & 0x01) { \ -+ uint16x8_t equal_mask_##str = \ -+ vceqq_u16(vreinterpretq_u16_m128i(str), vdupq_n_u16(0)); \ -+ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ -+ uint64_t matches_##str = \ -+ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ -+ len = _sse2neon_ctzll(matches_##str) >> 3; \ -+ } else { \ -+ uint16x8_t equal_mask_##str = vreinterpretq_u16_u8( \ -+ vceqq_u8(vreinterpretq_u8_m128i(str), vdupq_n_u8(0))); \ -+ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ -+ uint64_t matches_##str = \ -+ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ -+ len = _sse2neon_ctzll(matches_##str) >> 2; \ -+ } \ -+ } while (0) -+ -+#define SSE2NEON_CMPISTRX_LEN_PAIR(a, b, la, lb) \ -+ int la, lb; \ -+ do { \ -+ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); \ -+ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); \ -+ } while (0) -+ -+// Compare packed strings with implicit lengths in a and b using the control in -+// imm8, and returns 1 if b did not contain a null character and the resulting -+// mask was zero, and 0 otherwise. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistra -+FORCE_INLINE int _mm_cmpistra(__m128i a, __m128i b, const int imm8) -+{ -+ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); -+ return !r2 & (lb >= bound); -+} -+ -+// Compare packed strings with implicit lengths in a and b using the control in -+// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrc -+FORCE_INLINE int _mm_cmpistrc(__m128i a, __m128i b, const int imm8) -+{ -+ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); -+ return r2 != 0; -+} -+ -+// Compare packed strings with implicit lengths in a and b using the control in -+// imm8, and store the generated index in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistri -+FORCE_INLINE int _mm_cmpistri(__m128i a, __m128i b, const int imm8) -+{ -+ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); -+ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); -+} -+ -+// Compare packed strings with implicit lengths in a and b using the control in -+// imm8, and store the generated mask in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrm -+FORCE_INLINE __m128i _mm_cmpistrm(__m128i a, __m128i b, const int imm8) -+{ -+ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); -+ SSE2NEON_CMPSTR_GENERATE_MASK(dst); -+} -+ -+// Compare packed strings with implicit lengths in a and b using the control in -+// imm8, and returns bit 0 of the resulting bit mask. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistro -+FORCE_INLINE int _mm_cmpistro(__m128i a, __m128i b, const int imm8) -+{ -+ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); -+ return r2 & 1; -+} -+ -+// Compare packed strings with implicit lengths in a and b using the control in -+// imm8, and returns 1 if any character in a was null, and 0 otherwise. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrs -+FORCE_INLINE int _mm_cmpistrs(__m128i a, __m128i b, const int imm8) -+{ -+ (void) b; -+ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); -+ int la; -+ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); -+ return la <= (bound - 1); -+} -+ -+// Compare packed strings with implicit lengths in a and b using the control in -+// imm8, and returns 1 if any character in b was null, and 0 otherwise. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrz -+FORCE_INLINE int _mm_cmpistrz(__m128i a, __m128i b, const int imm8) -+{ -+ (void) a; -+ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); -+ int lb; -+ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); -+ return lb <= (bound - 1); -+} -+ -+// Compares the 2 signed 64-bit integers in a and the 2 signed 64-bit integers -+// in b for greater than. -+FORCE_INLINE __m128i _mm_cmpgt_epi64(__m128i a, __m128i b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_u64( -+ vcgtq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); -+#else -+ return vreinterpretq_m128i_s64(vshrq_n_s64( -+ vqsubq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)), -+ 63)); -+#endif -+} -+ -+// Starting with the initial value in crc, accumulates a CRC32 value for -+// unsigned 16-bit integer v, and stores the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u16 -+FORCE_INLINE uint32_t _mm_crc32_u16(uint32_t crc, uint16_t v) -+{ -+#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) -+ __asm__ __volatile__("crc32ch %w[c], %w[c], %w[v]\n\t" -+ : [c] "+r"(crc) -+ : [v] "r"(v)); -+#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ -+ (defined(_M_ARM64) && !defined(__clang__)) -+ crc = __crc32ch(crc, v); -+#else -+ crc = _mm_crc32_u8(crc, v & 0xff); -+ crc = _mm_crc32_u8(crc, (v >> 8) & 0xff); -+#endif -+ return crc; -+} -+ -+// Starting with the initial value in crc, accumulates a CRC32 value for -+// unsigned 32-bit integer v, and stores the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u32 -+FORCE_INLINE uint32_t _mm_crc32_u32(uint32_t crc, uint32_t v) -+{ -+#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) -+ __asm__ __volatile__("crc32cw %w[c], %w[c], %w[v]\n\t" -+ : [c] "+r"(crc) -+ : [v] "r"(v)); -+#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ -+ (defined(_M_ARM64) && !defined(__clang__)) -+ crc = __crc32cw(crc, v); -+#else -+ crc = _mm_crc32_u16(crc, v & 0xffff); -+ crc = _mm_crc32_u16(crc, (v >> 16) & 0xffff); -+#endif -+ return crc; -+} -+ -+// Starting with the initial value in crc, accumulates a CRC32 value for -+// unsigned 64-bit integer v, and stores the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u64 -+FORCE_INLINE uint64_t _mm_crc32_u64(uint64_t crc, uint64_t v) -+{ -+#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) -+ __asm__ __volatile__("crc32cx %w[c], %w[c], %x[v]\n\t" -+ : [c] "+r"(crc) -+ : [v] "r"(v)); -+#elif (defined(_M_ARM64) && !defined(__clang__)) -+ crc = __crc32cd((uint32_t) crc, v); -+#else -+ crc = _mm_crc32_u32((uint32_t) (crc), v & 0xffffffff); -+ crc = _mm_crc32_u32((uint32_t) (crc), (v >> 32) & 0xffffffff); -+#endif -+ return crc; -+} -+ -+// Starting with the initial value in crc, accumulates a CRC32 value for -+// unsigned 8-bit integer v, and stores the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u8 -+FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t crc, uint8_t v) -+{ -+#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) -+ __asm__ __volatile__("crc32cb %w[c], %w[c], %w[v]\n\t" -+ : [c] "+r"(crc) -+ : [v] "r"(v)); -+#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ -+ (defined(_M_ARM64) && !defined(__clang__)) -+ crc = __crc32cb(crc, v); -+#else -+ crc ^= v; -+#if defined(__ARM_FEATURE_CRYPTO) -+ // Adapted from: https://mary.rs/lab/crc32/ -+ // Barrent reduction -+ uint64x2_t orig = -+ vcombine_u64(vcreate_u64((uint64_t) (crc) << 24), vcreate_u64(0x0)); -+ uint64x2_t tmp = orig; -+ -+ // Polynomial P(x) of CRC32C -+ uint64_t p = 0x105EC76F1; -+ // Barrett Reduction (in bit-reflected form) constant mu_{64} = \lfloor -+ // 2^{64} / P(x) \rfloor = 0x11f91caf6 -+ uint64_t mu = 0x1dea713f1; -+ -+ // Multiply by mu_{64} -+ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(mu)); -+ // Divide by 2^{64} (mask away the unnecessary bits) -+ tmp = -+ vandq_u64(tmp, vcombine_u64(vcreate_u64(0xFFFFFFFF), vcreate_u64(0x0))); -+ // Multiply by P(x) (shifted left by 1 for alignment reasons) -+ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(p)); -+ // Subtract original from result -+ tmp = veorq_u64(tmp, orig); -+ -+ // Extract the 'lower' (in bit-reflected sense) 32 bits -+ crc = vgetq_lane_u32(vreinterpretq_u32_u64(tmp), 1); -+#else // Fall back to the generic table lookup approach -+ // Adapted from: https://create.stephan-brumme.com/crc32/ -+ // Apply half-byte comparison algorithm for the best ratio between -+ // performance and lookup table. -+ -+ // The lookup table just needs to store every 16th entry -+ // of the standard look-up table. -+ static const uint32_t crc32_half_byte_tbl[] = { -+ 0x00000000, 0x105ec76f, 0x20bd8ede, 0x30e349b1, 0x417b1dbc, 0x5125dad3, -+ 0x61c69362, 0x7198540d, 0x82f63b78, 0x92a8fc17, 0xa24bb5a6, 0xb21572c9, -+ 0xc38d26c4, 0xd3d3e1ab, 0xe330a81a, 0xf36e6f75, -+ }; -+ -+ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; -+ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; -+#endif -+#endif -+ return crc; -+} -+ -+/* AES */ -+ -+#if !defined(__ARM_FEATURE_CRYPTO) && (!defined(_M_ARM64) || defined(__clang__)) -+/* clang-format off */ -+#define SSE2NEON_AES_SBOX(w) \ -+ { \ -+ w(0x63), w(0x7c), w(0x77), w(0x7b), w(0xf2), w(0x6b), w(0x6f), \ -+ w(0xc5), w(0x30), w(0x01), w(0x67), w(0x2b), w(0xfe), w(0xd7), \ -+ w(0xab), w(0x76), w(0xca), w(0x82), w(0xc9), w(0x7d), w(0xfa), \ -+ w(0x59), w(0x47), w(0xf0), w(0xad), w(0xd4), w(0xa2), w(0xaf), \ -+ w(0x9c), w(0xa4), w(0x72), w(0xc0), w(0xb7), w(0xfd), w(0x93), \ -+ w(0x26), w(0x36), w(0x3f), w(0xf7), w(0xcc), w(0x34), w(0xa5), \ -+ w(0xe5), w(0xf1), w(0x71), w(0xd8), w(0x31), w(0x15), w(0x04), \ -+ w(0xc7), w(0x23), w(0xc3), w(0x18), w(0x96), w(0x05), w(0x9a), \ -+ w(0x07), w(0x12), w(0x80), w(0xe2), w(0xeb), w(0x27), w(0xb2), \ -+ w(0x75), w(0x09), w(0x83), w(0x2c), w(0x1a), w(0x1b), w(0x6e), \ -+ w(0x5a), w(0xa0), w(0x52), w(0x3b), w(0xd6), w(0xb3), w(0x29), \ -+ w(0xe3), w(0x2f), w(0x84), w(0x53), w(0xd1), w(0x00), w(0xed), \ -+ w(0x20), w(0xfc), w(0xb1), w(0x5b), w(0x6a), w(0xcb), w(0xbe), \ -+ w(0x39), w(0x4a), w(0x4c), w(0x58), w(0xcf), w(0xd0), w(0xef), \ -+ w(0xaa), w(0xfb), w(0x43), w(0x4d), w(0x33), w(0x85), w(0x45), \ -+ w(0xf9), w(0x02), w(0x7f), w(0x50), w(0x3c), w(0x9f), w(0xa8), \ -+ w(0x51), w(0xa3), w(0x40), w(0x8f), w(0x92), w(0x9d), w(0x38), \ -+ w(0xf5), w(0xbc), w(0xb6), w(0xda), w(0x21), w(0x10), w(0xff), \ -+ w(0xf3), w(0xd2), w(0xcd), w(0x0c), w(0x13), w(0xec), w(0x5f), \ -+ w(0x97), w(0x44), w(0x17), w(0xc4), w(0xa7), w(0x7e), w(0x3d), \ -+ w(0x64), w(0x5d), w(0x19), w(0x73), w(0x60), w(0x81), w(0x4f), \ -+ w(0xdc), w(0x22), w(0x2a), w(0x90), w(0x88), w(0x46), w(0xee), \ -+ w(0xb8), w(0x14), w(0xde), w(0x5e), w(0x0b), w(0xdb), w(0xe0), \ -+ w(0x32), w(0x3a), w(0x0a), w(0x49), w(0x06), w(0x24), w(0x5c), \ -+ w(0xc2), w(0xd3), w(0xac), w(0x62), w(0x91), w(0x95), w(0xe4), \ -+ w(0x79), w(0xe7), w(0xc8), w(0x37), w(0x6d), w(0x8d), w(0xd5), \ -+ w(0x4e), w(0xa9), w(0x6c), w(0x56), w(0xf4), w(0xea), w(0x65), \ -+ w(0x7a), w(0xae), w(0x08), w(0xba), w(0x78), w(0x25), w(0x2e), \ -+ w(0x1c), w(0xa6), w(0xb4), w(0xc6), w(0xe8), w(0xdd), w(0x74), \ -+ w(0x1f), w(0x4b), w(0xbd), w(0x8b), w(0x8a), w(0x70), w(0x3e), \ -+ w(0xb5), w(0x66), w(0x48), w(0x03), w(0xf6), w(0x0e), w(0x61), \ -+ w(0x35), w(0x57), w(0xb9), w(0x86), w(0xc1), w(0x1d), w(0x9e), \ -+ w(0xe1), w(0xf8), w(0x98), w(0x11), w(0x69), w(0xd9), w(0x8e), \ -+ w(0x94), w(0x9b), w(0x1e), w(0x87), w(0xe9), w(0xce), w(0x55), \ -+ w(0x28), w(0xdf), w(0x8c), w(0xa1), w(0x89), w(0x0d), w(0xbf), \ -+ w(0xe6), w(0x42), w(0x68), w(0x41), w(0x99), w(0x2d), w(0x0f), \ -+ w(0xb0), w(0x54), w(0xbb), w(0x16) \ -+ } -+#define SSE2NEON_AES_RSBOX(w) \ -+ { \ -+ w(0x52), w(0x09), w(0x6a), w(0xd5), w(0x30), w(0x36), w(0xa5), \ -+ w(0x38), w(0xbf), w(0x40), w(0xa3), w(0x9e), w(0x81), w(0xf3), \ -+ w(0xd7), w(0xfb), w(0x7c), w(0xe3), w(0x39), w(0x82), w(0x9b), \ -+ w(0x2f), w(0xff), w(0x87), w(0x34), w(0x8e), w(0x43), w(0x44), \ -+ w(0xc4), w(0xde), w(0xe9), w(0xcb), w(0x54), w(0x7b), w(0x94), \ -+ w(0x32), w(0xa6), w(0xc2), w(0x23), w(0x3d), w(0xee), w(0x4c), \ -+ w(0x95), w(0x0b), w(0x42), w(0xfa), w(0xc3), w(0x4e), w(0x08), \ -+ w(0x2e), w(0xa1), w(0x66), w(0x28), w(0xd9), w(0x24), w(0xb2), \ -+ w(0x76), w(0x5b), w(0xa2), w(0x49), w(0x6d), w(0x8b), w(0xd1), \ -+ w(0x25), w(0x72), w(0xf8), w(0xf6), w(0x64), w(0x86), w(0x68), \ -+ w(0x98), w(0x16), w(0xd4), w(0xa4), w(0x5c), w(0xcc), w(0x5d), \ -+ w(0x65), w(0xb6), w(0x92), w(0x6c), w(0x70), w(0x48), w(0x50), \ -+ w(0xfd), w(0xed), w(0xb9), w(0xda), w(0x5e), w(0x15), w(0x46), \ -+ w(0x57), w(0xa7), w(0x8d), w(0x9d), w(0x84), w(0x90), w(0xd8), \ -+ w(0xab), w(0x00), w(0x8c), w(0xbc), w(0xd3), w(0x0a), w(0xf7), \ -+ w(0xe4), w(0x58), w(0x05), w(0xb8), w(0xb3), w(0x45), w(0x06), \ -+ w(0xd0), w(0x2c), w(0x1e), w(0x8f), w(0xca), w(0x3f), w(0x0f), \ -+ w(0x02), w(0xc1), w(0xaf), w(0xbd), w(0x03), w(0x01), w(0x13), \ -+ w(0x8a), w(0x6b), w(0x3a), w(0x91), w(0x11), w(0x41), w(0x4f), \ -+ w(0x67), w(0xdc), w(0xea), w(0x97), w(0xf2), w(0xcf), w(0xce), \ -+ w(0xf0), w(0xb4), w(0xe6), w(0x73), w(0x96), w(0xac), w(0x74), \ -+ w(0x22), w(0xe7), w(0xad), w(0x35), w(0x85), w(0xe2), w(0xf9), \ -+ w(0x37), w(0xe8), w(0x1c), w(0x75), w(0xdf), w(0x6e), w(0x47), \ -+ w(0xf1), w(0x1a), w(0x71), w(0x1d), w(0x29), w(0xc5), w(0x89), \ -+ w(0x6f), w(0xb7), w(0x62), w(0x0e), w(0xaa), w(0x18), w(0xbe), \ -+ w(0x1b), w(0xfc), w(0x56), w(0x3e), w(0x4b), w(0xc6), w(0xd2), \ -+ w(0x79), w(0x20), w(0x9a), w(0xdb), w(0xc0), w(0xfe), w(0x78), \ -+ w(0xcd), w(0x5a), w(0xf4), w(0x1f), w(0xdd), w(0xa8), w(0x33), \ -+ w(0x88), w(0x07), w(0xc7), w(0x31), w(0xb1), w(0x12), w(0x10), \ -+ w(0x59), w(0x27), w(0x80), w(0xec), w(0x5f), w(0x60), w(0x51), \ -+ w(0x7f), w(0xa9), w(0x19), w(0xb5), w(0x4a), w(0x0d), w(0x2d), \ -+ w(0xe5), w(0x7a), w(0x9f), w(0x93), w(0xc9), w(0x9c), w(0xef), \ -+ w(0xa0), w(0xe0), w(0x3b), w(0x4d), w(0xae), w(0x2a), w(0xf5), \ -+ w(0xb0), w(0xc8), w(0xeb), w(0xbb), w(0x3c), w(0x83), w(0x53), \ -+ w(0x99), w(0x61), w(0x17), w(0x2b), w(0x04), w(0x7e), w(0xba), \ -+ w(0x77), w(0xd6), w(0x26), w(0xe1), w(0x69), w(0x14), w(0x63), \ -+ w(0x55), w(0x21), w(0x0c), w(0x7d) \ -+ } -+/* clang-format on */ -+ -+/* X Macro trick. See https://en.wikipedia.org/wiki/X_Macro */ -+#define SSE2NEON_AES_H0(x) (x) -+static const uint8_t _sse2neon_sbox[256] = SSE2NEON_AES_SBOX(SSE2NEON_AES_H0); -+static const uint8_t _sse2neon_rsbox[256] = SSE2NEON_AES_RSBOX(SSE2NEON_AES_H0); -+#undef SSE2NEON_AES_H0 -+ -+/* x_time function and matrix multiply function */ -+#if !defined(__aarch64__) && !defined(_M_ARM64) -+#define SSE2NEON_XT(x) (((x) << 1) ^ ((((x) >> 7) & 1) * 0x1b)) -+#define SSE2NEON_MULTIPLY(x, y) \ -+ (((y & 1) * x) ^ ((y >> 1 & 1) * SSE2NEON_XT(x)) ^ \ -+ ((y >> 2 & 1) * SSE2NEON_XT(SSE2NEON_XT(x))) ^ \ -+ ((y >> 3 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))) ^ \ -+ ((y >> 4 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))))) -+#endif -+ -+// In the absence of crypto extensions, implement aesenc using regular NEON -+// intrinsics instead. See: -+// https://www.workofard.com/2017/01/accelerated-aes-for-the-arm64-linux-kernel/ -+// https://www.workofard.com/2017/07/ghash-for-low-end-cores/ and -+// for more information. -+FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i RoundKey) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ static const uint8_t shift_rows[] = { -+ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, -+ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, -+ }; -+ static const uint8_t ror32by8[] = { -+ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, -+ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, -+ }; -+ -+ uint8x16_t v; -+ uint8x16_t w = vreinterpretq_u8_m128i(a); -+ -+ /* shift rows */ -+ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); -+ -+ /* sub bytes */ -+ // Here, we separate the whole 256-bytes table into 4 64-bytes tables, and -+ // look up each of the table. After each lookup, we load the next table -+ // which locates at the next 64-bytes. In the meantime, the index in the -+ // table would be smaller than it was, so the index parameters of -+ // `vqtbx4q_u8()` need to be added the same constant as the loaded tables. -+ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); -+ // 'w-0x40' equals to 'vsubq_u8(w, vdupq_n_u8(0x40))' -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); -+ -+ /* mix columns */ -+ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); -+ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); -+ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); -+ -+ /* add round key */ -+ return vreinterpretq_m128i_u8(w) ^ RoundKey; -+ -+#else /* ARMv7-A implementation for a table-based AES */ -+#define SSE2NEON_AES_B2W(b0, b1, b2, b3) \ -+ (((uint32_t) (b3) << 24) | ((uint32_t) (b2) << 16) | \ -+ ((uint32_t) (b1) << 8) | (uint32_t) (b0)) -+// multiplying 'x' by 2 in GF(2^8) -+#define SSE2NEON_AES_F2(x) ((x << 1) ^ (((x >> 7) & 1) * 0x011b /* WPOLY */)) -+// multiplying 'x' by 3 in GF(2^8) -+#define SSE2NEON_AES_F3(x) (SSE2NEON_AES_F2(x) ^ x) -+#define SSE2NEON_AES_U0(p) \ -+ SSE2NEON_AES_B2W(SSE2NEON_AES_F2(p), p, p, SSE2NEON_AES_F3(p)) -+#define SSE2NEON_AES_U1(p) \ -+ SSE2NEON_AES_B2W(SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p, p) -+#define SSE2NEON_AES_U2(p) \ -+ SSE2NEON_AES_B2W(p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p) -+#define SSE2NEON_AES_U3(p) \ -+ SSE2NEON_AES_B2W(p, p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p)) -+ -+ // this generates a table containing every possible permutation of -+ // shift_rows() and sub_bytes() with mix_columns(). -+ static const uint32_t ALIGN_STRUCT(16) aes_table[4][256] = { -+ SSE2NEON_AES_SBOX(SSE2NEON_AES_U0), -+ SSE2NEON_AES_SBOX(SSE2NEON_AES_U1), -+ SSE2NEON_AES_SBOX(SSE2NEON_AES_U2), -+ SSE2NEON_AES_SBOX(SSE2NEON_AES_U3), -+ }; -+#undef SSE2NEON_AES_B2W -+#undef SSE2NEON_AES_F2 -+#undef SSE2NEON_AES_F3 -+#undef SSE2NEON_AES_U0 -+#undef SSE2NEON_AES_U1 -+#undef SSE2NEON_AES_U2 -+#undef SSE2NEON_AES_U3 -+ -+ uint32_t x0 = _mm_cvtsi128_si32(a); // get a[31:0] -+ uint32_t x1 = -+ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); // get a[63:32] -+ uint32_t x2 = -+ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xAA)); // get a[95:64] -+ uint32_t x3 = -+ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); // get a[127:96] -+ -+ // finish the modulo addition step in mix_columns() -+ __m128i out = _mm_set_epi32( -+ (aes_table[0][x3 & 0xff] ^ aes_table[1][(x0 >> 8) & 0xff] ^ -+ aes_table[2][(x1 >> 16) & 0xff] ^ aes_table[3][x2 >> 24]), -+ (aes_table[0][x2 & 0xff] ^ aes_table[1][(x3 >> 8) & 0xff] ^ -+ aes_table[2][(x0 >> 16) & 0xff] ^ aes_table[3][x1 >> 24]), -+ (aes_table[0][x1 & 0xff] ^ aes_table[1][(x2 >> 8) & 0xff] ^ -+ aes_table[2][(x3 >> 16) & 0xff] ^ aes_table[3][x0 >> 24]), -+ (aes_table[0][x0 & 0xff] ^ aes_table[1][(x1 >> 8) & 0xff] ^ -+ aes_table[2][(x2 >> 16) & 0xff] ^ aes_table[3][x3 >> 24])); -+ -+ return _mm_xor_si128(out, RoundKey); -+#endif -+} -+ -+// Perform one round of an AES decryption flow on data (state) in a using the -+// round key in RoundKey, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 -+FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) -+{ -+#if defined(__aarch64__) -+ static const uint8_t inv_shift_rows[] = { -+ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, -+ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, -+ }; -+ static const uint8_t ror32by8[] = { -+ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, -+ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, -+ }; -+ -+ uint8x16_t v; -+ uint8x16_t w = vreinterpretq_u8_m128i(a); -+ -+ // inverse shift rows -+ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); -+ -+ // inverse sub bytes -+ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); -+ -+ // inverse mix columns -+ // multiplying 'v' by 4 in GF(2^8) -+ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); -+ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); -+ v ^= w; -+ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); -+ -+ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & -+ 0x1b); // multiplying 'v' by 2 in GF(2^8) -+ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); -+ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); -+ -+ // add round key -+ return vreinterpretq_m128i_u8(w) ^ RoundKey; -+ -+#else /* ARMv7-A NEON implementation */ -+ /* FIXME: optimized for NEON */ -+ uint8_t i, e, f, g, h, v[4][4]; -+ uint8_t *_a = (uint8_t *) &a; -+ for (i = 0; i < 16; ++i) { -+ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; -+ } -+ -+ // inverse mix columns -+ for (i = 0; i < 4; ++i) { -+ e = v[i][0]; -+ f = v[i][1]; -+ g = v[i][2]; -+ h = v[i][3]; -+ -+ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ -+ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); -+ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ -+ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); -+ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ -+ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); -+ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ -+ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); -+ } -+ -+ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; -+#endif -+} -+ -+// Perform the last round of an AES encryption flow on data (state) in a using -+// the round key in RoundKey, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 -+FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) -+{ -+#if defined(__aarch64__) -+ static const uint8_t shift_rows[] = { -+ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, -+ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, -+ }; -+ -+ uint8x16_t v; -+ uint8x16_t w = vreinterpretq_u8_m128i(a); -+ -+ // shift rows -+ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); -+ -+ // sub bytes -+ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); -+ -+ // add round key -+ return vreinterpretq_m128i_u8(v) ^ RoundKey; -+ -+#else /* ARMv7-A implementation */ -+ uint8_t v[16] = { -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 0)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 5)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 10)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 15)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 4)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 9)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 14)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 3)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 8)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 13)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 2)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 7)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 12)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 1)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 6)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 11)], -+ }; -+ -+ return vreinterpretq_m128i_u8(vld1q_u8(v)) ^ RoundKey; -+#endif -+} -+ -+// Perform the last round of an AES decryption flow on data (state) in a using -+// the round key in RoundKey, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 -+FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) -+{ -+#if defined(__aarch64__) -+ static const uint8_t inv_shift_rows[] = { -+ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, -+ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, -+ }; -+ -+ uint8x16_t v; -+ uint8x16_t w = vreinterpretq_u8_m128i(a); -+ -+ // inverse shift rows -+ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); -+ -+ // inverse sub bytes -+ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); -+ -+ // add round key -+ return vreinterpretq_m128i_u8(v) ^ RoundKey; -+ -+#else /* ARMv7-A NEON implementation */ -+ /* FIXME: optimized for NEON */ -+ uint8_t v[4][4]; -+ uint8_t *_a = (uint8_t *) &a; -+ for (int i = 0; i < 16; ++i) { -+ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; -+ } -+ -+ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; -+#endif -+} -+ -+// Perform the InvMixColumns transformation on a and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 -+FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) -+{ -+#if defined(__aarch64__) -+ static const uint8_t ror32by8[] = { -+ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, -+ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, -+ }; -+ uint8x16_t v = vreinterpretq_u8_m128i(a); -+ uint8x16_t w; -+ -+ // multiplying 'v' by 4 in GF(2^8) -+ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); -+ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); -+ v ^= w; -+ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); -+ -+ // multiplying 'v' by 2 in GF(2^8) -+ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); -+ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); -+ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); -+ return vreinterpretq_m128i_u8(w); -+ -+#else /* ARMv7-A NEON implementation */ -+ uint8_t i, e, f, g, h, v[4][4]; -+ vst1q_u8((uint8_t *) v, vreinterpretq_u8_m128i(a)); -+ for (i = 0; i < 4; ++i) { -+ e = v[i][0]; -+ f = v[i][1]; -+ g = v[i][2]; -+ h = v[i][3]; -+ -+ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ -+ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); -+ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ -+ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); -+ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ -+ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); -+ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ -+ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); -+ } -+ -+ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)); -+#endif -+} -+ -+// Assist in expanding the AES cipher key by computing steps towards generating -+// a round key for encryption cipher using data from a and an 8-bit round -+// constant specified in imm8, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 -+// -+// Emits the Advanced Encryption Standard (AES) instruction aeskeygenassist. -+// This instruction generates a round key for AES encryption. See -+// https://kazakov.life/2017/11/01/cryptocurrency-mining-on-ios-devices/ -+// for details. -+FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) -+{ -+#if defined(__aarch64__) -+ uint8x16_t _a = vreinterpretq_u8_m128i(a); -+ uint8x16_t v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), _a); -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), _a - 0x40); -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), _a - 0x80); -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), _a - 0xc0); -+ -+ uint32x4_t v_u32 = vreinterpretq_u32_u8(v); -+ uint32x4_t ror_v = vorrq_u32(vshrq_n_u32(v_u32, 8), vshlq_n_u32(v_u32, 24)); -+ uint32x4_t ror_xor_v = veorq_u32(ror_v, vdupq_n_u32(rcon)); -+ -+ return vreinterpretq_m128i_u32(vtrn2q_u32(v_u32, ror_xor_v)); -+ -+#else /* ARMv7-A NEON implementation */ -+ uint32_t X1 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); -+ uint32_t X3 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); -+ for (int i = 0; i < 4; ++i) { -+ ((uint8_t *) &X1)[i] = _sse2neon_sbox[((uint8_t *) &X1)[i]]; -+ ((uint8_t *) &X3)[i] = _sse2neon_sbox[((uint8_t *) &X3)[i]]; -+ } -+ return _mm_set_epi32(((X3 >> 8) | (X3 << 24)) ^ rcon, X3, -+ ((X1 >> 8) | (X1 << 24)) ^ rcon, X1); -+#endif -+} -+#undef SSE2NEON_AES_SBOX -+#undef SSE2NEON_AES_RSBOX -+ -+#if defined(__aarch64__) -+#undef SSE2NEON_XT -+#undef SSE2NEON_MULTIPLY -+#endif -+ -+#else /* __ARM_FEATURE_CRYPTO */ -+// Implements equivalent of 'aesenc' by combining AESE (with an empty key) and -+// AESMC and then manually applying the real key as an xor operation. This -+// unfortunately means an additional xor op; the compiler should be able to -+// optimize this away for repeated calls however. See -+// https://blog.michaelbrase.com/2018/05/08/emulating-x86-aes-intrinsics-on-armv8-a -+// for more details. -+FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u8(veorq_u8( -+ vaesmcq_u8(vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), -+ vreinterpretq_u8_m128i(b))); -+} -+ -+// Perform one round of an AES decryption flow on data (state) in a using the -+// round key in RoundKey, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 -+FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) -+{ -+ return vreinterpretq_m128i_u8(veorq_u8( -+ vaesimcq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), -+ vreinterpretq_u8_m128i(RoundKey))); -+} -+ -+// Perform the last round of an AES encryption flow on data (state) in a using -+// the round key in RoundKey, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 -+FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) -+{ -+ return _mm_xor_si128(vreinterpretq_m128i_u8(vaeseq_u8( -+ vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), -+ RoundKey); -+} -+ -+// Perform the last round of an AES decryption flow on data (state) in a using -+// the round key in RoundKey, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 -+FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) -+{ -+ return vreinterpretq_m128i_u8( -+ veorq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)), -+ vreinterpretq_u8_m128i(RoundKey))); -+} -+ -+// Perform the InvMixColumns transformation on a and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 -+FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) -+{ -+ return vreinterpretq_m128i_u8(vaesimcq_u8(vreinterpretq_u8_m128i(a))); -+} -+ -+// Assist in expanding the AES cipher key by computing steps towards generating -+// a round key for encryption cipher using data from a and an 8-bit round -+// constant specified in imm8, and store the result in dst." -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 -+FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) -+{ -+ // AESE does ShiftRows and SubBytes on A -+ uint8x16_t u8 = vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)); -+ -+#ifndef _MSC_VER -+ uint8x16_t dest = { -+ // Undo ShiftRows step from AESE and extract X1 and X3 -+ u8[0x4], u8[0x1], u8[0xE], u8[0xB], // SubBytes(X1) -+ u8[0x1], u8[0xE], u8[0xB], u8[0x4], // ROT(SubBytes(X1)) -+ u8[0xC], u8[0x9], u8[0x6], u8[0x3], // SubBytes(X3) -+ u8[0x9], u8[0x6], u8[0x3], u8[0xC], // ROT(SubBytes(X3)) -+ }; -+ uint32x4_t r = {0, (unsigned) rcon, 0, (unsigned) rcon}; -+ return vreinterpretq_m128i_u8(dest) ^ vreinterpretq_m128i_u32(r); -+#else -+ // We have to do this hack because MSVC is strictly adhering to the CPP -+ // standard, in particular C++03 8.5.1 sub-section 15, which states that -+ // unions must be initialized by their first member type. -+ -+ // As per the Windows ARM64 ABI, it is always little endian, so this works -+ __n128 dest{ -+ ((uint64_t) u8.n128_u8[0x4] << 0) | ((uint64_t) u8.n128_u8[0x1] << 8) | -+ ((uint64_t) u8.n128_u8[0xE] << 16) | -+ ((uint64_t) u8.n128_u8[0xB] << 24) | -+ ((uint64_t) u8.n128_u8[0x1] << 32) | -+ ((uint64_t) u8.n128_u8[0xE] << 40) | -+ ((uint64_t) u8.n128_u8[0xB] << 48) | -+ ((uint64_t) u8.n128_u8[0x4] << 56), -+ ((uint64_t) u8.n128_u8[0xC] << 0) | ((uint64_t) u8.n128_u8[0x9] << 8) | -+ ((uint64_t) u8.n128_u8[0x6] << 16) | -+ ((uint64_t) u8.n128_u8[0x3] << 24) | -+ ((uint64_t) u8.n128_u8[0x9] << 32) | -+ ((uint64_t) u8.n128_u8[0x6] << 40) | -+ ((uint64_t) u8.n128_u8[0x3] << 48) | -+ ((uint64_t) u8.n128_u8[0xC] << 56)}; -+ -+ dest.n128_u32[1] = dest.n128_u32[1] ^ rcon; -+ dest.n128_u32[3] = dest.n128_u32[3] ^ rcon; -+ -+ return dest; -+#endif -+} -+#endif -+ -+/* Others */ -+ -+// Perform a carry-less multiplication of two 64-bit integers, selected from a -+// and b according to imm8, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clmulepi64_si128 -+FORCE_INLINE __m128i _mm_clmulepi64_si128(__m128i _a, __m128i _b, const int imm) -+{ -+ uint64x2_t a = vreinterpretq_u64_m128i(_a); -+ uint64x2_t b = vreinterpretq_u64_m128i(_b); -+ switch (imm & 0x11) { -+ case 0x00: -+ return vreinterpretq_m128i_u64( -+ _sse2neon_vmull_p64(vget_low_u64(a), vget_low_u64(b))); -+ case 0x01: -+ return vreinterpretq_m128i_u64( -+ _sse2neon_vmull_p64(vget_high_u64(a), vget_low_u64(b))); -+ case 0x10: -+ return vreinterpretq_m128i_u64( -+ _sse2neon_vmull_p64(vget_low_u64(a), vget_high_u64(b))); -+ case 0x11: -+ return vreinterpretq_m128i_u64( -+ _sse2neon_vmull_p64(vget_high_u64(a), vget_high_u64(b))); -+ default: -+ abort(); -+ } -+} -+ -+FORCE_INLINE unsigned int _sse2neon_mm_get_denormals_zero_mode(void) -+{ -+ union { -+ fpcr_bitfield field; -+#if defined(__aarch64__) || defined(_M_ARM64) -+ uint64_t value; -+#else -+ uint32_t value; -+#endif -+ } r; -+ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ r.value = _sse2neon_get_fpcr(); -+#else -+ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ -+#endif -+ -+ return r.field.bit24 ? _MM_DENORMALS_ZERO_ON : _MM_DENORMALS_ZERO_OFF; -+} -+ -+// Count the number of bits set to 1 in unsigned 32-bit integer a, and -+// return that count in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u32 -+FORCE_INLINE int _mm_popcnt_u32(unsigned int a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+#if __has_builtin(__builtin_popcount) -+ return __builtin_popcount(a); -+#elif defined(_MSC_VER) -+ return _CountOneBits(a); -+#else -+ return (int) vaddlv_u8(vcnt_u8(vcreate_u8((uint64_t) a))); -+#endif -+#else -+ uint32_t count = 0; -+ uint8x8_t input_val, count8x8_val; -+ uint16x4_t count16x4_val; -+ uint32x2_t count32x2_val; -+ -+ input_val = vld1_u8((uint8_t *) &a); -+ count8x8_val = vcnt_u8(input_val); -+ count16x4_val = vpaddl_u8(count8x8_val); -+ count32x2_val = vpaddl_u16(count16x4_val); -+ -+ vst1_u32(&count, count32x2_val); -+ return count; -+#endif -+} -+ -+// Count the number of bits set to 1 in unsigned 64-bit integer a, and -+// return that count in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u64 -+FORCE_INLINE int64_t _mm_popcnt_u64(uint64_t a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+#if __has_builtin(__builtin_popcountll) -+ return __builtin_popcountll(a); -+#elif defined(_MSC_VER) -+ return _CountOneBits64(a); -+#else -+ return (int64_t) vaddlv_u8(vcnt_u8(vcreate_u8(a))); -+#endif -+#else -+ uint64_t count = 0; -+ uint8x8_t input_val, count8x8_val; -+ uint16x4_t count16x4_val; -+ uint32x2_t count32x2_val; -+ uint64x1_t count64x1_val; -+ -+ input_val = vld1_u8((uint8_t *) &a); -+ count8x8_val = vcnt_u8(input_val); -+ count16x4_val = vpaddl_u8(count8x8_val); -+ count32x2_val = vpaddl_u16(count16x4_val); -+ count64x1_val = vpaddl_u32(count32x2_val); -+ vst1_u64(&count, count64x1_val); -+ return count; -+#endif -+} -+ -+FORCE_INLINE void _sse2neon_mm_set_denormals_zero_mode(unsigned int flag) -+{ -+ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, -+ // regardless of the value of the FZ bit. -+ union { -+ fpcr_bitfield field; -+#if defined(__aarch64__) || defined(_M_ARM64) -+ uint64_t value; -+#else -+ uint32_t value; -+#endif -+ } r; -+ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ r.value = _sse2neon_get_fpcr(); -+#else -+ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ -+#endif -+ -+ r.field.bit24 = (flag & _MM_DENORMALS_ZERO_MASK) == _MM_DENORMALS_ZERO_ON; -+ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ _sse2neon_set_fpcr(r.value); -+#else -+ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ -+#endif -+} -+ -+// Return the current 64-bit value of the processor's time-stamp counter. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=rdtsc -+FORCE_INLINE uint64_t _rdtsc(void) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ uint64_t val; -+ -+ /* According to ARM DDI 0487F.c, from Armv8.0 to Armv8.5 inclusive, the -+ * system counter is at least 56 bits wide; from Armv8.6, the counter -+ * must be 64 bits wide. So the system counter could be less than 64 -+ * bits wide and it is attributed with the flag 'cap_user_time_short' -+ * is true. -+ */ -+#if defined(_MSC_VER) -+ val = _ReadStatusReg(ARM64_SYSREG(3, 3, 14, 0, 2)); -+#else -+ __asm__ __volatile__("mrs %0, cntvct_el0" : "=r"(val)); -+#endif -+ -+ return val; -+#else -+ uint32_t pmccntr, pmuseren, pmcntenset; -+ // Read the user mode Performance Monitoring Unit (PMU) -+ // User Enable Register (PMUSERENR) access permissions. -+ __asm__ __volatile__("mrc p15, 0, %0, c9, c14, 0" : "=r"(pmuseren)); -+ if (pmuseren & 1) { // Allows reading PMUSERENR for user mode code. -+ __asm__ __volatile__("mrc p15, 0, %0, c9, c12, 1" : "=r"(pmcntenset)); -+ if (pmcntenset & 0x80000000UL) { // Is it counting? -+ __asm__ __volatile__("mrc p15, 0, %0, c9, c13, 0" : "=r"(pmccntr)); -+ // The counter is set up to count every 64th cycle -+ return (uint64_t) (pmccntr) << 6; -+ } -+ } -+ -+ // Fallback to syscall as we can't enable PMUSERENR in user mode. -+ struct timeval tv; -+ gettimeofday(&tv, NULL); -+ return (uint64_t) (tv.tv_sec) * 1000000 + tv.tv_usec; -+#endif -+} -+ -+#if defined(__GNUC__) || defined(__clang__) -+#pragma pop_macro("ALIGN_STRUCT") -+#pragma pop_macro("FORCE_INLINE") -+#pragma pop_macro("FORCE_INLINE_OPTNONE") -+#endif -+ -+#if defined(__GNUC__) && !defined(__clang__) -+#pragma GCC pop_options -+#endif -+ -+#endif -diff --git c/SeqLib/ssw.h i/SeqLib/ssw.h -index 583442a..5a962c2 100644 ---- c/SeqLib/ssw.h -+++ i/SeqLib/ssw.h -@@ -11,7 +11,11 @@ - #ifndef SSW_H - #define SSW_H - -+#ifdef __ARM_NEON -+#include "sse2neon.h" -+#else - #include -+#endif - #include - #include - #include -diff --git c/src/ssw.c i/src/ssw.c -index 5851613..2fb43b1 100644 ---- c/src/ssw.c -+++ i/src/ssw.c -@@ -36,7 +36,12 @@ - */ - - #include "SeqLib/ssw.h" -+#ifdef __ARM_NEON -+#include "SeqLib/sse2neon.h" -+#else - #include -+#endif -+#include - #include - #include - #include From f36b883cd5fb94270e1d06c2632f6f8ec5e31fe0 Mon Sep 17 00:00:00 2001 From: samsonweiner <40282425+samsonweiner@users.noreply.github.com> Date: Mon, 19 Aug 2024 00:18:07 -0400 Subject: [PATCH 1052/1589] update to new version (#50126) From 25d290f3cbe9f34001feee8e2576a43fc9a385b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ant=C3=B4nio=20Camargo?= Date: Sun, 18 Aug 2024 21:18:36 -0700 Subject: [PATCH 1053/1589] Add `alen` (#50142) * Add `alen` * Fix `alen` recipe --- recipes/alen/build.sh | 6 ++++++ recipes/alen/meta.yaml | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 recipes/alen/build.sh create mode 100644 recipes/alen/meta.yaml diff --git a/recipes/alen/build.sh b/recipes/alen/build.sh new file mode 100644 index 0000000000000..c805061187cf0 --- /dev/null +++ b/recipes/alen/build.sh @@ -0,0 +1,6 @@ +#!/bin/bash -euo + +set -xe + +# build statically linked binary with Rust +RUST_BACKTRACE=1 cargo install --verbose --root $PREFIX --path . \ No newline at end of file diff --git a/recipes/alen/meta.yaml b/recipes/alen/meta.yaml new file mode 100644 index 0000000000000..a1fe8cc4ff58f --- /dev/null +++ b/recipes/alen/meta.yaml @@ -0,0 +1,35 @@ +{% set version = "0.3.1" %} + +package: + name: alen + version: {{ version }} + +build: + number: 0 + run_exports: + - {{ pin_subpackage("alen", max_pin="x.x") }} + +source: + url: https://github.com/jakobnissen/alen/archive/v{{ version }}.tar.gz + sha256: 30c55c0be3396647286ebfca8c46f88e5d7087482e19fb2e64404f87bad8a523 + +requirements: + build: + - {{ compiler('rust') }} + host: + run: + +test: + commands: + - alen --help + +about: + home: https://github.com/jakobnissen/alen + license: MIT + license_file: LICENSE + summary: Simple terminal sequence alignment viewer + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From 38c8ab70a9f225831308b06dc66b4fa8c0b24ead Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 00:32:59 -0400 Subject: [PATCH 1054/1589] Update trackplot to 0.5.0 (#50143) --- recipes/trackplot/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/trackplot/meta.yaml b/recipes/trackplot/meta.yaml index ffc35783b502b..067aa001ae018 100644 --- a/recipes/trackplot/meta.yaml +++ b/recipes/trackplot/meta.yaml @@ -1,5 +1,5 @@ {% set name = "trackplot" %} -{% set version = "0.4.0" %} +{% set version = "0.5.0" %} package: name: trackplot @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 3d9e07e7270401a91db8730dc3675a003dafdcc3b73c4c157beee2c82743a61a + sha256: 0fede14be97cc6a278d5c9f44a6e1bc51bea15af2aba432bd9654d93338d7015 build: noarch: python From 613810592b9b8e917f919a229cfd0ded3a37586c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 00:35:06 -0400 Subject: [PATCH 1055/1589] Update r-sigqc to 0.1.24 (#50138) * Update r-sigqc to 0.1.24 * add run_exports --------- Co-authored-by: mencian --- recipes/r-sigqc/meta.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/recipes/r-sigqc/meta.yaml b/recipes/r-sigqc/meta.yaml index 282817c329e6d..1b32c8487d739 100644 --- a/recipes/r-sigqc/meta.yaml +++ b/recipes/r-sigqc/meta.yaml @@ -1,4 +1,4 @@ -{% set version = '0.1.23' %} +{% set version = '0.1.24' %} package: name: r-sigqc @@ -8,14 +8,16 @@ source: url: - {{ cran_mirror }}/src/contrib/sigQC_{{ version }}.tar.gz - {{ cran_mirror }}/src/contrib/Archive/sigQC/sigQC_{{ version }}.tar.gz - sha256: a883ad4b9d0fe3605d73d575030e45e6a89ad1a895bf78303e041808a889ec3a + sha256: a27a567d2c13aaf110b86f4fd6b15cc8949d5bd28fe0e44b92a65b163544e27c build: noarch: generic - number: 1 + number: 0 rpaths: - lib/R/lib/ - lib/ + run_exports: + - {{ pin_subpackage('r-sigqc', max_pin="x.x") }} requirements: host: From 78a76e32b4c9788db3e08fc921a6adc44e7ee0df Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 01:10:21 -0400 Subject: [PATCH 1056/1589] Update python-bioext to 0.21.8 (#50129) * Update python-bioext to 0.21.8 * edit meta.yaml --------- Co-authored-by: mencian --- recipes/python-bioext/build.sh | 2 +- recipes/python-bioext/meta.yaml | 23 +++++++++-------------- 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/recipes/python-bioext/build.sh b/recipes/python-bioext/build.sh index 1975a26f3cea8..9ae5bff3807f0 100644 --- a/recipes/python-bioext/build.sh +++ b/recipes/python-bioext/build.sh @@ -22,7 +22,7 @@ TARGET=$PREFIX/share/$PKG_NAME/reference_data # Symlink reference data to /usr/local/share/$TARGET, since the site-packages # path may vary depending on the python version mkdir -p "$TARGET" -ln -s "$SP_DIR/BioExt/data/references" "$TARGET" +ln -sf "$SP_DIR/BioExt/data/references" "$TARGET" echo "export BEALIGN_REFERENCE_DIR=$TARGET" > "${PREFIX}/etc/conda/activate.d/${PKG_NAME}_activate.sh" echo "unset BEALIGN_REFERENCE_DIR" > "${PREFIX}/etc/conda/deactivate.d/${PKG_NAME}_deactivate.sh" diff --git a/recipes/python-bioext/meta.yaml b/recipes/python-bioext/meta.yaml index 5292f95513bbc..339d178d3e7d6 100644 --- a/recipes/python-bioext/meta.yaml +++ b/recipes/python-bioext/meta.yaml @@ -1,6 +1,6 @@ {% set name = "BioExt" %} -{% set version = "0.21.7" %} -{% set sha256 = "2265c9b6cb5b4a6400635a5d21f32ca1d693b97431ad188965150fc5d6b28ab6" %} +{% set version = "0.21.8" %} +{% set sha256 = "e19ccc6ba7dc1d2b4b13e1a0d6fa60fce626298c0b2e97012b5fc1a4535ea618" %} package: name: python-{{ name|lower }} @@ -11,11 +11,10 @@ source: sha256: {{ sha256 }} patches: - cythonize.patch - - osx-freetype.patch # [osx] + - osx-freetype.patch # [osx] build: - number: 1 - skip: True # [py2k] + number: 0 run_exports: - {{ pin_subpackage("python-bioext", max_pin="x.x") }} @@ -24,19 +23,15 @@ requirements: - {{ compiler('c') }} - {{ compiler('cxx') }} host: - - freetype - python - - cython >=0.28 - - setuptools - - biopython >=1.58 - - numpy >1.20.3 - - scipy - - pysam + - pip + - cython + - numpy run: - freetype - python - - biopython >=1.58 - - numpy >1.20.3 + - biopython >=1.78 + - {{ pin_compatible('numpy') }} - scipy - pysam - joblib From 032a3479bfbc9e5c6c3311c76f72896dd2a01c74 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 01:21:57 -0400 Subject: [PATCH 1057/1589] Update nanosim to 3.2.0 (#50133) * Update nanosim to 3.2.0 * add run_exports * add run_exports * edit meta.yaml * edit meta.yaml --------- Co-authored-by: mencian --- recipes/nanosim/build.sh | 2 +- recipes/nanosim/meta.yaml | 16 ++++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/recipes/nanosim/build.sh b/recipes/nanosim/build.sh index 87b317b6f8ecc..2ec175e3408de 100644 --- a/recipes/nanosim/build.sh +++ b/recipes/nanosim/build.sh @@ -2,7 +2,7 @@ set -eu -o pipefail mkdir -p ${PREFIX}/bin -cp src/*.py ${PREFIX}/bin/ +cp -rf src/*.py ${PREFIX}/bin/ chmod 0755 "${PREFIX}/bin/read_analysis.py" chmod 0755 "${PREFIX}/bin/simulator.py" diff --git a/recipes/nanosim/meta.yaml b/recipes/nanosim/meta.yaml index c61ceb870abb8..ba625982d09e9 100644 --- a/recipes/nanosim/meta.yaml +++ b/recipes/nanosim/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "3.1.0" %} -{% set sha256 = "6b994fc545b80f7a30a426837eb023c4c03c3ffb5807f8513b7e176c3dd5f5ba" %} +{% set version = "3.2.0" %} +{% set sha256 = "bddb970e34e24dde9d1d9c3b0514798c4664875812ac4071e74973e80182c1ca" %} package: name: nanosim @@ -12,6 +12,8 @@ source: build: noarch: generic number: 0 + run_exports: + - {{ pin_subpackage('nanosim', max_pin="x") }} requirements: run: @@ -28,6 +30,8 @@ requirements: - last - samtools - genometools-genometools + - regex + - piecewise-regression test: commands: @@ -36,11 +40,11 @@ test: about: home: https://github.com/bcgsc/NanoSim - license: GPL-3.0 - license_file: - - COPYRIGHT - - LICENSE + license: "GPL-3.0-only" + license_family: GPL3 + license_file: LICENSE summary: 'NanoSim is a fast and scalable read simulator for Nanopore sequencing data.' + dev_url: https://github.com/bcgsc/NanoSim extra: identifiers: From 452bc1c095fde0a0e46c78802b94a975087409f1 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Mon, 19 Aug 2024 03:19:52 -0500 Subject: [PATCH 1058/1589] Update last to 1565 (#50147) --- recipes/last/build.sh | 5 ++++- recipes/last/meta.yaml | 5 ++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/recipes/last/build.sh b/recipes/last/build.sh index cdda4074d43e1..a00115fb43b2e 100644 --- a/recipes/last/build.sh +++ b/recipes/last/build.sh @@ -1,9 +1,12 @@ #!/bin/bash -xe +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" + ARCH=$(uname -m) case ${ARCH} in x86_64) ARCH_FLAGS="-msse4" ;; *) ARCH_FLAGS="" ;; esac -make install CXXFLAGS="${CXXFLAGS} -O3 ${ARCH_FLAGS} -pthread -I${PREFIX}/include" prefix="${PREFIX}" +make install CXXFLAGS="${CXXFLAGS} -O3 ${ARCH_FLAGS} -pthread -I${PREFIX}/include ${LDFLAGS}" \ + prefix="${PREFIX}" -j"${CPU_COUNT}" diff --git a/recipes/last/meta.yaml b/recipes/last/meta.yaml index fa4b3bc69aad2..5e279008c7b8c 100644 --- a/recipes/last/meta.yaml +++ b/recipes/last/meta.yaml @@ -1,5 +1,5 @@ {% set name = "LAST" %} -{% set version = "1550" %} +{% set version = "1565" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: "https://gitlab.com/mcfrith/last/-/archive/{{ version }}/last-{{ version }}.tar.gz" - sha256: 34a2d62bba74e6f2dad593b1c3997151617fb86a89a7d689e47a3a5e9377a07d + sha256: 68c64fc1370a36a4af4c2ca0572906cf3c7e69c72acc08b5aec594ba15cd2b92 build: number: 0 @@ -25,7 +25,6 @@ requirements: - python - pillow - parallel - - zlib test: commands: From e54ec9f0ceb8e0cf136758d95b76baf5d3ce9611 Mon Sep 17 00:00:00 2001 From: Vijini Mallawaarachchi Date: Mon, 19 Aug 2024 17:50:03 +0930 Subject: [PATCH 1059/1589] Update graphbin to v1.7.4 (#50146) * Update graphbin to v1.7.4 * Update meta.yaml * Update meta.yaml * clean up recipe --------- Co-authored-by: mencian --- recipes/graphbin/meta.yaml | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/recipes/graphbin/meta.yaml b/recipes/graphbin/meta.yaml index 38193911b89b9..9f7a0c6dd5008 100644 --- a/recipes/graphbin/meta.yaml +++ b/recipes/graphbin/meta.yaml @@ -1,28 +1,32 @@ {% set name = "GraphBin" %} -{% set version = "1.7.1" %} +{% set version = "1.7.4" %} package: name: "{{ name|lower }}" version: "{{ version }}" source: - url: "https://github.com/metagentools/{{ name }}/releases/download/v{{ version }}/{{ name }}-{{ version }}.tar.gz" - sha256: 605de80cd132c349ffd0dffbece4cd265f120df19d9258a79cfea1e73276fa6c + url: "https://github.com/metagentools/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz" + sha256: b1c7080aa61535fb3112e4fe3aae186b346a0074eec6e93650564a3b349cc69c build: number: 0 noarch: python + entry_points: + - graphbin = graphbin.cli:main script: - - "{{ PYTHON }} -m pip install . -vv" + - "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" + run_exports: + - {{ pin_subpackage('graphbin', max_pin="x") }} requirements: host: - pip - - python + - python >=3.7,<3.11 - flit-core run: - cairocffi - - python >=3.7.1,<3.11 + - python >=3.7,<3.11 - python-igraph - tqdm - click @@ -35,6 +39,7 @@ test: about: home: "https://github.com/Vini2/GraphBin" license: BSD-3 + license_family: BSD license_file: LICENSE summary: "GraphBin: Refined binning of metagenomic contigs using assembly graphs" description: | From 0e7043f1f06dcd3021e26c244902448e90702638 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 04:20:26 -0400 Subject: [PATCH 1060/1589] Update rasusa to 2.1.0 (#50148) --- recipes/rasusa/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/rasusa/meta.yaml b/recipes/rasusa/meta.yaml index c8d0778f8e87c..33a3a87765c19 100644 --- a/recipes/rasusa/meta.yaml +++ b/recipes/rasusa/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.0.0" %} +{% set version = "2.1.0" %} {% set name = "rasusa" %} package: @@ -7,10 +7,10 @@ package: source: url: https://github.com/mbhall88/{{ name }}/archive/{{ version }}.tar.gz - sha256: 7921a94cb5c30c194c3d966e7dd80d034a9cf840d853b3fe1725d90d5800e2bd + sha256: 6d6d97f381bea5a4d070ef7bc132224f3c5c97bc366109261182aa9bc5736d69 build: - number: 2 + number: 0 run_exports: - {{ pin_subpackage('rasusa', max_pin="x.x") }} From c103bb1ebc76710de8570169f934baa269c1ce32 Mon Sep 17 00:00:00 2001 From: Zilong-Li Date: Mon, 19 Aug 2024 12:41:51 +0200 Subject: [PATCH 1061/1589] Add r-mspbwt package (#50145) * bump stitch version 1.7.0 * clean up recipe * Update r-rcpp version * Update r-rcpp version * Update build.sh * Update libcxx version on osx * Update build.sh * Update build.sh * Update build.sh * Update meta.yaml * Delete recipes/r-stitch/conda_build_config.yaml * Update build.sh * Update build.sh * add r-mspbwt * Update mspbwt source * Update build.sh * add license --------- Co-authored-by: mencian --- recipes/r-mspbwt/LICENSE | 674 +++++++++++++++++++++++++++++++++++++ recipes/r-mspbwt/build.sh | 8 + recipes/r-mspbwt/meta.yaml | 50 +++ 3 files changed, 732 insertions(+) create mode 100644 recipes/r-mspbwt/LICENSE create mode 100644 recipes/r-mspbwt/build.sh create mode 100644 recipes/r-mspbwt/meta.yaml diff --git a/recipes/r-mspbwt/LICENSE b/recipes/r-mspbwt/LICENSE new file mode 100644 index 0000000000000..94a9ed024d385 --- /dev/null +++ b/recipes/r-mspbwt/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/recipes/r-mspbwt/build.sh b/recipes/r-mspbwt/build.sh new file mode 100644 index 0000000000000..461b46a617216 --- /dev/null +++ b/recipes/r-mspbwt/build.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +export LC_ALL=C.UTF-8 +export LANG=C.UTF-8 + + +$R CMD INSTALL --build --install-tests mspbwt + diff --git a/recipes/r-mspbwt/meta.yaml b/recipes/r-mspbwt/meta.yaml new file mode 100644 index 0000000000000..afaf068870763 --- /dev/null +++ b/recipes/r-mspbwt/meta.yaml @@ -0,0 +1,50 @@ +{% set version = "0.1.0" %} +{% set sha256 = "384330b4deb7b8f1f83ec705c48a099f7ef890beb14a6dd97e117beb4ae92888" %} + +package: + name: r-mspbwt + version: '{{ version }}' + +source: + - url: https://github.com/rwdavies/mspbwt/archive/refs/tags/{{ version }}.tar.gz + sha256: '{{ sha256 }}' + +build: + number: 0 + run_exports: + - {{ pin_subpackage('r-mspbwt', max_pin="x.x") }} + +requirements: + build: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + host: + - r-base + - r-rcpp <=1.0.12 + - r-data.table >=1.11.8 + - r-rrbgen >=0.0.6 + - r-stitch >=1.7.0 + run: + - r-base + - r-rcpp <=1.0.12 + - r-data.table >=1.11.8 + - r-rrbgen >=0.0.6 + - r-stitch >=1.7.0 + +test: + commands: + - $R -e "library('mspbwt');" + +about: + home: https://github.com/rwdavies/mspbwt + license: GPL-3.0-only + license_family: GPL3 + license_file: LICENSE + summary: Multi Symbol Positional Burrows Wheeler Transform + doc_url: https://github.com/rwdavies/mspbwt + dev_url: https://github.com/rwdavies/mspbwt + +extra: + recipe-maintainers: + - Zilong-Li + - rwdavies From d1e518ec27e9adde306f5ab287920904207635ed Mon Sep 17 00:00:00 2001 From: Sang Chul Choi Date: Mon, 19 Aug 2024 19:45:03 +0900 Subject: [PATCH 1062/1589] Add a recipe for polap v0.2.4 (#50131) * Add a recipe for polap v0.2.4 * Add a recipe for polap v0.2.4. A 2nd try. * Add a recipe for polap v0.2.4. A 3rd try. * Add a recipe for polap v0.2.4. A 4th try. * Add a recipe for polap v0.2.4. 5th * Add a recipe for polap v0.2.4. A try of 6th * Add a recipe for polap v0.2.4 * Add a recipe for polap v0.2.4. 8th. * Add a recipe for polap v0.2.4. b9 * Add a recipe for polap v0.2.4 b10 * Add a recipe for polap v0.2.4 b11 * Add a recipe for polap v0.2.4. b12 * Add a recipe for polap v0.2.4. b13 --------- Co-authored-by: Sang Chul Choi --- recipes/polap/LICENSE | 674 ++++++++++++++++++++++++++++++++++++++++ recipes/polap/build.sh | 24 ++ recipes/polap/meta.yaml | 66 ++++ 3 files changed, 764 insertions(+) create mode 100644 recipes/polap/LICENSE create mode 100644 recipes/polap/build.sh create mode 100644 recipes/polap/meta.yaml diff --git a/recipes/polap/LICENSE b/recipes/polap/LICENSE new file mode 100644 index 0000000000000..f288702d2fa16 --- /dev/null +++ b/recipes/polap/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/recipes/polap/build.sh b/recipes/polap/build.sh new file mode 100644 index 0000000000000..343b7d9d0f89f --- /dev/null +++ b/recipes/polap/build.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +mkdir -p $PREFIX/bin + +files=(polap + polap-conda-environment-fmlrc.yaml + polap-conda-environment.yaml + polap-mt.1.c70.3.faa + polap-parsing.sh + polap-pt.2.c70.3.faa + polap.sh + run-polap-genes.R + run-polap-jellyfish.R + run-polap-mtcontig.R + run-polap-ncbitools + run-polap-pairs.R) + +for i in "${files[@]}"; do + cp src/$i $PREFIX/bin +done + +chmod +x $PREFIX/bin/polap +chmod +x $PREFIX/bin/polap.sh +chmod +x $PREFIX/bin/run-polap-* diff --git a/recipes/polap/meta.yaml b/recipes/polap/meta.yaml new file mode 100644 index 0000000000000..06b2d5a6b38c4 --- /dev/null +++ b/recipes/polap/meta.yaml @@ -0,0 +1,66 @@ +{% set name = "polap" %} +{% set version = "0.2.4" %} +{% set sha256 = "4463d4a71a8a3273108a0ab2dff0a4c37a565c05af6ee17ee83dc62404294caf" %} + +package: + name: "{{ name }}" + version: "{{ version }}" + +source: + url: https://github.com/goshng/{{ name }}/archive/refs/tags/{{ version }}.tar.gz + sha256: "{{ sha256 }}" + +build: + noarch: generic + number: 0 + run_exports: + - {{ pin_subpackage('polap', max_pin="x.x") }} + +requirements: + run: + - python + - flye >=2.9.2 + - seqkit + - minimap2 >=2.24 + - blast + - bedtools + - seqtk + - bioawk + - entrez-direct + - sra-tools + - csvtk + - gfastats + - jellyfish + - clustalw + - samtools + - assembly-stats + - orthofinder + - bioconductor-ggtree + - perl-xml-libxml + - icu + - libxml2 + - perl + - r-base + - r-dplyr + - r-readr + - r-optparse + - r-stringr + - r-tidyr + - parallel + +test: + commands: + - polap + +about: + home: https://github.com/goshng/polap + license: GPL-3.0-or-later + license_family: GPL + license_file: LICENSE + summary: "POLAP: plant organelle long-read assembly pipeline" + dev_url: https://github.com/goshng/polap + doc_url: https://goshng.github.io/polap/polap.html + +extra: + recipe-maintainers: + - goshng From ea6558413da955a5b667d9036f3662c1c6790d09 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 06:45:47 -0400 Subject: [PATCH 1063/1589] Update snakemake-storage-plugin-gcs to 1.1.0 (#50150) --- recipes/snakemake-storage-plugin-gcs/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-storage-plugin-gcs/meta.yaml b/recipes/snakemake-storage-plugin-gcs/meta.yaml index b269805339223..38445c97fee28 100644 --- a/recipes/snakemake-storage-plugin-gcs/meta.yaml +++ b/recipes/snakemake-storage-plugin-gcs/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-storage-plugin-gcs" %} -{% set version = "1.0.0" %} +{% set version = "1.1.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_storage_plugin_gcs-{{ version }}.tar.gz - sha256: a5ca15813a74ae18d41cc5dbde0792e2ec5bfc32e8615d458b41dded1b430e14 + sha256: 841ef25be8fa7c6f13b45fd2428c71281e05ef28ce8235f7775e19820fa4564c build: noarch: python From 28756ed89293cd717eefafe64f09c805f37f24ce Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 06:46:13 -0400 Subject: [PATCH 1064/1589] Update deeplc to 3.0.7 (#50149) --- recipes/deeplc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/deeplc/meta.yaml b/recipes/deeplc/meta.yaml index 149359954cb97..ba8400cb54ab6 100644 --- a/recipes/deeplc/meta.yaml +++ b/recipes/deeplc/meta.yaml @@ -1,6 +1,6 @@ {% set name = "DeepLC" %} -{% set version = "3.0.6" %} -{% set sha256 = "54ae9ec71cdddb6793c00b18ea72552e5cf5066c1759cd969b73a54f6b910bfa" %} +{% set version = "3.0.7" %} +{% set sha256 = "40bf8b3c2ef53b103ea5c004d5abc8643eacda83efdcdc7589276cdff9732261" %} package: name: {{ name|lower }} From 7f840df251b817afa712f2d6fc875f7c1356002b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 06:54:01 -0400 Subject: [PATCH 1065/1589] Update plasnet to 0.6.0 (#50153) --- recipes/plasnet/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/plasnet/meta.yaml b/recipes/plasnet/meta.yaml index 82a185e403c37..ebf787284fbee 100644 --- a/recipes/plasnet/meta.yaml +++ b/recipes/plasnet/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.5.1" %} +{% set version = "0.6.0" %} {% set name = "plasnet" %} package: @@ -7,7 +7,7 @@ package: source: url: https://github.com/leoisl/{{ name|lower }}/archive/v{{ version }}.tar.gz - sha256: ca8d17649d59dbf0b5ce20d8c687a9f3a17804007b0fdb59654156b665149285 + sha256: 2afc3e7c91265d3605860e70cffcbe366ba36e0dd5da08331b83fd20883af392 build: number: 0 From 8f329630d1d16e1ee3ffa29d3eab28e64cb683de Mon Sep 17 00:00:00 2001 From: Till Hartmann Date: Mon, 19 Aug 2024 12:54:55 +0200 Subject: [PATCH 1066/1589] Add recipe for cyrcular (#50151) * add recipe for cyrcular * fix copy and paste error of sha256 sum --- recipes/cyrcular/build.sh | 6 +++++ recipes/cyrcular/meta.yaml | 49 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 recipes/cyrcular/build.sh create mode 100644 recipes/cyrcular/meta.yaml diff --git a/recipes/cyrcular/build.sh b/recipes/cyrcular/build.sh new file mode 100644 index 0000000000000..4bbfddb620755 --- /dev/null +++ b/recipes/cyrcular/build.sh @@ -0,0 +1,6 @@ +#!/bin/bash -xeuo + +# Make sure bindgen passes on our compiler flags. +export BINDGEN_EXTRA_CLANG_ARGS="${CPPFLAGS} ${CFLAGS} ${LDFLAGS}" + +cargo install --no-track --locked --root "${PREFIX}" --path . diff --git a/recipes/cyrcular/meta.yaml b/recipes/cyrcular/meta.yaml new file mode 100644 index 0000000000000..26a83c54f2525 --- /dev/null +++ b/recipes/cyrcular/meta.yaml @@ -0,0 +1,49 @@ +{% set version = "0.3.0" %} +{% set sha256 = "eba1dea2e13601b5bc18183fff7d5bf3c07e9ed98f62272453a5473e7bbd36cb" %} + +package: + name: cyrcular + version: {{ version }} + +source: + url: https://github.com/tedil/cyrcular/archive/v{{ version }}.tar.gz + sha256: {{ sha256 }} + +build: + skip: True # [osx] + number: 0 + run_exports: + - {{ pin_subpackage("cyrcular", max_pin="x.x") }} + +requirements: + build: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + - {{ compiler('rust') }} + - cmake + - make + - pkg-config + host: + - clangdev + - openssl + - zlib + - xz + - bzip2 + - gsl + - libcblas + - blis + +test: + commands: + - cyrcular -h + +about: + home: https://github.com/tedil/cyrcular + license: MIT + license_family: MIT + summary: Tool for calling circles from nanopore reads + dev_url: https://github.com/tedil/cyrcular + +extra: + additional-platforms: + - linux-aarch64 From 1e4cba384095276651e2c9b887fac05e889829d2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 07:31:13 -0400 Subject: [PATCH 1067/1589] Update earlgrey to 4.4.1 (#50152) --- recipes/earlgrey/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/earlgrey/meta.yaml b/recipes/earlgrey/meta.yaml index 6403cc72f9d2b..a122f3844e1a8 100644 --- a/recipes/earlgrey/meta.yaml +++ b/recipes/earlgrey/meta.yaml @@ -1,6 +1,6 @@ {% set name = "EarlGrey" %} -{% set version = "4.4.0" %} -{% set sha256 = "2557e79c112fdb2e9f1fd96d21394752db0a8004723fe35953d6619c887dcf97" %} +{% set version = "4.4.1" %} +{% set sha256 = "814020ba4967c5622b0b2c618463f350e6073004d3f40365ea03a46cd94d6e12" %} package: name: {{ name|lower }} From cb08fb61dda6ac8a6a3223d616b665d0ffe44c71 Mon Sep 17 00:00:00 2001 From: Alejandro Gonzales-Irribarren Date: Mon, 19 Aug 2024 06:32:21 -0500 Subject: [PATCH 1068/1589] add chromsize v.0.0.2 recipe (#50115) * feat: add chromsize v.0.0.2 recipe * Use compiler('rust') Jinja function. Add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov --- recipes/chromsize/build.sh | 6 ++++++ recipes/chromsize/meta.yaml | 40 +++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 recipes/chromsize/build.sh create mode 100644 recipes/chromsize/meta.yaml diff --git a/recipes/chromsize/build.sh b/recipes/chromsize/build.sh new file mode 100644 index 0000000000000..9543cf881c80c --- /dev/null +++ b/recipes/chromsize/build.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +set -xe + +# build statically linked binary with Rust +RUST_BACKTRACE=1 cargo install --verbose --path ./chromsize/ --root ${PREFIX} diff --git a/recipes/chromsize/meta.yaml b/recipes/chromsize/meta.yaml new file mode 100644 index 0000000000000..e28195bb187a3 --- /dev/null +++ b/recipes/chromsize/meta.yaml @@ -0,0 +1,40 @@ +{% set name = "chromsize" %} +{% set version = "0.0.2" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/alejandrogzi/{{ name }}/archive/refs/tags/v.{{ version }}.tar.gz + sha256: e0358a7a36a74b24b8cbb9034b8060de90d1af867baa66bc093192df9734bd40 + +build: + number: 0 + run_exports: + - {{ pin_subpackage('chromsize', max_pin="x.x") }} + +requirements: + build: + - {{ compiler("cxx") }} + - {{ compiler("rust") }} + - pkg-config + +test: + commands: + - chromsize --help + - chromsize --version + +about: + home: https://github.com/alejandrogzi/chromsize + license: MIT + license_family: MIT + license_file: LICENSE + summary: "just get your chrom sizes" + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 + recipe-maintainers: + - alejandrogzi From ca2c4194c1f026edc51a375d315a27e09c3ec282 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 07:58:50 -0400 Subject: [PATCH 1069/1589] Update snakemake-interface-storage-plugins to 3.3.0 (#50157) --- recipes/snakemake-interface-storage-plugins/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-interface-storage-plugins/meta.yaml b/recipes/snakemake-interface-storage-plugins/meta.yaml index 6703b8f0f17f5..57fe560c93036 100644 --- a/recipes/snakemake-interface-storage-plugins/meta.yaml +++ b/recipes/snakemake-interface-storage-plugins/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-interface-storage-plugins" %} -{% set version = "3.2.4" %} +{% set version = "3.3.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_interface_storage_plugins-{{ version }}.tar.gz - sha256: a44b99339f369703e3cfa5f21f3f513ca2000c8790c364be0e5df7d03fb264d3 + sha256: 203d8f794dfb37d568ad01a6c375fa8beac36df8e488c0f9b9f75984769c362a build: noarch: python From 7bfdaf76ca57a6354246f80b0595a510f666504a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 07:59:33 -0400 Subject: [PATCH 1070/1589] Update mehari to 0.28.0 (#50156) --- recipes/mehari/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mehari/meta.yaml b/recipes/mehari/meta.yaml index 2c733259448fa..a94f64f1be1ae 100644 --- a/recipes/mehari/meta.yaml +++ b/recipes/mehari/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.27.0" %} -{% set sha256 = "f29f2af3cbf0f8e94887dfbd8518ed3be693f85637aca6f2617ce42ee0cd7621" %} +{% set version = "0.28.0" %} +{% set sha256 = "9ace8661cfa769dc2b1ec1ce47af329b92cb63a27453fb2cc23a385e6009b0b5" %} package: name: mehari From 468d49ab8480ff1a8d3caa539fdf42035b0322f5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 10:39:23 -0400 Subject: [PATCH 1071/1589] Update wfmash to 0.19.0 (#50161) --- recipes/wfmash/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/wfmash/meta.yaml b/recipes/wfmash/meta.yaml index cc440afd74bf9..92d3eb3b21ec8 100644 --- a/recipes/wfmash/meta.yaml +++ b/recipes/wfmash/meta.yaml @@ -1,5 +1,5 @@ {% set name = "wfmash" %} -{% set version = "0.18.0" %} +{% set version = "0.19.0" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: https://github.com/waveygang/{{ name }}/releases/download/v{{ version }}/{{ name }}-v{{ version }}.tar.gz - sha256: 8a86254dec1fa972cf4f15aa8eb2a21a8c241c1d28df4bcc8c6b10cce77cd510 + sha256: db6eefc7296739c6276daa8ed413c171487eceed1a62588c1d2fdb40011b011f build: skip: True # [osx] From 410cc0cd7de486a1858b52b3d53fa32d7b26598e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 12:11:20 -0400 Subject: [PATCH 1072/1589] Update snakemake to 8.18.1 (#50159) --- recipes/snakemake/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake/meta.yaml b/recipes/snakemake/meta.yaml index 2e94fb3adf2c7..db7a22c4b8c4a 100644 --- a/recipes/snakemake/meta.yaml +++ b/recipes/snakemake/meta.yaml @@ -1,7 +1,7 @@ # Attention: when upgrading the version, please compare below dependencies with # https://github.com/snakemake/snakemake/blob/{version}/setup.cfg {% set name = "snakemake" %} -{% set version = "8.18.0" %} +{% set version = "8.18.1" %} package: name: {{ name }} @@ -9,7 +9,7 @@ package: source: url: https://pypi.io/packages/source/s/{{ name }}/snakemake-{{ version }}.tar.gz - sha256: d9e7e44caa5218ee8fb3248e6642366fd69bcf3d56bcb2596c1ceb5437d7c5c4 + sha256: aac92b567d7783bb1be7854f0393254c7219be97961c77750e6463af181c1de1 build: number: 0 From 959add1f44483a8dee2d10399b717e75af66d1cf Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 14:22:00 -0400 Subject: [PATCH 1073/1589] Update pybiolib to 1.2.71 (#50168) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index 204fd3707d32c..f9ad5ee41554e 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.2.50" %} +{% set version = "1.2.71" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: 126ad5392df11a3f7cb4e3def931b0d8900472c251f56e1b58ff6d74cc4726e5 + sha256: 9b81929a07564f0c5309ea20b37d963baa703ca508ddda53dd085526e5659c8f build: number: 0 From 3ce2eeb8d44bd175e5d38d783805e81d59e6520d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 14:22:19 -0400 Subject: [PATCH 1074/1589] Update multiqc to 1.24 (#50167) --- recipes/multiqc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/multiqc/meta.yaml b/recipes/multiqc/meta.yaml index 05c07f9b53a31..2d92bfac620bc 100644 --- a/recipes/multiqc/meta.yaml +++ b/recipes/multiqc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "multiqc" %} -{% set version = "1.23" %} +{% set version = "1.24" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/MultiQC/MultiQC/archive/v{{ version }}.tar.gz - sha256: 1f874e3bdaf3f183ff474126e76791e420732764c2988d8074b826d92aa7282a + sha256: 9293f130c3f9ad5ead7b8a1aca96c56f261809bdb7d3a5790892b5f74c862a37 build: number: 0 From a0c4881a7a2e3063151f21f15771c9138eaf77da Mon Sep 17 00:00:00 2001 From: Thanh Lee Date: Mon, 19 Aug 2024 19:36:44 +0100 Subject: [PATCH 1075/1589] noarch: generic to python (#50170) --- recipes/plasnet/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/plasnet/meta.yaml b/recipes/plasnet/meta.yaml index ebf787284fbee..c210d46bcaf0e 100644 --- a/recipes/plasnet/meta.yaml +++ b/recipes/plasnet/meta.yaml @@ -10,8 +10,8 @@ source: sha256: 2afc3e7c91265d3605860e70cffcbe366ba36e0dd5da08331b83fd20883af392 build: - number: 0 - noarch: generic + number: 1 + noarch: python script: python -m pip install . --no-deps --ignore-installed -vvv entry_points: - plasnet = plasnet.plasnet_main:main From bdcbc3d35d097828c175f1f38fb651fddd0b42c0 Mon Sep 17 00:00:00 2001 From: richard-burhans Date: Mon, 19 Aug 2024 14:38:51 -0400 Subject: [PATCH 1076/1589] update source for segalign (#50166) --- recipes/segalign-full/meta.yaml | 10 +++++----- recipes/segalign-galaxy/meta.yaml | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/recipes/segalign-full/meta.yaml b/recipes/segalign-full/meta.yaml index 84bf15404adf9..9116ff7dd08a4 100644 --- a/recipes/segalign-full/meta.yaml +++ b/recipes/segalign-full/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 noarch: generic run_exports: - {{ pin_compatible('segalign-full', max_pin='x.x') }} @@ -24,16 +24,16 @@ test: - which faToTwoBit about: - home: https://github.com/gsneha26/SegAlign + home: https://github.com/galaxyproject/SegAlign summary: 'SegAlign: A Scalable GPU-Based Whole Genome Aligner' description: | SegAlign is a Scalable GPU System for Pairwise Whole Genome Alignments based on LASTZ's seed-filter-extend paradigm. license: MIT license_family: MIT - license_url: https://github.com/gsneha26/SegAlign/blob/main/LICENSE - doc_url: https://github.com/gsneha26/SegAlign/blob/main/README.md - dev_url: https://github.com/richard-burhans/SegAlign/blob/scoring/README.md + license_url: https://github.com/galaxyproject/SegAlign/blob/main/LICENSE + doc_url: https://github.com/galaxyproject/SegAlign/blob/main/README.md + dev_url: https://github.com/galaxyproject/SegAlign extra: identifiers: diff --git a/recipes/segalign-galaxy/meta.yaml b/recipes/segalign-galaxy/meta.yaml index 587bf1cacd24e..0912fc87c1272 100644 --- a/recipes/segalign-galaxy/meta.yaml +++ b/recipes/segalign-galaxy/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 1 + number: 2 noarch: generic run_exports: - {{ pin_compatible('segalign-galaxy', max_pin='x.x') }} @@ -25,16 +25,16 @@ test: - which faToTwoBit about: - home: https://github.com/gsneha26/SegAlign + home: https://github.com/galaxyproject/SegAlign summary: 'SegAlign: A Scalable GPU-Based Whole Genome Aligner' description: | SegAlign is a Scalable GPU System for Pairwise Whole Genome Alignments based on LASTZ's seed-filter-extend paradigm. license: MIT license_family: MIT - license_url: https://github.com/gsneha26/SegAlign/blob/main/LICENSE - doc_url: https://github.com/gsneha26/SegAlign/blob/main/README.md - dev_url: https://github.com/richard-burhans/SegAlign/blob/scoring/README.md + license_url: https://github.com/galaxyproject/SegAlign/blob/main/LICENSE + doc_url: https://github.com/galaxyproject/SegAlign/blob/main/README.md + dev_url: https://github.com/galaxyproject/SegAlign extra: identifiers: From 4b62c3ddcc6710b14a942964654b0efc1fb6d695 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 14:39:11 -0400 Subject: [PATCH 1077/1589] Update pasty to 2.1.0 (#50171) --- recipes/pasty/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pasty/meta.yaml b/recipes/pasty/meta.yaml index eb3c86b19ff16..6bf522de760df 100644 --- a/recipes/pasty/meta.yaml +++ b/recipes/pasty/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pasty" %} -{% set version = "2.0.2" %} +{% set version = "2.1.0" %} package: name: {{ name | lower }} @@ -7,10 +7,10 @@ package: source: url: https://github.com/rpetit3/pasty/archive/v{{ version }}.tar.gz - sha256: 4c1a099dd2fd7a0a190f1e13c0df98aeb744ca068619a89055a8a2e505213df6 + sha256: 408bfe89cd33be1f532d4a280ede1d4f1e17e1ffa8283d8746fc36c5d2d27564 build: - number: 1 + number: 0 noarch: generic run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} From 534c70d55a659fa75a3adaf9f2dfb0f93dc624ce Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 14:40:06 -0400 Subject: [PATCH 1078/1589] Update snakemake-storage-plugin-fs to 1.0.6 (#50165) --- recipes/snakemake-storage-plugin-fs/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-storage-plugin-fs/meta.yaml b/recipes/snakemake-storage-plugin-fs/meta.yaml index 579a4f5664acd..571c12e62ff7b 100644 --- a/recipes/snakemake-storage-plugin-fs/meta.yaml +++ b/recipes/snakemake-storage-plugin-fs/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-storage-plugin-fs" %} -{% set version = "1.0.5" %} +{% set version = "1.0.6" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_storage_plugin_fs-{{ version }}.tar.gz - sha256: 4f7ce1bf16d10510f8f4a2fde2ae22d047131020bd5efa603132dabfc85f444b + sha256: 8d8ead1883d7e670b1d34ea084f7c927bb4fab71fd8d221b7478680cc09a443e build: noarch: python From b2c56d9fbbafe62b46cf9e0596569b3d398a8bb9 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 19 Aug 2024 22:17:56 +0300 Subject: [PATCH 1079/1589] r-mspbwt: add aarch64 build (#50155) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/r-mspbwt/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/r-mspbwt/meta.yaml b/recipes/r-mspbwt/meta.yaml index afaf068870763..c4e12068526ed 100644 --- a/recipes/r-mspbwt/meta.yaml +++ b/recipes/r-mspbwt/meta.yaml @@ -10,7 +10,7 @@ source: sha256: '{{ sha256 }}' build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('r-mspbwt', max_pin="x.x") }} @@ -45,6 +45,8 @@ about: dev_url: https://github.com/rwdavies/mspbwt extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - Zilong-Li - rwdavies From fd5142f018372242634dfc914f3351593fa480ae Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 15:18:21 -0400 Subject: [PATCH 1080/1589] Update orthanq to 1.7.5 (#50160) --- recipes/orthanq/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/orthanq/meta.yaml b/recipes/orthanq/meta.yaml index 4beab70fbdc47..9d9e65247ca0d 100644 --- a/recipes/orthanq/meta.yaml +++ b/recipes/orthanq/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.7.4" %} +{% set version = "1.7.5" %} package: name: orthanq @@ -12,7 +12,7 @@ build: source: url: https://github.com/orthanq/orthanq/archive/v{{ version }}.tar.gz - sha256: b8cc21f9f39b5f7461b504df5a7b7201a6a6d19dba7bb849281302da21ce4772 + sha256: f116404548dd15641785177a39b272d91c43c5f66e0022266277e51811426e24 requirements: build: From 773dc3ae556bbae68d9f409b11dc688a3225e6c9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 15:18:35 -0400 Subject: [PATCH 1081/1589] Update cloci to 0.3.1 (#50164) --- recipes/cloci/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/cloci/meta.yaml b/recipes/cloci/meta.yaml index 99e3b7b279aee..5f1fcb2d0f3b9 100644 --- a/recipes/cloci/meta.yaml +++ b/recipes/cloci/meta.yaml @@ -1,5 +1,5 @@ {% set name = "cloci" %} -{% set version = "0.3.0" %} +{% set version = "0.3.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/cloci-{{ version }}.tar.gz - sha256: 46f5387ff625b79038a130f5d501e6dd18b3ccd8ec79d027e6ca78d97e8ad0c2 + sha256: 2bf3eff7a017174633337d72b1c221098aca161b6d55d362e34a4c5bcc62c17d build: entry_points: From cccc8949b7cb06942eb217c582a27ad6943ad88e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 15:18:58 -0400 Subject: [PATCH 1082/1589] Update parascopy to 1.17.0 (#50162) --- recipes/parascopy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/parascopy/meta.yaml b/recipes/parascopy/meta.yaml index d838dc1927051..1b1f041d3a225 100644 --- a/recipes/parascopy/meta.yaml +++ b/recipes/parascopy/meta.yaml @@ -1,5 +1,5 @@ {% set name = "parascopy" %} -{% set version = "1.16.3" %} +{% set version = "1.17.0" %} package: name: {{ name|lower }} @@ -14,7 +14,7 @@ build: source: url: https://github.com/tprodanov/{{ name }}/archive/v{{ version }}.tar.gz - sha256: 50054ef93d33d5ea17fa9fcd479db41811d10db3ca15950ebfb5ab451e0b6a35 + sha256: 42d2d32888a1c57ccee272d26015c96663c81cf36a747a3f5e1b1deea813c953 requirements: build: From c15ac5e3cc159d878a18208d53a083af0cb4a6df Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 15:19:43 -0400 Subject: [PATCH 1083/1589] Update mycotools to 0.32.1 (#50163) * Update mycotools to 0.31.49 * Update mycotools to 0.32.1 --- recipes/mycotools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mycotools/meta.yaml b/recipes/mycotools/meta.yaml index 8fb5793d984bd..e2d89a1dcec9a 100644 --- a/recipes/mycotools/meta.yaml +++ b/recipes/mycotools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mycotools" %} -{% set version = "0.31.48" %} +{% set version = "0.32.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mycotools-{{ version }}.tar.gz - sha256: 0ab05973c50e363f6554bf15d8fa16f77765e0152acc35ba14ccca4cc054ce84 + sha256: 346fa5ea6e5efa4de4ddea342a125857351c9d24738be8284e83974cf0ffadb6 build: entry_points: From ade28bb3332865d2b040a2b7a3f93e5a5d664acc Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 20 Aug 2024 00:05:11 +0300 Subject: [PATCH 1084/1589] python-bioext: add aarch64/arm64 builds (#50154) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/python-bioext/meta.yaml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/recipes/python-bioext/meta.yaml b/recipes/python-bioext/meta.yaml index 339d178d3e7d6..2682dd9d0bccb 100644 --- a/recipes/python-bioext/meta.yaml +++ b/recipes/python-bioext/meta.yaml @@ -14,7 +14,7 @@ source: - osx-freetype.patch # [osx] build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("python-bioext", max_pin="x.x") }} @@ -74,6 +74,11 @@ test: about: home: https://github.com/veg/BioExt.git - license: GPL-3 + license: GPL-3.0-only license_family: GPL3 summary: 'A few handy bioinformatics tools not already in BioPython' + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 \ No newline at end of file From 3795304f9a81b080887e5d4a01f930c31deee559 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 17:40:57 -0400 Subject: [PATCH 1085/1589] Update chopper to 0.9.0 (#50174) --- recipes/chopper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/chopper/meta.yaml b/recipes/chopper/meta.yaml index d3d1d006ac7f4..00dbb1806606e 100644 --- a/recipes/chopper/meta.yaml +++ b/recipes/chopper/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.8.0" %} +{% set version = "0.9.0" %} package: name: chopper @@ -11,7 +11,7 @@ build: source: url: https://github.com/wdecoster/chopper/archive/v{{ version }}.tar.gz - sha256: d79c3a3af8daf9e81f4a209061629e823a3cb0275ff13f9f7e800b9f62c19bab + sha256: ae5b6f8f5ffde45582998b63cb45b4221b25ee37a9fde7a256e653c7f3f12075 requirements: build: From 5894dcb33baeffe68851e5e449ab9b8cf1ecf850 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 21:44:53 -0400 Subject: [PATCH 1086/1589] Update ska2 to 0.3.10 (#50173) --- recipes/ska2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ska2/meta.yaml b/recipes/ska2/meta.yaml index f6a8f34b16558..146eac47fee64 100644 --- a/recipes/ska2/meta.yaml +++ b/recipes/ska2/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ska2" %} -{% set version = "0.3.9" %} +{% set version = "0.3.10" %} package: name: {{ name|lower}} @@ -7,7 +7,7 @@ package: source: url: https://github.com/bacpop/ska.rust/archive/v{{ version }}.tar.gz - sha256: e25a05c2c08a871feb5f9eca6993d9719a63a97323385353a58ba30fa829b5c1 + sha256: ca0bdec75d2e0f9d7936e423bb8e9b2984cd3e5c5ee73e843300d93df94f6ef5 build: number: 0 From 9262c36bbcaa2f2fb6d2ca30e567ff9912a7f7a1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 21:45:20 -0400 Subject: [PATCH 1087/1589] Update oakvar to 2.11.5 (#50175) --- recipes/oakvar/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/oakvar/meta.yaml b/recipes/oakvar/meta.yaml index 447b1ecb074e9..4121090865787 100644 --- a/recipes/oakvar/meta.yaml +++ b/recipes/oakvar/meta.yaml @@ -1,6 +1,6 @@ {% set name = "OakVar" %} -{% set version = "2.11.4" %} -{% set sha256 = "7cdb934152826f23b5d125e493e60c034c353f45ce566215020b43ba3eb1b4e7" %} +{% set version = "2.11.5" %} +{% set sha256 = "9967ff6751ea8141ccf5c879a128c47ab78b30035091209680b5d67fa8b88e6c" %} package: name: {{ name|lower }} From 0b7b663261dcf6c648d0aa1a756a104c80af8d97 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 21:45:42 -0400 Subject: [PATCH 1088/1589] Update ntjoin to 1.1.5 (#50176) --- recipes/ntjoin/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/ntjoin/meta.yaml b/recipes/ntjoin/meta.yaml index a369b9bf428cc..2e784d9954226 100644 --- a/recipes/ntjoin/meta.yaml +++ b/recipes/ntjoin/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.1.4" %} +{% set version = "1.1.5" %} package: name: ntjoin @@ -6,10 +6,10 @@ package: source: url: https://github.com/bcgsc/ntJoin/releases/download/v{{ version }}/ntJoin-{{ version }}.tar.gz - sha256: ec24330e11ea63948d1b124273dae79e80088d672f7e536e7d97787f0c2bb644 + sha256: 808260e3e8c25121f4b7b88a0dd1766c9da0b59d5ebf843a5ec84efb13944009 build: - number: 1 + number: 0 noarch: generic run_exports: - {{ pin_subpackage("ntjoin", max_pin="x") }} From 92d3c3a078fe59ea0dbceda6293077a888058919 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 21:46:46 -0400 Subject: [PATCH 1089/1589] Update pathogen-embed to 3.0.0 (#50177) --- recipes/pathogen-embed/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pathogen-embed/meta.yaml b/recipes/pathogen-embed/meta.yaml index 585b65b93e761..4ff89cddc19cf 100644 --- a/recipes/pathogen-embed/meta.yaml +++ b/recipes/pathogen-embed/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.3.0" %} +{% set version = "3.0.0" %} {% set name = "pathogen-embed" %} package: @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pathogen_embed-{{ version }}.tar.gz - sha256: 47ef737b7609593c6de143c17f54bc1e526aaa615773aad73bb6464de67cbff1 + sha256: 3315a03c7fda6bcb49d50cbd3f4c99ab1ca1f261623e95cdce7359aca184cdea build: number: 0 From e44055c31ef7ff52eab9d80d3d65adcbb18b8811 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 21:47:52 -0400 Subject: [PATCH 1090/1589] Update abritamr to 1.0.19 (#50180) --- recipes/abritamr/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/abritamr/meta.yaml b/recipes/abritamr/meta.yaml index 62bda213a61cf..edcc501e5cbc0 100644 --- a/recipes/abritamr/meta.yaml +++ b/recipes/abritamr/meta.yaml @@ -1,6 +1,6 @@ {% set name = "abritamr" %} -{% set version = "1.0.18" %} -{% set sha256 = "d7ea14271302177a4402f0b73ecb36212595960cbc3b2ce46cd50ac2af5b46f3" %} +{% set version = "1.0.19" %} +{% set sha256 = "a0571b3428186295ec27343fa4b648105be81a7fd871462a501c4c2bec43c335" %} package: name: "{{ name|lower }}" From e65927852a8386240637cb6886f23894c99e6d21 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 20 Aug 2024 01:26:15 -0500 Subject: [PATCH 1091/1589] Add recipe for xclone v0.3.8 (#50181) --- recipes/xclone/meta.yaml | 50 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 recipes/xclone/meta.yaml diff --git a/recipes/xclone/meta.yaml b/recipes/xclone/meta.yaml new file mode 100644 index 0000000000000..9d503c1eb1603 --- /dev/null +++ b/recipes/xclone/meta.yaml @@ -0,0 +1,50 @@ +{% set name = "xclone" %} +{% set version = "0.3.8" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.org/packages/source/{{ name[0] }}/{{ name }}/xclone-{{ version }}.tar.gz + sha256: 67fbf73ece48f41e2ae4531f2554c80ff62472066cb18b11045f7f41307a9115 + +build: + number: 0 + noarch: python + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + run_exports: + - {{ pin_subpackage('xclone', max_pin="x.x") }} + +requirements: + host: + - python >=3.9 + - poetry-core + - pip + run: + - python >=3.9 + - numpy >=1.26.4,<2.0.0 + - pandas >=2.2.2,<3.0.0 + - scipy >=1.13.1,<2.0.0 + - matplotlib-base >=3.9.0,<4.0.0 + - anndata >=0.10.7,<0.11.0 + - statsmodels >=0.14.2,<0.15.0 + - scanpy >=1.10.1,<2.0.0 + - h5py >=3.11.0,<4.0.0 + - palettable >=3.3.3,<4.0.0 + - requests >=2.32.3,<3.0.0 + - importlib-metadata >=7.1.0,<8.0.0 + - squidpy >=1.5.0,<2.0.0 + +test: + imports: + - xclone + +about: + home: "https://github.com/single-cell-genetics/XClone" + summary: "Inference of clonal Copy Number Alterations in single cells." + license: "Apache-2.0" + license_family: APACHE + license_file: LICENSE + dev_url: "https://github.com/single-cell-genetics/XClone" + doc_url: "https://xclone-cnv.readthedocs.io/en/latest" From 93f99d8f44ad4d056fdee9fa5a3aaded5d2e7935 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 02:32:04 -0400 Subject: [PATCH 1092/1589] Update fqtk to 0.3.1 (#50178) * Update fqtk to 0.3.1 * add run_exports --------- Co-authored-by: mencian --- recipes/fqtk/build.sh | 8 ++------ recipes/fqtk/meta.yaml | 23 +++++++++++++---------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/recipes/fqtk/build.sh b/recipes/fqtk/build.sh index 403679dd60ea7..9a2b15637fd93 100644 --- a/recipes/fqtk/build.sh +++ b/recipes/fqtk/build.sh @@ -1,11 +1,7 @@ #!/bin/bash -e -# TODO: Remove the following export when pinning is updated and we use -# {{ compiler('rust') }} in the recipe. -export \ - CARGO_NET_GIT_FETCH_WITH_CLI=true \ - CARGO_HOME="${BUILD_PREFIX}/.cargo" - export BINDGEN_EXTRA_CLANG_ARGS="${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" +# build statically linked binary with Rust +RUST_BACKTRACE=1 cargo install --no-track --verbose --root "${PREFIX}" --path . diff --git a/recipes/fqtk/meta.yaml b/recipes/fqtk/meta.yaml index dce25b0d49c3e..119c717d3a0c1 100644 --- a/recipes/fqtk/meta.yaml +++ b/recipes/fqtk/meta.yaml @@ -1,36 +1,39 @@ {% set name = "fqtk" %} -{% set version = "0.3.0" %} +{% set version = "0.3.1" %} package: name: {{ name }} version: {{ version }} -build: - number: 0 - source: url: https://github.com/fulcrumgenomics/{{ name }}/archive/v{{ version }}.tar.gz - sha256: b03c993e5705d2e764ee696559ed31002b04f036ad103e64c18659aa309cbc6b + sha256: f64598b7493b2c87fe8b17330c137c98eb66e352f3648809e4128ea25f300a2e + +build: + number: 0 + run_exports: + - {{ pin_subpackage('fqtk', max_pin="x.x") }} requirements: build: - {{ compiler('cxx') }} - - rust >=1.60 + - {{ compiler('rust') }} - pkg-config - make - cmake - host: - run: test: commands: - fqtk --help about: - home: https://github.com/fulcrumgenomics/{{ name }} + home: "https://github.com/fulcrumgenomics/{{ name }}" license: MIT + license_family: MIT license_file: LICENSE - summary: A toolkit for working with FASTQ files. + summary: "A toolkit for working with FASTQ files." + dev_url: "https://github.com/fulcrumgenomics/{{ name }}" + doc_url: "https://github.com/fulcrumgenomics/fqtk/blob/v{{ version }}/README.md" extra: recipe-maintainers: From c8f6694613b6b8244306c12703786fd1346b4e66 Mon Sep 17 00:00:00 2001 From: Zilong-Li Date: Tue, 20 Aug 2024 09:08:15 +0200 Subject: [PATCH 1093/1589] Update r-quilt version to 2.0.0 (#50158) * bump stitch version 1.7.0 * clean up recipe * Update r-rcpp version * Update r-rcpp version * Update build.sh * Update libcxx version on osx * Update build.sh * Update build.sh * Update build.sh * Update meta.yaml * Delete recipes/r-stitch/conda_build_config.yaml * Update build.sh * Update build.sh * add r-mspbwt * Update mspbwt source * Update build.sh * add license * update r-quilt * Update meta.yaml * Update build.sh --------- Co-authored-by: mencian --- recipes/r-quilt/build.sh | 4 +++- recipes/r-quilt/meta.yaml | 42 +++++++++++++-------------------------- 2 files changed, 17 insertions(+), 29 deletions(-) diff --git a/recipes/r-quilt/build.sh b/recipes/r-quilt/build.sh index b0bb175fa394d..cc2b41e684b9d 100644 --- a/recipes/r-quilt/build.sh +++ b/recipes/r-quilt/build.sh @@ -1,10 +1,12 @@ #!/bin/bash +set -xe + export LC_ALL=C.UTF-8 export LANG=C.UTF-8 cp $SRC_DIR/QUILT.R $PREFIX/bin/ cd $SRC_DIR/QUILT -$R CMD INSTALL --build --install-tests . +${R} CMD INSTALL --build --install-tests . diff --git a/recipes/r-quilt/meta.yaml b/recipes/r-quilt/meta.yaml index 75db7688a7028..6b69360a3a7fc 100644 --- a/recipes/r-quilt/meta.yaml +++ b/recipes/r-quilt/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.0.5" %} -{% set sha256 = "88f46a0c0f54260b8df9f150b0cf9bdedba6f9408bb7da36318055f2a9036266" %} +{% set version = "2.0.0" %} +{% set sha256 = "723c52371fd8c495a54165b168db70d8c4ce001cd4dc902e63db0240318e8a6e" %} package: name: r-quilt @@ -12,7 +12,7 @@ source: build: number: 0 run_exports: - - {{ pin_subpackage('r-quilt', max_pin="1") }} + - {{ pin_subpackage('r-quilt', max_pin="x") }} requirements: build: @@ -20,34 +20,19 @@ requirements: - {{ compiler('cxx') }} host: - r-base - - r-rcpp >=0.12.18 - - r-rcpparmadillo >=0.8.600.0.0 - - r-data.table >=1.11.8 + - r-rcpp <=1.0.12 + - r-rcppeigen - r-rrbgen >=0.0.6 - - r-stitch >=1.6.6 - - xz - - gmp - - mpfr - - mpc >=1.1.0 - - libblas - - zlib + - r-stitch >=1.7.0 + - r-mspbwt >=0.1.0 run: - r-base - - r-rcpp >=0.12.18 - - r-rcpparmadillo >=0.8.600.0.0 - - r-data.table >=1.11.8 + - r-rcpp <=1.0.12 + - r-rcppeigen - r-rrbgen >=0.0.6 - - r-stitch >=1.6.6 - - r-optparse - - xz - - gmp - - mpfr - - mpc >=1.1.0 - - r-testthat >=2.0.0 - - htslib >=1.4 - - samtools >=1.4 - - rsync - - zlib + - r-stitch >=1.7.0 + - r-mspbwt >=0.1.0 + - r-optparse test: commands: @@ -58,10 +43,11 @@ about: license: GPL-3.0-only license_family: GPL3 license_file: LICENSE - summary: Read aware low coverage whole genome sequence imputation from a reference panel + summary: Rapid and accurate genotype imputation from low coverage short read, long read, and cell free DNA sequence doc_url: https://github.com/rwdavies/quilt dev_url: https://github.com/rwdavies/quilt extra: recipe-maintainers: + - Zilong-Li - rwdavies From 310096671e46f7fe511e0ce577d7c8b2b2afb4fb Mon Sep 17 00:00:00 2001 From: "Zachary Konkel, PhD" Date: Tue, 20 Aug 2024 00:18:12 -0700 Subject: [PATCH 1094/1589] Update mycotools (#50169) * init * add linting error fixes * update version * add cython to host section * add cython to run * remove clipkit, wont compile without cython and cython cant be in the run section * remove unnecessary pins * update mycotools * remove PYTHON variable * correct checksumg * Update meta.yaml * update mycotools * update mycotools * add cloci * need to add on its own branch * update mycotools * update mycotools * update mycotools * update mycotools * update mycotools * update mycotools * update mycotools * update mycotools * update mycotools * update mycotools * update mycotools * update mycotools * update mycotools * add cloci * include website * include all dependencies * Use SPDX value for the license * update cloci * update package and dependencies * clean up recipe * bump build number --------- Co-authored-by: Martin Grigorov Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Co-authored-by: mencian --- recipes/cloci/meta.yaml | 20 +++++++++++--------- recipes/mycotools/meta.yaml | 25 ++++++++++++++----------- 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/recipes/cloci/meta.yaml b/recipes/cloci/meta.yaml index 5f1fcb2d0f3b9..ca9f38a84593d 100644 --- a/recipes/cloci/meta.yaml +++ b/recipes/cloci/meta.yaml @@ -7,9 +7,11 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/cloci-{{ version }}.tar.gz - sha256: 2bf3eff7a017174633337d72b1c221098aca161b6d55d362e34a4c5bcc62c17d + sha256: 2bf3eff7a017174633337d72b1c221098aca161b6d55d362e34a4c5bcc62c17d build: + number: 1 + noarch: python entry_points: - cloci = cloci.main:cli - cloci2enrich = cloci.tools.cloci2enrich:cli @@ -17,18 +19,19 @@ build: - hg2hg_net = cloci.tools.hg2hg_net:cli - hlg2biofile = cloci.tools.hlg2biofile:cli - hlg2hlg_net = cloci.tools.hlg2hlg_net:cli - noarch: python - script: python -m pip install . -vv --no-deps --no-build-isolation - number: 0 + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + script_env: + - SETUPTOOLS_SCM_PRETEND_VERSION={{ version }} run_exports: - {{ pin_subpackage('cloci', max_pin="x.x") }} requirements: host: + - python >=3 - setuptools-scm - pip run: - - python >=3.0,<4.0 + - python >=3 - mycotools - cogent3 - tqdm @@ -39,17 +42,16 @@ test: imports: - cloci commands: - - pip check - cloci --help - update_mtdb --help - requires: - - pip about: home: https://github.com/xonq/cloci - summary: Co-occurrence Locus and Orthologous Cluster Identifier + summary: "Co-occurrence Locus and Orthologous Cluster Identifier." license: AGPL-3.0-only + license_family: AGPL license_file: LICENSE + dev_url: https://github.com/xonq/cloci extra: recipe-maintainers: diff --git a/recipes/mycotools/meta.yaml b/recipes/mycotools/meta.yaml index e2d89a1dcec9a..f9bf6feda90fb 100644 --- a/recipes/mycotools/meta.yaml +++ b/recipes/mycotools/meta.yaml @@ -10,6 +10,9 @@ source: sha256: 346fa5ea6e5efa4de4ddea342a125857351c9d24738be8284e83974cf0ffadb6 build: + number: 1 + noarch: python + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir entry_points: - mtdb = mycotools.mtdb:main - acc2fa = mycotools.acc2fa:cli @@ -42,19 +45,18 @@ build: - predb2mtdb = mycotools.predb2mtdb:cli - s2subs = mycotools.s2subs:cli - update_mtdb = mycotools.update_mtdb:cli - noarch: python - script: python -m pip install . -vv --no-deps --no-build-isolation - number: 0 + script_env: + - SETUPTOOLS_SCM_PRETEND_VERSION={{ version }} run_exports: - {{ pin_subpackage('mycotools', max_pin="x.x") }} requirements: host: + - python >=3 - setuptools-scm - pip - - cython run: - - python >=3.0,<4.0 + - python >=3 - biopython - pandas - requests @@ -70,23 +72,24 @@ requirements: - fasttree - diamond - ete3 + - ncbi-datasets-cli test: imports: - mycotools commands: - - pip check - mtdb --help - predb2mtdb --help - update_mtdb --help - requires: - - pip about: - home: https://github.com/xonq/mycotools - summary: Comparative genomics automation and standardization software - license: BSD-3-Clause + home: "https://github.com/xonq/mycotools" + summary: "Comparative genomics automation and standardization software." + license: "BSD-3-Clause" + license_family: BSD license_file: LICENSE + dev_url: "https://github.com/xonq/mycotools" + doc_url: "https://github.com/xonq/mycotools/wiki" extra: recipe-maintainers: From 076ed549740600b253977d98999f6e025774e9d7 Mon Sep 17 00:00:00 2001 From: Sang Chul Choi Date: Tue, 20 Aug 2024 16:58:49 +0900 Subject: [PATCH 1095/1589] Update polap to v0.2.6 Build1 (#50183) Co-authored-by: Sang Chul Choi --- recipes/polap/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/polap/meta.yaml b/recipes/polap/meta.yaml index 06b2d5a6b38c4..eacc9680c84a3 100644 --- a/recipes/polap/meta.yaml +++ b/recipes/polap/meta.yaml @@ -1,6 +1,6 @@ {% set name = "polap" %} -{% set version = "0.2.4" %} -{% set sha256 = "4463d4a71a8a3273108a0ab2dff0a4c37a565c05af6ee17ee83dc62404294caf" %} +{% set version = "0.2.6" %} +{% set sha256 = "6d9b5ffc26ce6feeaa6119d0dda57e07af9e9def55e5510b0ddf237699b15948" %} package: name: "{{ name }}" @@ -30,7 +30,7 @@ requirements: - sra-tools - csvtk - gfastats - - jellyfish + - kmer-jellyfish - clustalw - samtools - assembly-stats From ff20431b28cf01b1fd2e2c1e30882a7e73817802 Mon Sep 17 00:00:00 2001 From: Chris Saunders Date: Tue, 20 Aug 2024 01:00:02 -0700 Subject: [PATCH 1096/1589] Add new recipe for sawfish (#50179) * Add sawfish recipe * Limit install content --- recipes/sawfish/build.sh | 5 +++++ recipes/sawfish/meta.yaml | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 recipes/sawfish/build.sh create mode 100644 recipes/sawfish/meta.yaml diff --git a/recipes/sawfish/build.sh b/recipes/sawfish/build.sh new file mode 100644 index 0000000000000..f427f2b39fda7 --- /dev/null +++ b/recipes/sawfish/build.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +# Sawfish already auto-extracts to bin directory, so just need to move it to PREFIX +cp -r bin "${PREFIX}"/ + diff --git a/recipes/sawfish/meta.yaml b/recipes/sawfish/meta.yaml new file mode 100644 index 0000000000000..082d153819d1c --- /dev/null +++ b/recipes/sawfish/meta.yaml @@ -0,0 +1,32 @@ +{% set name = "sawfish" %} +{% set version = "0.12.1" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/PacificBiosciences/sawfish/releases/download/v{{ version }}/sawfish-v{{ version }}-x86_64-unknown-linux-gnu.tar.gz + sha256: 4ced0da34a90a0616d8df2db8888021a5b0e1e7dc5b0293e780425b75b958e20 + +build: + number: 0 + skip: True # [osx] + run_exports: + - {{ pin_subpackage('sawfish', max_pin="x.x") }} + +test: + commands: + - sawfish --version + +about: + home: https://github.com/PacificBiosciences/sawfish + license: Pacific Biosciences Software License Agreement + summary: Structural variant discovery and genotyping from mapped PacBio HiFi data + +extra: + recipe-maintainers: + - ctsa + skip-lints: + - should_use_compilers + - should_be_noarch_generic From 9946b5e77b4663737b6733fb2e0ec63b8b3e8c5e Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 20 Aug 2024 03:45:57 -0500 Subject: [PATCH 1097/1589] cellsnp-lite: add aarch64/arm64 build (#50189) * cellsnp-lite: add aarch64/arm64 build * remove patch * add m4 --- recipes/cellsnp-lite/LICENSE | 201 ------------------ recipes/cellsnp-lite/build.sh | 26 ++- .../cellsnp-lite/build_failure.osx-64.yaml | 104 --------- recipes/cellsnp-lite/meta.yaml | 30 ++- 4 files changed, 35 insertions(+), 326 deletions(-) delete mode 100644 recipes/cellsnp-lite/LICENSE delete mode 100644 recipes/cellsnp-lite/build_failure.osx-64.yaml diff --git a/recipes/cellsnp-lite/LICENSE b/recipes/cellsnp-lite/LICENSE deleted file mode 100644 index 261eeb9e9f8b2..0000000000000 --- a/recipes/cellsnp-lite/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/recipes/cellsnp-lite/build.sh b/recipes/cellsnp-lite/build.sh index dc3736b1c75a4..ce213a712a2cf 100755 --- a/recipes/cellsnp-lite/build.sh +++ b/recipes/cellsnp-lite/build.sh @@ -1,20 +1,18 @@ #!/bin/bash -export C_INCLUDE_PATH=${PREFIX}/include -export LIBRARY_PATH=${PREFIX}/lib -export LD_LIBRARY_PATH=${PREFIX}/lib - -./configure -make +mkdir -p ${PREFIX}/bin -#cflags="-g -Wall -O2 -Wno-unused-function -fgnu89-inline -I${PREFIX}/include" +export M4="$BUILD_PREFIX/bin/m4" +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -g -Wall -O3 -Wno-implicit-function-declaration" -#if [ "`uname`" == "Darwin" ]; then -# make CC=${CC} CFLAGS="-fgnu89-inline -fcommon ${CFLAGS}" LDFLAGS="${LDFLAGS}" -#else -# make CC=${CC} CFLAGS="${cflags}" htslib_lib_dir=${PREFIX}/lib -#fi +autoreconf -if +./configure --prefix="${PREFIX}" CC="${CC}" CFLAGS="${CFLAGS}" \ + LDFLAGS="${LDFLAGS}" CPPFLAGS="${CPPFLAGS} -I${PREFIX}/include" -mkdir -p ${PREFIX}/bin -cp -f cellsnp-lite ${PREFIX}/bin +make -j"${CPU_COUNT}" +make install +chmod 0755 ${PREFIX}/bin/cellsnp-lite diff --git a/recipes/cellsnp-lite/build_failure.osx-64.yaml b/recipes/cellsnp-lite/build_failure.osx-64.yaml deleted file mode 100644 index a7e45f3dd22d7..0000000000000 --- a/recipes/cellsnp-lite/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: dd6a23ac00183a8e28b55aa29a5ede942ba044cd21b1bfb29d5e7425e0fd6d8c # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |- - SIZE=x86_64-apple-darwin13.4.0-size - STRINGS=x86_64-apple-darwin13.4.0-strings - STRIP=x86_64-apple-darwin13.4.0-strip - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 - ac_cv_func_malloc_0_nonnull=yes - ac_cv_func_realloc_0_nonnull=yes - build_alias=x86_64-apple-darwin13.4.0 - host_alias=x86_64-apple-darwin13.4.0 - checking for a BSD-compatible install... /usr/bin/install -c - checking whether build environment is sane... yes - checking for a thread-safe mkdir -p... ./install-sh -c -d - checking for gawk... no - checking for mawk... no - checking for nawk... no - checking for awk... awk - checking whether make sets $(MAKE)... yes - checking whether make supports nested variables... yes - checking for gawk... (cached) awk - checking for x86_64-apple-darwin13.4.0-gcc... x86_64-apple-darwin13.4.0-clang - checking whether the C compiler works... yes - checking for C compiler default output file name... a.out - checking for suffix of executables... - checking whether we are cross compiling... no - checking for suffix of object files... o - checking whether we are using the GNU C compiler... yes - checking whether x86_64-apple-darwin13.4.0-clang accepts -g... yes - checking for x86_64-apple-darwin13.4.0-clang option to accept ISO C89... none needed - checking for style of include used by make... GNU - checking dependency style of x86_64-apple-darwin13.4.0-clang... gcc3 - checking for math.h... yes - checking for log in -lm... yes - checking for zlib.h... yes - checking for inflate in -lz... yes - checking for bzlib.h... yes - checking for BZ2_bzBuffToBuffCompress in -lbz2... yes - checking for lzma.h... yes - checking for lzma_easy_buffer_encode in -llzma... yes - checking for curl_easy_pause in -lcurl... yes - checking for HMAC in -lcrypto... yes - checking location of HTSlib installation... none found - checking for htslib/sam.h... yes - checking for sam_hdr_init in -lhts... yes - checking how to run the C preprocessor... x86_64-apple-darwin13.4.0-clang -E - checking for grep that handles long lines and -e... /usr/bin/grep - checking for egrep... /usr/bin/grep -E - checking for ANSI C header files... yes - checking for sys/types.h... yes - checking for sys/stat.h... yes - checking for stdlib.h... yes - checking for string.h... yes - checking for memory.h... yes - checking for strings.h... yes - checking for inttypes.h... yes - checking for stdint.h... yes - checking for unistd.h... yes - checking for stdlib.h... (cached) yes - checking for string.h... (cached) yes - checking for unistd.h... (cached) yes - checking for inline... inline - checking for int32_t... yes - checking for int8_t... yes - checking for size_t... yes - checking for ssize_t... yes - checking for uint32_t... yes - checking for uint8_t... yes - checking for stdlib.h... (cached) yes - checking for GNU libc compatible malloc... (cached) yes - checking for stdlib.h... (cached) yes - checking for GNU libc compatible realloc... (cached) yes - checking for memset... yes - checking for mkdir... yes - checking for pow... yes - checking for strdup... yes - checking that generated files are newer than configure... done - configure: creating ./config.status - config.status: creating Makefile - config.status: creating conf.h - config.status: executing depfiles commands - make all-am - make[1]: Entering directory '$SRC_DIR' - x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-cellsnp.o -MD -MP -MF src/.deps/cellsnp_lite-cellsnp.Tpo -c -o src/cellsnp_lite-cellsnp.o test -f 'src/cellsnp.c' || echo './'src/cellsnp.c - mv -f src/.deps/cellsnp_lite-cellsnp.Tpo src/.deps/cellsnp_lite-cellsnp.Po - x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-csp.o -MD -MP -MF src/.deps/cellsnp_lite-csp.Tpo -c -o src/cellsnp_lite-csp.o test -f 'src/csp.c' || echo './'src/csp.c - mv -f src/.deps/cellsnp_lite-csp.Tpo src/.deps/cellsnp_lite-csp.Po - x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-csp_fetch.o -MD -MP -MF src/.deps/cellsnp_lite-csp_fetch.Tpo -c -o src/cellsnp_lite-csp_fetch.o test -f 'src/csp_fetch.c' || echo './'src/csp_fetch.c - mv -f src/.deps/cellsnp_lite-csp_fetch.Tpo src/.deps/cellsnp_lite-csp_fetch.Po - x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-csp_pileup.o -MD -MP -MF src/.deps/cellsnp_lite-csp_pileup.Tpo -c -o src/cellsnp_lite-csp_pileup.o test -f 'src/csp_pileup.c' || echo './'src/csp_pileup.c - mv -f src/.deps/cellsnp_lite-csp_pileup.Tpo src/.deps/cellsnp_lite-csp_pileup.Po - x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-jfile.o -MD -MP -MF src/.deps/cellsnp_lite-jfile.Tpo -c -o src/cellsnp_lite-jfile.o test -f 'src/jfile.c' || echo './'src/jfile.c - mv -f src/.deps/cellsnp_lite-jfile.Tpo src/.deps/cellsnp_lite-jfile.Po - x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-jsam.o -MD -MP -MF src/.deps/cellsnp_lite-jsam.Tpo -c -o src/cellsnp_lite-jsam.o test -f 'src/jsam.c' || echo './'src/jsam.c - mv -f src/.deps/cellsnp_lite-jsam.Tpo src/.deps/cellsnp_lite-jsam.Po - x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-jstring.o -MD -MP -MF src/.deps/cellsnp_lite-jstring.Tpo -c -o src/cellsnp_lite-jstring.o test -f 'src/jstring.c' || echo './'src/jstring.c - mv -f src/.deps/cellsnp_lite-jstring.Tpo src/.deps/cellsnp_lite-jstring.Po - x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-mplp.o -MD -MP -MF src/.deps/cellsnp_lite-mplp.Tpo -c -o src/cellsnp_lite-mplp.o test -f 'src/mplp.c' || echo './'src/mplp.c - mv -f src/.deps/cellsnp_lite-mplp.Tpo src/.deps/cellsnp_lite-mplp.Po - x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-snp.o -MD -MP -MF src/.deps/cellsnp_lite-snp.Tpo -c -o src/cellsnp_lite-snp.o test -f 'src/snp.c' || echo './'src/snp.c - mv -f src/.deps/cellsnp_lite-snp.Tpo src/.deps/cellsnp_lite-snp.Po - x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-thpool.o -MD -MP -MF src/.deps/cellsnp_lite-thpool.Tpo -c -o src/cellsnp_lite-thpool.o test -f 'src/thpool.c' || echo './'src/thpool.c - make[1]: Leaving directory '$SRC_DIR' -# Last 100 lines of the build log. diff --git a/recipes/cellsnp-lite/meta.yaml b/recipes/cellsnp-lite/meta.yaml index 5a2d55ecac7cd..f44ac346eecc8 100644 --- a/recipes/cellsnp-lite/meta.yaml +++ b/recipes/cellsnp-lite/meta.yaml @@ -1,8 +1,9 @@ +{% set name = "cellsnp-lite" %} {% set version = "1.2.3" %} {% set sha256 = "baf84ee8fc80e5a11d31e266ed6087e7dcba65be6b8583b025c628a9ff9d9dd7" %} package: - name: cellsnp-lite + name: {{ name }} version: {{ version }} source: @@ -10,27 +11,42 @@ source: sha256: {{ sha256 }} build: - number: 3 - #skip: True # [osx] + number: 4 + run_exports: + - {{ pin_subpackage('cellsnp-lite', max_pin="x") }} requirements: build: - make - {{ compiler('c') }} + - autoconf + - automake + - libtool host: - htslib + - libcurl + - bzip2 - zlib run: - htslib - - zlib test: commands: - cellsnp-lite 2>&1 | grep -i 'options' about: - home: https://github.com/single-cell-genetics/cellsnp-lite - license: Apache-2.0 + home: "https://github.com/single-cell-genetics/cellsnp-lite" + license: "Apache-2.0" + license_family: APACHE license_file: LICENSE - summary: Efficient genotyping bi-allelic SNPs on single cells + summary: "Efficient genotyping bi-allelic SNPs on single cells." + dev_url: "https://github.com/single-cell-genetics/cellsnp-lite" + doc_url: "https://cellsnp-lite.readthedocs.io/en/latest" +extra: + identifiers: + - doi:10.1093/bioinformatics/btab358 + - biotools:cellsnp-lite + additional-platforms: + - linux-aarch64 + - osx-arm64 From e7adeacd9b74a3d0f14c81d085748e17b00ebe82 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 20 Aug 2024 12:00:22 +0300 Subject: [PATCH 1098/1589] fqtk: add aarch64/arm64 builds (#50186) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/fqtk/meta.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/recipes/fqtk/meta.yaml b/recipes/fqtk/meta.yaml index 119c717d3a0c1..575e3f00fb789 100644 --- a/recipes/fqtk/meta.yaml +++ b/recipes/fqtk/meta.yaml @@ -10,7 +10,7 @@ source: sha256: f64598b7493b2c87fe8b17330c137c98eb66e352f3648809e4128ea25f300a2e build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('fqtk', max_pin="x.x") }} @@ -36,6 +36,9 @@ about: doc_url: "https://github.com/fulcrumgenomics/fqtk/blob/v{{ version }}/README.md" extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - NatPRoach - nh13 From 4c3ae04506bbc9d10c7aaba06d5cf11ce7c78fcf Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 20 Aug 2024 12:00:38 +0300 Subject: [PATCH 1099/1589] r-quilt: add aarch64 build (#50187) * r-quilt: add aarch64/arm64 build Signed-off-by: Martin Tzvetanov Grigorov * Do not build osx-arm64 --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/r-quilt/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/r-quilt/meta.yaml b/recipes/r-quilt/meta.yaml index 6b69360a3a7fc..743be5ba3c764 100644 --- a/recipes/r-quilt/meta.yaml +++ b/recipes/r-quilt/meta.yaml @@ -10,7 +10,7 @@ source: sha256: '{{ sha256 }}' build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('r-quilt', max_pin="x") }} @@ -48,6 +48,8 @@ about: dev_url: https://github.com/rwdavies/quilt extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - Zilong-Li - rwdavies From 443f1f4dba0ef31543843fd36537228e904a7994 Mon Sep 17 00:00:00 2001 From: Kez Cleal <42997789+kcleal@users.noreply.github.com> Date: Tue, 20 Aug 2024 10:03:54 +0100 Subject: [PATCH 1100/1589] GW update recipe (#49921) * Added gland to libs * Force cos7 * Update conda_build_config.yaml * Update build.sh * Update build.sh * Update build.sh * Update build.sh * Update build.sh * Update build.sh * Update build.sh * Update build.sh * Update build.sh * Update build.sh * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update build.sh * Update meta.yaml * Update conda_build_config.yaml * Update conda_build_config.yaml * trigger rebuild * Update build.sh * Update meta.yaml * Update build.sh * tidy up libs * Dropping all CDTs meta.yaml * Update conda_build_config.yaml * Update conda_build_config.yaml * Tidy up libs meta.yaml * Update meta.yaml * Update meta.yaml * Update recipes/gw/build.sh Co-authored-by: Martin Grigorov --------- Co-authored-by: Martin Grigorov --- recipes/gw/build.sh | 30 +++++++++++++++++++---- recipes/gw/meta.yaml | 57 +++++++++++++++++++++++++------------------- 2 files changed, 59 insertions(+), 28 deletions(-) diff --git a/recipes/gw/build.sh b/recipes/gw/build.sh index 7fddb127f886d..f1d5fc6f43bff 100644 --- a/recipes/gw/build.sh +++ b/recipes/gw/build.sh @@ -1,14 +1,36 @@ #!/usr/bin/bash set -e + export USE_GL=1 + +# Modify Makefile and source files if not on macOS if [[ "$OSTYPE" != "darwin"* ]]; then - sed -i 's/-lEGL -lGLESv2/-lGL/' Makefile + sed -i 's/-lEGL -lGLESv2/-lGL -lGLX/' Makefile + sed -i 's/GLFW_EGL_CONTEXT_API/GLFW_NATIVE_CONTEXT_API/' src/plot_manager.cpp fi -make prep -CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY" LDFLAGS="${LDFLAGS} -L${PREFIX}" prefix="${PREFIX}" make -j ${CPU_COUNT} + +make prep > /dev/null 2>&1 + +# Set flags conditionally based on the OS type +if [[ "$OSTYPE" != "darwin"* ]]; then + SYSROOT_FLAGS="--sysroot=${BUILD_PREFIX}/${HOST}/sysroot" + CPPFLAGS="${CPPFLAGS} -I${BUILD_PREFIX}/${HOST}/sysroot/usr/include ${SYSROOT_FLAGS}" + LDFLAGS="${LDFLAGS} -L${PREFIX}/lib -L${BUILD_PREFIX}/${HOST}/sysroot/usr/lib -L${BUILD_PREFIX}/${HOST}/sysroot/usr/lib64 ${SYSROOT_FLAGS}" +else + # No sysroot settings for macOS + SYSROOT_FLAGS="" + CPPFLAGS="${CPPFLAGS}" + LDFLAGS="${LDFLAGS} -L${PREFIX}" +fi + +CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY" \ +CPPFLAGS="${CPPFLAGS}" \ +LDFLAGS="${LDFLAGS}" \ +prefix="${PREFIX}" \ +make -j ${CPU_COUNT} + mkdir -p $PREFIX/bin cp gw $PREFIX/bin/gw cp -n .gw.ini $PREFIX/bin/.gw.ini chmod +x $PREFIX/bin/gw chmod +rw $PREFIX/bin/.gw.ini - diff --git a/recipes/gw/meta.yaml b/recipes/gw/meta.yaml index 914bd1e2fe317..d8d9aa904573c 100644 --- a/recipes/gw/meta.yaml +++ b/recipes/gw/meta.yaml @@ -12,22 +12,29 @@ source: - fix-linker-issues.patch # [linux] build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage('gw', max_pin="x") }} + ignore_run_exports: + - libglx # [linux] + - xorg-libsm # [linux] + - xorg-libice # [linux] + - xorg-libx11 # [linux] + - xorg-libxau # [linux] + - xorg-libxext # [linux] + - libegl # [linux] + - libxcb # [linux] + - freetype # [osx] + - fontconfig # [osx] + - zlib # [osx] + - libuuid + - libdeflate requirements: build: - make + - {{ compiler('c') }} - {{ compiler('cxx') }} - # - sysroot_linux-64 >=2.17 - - {{ cdt('mesa-libgl-devel') }} # [linux] - - {{ cdt('mesa-libegl-devel') }} # [linux] - - {{ cdt('mesa-dri-drivers') }} # [linux] - - {{ cdt('libselinux') }} # [linux] - - {{ cdt('libxdamage') }} # [linux] - - {{ cdt('libxxf86vm') }} # [linux] - - {{ cdt('libxext') }} # [linux] host: - fontconfig @@ -36,26 +43,26 @@ requirements: - libdeflate >=1.0 - htslib >=1.12 - glfw >=3.3 - - wget - unzip - freetype - - xorg-libxfixes # [linux] - - xorg-libx11 # [linux] - - xorg-libxcb # [linux] - - expat # [linux] + - zlib + - pthread-stubs # [linux] + - xorg-libsm # [linux] + - xorg-libice # [linux] + - xorg-libx11 # [linux] + - libxcb # [linux] + - libegl-devel # [linux] + - libgl-devel # [linux] + - libglx-devel # [linux] run: - - xorg-libxfixes # [linux] - - xorg-libx11 # [linux] - - xorg-libxcb # [linux] - - {{ cdt('mesa-libgl-devel') }} # [linux] - - {{ cdt('mesa-libegl-devel') }} # [linux] - - {{ cdt('mesa-dri-drivers') }} # [linux] - #- mesa-libgl # [linux] - #- mesa-libegl # [linux] - #- mesa-dri-drivers # [linux] - glfw >=3.3 - - htslib >=1.12 + - htslib >=1.12 + - xorg-libxt # [linux] + - xorg-libxau # [linux] + - xorg-libxfixes # [linux] + - xorg-libxxf86vm # [linux] + - xorg-libxdamage # [linux] test: commands: @@ -68,6 +75,8 @@ about: summary: 'View genomic sequencing data and vcf files' extra: + additional-platforms: + - osx-arm64 container: extended-base: True recipe-maintainers: From 76156f10ab882ddd79afcd09d0b08685f266d03f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sim=C3=B3n=20Villanueva=20Corrales?= <37163025+sivico26@users.noreply.github.com> Date: Tue, 20 Aug 2024 11:06:31 +0200 Subject: [PATCH 1101/1589] Add recipe for miniprot-boundary-scorer (#50172) * Add miniprot-boundary-scorer v1.0.0 * Fix bulid.sh and test * Add miniprot-boundary-scorer v1.0.0 * Fix bulid.sh and test * Update license following spdx identifiers * Try with LDFLAGS instead of LD_LIBRARY_PATH. Add aarch64/arm64 builds too Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Corrales Simon Co-authored-by: Martin Tzvetanov Grigorov --- recipes/miniprot-boundary-scorer/build.sh | 8 +++++ recipes/miniprot-boundary-scorer/meta.yaml | 36 ++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 recipes/miniprot-boundary-scorer/build.sh create mode 100644 recipes/miniprot-boundary-scorer/meta.yaml diff --git a/recipes/miniprot-boundary-scorer/build.sh b/recipes/miniprot-boundary-scorer/build.sh new file mode 100644 index 0000000000000..91d45589b3f93 --- /dev/null +++ b/recipes/miniprot-boundary-scorer/build.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +set -xe + +make -j ${CPU_COUNT} CC="${CXX}" LDFLAGS="-L${PREFIX}/lib" + +mkdir -p ${PREFIX}/bin +cp miniprot_boundary_scorer ${PREFIX}/bin \ No newline at end of file diff --git a/recipes/miniprot-boundary-scorer/meta.yaml b/recipes/miniprot-boundary-scorer/meta.yaml new file mode 100644 index 0000000000000..cb7ef5acd15e7 --- /dev/null +++ b/recipes/miniprot-boundary-scorer/meta.yaml @@ -0,0 +1,36 @@ +{% set name = "miniprot-boundary-scorer" %} +{% set version = "1.0.0" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/tomasbruna/miniprot-boundary-scorer/releases/download/v{{ version }}/{{ name }}.tgz + sha256: 9a5f3babd6db07b673589f2bb8de9436fd9a9c844483ce893d27de0d79ed79e8 + +build: + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} + + +requirements: + build: + - make + - {{ compiler('cxx') }} + +test: + commands: + - miniprot_boundary_scorer 2>&1 | grep "^Usage:" > /dev/null + +about: + home: https://github.com/tomasbruna/miniprot-boundary-scorer + license: Artistic-1.0 + summary: Miniprot boundary scorer parses introns, starts, stops and exons from miniprot's alignment output and scores them + dev_url: https://github.com/tomasbruna/miniprot-boundary-scorer + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From 04b6acedcf5b19fbfd388597e2687d781578526d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 06:43:42 -0400 Subject: [PATCH 1102/1589] Update resistify to 0.3.0 (#50190) --- recipes/resistify/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/resistify/meta.yaml b/recipes/resistify/meta.yaml index 4cd79689492b0..36d96e8d1b98d 100644 --- a/recipes/resistify/meta.yaml +++ b/recipes/resistify/meta.yaml @@ -1,5 +1,5 @@ {% set name = "resistify" %} -{% set version = "0.2.2" %} +{% set version = "0.3.0" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 2fd3e8e8c45711d1a4a054727053fb284f8034ec921e7f14e7d5b8a16800c326 + sha256: 3a8f4ccedf38fb1a7cdb3522ad6497d054bd72164155bcdc03aa23133b030623 build: noarch: python From eca84e155f1de3de376e2244d3741c3ee889b4e6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 06:44:09 -0400 Subject: [PATCH 1103/1589] Update savana to 1.2.1 (#50192) --- recipes/savana/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/savana/meta.yaml b/recipes/savana/meta.yaml index 8ba9b74b466b6..8450c98cfbf55 100644 --- a/recipes/savana/meta.yaml +++ b/recipes/savana/meta.yaml @@ -1,5 +1,5 @@ {% set name = "savana" %} -{% set version = "1.2.0" %} +{% set version = "1.2.1" %} package: name: "{{ name }}" @@ -7,10 +7,10 @@ package: source: url: "https://github.com/cortes-ciriano-lab/{{ name }}/archive/{{ version }}.tar.gz" - sha256: 25025d73628e282c7cd5fd6204befe9152d0d695ebd027b87831aa1338b83914 + sha256: f43e83794c5cd18f15c4dddc8b660012d42b91d42f253274b921256f887aca72 build: - number: 1 + number: 0 noarch: python script: - "{{ PYTHON }} -m pip install . -vv" From 92c6e85c6f87c2d225ee969c7da81e241995909c Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 20 Aug 2024 19:08:49 +0300 Subject: [PATCH 1104/1589] ucsc-pslpairs: add linux-aarch64 build (#50197) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-pslpairs/build.sh | 24 ++++++++++++++++-------- recipes/ucsc-pslpairs/include.patch | 6 +++--- recipes/ucsc-pslpairs/meta.yaml | 22 +++++++++++++++------- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index e4d0d4dbe405b..0979be115ad99 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -916,7 +916,6 @@ recipes/ucsc-pslliftsubrangeblat recipes/ucsc-pslmap recipes/ucsc-pslmappostchain recipes/ucsc-pslmrnacover -recipes/ucsc-pslpairs recipes/ucsc-pslpartition recipes/ucsc-pslpretty recipes/ucsc-pslrc diff --git a/recipes/ucsc-pslpairs/build.sh b/recipes/ucsc-pslpairs/build.sh index e16513ef01203..a90d13ee108cb 100644 --- a/recipes/ucsc-pslpairs/build.sh +++ b/recipes/ucsc-pslpairs/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/pslPairs && make) -cp bin/pslPairs "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslPairs" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && USE_HIC=0 make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/pslPairs && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/pslPairs "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/pslPairs" diff --git a/recipes/ucsc-pslpairs/include.patch b/recipes/ucsc-pslpairs/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-pslpairs/include.patch +++ b/recipes/ucsc-pslpairs/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-pslpairs/meta.yaml b/recipes/ucsc-pslpairs/meta.yaml index 6f627277f1e4a..b581d5d417072 100644 --- a/recipes/ucsc-pslpairs/meta.yaml +++ b/recipes/ucsc-pslpairs/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslpairs" %} {% set program = "pslPairs" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "join paired ends in psl alignments" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From 747ffaab38ca9aaddc26a39bf13e7cb5afd574cd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 13:18:05 -0400 Subject: [PATCH 1105/1589] Update lsabgc to 1.1.1 (#50208) --- recipes/lsabgc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/lsabgc/meta.yaml b/recipes/lsabgc/meta.yaml index c93ee7d7a5a1c..832584c1f03b4 100644 --- a/recipes/lsabgc/meta.yaml +++ b/recipes/lsabgc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "lsabgc" %} -{% set version = "1.1.0" %} +{% set version = "1.1.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Kalan-Lab/lsaBGC-Pan/archive/refs/tags/v{{ version }}.tar.gz - sha256: 93dc9fbd2d3eda70a50efeaa8a234ea2a4aa850ccccb0ed0f2f2a9dc2f9f7e1b + sha256: d926a662a19352c87c7a1c5085936a64b29d6318db2c037370797851eba71617 build: number: 0 From 47bdbe562f4a2945c71bd114494ecee8114202df Mon Sep 17 00:00:00 2001 From: Marcel Martin Date: Tue, 20 Aug 2024 19:26:46 +0200 Subject: [PATCH 1106/1589] Add osx-arm64 build for dnaio (#50207) --- recipes/dnaio/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/dnaio/meta.yaml b/recipes/dnaio/meta.yaml index 0d5e1798c520f..f6b7feb2ad7c2 100644 --- a/recipes/dnaio/meta.yaml +++ b/recipes/dnaio/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 4786dc63614b9f3011463d9ea9d981723dd38d1091a415a557f71d8c74400f38 build: - number: 1 + number: 2 script: "{{ PYTHON }} -m pip install . --no-deps -vv" run_exports: - {{ pin_subpackage('dnaio', max_pin="x") }} @@ -39,5 +39,6 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 recipe-maintainers: - marcelm From 7ef39af62c86eb3ddd3b6dcb8e3a08914a6c189e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 14:19:18 -0400 Subject: [PATCH 1107/1589] Update ms2query to 1.5.3 (#50201) --- recipes/ms2query/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ms2query/meta.yaml b/recipes/ms2query/meta.yaml index 85bdb718e29af..36e618ab5adb8 100644 --- a/recipes/ms2query/meta.yaml +++ b/recipes/ms2query/meta.yaml @@ -1,6 +1,6 @@ {% set name = "ms2query" %} -{% set version = "1.5.2" %} -{% set sha256 = "91ab116457aea8c3e7dd9486d41e78134edd5953941cf64cda327b22cb44a736" %} +{% set version = "1.5.3" %} +{% set sha256 = "d1e79994e2bdee9317d2dc87a8f9360a86ff406a103558024e1f93e0261cd535" %} package: name: {{ name|lower }} From d16a3a01d5da3da74910ff9a03a4eaf5c506d2ff Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 14:19:47 -0400 Subject: [PATCH 1108/1589] Update msweep to 2.1.2 (#50204) --- recipes/msweep/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/msweep/meta.yaml b/recipes/msweep/meta.yaml index 5e02c6d00cb3c..4837f75c902cf 100644 --- a/recipes/msweep/meta.yaml +++ b/recipes/msweep/meta.yaml @@ -1,6 +1,6 @@ {% set name = "mSWEEP" %} -{% set version = "2.1.1" %} -{% set sha256 = "aaa53c770e2881f6ccd89e3e075d8fcd7a500fee67fd5ecf3cda05cc4a547ecb" %} +{% set version = "2.1.2" %} +{% set sha256 = "fd6e384bed01e08a64463d40b7cfba79dc6ba7def60c69b31ca5fc5b55551a22" %} {% set user = "PROBIC" %} package: @@ -12,7 +12,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 skip: true # [osx] run_exports: - {{ pin_subpackage('msweep', max_pin='x') }} From 40b40bedea7fe1c8f4715c511cb761b24048e2c5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 14:20:08 -0400 Subject: [PATCH 1109/1589] Update snakemake-storage-plugin-gcs to 1.1.1 (#50206) --- recipes/snakemake-storage-plugin-gcs/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-storage-plugin-gcs/meta.yaml b/recipes/snakemake-storage-plugin-gcs/meta.yaml index 38445c97fee28..9228b2ed03517 100644 --- a/recipes/snakemake-storage-plugin-gcs/meta.yaml +++ b/recipes/snakemake-storage-plugin-gcs/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-storage-plugin-gcs" %} -{% set version = "1.1.0" %} +{% set version = "1.1.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_storage_plugin_gcs-{{ version }}.tar.gz - sha256: 841ef25be8fa7c6f13b45fd2428c71281e05ef28ce8235f7775e19820fa4564c + sha256: ac6fc6aaf63ec6ae7453e1cb080e07da346ad4497bd2a87947c352f0fb311d31 build: noarch: python From c254cfb1673a0b36ebc8873cdb7f8e2f8a3c9ee1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 14:20:36 -0400 Subject: [PATCH 1110/1589] Update ena-webin-cli to 8.0.0 (#50199) --- recipes/ena-webin-cli/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ena-webin-cli/meta.yaml b/recipes/ena-webin-cli/meta.yaml index cd4dc94fffa01..8a4af45e09e1a 100644 --- a/recipes/ena-webin-cli/meta.yaml +++ b/recipes/ena-webin-cli/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "7.3.1" %} -{% set sha256 = "e6dbb93e8b39c81e53ef96afcba0e958869c95a2d1dda83e1a6077a73f9f4cfb" %} +{% set version = "8.0.0" %} +{% set sha256 = "a5f11f651420aac7b801f4ae611814e4e72f91b4ba25376000408675b3ba3050" %} package: name: ena-webin-cli From f6c21c50c7a227273553ba444dc25462ca2cb74e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 14:21:14 -0400 Subject: [PATCH 1111/1589] Update mgems to 1.3.3 (#50200) --- recipes/mgems/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/mgems/meta.yaml b/recipes/mgems/meta.yaml index f49f8b26161b7..1eed62d36b021 100644 --- a/recipes/mgems/meta.yaml +++ b/recipes/mgems/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mGEMS" %} -{% set version = "1.3.2" %} +{% set version = "1.3.3" %} package: name: {{ name|lower }} @@ -7,10 +7,10 @@ package: source: url: https://github.com/PROBIC/{{ name }}/archive/v{{ version }}.tar.gz - sha256: d655553643200754cbb5c76f1b8d161bece8cb45a8b6e86fea4da65d4f437f9e + sha256: c16db45f575d039ca5219b9bc7b7a4dc4bc3ceb3239b2a61085106d3d666b57a build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('mgems', max_pin="x") }} From b5c2e624cdd4fcb6dd5d7a3fbe9ef7fadbaedace Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 14:22:15 -0400 Subject: [PATCH 1112/1589] Update earlgrey to 4.4.4 (#50194) --- recipes/earlgrey/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/earlgrey/meta.yaml b/recipes/earlgrey/meta.yaml index a122f3844e1a8..85537bedc2ed3 100644 --- a/recipes/earlgrey/meta.yaml +++ b/recipes/earlgrey/meta.yaml @@ -1,6 +1,6 @@ {% set name = "EarlGrey" %} -{% set version = "4.4.1" %} -{% set sha256 = "814020ba4967c5622b0b2c618463f350e6073004d3f40365ea03a46cd94d6e12" %} +{% set version = "4.4.4" %} +{% set sha256 = "53325316215f6e9c4bfbff7c1e404360d3fed32efe01ae2fef55398b5f60931e" %} package: name: {{ name|lower }} From 44097293e70e5e350302e0779fb29dfd572d27d6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 14:22:41 -0400 Subject: [PATCH 1113/1589] Update ensembl-utils to 0.4.2 (#50195) --- recipes/ensembl-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ensembl-utils/meta.yaml b/recipes/ensembl-utils/meta.yaml index 6c5809c20dfae..c686e848afbdb 100644 --- a/recipes/ensembl-utils/meta.yaml +++ b/recipes/ensembl-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ensembl-utils" %} -{% set version = "0.4.1" %} +{% set version = "0.4.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/ensembl_utils-{{ version }}.tar.gz - sha256: 77ec8c4a100df2981f4fb63a9dc13c90c454a8521614c523bfb66f9a273c5d7f + sha256: 32dda9b5f7d95cdc98518e0a6d668b8a7c7c0908f150e4eb0c8efae6ced9956f build: entry_points: From 2760f0103488fba58deb21841d9cc4ea17c0f41b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 14:24:54 -0400 Subject: [PATCH 1114/1589] Update ropebwt3 to 3.4 (#50205) --- recipes/ropebwt3/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ropebwt3/meta.yaml b/recipes/ropebwt3/meta.yaml index 9dda7bde10d1a..0ed874533c07e 100644 --- a/recipes/ropebwt3/meta.yaml +++ b/recipes/ropebwt3/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ropebwt3" %} -{% set version = "3.3" %} +{% set version = "3.4" %} package: name: {{ name }} @@ -12,7 +12,7 @@ build: source: url: https://github.com/lh3/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz - sha256: c16bc6d26c6cdb10b3b1cfdb06f3734c6020e62d72f8c33454eb36520b6c02d3 + sha256: 76741e110e6e5519c16709ddc2ca556ae5ecbb72d8678998b6210a53f1e7c18f requirements: build: From 12ed0da83d832934525c53a0df234245f94b7839 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 15:05:30 -0400 Subject: [PATCH 1115/1589] Update synapseclient to 4.4.1 (#50210) --- recipes/synapseclient/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/synapseclient/meta.yaml b/recipes/synapseclient/meta.yaml index 28541bd233a37..cb72f378a9543 100644 --- a/recipes/synapseclient/meta.yaml +++ b/recipes/synapseclient/meta.yaml @@ -1,5 +1,5 @@ {% set name = "synapseclient" %} -{% set version = "4.4.0" %} +{% set version = "4.4.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/synapseclient-{{ version }}.tar.gz - sha256: 331d0740a8cebf29a231d5ead35cda164fc74d7d3a8470803e623f2c33e897b5 + sha256: fc6ec5a0fd49edf2b05ecd7f69316784a4b813dd0fd259785932c0786d480629 build: noarch: python From 993cc9d8d6030ad7c9023de43ce2df4c7104e808 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 20 Aug 2024 22:05:48 +0300 Subject: [PATCH 1116/1589] ucsc-bigwigmerge: add linux-aarch64 build (#50196) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-bigwigmerge/build.sh | 24 ++++++++++++++++-------- recipes/ucsc-bigwigmerge/include.patch | 6 +++--- recipes/ucsc-bigwigmerge/meta.yaml | 23 ++++++++++++++++------- 4 files changed, 35 insertions(+), 19 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 0979be115ad99..a1d0a9225fc37 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -772,7 +772,6 @@ recipes/ucsc-bedpileups recipes/ucsc-bedrestricttopositions recipes/ucsc-bedtopsl recipes/ucsc-bedweedoverlapping -recipes/ucsc-bigwigmerge recipes/ucsc-blasttopsl recipes/ucsc-catdir recipes/ucsc-catuncomment diff --git a/recipes/ucsc-bigwigmerge/build.sh b/recipes/ucsc-bigwigmerge/build.sh index be5b9c0fd7dd6..370567ebeae32 100644 --- a/recipes/ucsc-bigwigmerge/build.sh +++ b/recipes/ucsc-bigwigmerge/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/bigWigMerge && make) -cp bin/bigWigMerge "$PREFIX/bin" -chmod +x "$PREFIX/bin/bigWigMerge" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/bigWigMerge && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/bigWigMerge "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/bigWigMerge" diff --git a/recipes/ucsc-bigwigmerge/include.patch b/recipes/ucsc-bigwigmerge/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-bigwigmerge/include.patch +++ b/recipes/ucsc-bigwigmerge/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-bigwigmerge/meta.yaml b/recipes/ucsc-bigwigmerge/meta.yaml index f88912eece11c..f640285ef59b8 100644 --- a/recipes/ucsc-bigwigmerge/meta.yaml +++ b/recipes/ucsc-bigwigmerge/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bigwigmerge" %} {% set program = "bigWigMerge" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,10 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} + requirements: build: @@ -25,22 +28,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "Merge together multiple bigWigs into a single output bedGraph." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From 417b85b8253df43a63c28fa39a56275720a43cd5 Mon Sep 17 00:00:00 2001 From: Isaac Overcast Date: Tue, 20 Aug 2024 15:27:09 -0400 Subject: [PATCH 1117/1589] muscle - enable osx-arm64 builds in meta.yaml (#50213) --- recipes/muscle/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/muscle/meta.yaml b/recipes/muscle/meta.yaml index 16e21de4c8ff2..9953f38bd5c3e 100644 --- a/recipes/muscle/meta.yaml +++ b/recipes/muscle/meta.yaml @@ -12,7 +12,7 @@ source: - support-linux-aarch64.patch build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} @@ -35,5 +35,6 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:muscle From 17e94a11fca507595d016b3dcbb8707e3052dcf0 Mon Sep 17 00:00:00 2001 From: Isaac Overcast Date: Tue, 20 Aug 2024 15:35:09 -0400 Subject: [PATCH 1118/1589] cutadapt - Update meta.yaml to add build support for osx-arm64 (#50212) --- recipes/cutadapt/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/cutadapt/meta.yaml b/recipes/cutadapt/meta.yaml index 6c35dd340e3da..b68dacf543faa 100644 --- a/recipes/cutadapt/meta.yaml +++ b/recipes/cutadapt/meta.yaml @@ -9,7 +9,7 @@ source: sha256: da3b45775b07334d2e2580a7b154d19ea7e872f0da813bb1ac2a4da712bfc223 build: - number: 0 + number: 1 script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv" skip: True # [py < 38] run_exports: @@ -45,6 +45,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 recipe-maintainers: - marcelm identifiers: From dab3736c62d67b7f96c488bd8e8a47b668a11d93 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 20 Aug 2024 15:37:34 -0500 Subject: [PATCH 1119/1589] Update last to 1571 (#50216) --- recipes/last/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/last/meta.yaml b/recipes/last/meta.yaml index 5e279008c7b8c..84605ee676679 100644 --- a/recipes/last/meta.yaml +++ b/recipes/last/meta.yaml @@ -1,5 +1,5 @@ {% set name = "LAST" %} -{% set version = "1565" %} +{% set version = "1571" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: "https://gitlab.com/mcfrith/last/-/archive/{{ version }}/last-{{ version }}.tar.gz" - sha256: 68c64fc1370a36a4af4c2ca0572906cf3c7e69c72acc08b5aec594ba15cd2b92 + sha256: c91e99aa98bcb72fe08dada48aa2d8952cf724f2b8beadaa3a35b6f32ce5717c build: number: 0 From ababf6ea0c9e36761479e0b25cc305199b759619 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 21:09:56 -0400 Subject: [PATCH 1120/1589] Update vcfsim to 1.0.16.alpha (#50222) --- recipes/vcfsim/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/vcfsim/meta.yaml b/recipes/vcfsim/meta.yaml index 8e4e84dec1e90..27dbb82d06a37 100644 --- a/recipes/vcfsim/meta.yaml +++ b/recipes/vcfsim/meta.yaml @@ -1,5 +1,5 @@ {% set name = "vcfsim" %} -{% set version = "1.0.15.alpha" %} +{% set version = "1.0.16.alpha" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Pie115/VCFSimulator-SamukLab/archive/{{ version }}.tar.gz - sha256: b69df4b6eb7702a201220b524c3dc6a0caa7573682b74d82a0b31885965b13b4 + sha256: 385640fdee385c6710ba7bda68cedd28f665f3b0d950d400662f3d5aa374ccfa build: noarch: python From 1ccefa296ebd10e2b2bdc3908ceedd7dad8b8f8c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 21:10:10 -0400 Subject: [PATCH 1121/1589] Update fgpyo to 0.7.1 (#50221) * Update fgpyo to 0.7.0 * Update fgpyo to 0.7.1 --- recipes/fgpyo/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/fgpyo/meta.yaml b/recipes/fgpyo/meta.yaml index 31d0d8e75cebd..69a4df4c53ebc 100644 --- a/recipes/fgpyo/meta.yaml +++ b/recipes/fgpyo/meta.yaml @@ -1,5 +1,5 @@ {% set name = "fgpyo" %} -{% set version = "0.6.0" %} +{% set version = "0.7.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/fulcrumgenomics/{{ name }}/archive/refs/tags/{{ version }}.tar.gz - sha256: d9fce324aac3c932cd9253ded6d91c95f09f68729b203cbf9c5dfc429d46cd3a + sha256: 0d0b0d6f2e365c136830e803e4a6d56fe20c6d615a4b857b423f19c51b700bab build: noarch: python From bfb944029a79b3f0e97aaa1d23036f3471f4ddc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Plaza=20O=C3=B1ate?= <4588656+fplazaonate@users.noreply.github.com> Date: Wed, 21 Aug 2024 03:10:32 +0200 Subject: [PATCH 1122/1589] Update bowtie2 to remove TBB dependencies (#50203) * Remove tbb dependencies * Update build number --- recipes/bowtie2/build.sh | 2 +- recipes/bowtie2/meta.yaml | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/recipes/bowtie2/build.sh b/recipes/bowtie2/build.sh index 9e5d8571f36a0..62175c7a09ec7 100644 --- a/recipes/bowtie2/build.sh +++ b/recipes/bowtie2/build.sh @@ -7,7 +7,7 @@ git clone https://github.com/ch4rr0/libsais third_party/libsais LDFLAGS="" make CXX="${CXX}" CXXFLAGS="${CXXFLAGS} -O3" CPP="${CXX} -I${PREFIX}/include" CC="${CC} -L${PREFIX}/lib" \ - CFLAGS="${CFLAGS} -O3" LDLIBS="-L$PREFIX/lib -lz -lzstd -ltbb -ltbbmalloc -lpthread" \ + CFLAGS="${CFLAGS} -O3" LDLIBS="-L$PREFIX/lib -lz -lzstd -lpthread" \ WITH_ZSTD=1 USE_SRA=1 USE_SAIS_OPENMP=1 binaries="\ diff --git a/recipes/bowtie2/meta.yaml b/recipes/bowtie2/meta.yaml index 2e1539e47b234..64a7124009d3a 100644 --- a/recipes/bowtie2/meta.yaml +++ b/recipes/bowtie2/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 841a6a60111b690c11d1e123cb5c11560b4cd1502b5cee7e394fd50f83e74e13 build: - number: 3 + number: 4 run_exports: - {{ pin_subpackage('bowtie2', max_pin="x") }} @@ -25,8 +25,6 @@ requirements: - libgomp # [linux] - zlib - zstd - - tbb-devel - - tbb run: - python - perl From d2cb904d2e4220065ac2297ef8adce50f0bfd5dd Mon Sep 17 00:00:00 2001 From: Arya Massarat <23412689+aryarm@users.noreply.github.com> Date: Tue, 20 Aug 2024 18:14:07 -0700 Subject: [PATCH 1123/1589] Update pgenlib to 0.91.0 (#50220) --- recipes/pgenlib/meta.yaml | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/recipes/pgenlib/meta.yaml b/recipes/pgenlib/meta.yaml index 6310a5f8d966f..a5786127871dc 100644 --- a/recipes/pgenlib/meta.yaml +++ b/recipes/pgenlib/meta.yaml @@ -1,16 +1,16 @@ {% set name = "pgenlib" %} -{% set version = "0.90.2" %} +{% set version = "0.91.0" %} package: name: "{{ name|lower }}" version: "{{ version }}" source: - url: "https://pypi.io/packages/source/P/Pgenlib/Pgenlib-{{ version }}.tar.gz" - sha256: 09825be43ffb25bc68b6e243b98989a5bc35a8aa22cd749fd9f602d778dd6bd0 + url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" + sha256: 32992274214d2e6735b721544abfd0ae0c76906c4193120f7091065b88f68dfa build: - number: 1 + number: 0 script: "{{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation" run_exports: - {{ pin_subpackage('pgenlib', max_pin="x.x") }} @@ -21,12 +21,13 @@ requirements: host: - python - pip - - cython - - numpy + - cython + - numpy >=2.0.0 # [py >= 39] + - numpy # [py < 39] - zlib run: - python - - {{ pin_compatible('numpy') }} + - numpy >=1.19.0 test: imports: @@ -46,3 +47,6 @@ extra: - chrchang identifiers: - doi:10.1186/s13742-015-0047-8 + additional-platforms: + - linux-aarch64 + - osx-arm64 From 92dec41d379f3f1a5ef73e74af5f9af149fa2991 Mon Sep 17 00:00:00 2001 From: Daniel Chang <58645390+danielchang2002@users.noreply.github.com> Date: Tue, 20 Aug 2024 20:14:29 -0500 Subject: [PATCH 1124/1589] Update GMWI2 package (#50218) * :hankey: update gmwi2 package * update gmwi2 package --- recipes/gmwi2/meta.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/recipes/gmwi2/meta.yaml b/recipes/gmwi2/meta.yaml index 1a93956e3f40b..f869ede61ffd9 100644 --- a/recipes/gmwi2/meta.yaml +++ b/recipes/gmwi2/meta.yaml @@ -1,5 +1,5 @@ {% set name = "gmwi2" %} -{% set version = "1.5" %} +{% set version = "1.6" %} package: name: "{{ name }}" @@ -14,7 +14,7 @@ build: source: url: https://github.com/danielchang2002/GMWI2/archive/{{version}}.tar.gz - sha256: de63741ecc88c3d13b4b259a495e938d9b026950e9ff100b6e465f8e0c38a419 + sha256: 0751b5030a8ce51cea924393872ff128d4c76444b980bc41b23b83a310c125b0 requirements: host: @@ -37,7 +37,6 @@ test: commands: - metaphlan --version - gmwi2 --version - - repair.sh --version - fastqc --version - bowtie2 --version - samtools --version From 3f4791205b66660d9dfa6cec62661f5db1e0ca1a Mon Sep 17 00:00:00 2001 From: Arya Massarat <23412689+aryarm@users.noreply.github.com> Date: Tue, 20 Aug 2024 18:26:45 -0700 Subject: [PATCH 1125/1589] cyvcf2: enable osx-arm64 build (#50219) * Build cyvcf2 on macOS ARM * fix m4 error using strategy from https://github.com/bioconda/bioconda-recipes/pull/49911/files#diff-a8287976d0d9721327d70d78d64b03af77911d5a4f6e7691c8d7aa85f2334959R10 --- recipes/cyvcf2/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/cyvcf2/meta.yaml b/recipes/cyvcf2/meta.yaml index 139cbd9408afd..a79b51679e3a0 100644 --- a/recipes/cyvcf2/meta.yaml +++ b/recipes/cyvcf2/meta.yaml @@ -14,11 +14,12 @@ source: - patches/setup.py.patch build: - number: 0 + number: 1 skip: True # [py < 37] script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv script_env: - CFLAGS=-Wno-implicit-function-declaration -Wno-int-conversion # [osx and py == 38] + - M4=$BUILD_PREFIX/bin/m4 # [osx and arm64] entry_points: - cyvcf2 = cyvcf2.__main__:cli run_exports: @@ -67,3 +68,4 @@ extra: - biotools:cyvcf2 additional-platforms: - linux-aarch64 + - osx-arm64 From 27b718f0ce40001093cb2f7f77fb01303555b0c3 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 20 Aug 2024 21:36:07 -0500 Subject: [PATCH 1126/1589] Add recipe for bbmix v0.2.2 (#50224) --- recipes/bbmix/meta.yaml | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 recipes/bbmix/meta.yaml diff --git a/recipes/bbmix/meta.yaml b/recipes/bbmix/meta.yaml new file mode 100644 index 0000000000000..300260eec6617 --- /dev/null +++ b/recipes/bbmix/meta.yaml @@ -0,0 +1,39 @@ +{% set name = "bbmix" %} +{% set version = "0.2.2" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.org/packages/source/{{ name[0] }}/{{ name }}/bbmix-{{ version }}.tar.gz + sha256: 33b8891b4e1f7f1c5059c755ad888af2412b79738ec0cfb2f194ba7329c9bce6 + +build: + number: 0 + noarch: python + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + run_exports: + - {{ pin_subpackage('bbmix', max_pin="x.x") }} + +requirements: + host: + - python >=3 + - pip + run: + - python >=3 + - numpy >=1.9.0 + - scipy >=1.4.0 + - matplotlib-base + +test: + imports: + - bbmix + +about: + home: "https://github.com/statbiomed/betabinmix" + summary: 'BBMix: inference of beta-binomial mixture model' + license: "Apache-2.0" + license_family: APACHE + license_file: LICENSE + dev_url: "https://github.com/statbiomed/betabinmix" From aac62371055acf4b87e2aa6480b1000509b5ef22 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 20 Aug 2024 21:36:16 -0500 Subject: [PATCH 1127/1589] fast-edit-distance: add aarch64/arm64 build (#50223) --- recipes/fast-edit-distance/meta.yaml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/recipes/fast-edit-distance/meta.yaml b/recipes/fast-edit-distance/meta.yaml index f21cf9685a5c5..b47cfdda7a5ee 100644 --- a/recipes/fast-edit-distance/meta.yaml +++ b/recipes/fast-edit-distance/meta.yaml @@ -10,8 +10,8 @@ source: sha256: c3f3913381d8a7a5eb96cef5b31bc69fb19c55b653a98525abc0c4922cd07247 build: - number: 1 - script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation + number: 2 + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir run_exports: - {{ pin_subpackage('fast-edit-distance', max_pin="x") }} @@ -30,9 +30,15 @@ test: - fast_edit_distance about: - home: https://github.com/youyupei/fast_edit_distance + home: "https://github.com/youyupei/fast_edit_distance" license: MIT license_family: MIT license_file: LICENSE - dev_url: https://github.com/youyupei/fast_edit_distance + dev_url: "https://github.com/youyupei/fast_edit_distance" summary: "A implementation of edit distance with improved runtime." + doc_url: "https://github.com/youyupei/fast_edit_distance/blob/v{{ version }}/README.md" + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From e0be58378b39034271bc96dca7071aec2fa8fa47 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 20 Aug 2024 23:00:03 -0500 Subject: [PATCH 1128/1589] Add recipe for mquad v0.1.8b (#50225) * Add recipe for mquad v0.1.8b * edit meta.yaml --- recipes/mquad/meta.yaml | 58 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 recipes/mquad/meta.yaml diff --git a/recipes/mquad/meta.yaml b/recipes/mquad/meta.yaml new file mode 100644 index 0000000000000..1e58632d7b083 --- /dev/null +++ b/recipes/mquad/meta.yaml @@ -0,0 +1,58 @@ +{% set name = "mquad" %} +{% set version = "0.1.8b" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + git_url: https://github.com/single-cell-genetics/MQuad.git + git_rev: c2d750c + sha256: unused + +build: + number: 0 + noarch: python + entry_points: + - mquad = mquad.mquad_CLI:main + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + run_exports: + - {{ pin_subpackage('mquad', max_pin="x.x") }} + +requirements: + host: + - python >=3.8 + - pip + run: + - python >=3.8 + - numpy >=1.9.0 + - scipy >=1.4.0 + - matplotlib-base + - bbmix >=0.2.2 + - vireosnp + - kneed + - pandas + - seaborn-base + - scikit-learn + +test: + imports: + - mquad + commands: + - mquad --help + +about: + home: "https://github.com/aaronkwc/MQuad" + summary: "MQuad: Mixture Model for Mitochondrial Mutation detection in single-cell omics data." + license: "Apache-2.0" + license_family: APACHE + license_file: LICENSE + dev_url: "https://github.com/aaronkwc/MQuad" + doc_url: "https://github.com/single-cell-genetics/MQuad/blob/main/README.rst" + +extra: + identifiers: + - doi:10.1038/s41467-022-28845-0 + - biotools:mquad + skip-lints: + - uses_vcs_url From 527f4411b0fcc61017e12e8d037660b2ba4fd7d8 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 20 Aug 2024 23:26:44 -0500 Subject: [PATCH 1129/1589] update strdust to 0.8.2 (#50191) * update strdust to 0.8.2 * add arm64/aarch64 * update meta.yaml * edit meta.yaml --- recipes/strdust/build.sh | 9 ++++++--- recipes/strdust/meta.yaml | 21 ++++++++++++++------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/recipes/strdust/build.sh b/recipes/strdust/build.sh index 8c7b6970ffe7c..24fd00d92cbae 100644 --- a/recipes/strdust/build.sh +++ b/recipes/strdust/build.sh @@ -1,6 +1,9 @@ #!/bin/bash -euo -export CFLAGS="${CFLAGS} -fcommon" -export CXXFLAGS="${CFLAGS} -fcommon" + +export INCLUDE_PATH="${PREFIX}/include" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 -fcommon" +export CXXFLAGS="${CFLAGS} -O3 -fcommon -I${PREFIX}/include" # build statically linked binary with Rust -RUST_BACKTRACE=1 cargo install --verbose --root $PREFIX --path . +RUST_BACKTRACE=1 cargo install --verbose --root "${PREFIX}" --path . diff --git a/recipes/strdust/meta.yaml b/recipes/strdust/meta.yaml index 281601c6ed233..e4f6df68ce9c7 100644 --- a/recipes/strdust/meta.yaml +++ b/recipes/strdust/meta.yaml @@ -1,30 +1,32 @@ {% set name = "strdust" %} -{% set version = "0.8.0" %} +{% set version = "0.8.2" %} package: name: {{ name }} version: {{ version }} +source: + url: https://github.com/wdecoster/STRdust/archive/refs/tags/v{{ version }}.tar.gz + sha256: 4fd97b05b22870c70a9d41dbcb2f106836f009e3db39bce47921ab6aa9bff100 + build: number: 0 run_exports: - {{ pin_subpackage('strdust', max_pin="x.x") }} -source: - url: https://github.com/wdecoster/strdust/archive/refs/tags/v{{ version }}.tar.gz - sha256: 1b1e0ce34852961066f67020e44ed1716dfb1744488eb9b42b97f6516997cd38 - requirements: build: - - {{ compiler('rust') }} + - {{ compiler('rust') }} - autoconf + - automake + - libtool - make - {{ compiler('cxx') }} - pkg-config - cmake host: + - clangdev - zlib - - clang test: commands: @@ -37,3 +39,8 @@ about: license_file: LICENSE summary: "Tandem repeat genotyper for long reads." dev_url: "https://github.com/wdecoster/STRdust" + doc_url: "https://github.com/wdecoster/STRdust/blob/v{{ version }}/README.md" + +extra: + additional-platforms: + - osx-arm64 From aa0d88e7929e7227dfb17ee1712d4856fb51f952 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 21 Aug 2024 00:37:50 -0400 Subject: [PATCH 1130/1589] Update trackplot to 0.5.1 (#50227) --- recipes/trackplot/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/trackplot/meta.yaml b/recipes/trackplot/meta.yaml index 067aa001ae018..0be965226ae10 100644 --- a/recipes/trackplot/meta.yaml +++ b/recipes/trackplot/meta.yaml @@ -1,5 +1,5 @@ {% set name = "trackplot" %} -{% set version = "0.5.0" %} +{% set version = "0.5.1" %} package: name: trackplot @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 0fede14be97cc6a278d5c9f44a6e1bc51bea15af2aba432bd9654d93338d7015 + sha256: 686735f647e9ffdaab6dad02b56d483385142421928381b2c3d075d9a610ba52 build: noarch: python From 434ce33e9c85b34289e47c5a54c3f7bb4f01261e Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 21 Aug 2024 00:15:50 -0500 Subject: [PATCH 1131/1589] Update bbmap to 39.08 (#50228) * Update bbmap to 39.08 * edit meta.yaml --- recipes/bbmap/build.sh | 6 +++--- recipes/bbmap/meta.yaml | 16 +++++++++------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/recipes/bbmap/build.sh b/recipes/bbmap/build.sh index 3cad42d6b4a27..c7989d9fdf823 100755 --- a/recipes/bbmap/build.sh +++ b/recipes/bbmap/build.sh @@ -12,8 +12,8 @@ mkdir -p $DATA_HOME chmod a+x *.sh -cp -R * $BBMAP_HOME/ +cp -Rf * $BBMAP_HOME/ -find *.sh -type f -exec ln -s $BBMAP_HOME/{} $BINARY_HOME/{} \; +find *.sh -type f -exec ln -sf $BBMAP_HOME/{} $BINARY_HOME/{} \; -cp -R $BBMAP_HOME/resources $DATA_HOME +cp -Rf $BBMAP_HOME/resources $DATA_HOME diff --git a/recipes/bbmap/meta.yaml b/recipes/bbmap/meta.yaml index 7cc8eb01e781e..8a860966e3e3a 100644 --- a/recipes/bbmap/meta.yaml +++ b/recipes/bbmap/meta.yaml @@ -1,17 +1,17 @@ {% set name = "BBMap" %} -{% set version = "39.06" %} -{% set sha256 = "61d45bd59a543b90a143c5c7dbfec0ff6163dce54194b8c4b648fb6aac67d42e" %} +{% set version = "39.08" %} +{% set sha256 = "7250e170aabc6702fb5ea2724e9f9af03bb7085bef8b006a92309e44c3f32f22" %} package: name: {{ name|lower }} version: {{ version }} source: - url: http://downloads.sourceforge.net/project/{{ name|lower }}/{{ name }}_{{ version }}.tar.gz + url: https://downloads.sourceforge.net/project/{{ name|lower }}/{{ name }}_{{ version }}.tar.gz sha256: {{ sha256 }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage(name|lower, max_pin="x") }} @@ -23,10 +23,9 @@ requirements: - pbzip2 - bzip2 - samtools + - patchelf # [osx] run: - openjdk >=7.0 - - pbzip2 - - bzip2 - samtools test: @@ -45,16 +44,19 @@ about: home: https://sourceforge.net/projects/bbmap doc_url: https://jgi.doe.gov/data-and-tools/bbtools/bb-tools-user-guide/ license: "UC-LBL license (see package)" - license_file: license.txt + license_file: "license.txt" summary: "BBMap is a short read aligner, as well as various other bioinformatic tools." + dev_url: https://sourceforge.net/projects/bbmap extra: additional-platforms: - linux-aarch64 + - osx-arm64 notes: | BBMap is a series of Java programs, but they come with a number of custom wrapper shell scripts. Each of these is symlinked to the conda bin directory during install. identifiers: - biotools:bbmap + - usegalaxy-eu:bbtools_bbmap - doi:10.1371/journal.pone.0185056 From c7e70a3c1a63bc090b7cf96a61aa012d96bec189 Mon Sep 17 00:00:00 2001 From: Mary Maranga <38289520+Marysteph@users.noreply.github.com> Date: Wed, 21 Aug 2024 06:45:17 +0100 Subject: [PATCH 1132/1589] Update kleborate to version 3.0.5 (#50229) * update kleborate to version 3.0.5 * clean up recipe --------- Co-authored-by: mencian --- recipes/kleborate/build.sh | 7 -- recipes/kleborate/fix_get_kaptive_path.patch | 41 ------------ recipes/kleborate/meta.yaml | 70 ++++++++++++-------- 3 files changed, 41 insertions(+), 77 deletions(-) delete mode 100644 recipes/kleborate/build.sh delete mode 100644 recipes/kleborate/fix_get_kaptive_path.patch diff --git a/recipes/kleborate/build.sh b/recipes/kleborate/build.sh deleted file mode 100644 index 2ce65676732d8..0000000000000 --- a/recipes/kleborate/build.sh +++ /dev/null @@ -1,7 +0,0 @@ -#! /bin/bash - -$PYTHON -m pip install . --ignore-installed --no-deps -vv - -# Make blastdbs of Kleborate data -# Allows containters to be usable - $PREFIX/bin/kleborate -a kleborate/data/Klebsiella_pneumoniae.fasta --all diff --git a/recipes/kleborate/fix_get_kaptive_path.patch b/recipes/kleborate/fix_get_kaptive_path.patch deleted file mode 100644 index 4b751f16ef396..0000000000000 --- a/recipes/kleborate/fix_get_kaptive_path.patch +++ /dev/null @@ -1,41 +0,0 @@ -From e897aa05e7981515ce4f34f46f1103c44c97844a Mon Sep 17 00:00:00 2001 -From: "Robert A. Petit III" -Date: Sat, 17 Jul 2021 01:44:51 -0600 -Subject: [PATCH] Update kaptive.py - ---- - kleborate/kaptive.py | 11 +++++------ - 1 file changed, 5 insertions(+), 6 deletions(-) - -diff --git a/kleborate/kaptive.py b/kleborate/kaptive.py -index 53c2fa8..729a84d 100644 ---- a/kleborate/kaptive.py -+++ b/kleborate/kaptive.py -@@ -15,22 +15,21 @@ - import os - import subprocess - import sys -+import shutil - import tempfile - - - def get_kaptive_paths(): -- this_file = os.path.realpath(__file__) -- kaptive_dir = os.path.join(os.path.dirname(os.path.dirname(this_file)), 'kaptive') -+ kaptive_py = shutil.which('kaptive.py') -+ kaptive_dir = os.path.join(os.path.dirname(os.path.dirname(kaptive_py)), 'opt/kaptive_reference_database') - if not os.path.isdir(kaptive_dir): - sys.exit('Error: could not find Kaptive directory. Did you git clone with --recursive?') -- kaptive_py = os.path.join(kaptive_dir, 'kaptive.py') - if not os.path.isfile(kaptive_py): - sys.exit('Error: could not find kaptive.py') -- db_dir = os.path.join(kaptive_dir, 'reference_database') -- kaptive_k_db = os.path.join(db_dir, 'Klebsiella_k_locus_primary_reference.gbk') -+ kaptive_k_db = os.path.join(kaptive_dir, 'Klebsiella_k_locus_primary_reference.gbk') - if not os.path.isfile(kaptive_k_db): - sys.exit('Error: could not find Klebsiella_k_locus_primary_reference.gbk') -- kaptive_o_db = os.path.join(db_dir, 'Klebsiella_o_locus_primary_reference.gbk') -+ kaptive_o_db = os.path.join(kaptive_dir, 'Klebsiella_o_locus_primary_reference.gbk') - if not os.path.isfile(kaptive_o_db): - sys.exit('Error: could not find Klebsiella_o_locus_primary_reference.gbk') - return kaptive_py, kaptive_k_db, kaptive_o_db diff --git a/recipes/kleborate/meta.yaml b/recipes/kleborate/meta.yaml index f245e9ce9cba7..27fb373a71952 100644 --- a/recipes/kleborate/meta.yaml +++ b/recipes/kleborate/meta.yaml @@ -1,47 +1,59 @@ -{% set name = "Kleborate" %} -{% set version = "2.3.2" %} +{% set name = "kleborate" %} +{% set version = "3.0.5" %} package: - name: {{ name|lower }} - version: {{ version }} + name: "{{ name|lower }}" + version: "{{ version }}" source: - url: https://github.com/katholt/{{ name }}/archive/v{{ version }}.tar.gz - sha256: da7cb9a27ddba4e5440063e2d4a0c4a9f9e668a65ae9f019db126dc5b10d7002 - patches: - - fix_get_kaptive_path.patch + url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/kleborate-{{ version }}.tar.gz" + sha256: 8f044b9422334912e4800003312ee112dca649a06533ad562681a2c162090a4e build: - noarch: python number: 0 + noarch: python + entry_points: + - kleborate = kleborate.__main__:main + script: + - {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + run_exports: + - {{ pin_subpackage('kleborate', max_pin='x') }} requirements: host: - - python >=3.7 - - biopython >=1.73,<1.78 - - kaptive - - blast >=2.2.31 - - mash + - pip + - python >=3.9 run: - - python >=3.7 - - biopython >=1.73,<1.78 - - kaptive - - blast >=2.2.31 + - python >=3.9 + - biopython >=1.83 + - numpy >=1.22 + - dna_features_viewer + - minimap2 - mash + - kaptive test: + imports: + - kleborate commands: - - kaptive.py -h - - kleborate -h - - kleborate -a $(which kleborate | sed 's=bin/kleborate=opt/kaptive_reference_database/exact_match.fasta=') + - kaptive --help + - minimap2 --help + - kleborate --help about: - home: https://github.com/katholt/Kleborate - license: GNU General Public License v3 or later (GPLv3+) - license_file: LICENSE - summary: 'Screening Klebsiella genome assemblies for MLST, sub-species, and other Klebsiella related genes of interest' - long_summary: 'A tool to screen Klebsiella genome assembiles for: MLST sequence type, - species (e.g. K. pneumoniae, K. quasipneumoniae, K. variicola, etc.), - ICEKp associated virulence loci: yersiniabactin (ybt), colibactin (clb), virulence plasmid associated loci: salmochelin (iro), aerobactin (iuc), hypermucoidy (rmpA, rmpA2), antimicrobial resistance genes, including quinolone resistance SNPs and colistin resistance truncations, - and K (capsule) and O antigen (LPS) serotype prediction, via wzi alleles and Kaptive.' + home: "https://kleboratemodular.readthedocs.io" + dev_url: "https://github.com/klebgenomics/KleborateModular" + summary: "Kleborate: a tool for typing and screening pathogen genome assemblies" + license: "GPL-3.0-or-later" license_family: GPL3 + license_file: LICENSE + doc_url: "https://kleboratemodular.readthedocs.io" + +extra: + recipe-maintainers: + - Marysteph + identifiers: + - doi:10.1038/s41467-021-24448-3 + - doi:10.1099/mgen.0.000102 + - biotools:kleborate + - usegalaxy-eu:kleborate From f669c173797936767cac3cb24134a49b19a9b1a3 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 21 Aug 2024 02:57:47 -0500 Subject: [PATCH 1133/1589] python-hyphy-python: add aarch64/arm64 build (#50232) * python-hyphy-python: add aarch64/arm64 build * remove build_failure * edit meta.yaml * edit meta.yaml --- recipes/python-hyphy-python/build.sh | 11 +- .../build_failure.osx-64.yaml | 106 ------------------ recipes/python-hyphy-python/meta.yaml | 11 +- 3 files changed, 20 insertions(+), 108 deletions(-) delete mode 100644 recipes/python-hyphy-python/build_failure.osx-64.yaml diff --git a/recipes/python-hyphy-python/build.sh b/recipes/python-hyphy-python/build.sh index b730382f43da8..b94675ce4307c 100644 --- a/recipes/python-hyphy-python/build.sh +++ b/recipes/python-hyphy-python/build.sh @@ -1,4 +1,13 @@ #!/bin/bash +if [[ `uname` == "Darwin" ]]; then + export CFLAGS="${CFLAGS} -O3 -Wno-register ${LDFLAGS} -L${PREFIX}/lib" + export CXXFLAGS="${CXXFLAGS} -O3 -Wno-register -I${PREFIX}/include" +else + export CFLAGS="${CFLAGS} -O3 ${LDFLAGS} -L${PREFIX}/lib" + export CXXFLAGS="${CXXFLAGS} -O3 -I${PREFIX}/include" +fi + sed -i.bak "s#\['cc',#\['${CC}',#" setup.py -$PYTHON -m pip install --no-deps --no-build-isolation --no-cache-dir . -vvv +rm -rf *.bak +${PYTHON} -m pip install --no-deps --no-build-isolation --no-cache-dir . -vvv diff --git a/recipes/python-hyphy-python/build_failure.osx-64.yaml b/recipes/python-hyphy-python/build_failure.osx-64.yaml deleted file mode 100644 index c6c2a9fdf8ffb..0000000000000 --- a/recipes/python-hyphy-python/build_failure.osx-64.yaml +++ /dev/null @@ -1,106 +0,0 @@ -recipe_sha: 9b6d23eff98464edd992ec32bd7c3ff644959f5687e570ec142d21f5676ac7eb # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |- - Key: - - R :: Reversible A :: Applicable - Y :: Build-prefix patch in use M :: Minimal, non-amalgamated - D :: Dry-runnable N :: Patch level (1 is preferred) - L :: Patch level not-ambiguous O :: Patch applies without offsets - V :: Patch applies without fuzz E :: Patch applies without emitting to stderr - - source tree in: /opt/mambaforge/envs/bioconda/conda-bld/python-hyphy-python_1717954358254/work - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/python-hyphy-python_1717954358254/work/conda_build.sh']' returned non-zero exit status 1. - export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/python-hyphy-python_1717954358254/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac - export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/python-hyphy-python_1717954358254/_build_env - export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/python-hyphy-python_1717954358254/work - INFO: activate_clang_osx-64.sh made the following environmental changes: - AR=x86_64-apple-darwin13.4.0-ar - AS=x86_64-apple-darwin13.4.0-as - CC=x86_64-apple-darwin13.4.0-clang - CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/python-hyphy-python-0.1.12 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms - CLANG=x86_64-apple-darwin13.4.0-clang - CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin - CMAKE_PREFIX_PATH=:$PREFIX - CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 - CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 - CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 - DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/python-hyphy-python-0.1.12 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - HOST=x86_64-apple-darwin13.4.0 - INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool - LD=x86_64-apple-darwin13.4.0-ld - LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib - LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib - LIBTOOL=x86_64-apple-darwin13.4.0-libtool - LIPO=x86_64-apple-darwin13.4.0-lipo - MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib - NM=x86_64-apple-darwin13.4.0-nm - NMEDIT=x86_64-apple-darwin13.4.0-nmedit - OBJC=x86_64-apple-darwin13.4.0-clang - OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - OTOOL=x86_64-apple-darwin13.4.0-otool - PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff - RANLIB=x86_64-apple-darwin13.4.0-ranlib - REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding - SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk - SEGEDIT=x86_64-apple-darwin13.4.0-segedit - SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table - SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack - SIZE=x86_64-apple-darwin13.4.0-size - STRINGS=x86_64-apple-darwin13.4.0-strings - STRIP=x86_64-apple-darwin13.4.0-strip - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 - ac_cv_func_malloc_0_nonnull=yes - ac_cv_func_realloc_0_nonnull=yes - build_alias=x86_64-apple-darwin13.4.0 - host_alias=x86_64-apple-darwin13.4.0 - INFO: activate_clangxx_osx-64.sh made the following environmental changes: - CLANGXX=x86_64-apple-darwin13.4.0-clang - CXX=x86_64-apple-darwin13.4.0-clang - CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/python-hyphy-python-0.1.12 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/python-hyphy-python-0.1.12 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - Using pip 24.0 from $PREFIX/lib/python3.11/site-packages/pip (python 3.11) - Non-user install because user site-packages disabled - Ignoring indexes: https://pypi.org/simple - Created temporary directory: /private/tmp/pip-build-tracker-tzf9rnlr - Initialized build tracking at /private/tmp/pip-build-tracker-tzf9rnlr - Created build tracker: /private/tmp/pip-build-tracker-tzf9rnlr - Entered build tracker: /private/tmp/pip-build-tracker-tzf9rnlr - Created temporary directory: /private/tmp/pip-install-p_4x3igj - Created temporary directory: /private/tmp/pip-ephem-wheel-cache-16ns09mm - Processing $SRC_DIR - Added file://$SRC_DIR to build tracker '/private/tmp/pip-build-tracker-tzf9rnlr' - Running setup.py (path:$SRC_DIR/setup.py) egg_info for package from file://$SRC_DIR - Created temporary directory: /private/tmp/pip-pip-egg-info-8h0kbd0v - Preparing metadata (setup.py): started - Preparing metadata (setup.py): finished with status 'done' - Source in $SRC_DIR has version 0.1.12, which satisfies requirement hyphy-python==0.1.12 from file://$SRC_DIR - Removed hyphy-python==0.1.12 from file://$SRC_DIR from build tracker '/private/tmp/pip-build-tracker-tzf9rnlr' - Created temporary directory: /private/tmp/pip-unpack-t7w8az6b - Building wheels for collected packages: hyphy-python - Created temporary directory: /private/tmp/pip-wheel-9pwlzrmu - Building wheel for hyphy-python (setup.py): started - Destination directory: /private/tmp/pip-wheel-9pwlzrmu - Building wheel for hyphy-python (setup.py): finished with status 'error' - Running setup.py clean for hyphy-python - Failed to build hyphy-python - Exception information: - Traceback (most recent call last): - File "$PREFIX/lib/python3.11/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper - status = run_func(*args) - ^^^^^^^^^^^^^^^ - File "$PREFIX/lib/python3.11/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper - return func(self, options, args) - ^^^^^^^^^^^^^^^^^^^^^^^^^ - File "$PREFIX/lib/python3.11/site-packages/pip/_internal/commands/install.py", line 429, in run - raise InstallationError( - pip._internal.exceptions.InstallationError: Could not build wheels for hyphy-python, which is required to install pyproject.toml-based projects - Removed build tracker: '/private/tmp/pip-build-tracker-tzf9rnlr' -# Last 100 lines of the build log. -category: |- - compiler error diff --git a/recipes/python-hyphy-python/meta.yaml b/recipes/python-hyphy-python/meta.yaml index 363041fc44b05..6d17c7fcfe6e9 100644 --- a/recipes/python-hyphy-python/meta.yaml +++ b/recipes/python-hyphy-python/meta.yaml @@ -12,7 +12,7 @@ source: - 0001-importlib.patch build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('python-hyphy-python', max_pin="x.x") }} @@ -28,6 +28,8 @@ requirements: - libcurl run: - python + - llvm-openmp # [osx] + - libgomp # [linux] test: imports: @@ -40,3 +42,10 @@ about: license_file: LICENSE summary: 'HyPhy package interface library' dev_url: "https://github.com/veg/hyphy-python" + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 + identifiers: + - biotools:HyPhy From 4bfaefca3f8c26ddfc29fc8a68588b28e7997ccf Mon Sep 17 00:00:00 2001 From: Zilong-Li Date: Wed, 21 Aug 2024 10:35:15 +0200 Subject: [PATCH 1134/1589] Update build.sh of quilt 2.0.0 (#50230) * Update build.sh of quilt 2.0.0 * update meta.yaml * minor edits to retrigger CI --------- Co-authored-by: mencian Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/r-quilt/build.sh | 13 +++++++++---- recipes/r-quilt/meta.yaml | 10 ++++++---- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/recipes/r-quilt/build.sh b/recipes/r-quilt/build.sh index cc2b41e684b9d..b40cab9ea78ae 100644 --- a/recipes/r-quilt/build.sh +++ b/recipes/r-quilt/build.sh @@ -2,11 +2,16 @@ set -xe +mkdir -p $PREFIX/bin + export LC_ALL=C.UTF-8 export LANG=C.UTF-8 -cp $SRC_DIR/QUILT.R $PREFIX/bin/ -cd $SRC_DIR/QUILT - -${R} CMD INSTALL --build --install-tests . +cp -rf $SRC_DIR/QUILT.R $PREFIX/bin/ +cp -rf $SRC_DIR/QUILT_prepare_reference.R $PREFIX/bin/ +cp -rf $SRC_DIR/QUILT_HLA_prepare_reference.R $PREFIX/bin/ +cp -rf $SRC_DIR/QUILT2.R $PREFIX/bin/ +cp -rf $SRC_DIR/QUILT2_prepare_reference.R $PREFIX/bin/ +cd $SRC_DIR/QUILT +${R} CMD INSTALL --build --install-tests . ${R_ARGS} diff --git a/recipes/r-quilt/meta.yaml b/recipes/r-quilt/meta.yaml index 743be5ba3c764..b18e2ef0e20cd 100644 --- a/recipes/r-quilt/meta.yaml +++ b/recipes/r-quilt/meta.yaml @@ -1,8 +1,9 @@ +{% set name = "r-quilt" %} {% set version = "2.0.0" %} {% set sha256 = "723c52371fd8c495a54165b168db70d8c4ce001cd4dc902e63db0240318e8a6e" %} package: - name: r-quilt + name: '{{ name }}' version: '{{ version }}' source: @@ -10,7 +11,7 @@ source: sha256: '{{ sha256 }}' build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('r-quilt', max_pin="x") }} @@ -38,12 +39,13 @@ test: commands: - $R -e "library('QUILT'); testthat::test_package('QUILT', stop_on_failure = TRUE, stop_on_warning = TRUE, filter = 'acceptance-one', reporter = 'summary')" - 'QUILT.R --help' + about: home: https://github.com/rwdavies/quilt - license: GPL-3.0-only + license: "GPL-3.0-only" license_family: GPL3 license_file: LICENSE - summary: Rapid and accurate genotype imputation from low coverage short read, long read, and cell free DNA sequence + summary: "Rapid and accurate genotype imputation from low coverage short read, long read, and cell free DNA sequence." doc_url: https://github.com/rwdavies/quilt dev_url: https://github.com/rwdavies/quilt From 38ecc959fe6112ac9eaa23a903cc0fc8be310536 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 21 Aug 2024 03:38:12 -0500 Subject: [PATCH 1135/1589] whatshap: add arm64 build (#50231) * whatshap: add arm64 build * minor edits to retrigger CI --- recipes/whatshap/build_failure.linux-64.yaml | 105 ------------------ .../whatshap/build_failure.linux-aarch64.yaml | 105 ------------------ recipes/whatshap/meta.yaml | 31 ++++-- 3 files changed, 19 insertions(+), 222 deletions(-) delete mode 100644 recipes/whatshap/build_failure.linux-64.yaml delete mode 100644 recipes/whatshap/build_failure.linux-aarch64.yaml diff --git a/recipes/whatshap/build_failure.linux-64.yaml b/recipes/whatshap/build_failure.linux-64.yaml deleted file mode 100644 index 0c20579f0ddd7..0000000000000 --- a/recipes/whatshap/build_failure.linux-64.yaml +++ /dev/null @@ -1,105 +0,0 @@ -recipe_sha: 9b572de4ff8373a2d807ddec40dc17bf503ae9bc41ed9e9afa694c1b3fc643d8 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -category: dependency issue -log: |2- - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions - precs = _install_actions(prefix, index, specs)["LINK"] - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions - txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction - unlink_precs, link_precs = self.solve_for_diff( - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff - final_precs = self.solve_final_state( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state - out_state = self._solving_loop(in_state, out_state, index) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop - solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt - new_conflicts = self._maybe_raise_for_problems( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("zstandard"), MatchSpec("xopen==1.7.0=py312h7900ff3_3")} - Encountered problems while solving: - - package xopen-1.7.0-py312h7900ff3_3 requires zstandard, but none of the providers can be installed - - Could not solve for environment specs - The following packages are incompatible - [32mpysam >=0.18 [0m is installable with the potential options - [32mpysam 0.22.1[0m would require - [32mlibcurl >=8.8.0,<9.0a0 [0m, which requires - [32mzstd >=1.5.6,<1.6.0a0 [0m, which can be installed; - [32mpysam [0.18.0|0.19.0|0.19.1|0.20.0][0m would require - [32mpython_abi 2.7.* *_cp27mu[0m, which can be installed; - [32mpysam [0.18.0|0.19.0|0.19.1|0.20.0|0.21.0][0m would require - [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; - [32mpysam [0.18.0|0.19.0|0.19.1|0.20.0|0.21.0][0m would require - [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; - [32mpysam [0.18.0|0.19.0|...|0.22.1][0m would require - [32mpython_abi 3.8.* *_cp38[0m, which can be installed; - [32mpysam [0.18.0|0.19.0|...|0.22.1][0m would require - [32mpython_abi 3.9.* *_cp39[0m, which can be installed; - [32mpysam [0.19.1|0.20.0|0.21.0|0.22.0|0.22.1][0m would require - [32mpython_abi 3.10.* *_cp310[0m, which can be installed; - [32mpysam 0.22.1[0m would require - [32mpython_abi 3.11.* *_cp311[0m, which can be installed; - [31mpython_abi 3.12.* *_cp312[0m is not installable because it conflicts with any installable versions previously reported; - [32mxopen >=1.2.0 [0m is installable with the potential options - [32mxopen 1.2.0[0m would require - [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; - [32mxopen [1.2.0|1.2.1|...|1.6.0][0m would require - [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; - [32mxopen [1.2.0|1.2.1|...|1.6.0][0m would require - [32mpython_abi 3.7 *_pypy37_pp73[0m, which can be installed; - [32mxopen [1.2.0|1.2.1|...|2.0.1][0m would require - [32mpython_abi 3.8.* *_cp38[0m, which can be installed; - [32mxopen [1.2.0|1.2.1|...|2.0.1][0m would require - [32mpython_abi 3.9.* *_cp39[0m, which can be installed; - [32mxopen [1.2.1|1.3.0|...|2.0.1][0m would require - [32mpython_abi 3.10.* *_cp310[0m, which can be installed; - [32mxopen [1.6.0|1.7.0|1.8.0|1.9.0|2.0.1][0m would require - [32mpython_abi 3.11.* *_cp311[0m, which can be installed; - [32mxopen [1.7.0|1.8.0|1.9.0|2.0.1][0m would require - [32mzstandard[0m with the potential options - [32mzstandard [0.10.2|0.11.0|...|0.8.1][0m would require - [32mpython_abi * *_cp27mu[0m, which can be installed; - [32mzstandard [0.10.2|0.11.0|...|0.8.1][0m would require - [32mpython_abi * *_cp36m[0m, which can be installed; - [32mzstandard [0.10.2|0.11.0|0.11.1|0.12.0|0.13.0][0m would require - [32mpython_abi * *_cp37m[0m, which can be installed; - [32mzstandard [0.12.0|0.13.0][0m would require - [32mpython_abi * *_cp38[0m, which can be installed; - [32mzstandard [0.14.0|0.14.1|0.15.1|0.15.2][0m would require - [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; - [32mzstandard [0.14.0|0.14.1|0.15.1|0.15.2][0m would require - [32mpython_abi 3.6 *_pypy36_pp73[0m, which can be installed; - [32mzstandard [0.14.0|0.14.1|...|0.18.0][0m would require - [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; - [32mzstandard [0.14.0|0.14.1|...|0.22.0][0m would require - [32mpython_abi 3.8.* *_cp38[0m, which can be installed; - [32mzstandard [0.14.0|0.14.1|...|0.22.0][0m would require - [32mpython_abi 3.9.* *_cp39[0m, which can be installed; - [32mzstandard [0.14.1|0.15.1|0.15.2|0.16.0|0.17.0][0m would require - [32mpython_abi 3.7 *_pypy37_pp73[0m, which can be installed; - [32mzstandard [0.16.0|0.17.0|...|0.22.0][0m would require - [32mpython_abi 3.10.* *_cp310[0m, which can be installed; - [32mzstandard [0.17.0|0.18.0|0.19.0][0m would require - [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; - [32mzstandard [0.17.0|0.18.0|0.19.0|0.21.0|0.22.0][0m would require - [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed; - [32mzstandard [0.18.0|0.19.0|0.21.0|0.22.0][0m would require - [32mpython_abi 3.11.* *_cp311[0m, which can be installed; - [32mzstandard 0.8.1[0m would require - [32mpython_abi * *_cp35m[0m, which can be installed; - [31mzstandard [0.21.0|0.22.0][0m would require - [31mzstd >=1.5.5,<1.5.6.0a0 [0m, which conflicts with any installable versions previously reported; - [32mxopen 1.7.0[0m would require - [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; - [32mxopen [1.7.0|1.8.0|1.9.0|2.0.1][0m would require - [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed. -# Last 100 lines of the build log. diff --git a/recipes/whatshap/build_failure.linux-aarch64.yaml b/recipes/whatshap/build_failure.linux-aarch64.yaml deleted file mode 100644 index 286d834638539..0000000000000 --- a/recipes/whatshap/build_failure.linux-aarch64.yaml +++ /dev/null @@ -1,105 +0,0 @@ -recipe_sha: 9b572de4ff8373a2d807ddec40dc17bf503ae9bc41ed9e9afa694c1b3fc643d8 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -category: dependency issue -log: |2- - - Traceback (most recent call last): - File "/opt/conda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build - create_build_envs(top_level_pkg, notest) - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs - raise e - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs - environ.get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions - precs = _install_actions(prefix, index, specs)["LINK"] - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions - txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction - unlink_precs, link_precs = self.solve_for_diff( - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff - final_precs = self.solve_final_state( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state - out_state = self._solving_loop(in_state, out_state, index) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop - solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt - new_conflicts = self._maybe_raise_for_problems( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-aarch64: {MatchSpec("xopen==1.7.0=py312h8025657_3"), MatchSpec("zstandard")} - Encountered problems while solving: - - package xopen-1.7.0-py312h8025657_3 requires zstandard, but none of the providers can be installed - - Could not solve for environment specs - The following packages are incompatible - [32mpysam >=0.18 [0m is installable with the potential options - [32mpysam 0.22.1[0m would require - [32mlibcurl >=8.8.0,<9.0a0 [0m, which requires - [32mzstd >=1.5.6,<1.6.0a0 [0m, which can be installed; - [32mpysam [0.22.0|0.22.1][0m would require - [32mpython_abi 3.10.* *_cp310[0m, which can be installed; - [32mpysam [0.22.0|0.22.1][0m would require - [32mpython_abi 3.8.* *_cp38[0m, which can be installed; - [32mpysam [0.22.0|0.22.1][0m would require - [32mpython_abi 3.9.* *_cp39[0m, which can be installed; - [32mpysam 0.22.1[0m would require - [32mpython_abi 3.11.* *_cp311[0m, which can be installed; - [31mpython_abi 3.12.* *_cp312[0m is not installable because it conflicts with any installable versions previously reported; - [32mxopen >=1.2.0 [0m is installable with the potential options - [32mxopen [1.7.0|1.8.0|1.9.0|2.0.1][0m would require - [32mpython_abi 3.10.* *_cp310[0m, which can be installed; - [32mxopen [1.7.0|1.8.0|1.9.0|2.0.1][0m would require - [32mpython_abi 3.11.* *_cp311[0m, which can be installed; - [32mxopen [1.7.0|1.8.0|1.9.0|2.0.1][0m would require - [32mzstandard[0m with the potential options - [32mzstandard [0.12.0|0.13.0][0m would require - [32mpython_abi * *_cp36m[0m, which can be installed; - [32mzstandard [0.12.0|0.13.0][0m would require - [32mpython_abi * *_cp37m[0m, which can be installed; - [32mzstandard [0.12.0|0.13.0][0m would require - [32mpython_abi * *_cp38[0m, which can be installed; - [32mzstandard [0.14.0|0.14.1|0.15.1|0.15.2][0m would require - [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; - [32mzstandard [0.14.0|0.14.1|0.15.1|0.15.2][0m would require - [32mpython_abi 3.6 *_pypy36_pp73[0m, which can be installed; - [32mzstandard [0.14.0|0.14.1|...|0.18.0][0m would require - [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; - [32mzstandard [0.14.0|0.14.1|...|0.22.0][0m would require - [32mpython_abi 3.8.* *_cp38[0m, which can be installed; - [32mzstandard [0.14.0|0.14.1|...|0.22.0][0m would require - [32mpython_abi 3.9.* *_cp39[0m, which can be installed; - [32mzstandard [0.14.1|0.15.1|0.15.2|0.16.0|0.17.0][0m would require - [32mpython_abi 3.7 *_pypy37_pp73[0m, which can be installed; - [32mzstandard [0.16.0|0.17.0|...|0.22.0][0m would require - [32mpython_abi 3.10.* *_cp310[0m, which can be installed; - [32mzstandard [0.17.0|0.18.0|0.19.0][0m would require - [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; - [32mzstandard [0.17.0|0.18.0|0.19.0|0.21.0|0.22.0][0m would require - [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed; - [32mzstandard [0.18.0|0.19.0|0.21.0|0.22.0][0m would require - [32mpython_abi 3.11.* *_cp311[0m, which can be installed; - [31mzstandard [0.21.0|0.22.0][0m would require - [31mzstd >=1.5.5,<1.5.6.0a0 [0m, which conflicts with any installable versions previously reported; - [32mxopen [1.7.0|1.8.0|1.9.0|2.0.1][0m would require - [32mpython_abi 3.8.* *_cp38[0m, which can be installed; - [32mxopen [1.7.0|1.8.0|1.9.0][0m would require - [32mpython_abi 3.9.* *_cp39[0m, which can be installed; - [32mxopen [1.7.0|1.8.0|1.9.0][0m would require - [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed. -# Last 100 lines of the build log. diff --git a/recipes/whatshap/meta.yaml b/recipes/whatshap/meta.yaml index bf85a3c4c3e1f..60ae860a8702e 100644 --- a/recipes/whatshap/meta.yaml +++ b/recipes/whatshap/meta.yaml @@ -1,16 +1,19 @@ +{% set name = "whatshap" %} +{% set version = "2.3" %} + package: - name: whatshap - version: "2.3" + name: {{ name }} + version: {{ version }} source: url: https://files.pythonhosted.org/packages/37/99/7f156642064fe65aabbe6fa044a485e2aae6437dd545a9d539c06c1535dd/whatshap-2.3.tar.gz sha256: 1f7ac47b18784b213492e4b92dddc63132d371b2f353660462536bcadc15e62e build: - number: 1 - # Unexplicable CI failure, feel free to try to make this work again - skip: true # [osx] - script: python -m pip install --no-deps --ignore-installed . + number: 2 + script_env: + - SETUPTOOLS_SCM_PRETEND_VERSION={{ version }} + script: {{ PYTHON }} -m pip install --no-deps --no-build-isolation --no-cache-dir . -vvv run_exports: - {{ pin_subpackage('whatshap', max_pin="x") }} @@ -21,13 +24,12 @@ requirements: - python - pip - cython - - setuptools - setuptools-scm run: - python - pysam >=0.18 - pyfaidx >=0.5.5.2 - - networkx >=2.4 + - networkx - biopython >=1.73 - scipy - xopen >=1.2.0 @@ -40,16 +42,21 @@ test: imports: - whatshap commands: - - whatshap --help > /dev/null + - "whatshap --help > /dev/null" about: - home: https://whatshap.readthedocs.io/ - license: MIT License - summary: 'phase genomic variants using DNA sequencing reads (haplotype assembly)' + home: "https://whatshap.readthedocs.io" + license: MIT + license_family: MIT + license_file: LICENSE + summary: "Phase genomic variants using DNA sequencing reads (haplotype assembly)." + dev_url: "https://github.com/whatshap/whatshap" + doc_url: "https://whatshap.readthedocs.io" extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:whatshap - doi:10.1089/cmb.2014.0157 From 1119fd943b3ad56308176acbd96872326822153c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 21 Aug 2024 05:02:45 -0400 Subject: [PATCH 1136/1589] Update r-signac to 1.14.0 (#50233) * Update r-signac to 1.14.0 * edit meta.yaml --------- Co-authored-by: mencian --- recipes/r-signac/build.sh | 2 +- recipes/r-signac/meta.yaml | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/recipes/r-signac/build.sh b/recipes/r-signac/build.sh index fa2264035f2b0..d1df318472b53 100644 --- a/recipes/r-signac/build.sh +++ b/recipes/r-signac/build.sh @@ -6,7 +6,7 @@ if [[ ${target_platform} =~ linux.* ]] || [[ ${target_platform} == win-32 ]] || export DISABLE_AUTOBREW=1 mv DESCRIPTION DESCRIPTION.old grep -va '^Priority: ' DESCRIPTION.old > DESCRIPTION - ${R} CMD INSTALL --build . + ${R} CMD INSTALL --build . ${R_ARGS} else mkdir -p "${PREFIX}"/lib/R/library/Signac mv ./* "${PREFIX}"/lib/R/library/Signac diff --git a/recipes/r-signac/meta.yaml b/recipes/r-signac/meta.yaml index ed619910d09f3..6bc0eb3d6e0cb 100644 --- a/recipes/r-signac/meta.yaml +++ b/recipes/r-signac/meta.yaml @@ -1,14 +1,15 @@ -{% set version = '1.13.0' %} +{% set name = "r-signac" %} +{% set version = '1.14.0' %} package: - name: r-signac + name: {{ name }} version: {{ version|replace("-", "_") }} source: url: - {{ cran_mirror }}/src/contrib/Signac_{{ version }}.tar.gz - {{ cran_mirror }}/src/contrib/Archive/Signac/Signac_{{ version }}.tar.gz - sha256: d9b4103c6437391834b2d9e2aab8829f186b6e09d070dfe2a66cc12583241b2a + sha256: e0aad9e2c27c148fdd376081c2de1e3db46b1835eac83ef41fe562e08363c59e build: number: 0 @@ -34,7 +35,7 @@ requirements: - r-rcpproll - bioconductor-rsamtools - bioconductor-s4vectors - - r-seuratobject >=4.0.0 + - r-seuratobject >=5.0.2 - r-data.table - r-dplyr >=1.0.0 - r-fastmatch @@ -61,7 +62,7 @@ requirements: - r-rcpproll - bioconductor-rsamtools - bioconductor-s4vectors - - r-seuratobject >=4.0.0 + - r-seuratobject >=5.0.2 - r-data.table - r-dplyr >=1.0.0 - r-fastmatch @@ -83,7 +84,7 @@ test: - $R -e "library('Signac')" about: - home: https://github.com/timoast/signac, https://satijalab.org/signac + home: "https://github.com/timoast/signac" license: MIT summary: 'A framework for the analysis and exploration of single-cell chromatin data. The ''Signac'' package contains functions for quantifying single-cell chromatin data, computing @@ -93,3 +94,5 @@ about: license_file: - {{ environ["PREFIX"] }}/lib/R/share/licenses/MIT - LICENSE + doc_url: "https://satijalab.org/signac" + dev_url: "https://github.com/timoast/signac" From 5390e3ac88cdb84e2b9f1db07605019be54e1362 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 21 Aug 2024 04:26:32 -0500 Subject: [PATCH 1137/1589] Update gmap to 2024-08-14 (#48888) * Update gmap to 2024-06-24 * revert gmst.pl line * edit sha256 * edit build.sh * edit build.sh * edit build.sh * update to 2024-08-14 * try arm64 * edit build.sh * edit build.sh * edit meta.yaml * edit meta.yaml --- recipes/gmap/build.sh | 6 +++++- recipes/gmap/meta.yaml | 5 +++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/recipes/gmap/build.sh b/recipes/gmap/build.sh index 759a24c161362..511ba6f6917ca 100644 --- a/recipes/gmap/build.sh +++ b/recipes/gmap/build.sh @@ -1,5 +1,6 @@ #!/bin/bash -euo +export M4="${BUILD_PREFIX}/bin/m4" export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" @@ -11,7 +12,7 @@ export LC_ALL=en_US.UTF-8 if [ "$(uname)" == "Darwin" ]; then # for Mac OSX export LDFLAGS="${LDFLAGS} -headerpad_max_install_names" - export CFLAGS="${CFLAGS} -m64" + export CFLAGS="${CFLAGS} -m64 -Wno-implicit-function-declaration -Wdeprecated-non-prototype" export LC_ALL=C fi @@ -22,6 +23,9 @@ case $(uname -m) in aarch64) SIMD_LEVEL="arm" ;; + arm64) + SIMD_LEVEL="arm" + ;; *) SIMD_LEVEL="none" ;; diff --git a/recipes/gmap/meta.yaml b/recipes/gmap/meta.yaml index e8c298171af19..6d429fbd0cae6 100644 --- a/recipes/gmap/meta.yaml +++ b/recipes/gmap/meta.yaml @@ -1,6 +1,6 @@ {% set name = "GMAP" %} -{% set version = "2024.05.20" %} -{% set sha256 = "a3e434ace5943595be983ad213a4d05d5c86287f13ca50d938e8bcb1b17f4087" %} +{% set version = "2024.08.14" %} +{% set sha256 = "45580a7fbfa5422836e27b13df1e5eba148141db27e7fb9b05fc308df101f97a" %} package: name: {{ name|lower }} @@ -14,6 +14,7 @@ source: build: number: 0 + skip: True # [osx and x86_64] run_exports: - {{ pin_subpackage('gmap', max_pin=None) }} From 13b6889523b648ad13bba72dae8e69420368e056 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 21 Aug 2024 08:19:34 -0400 Subject: [PATCH 1138/1589] Update snakemake to 8.18.2 (#50236) --- recipes/snakemake/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake/meta.yaml b/recipes/snakemake/meta.yaml index db7a22c4b8c4a..d14b6c0f29e59 100644 --- a/recipes/snakemake/meta.yaml +++ b/recipes/snakemake/meta.yaml @@ -1,7 +1,7 @@ # Attention: when upgrading the version, please compare below dependencies with # https://github.com/snakemake/snakemake/blob/{version}/setup.cfg {% set name = "snakemake" %} -{% set version = "8.18.1" %} +{% set version = "8.18.2" %} package: name: {{ name }} @@ -9,7 +9,7 @@ package: source: url: https://pypi.io/packages/source/s/{{ name }}/snakemake-{{ version }}.tar.gz - sha256: aac92b567d7783bb1be7854f0393254c7219be97961c77750e6463af181c1de1 + sha256: 7dc8cdc3c836444c2bc3d67a4a7f4d703557c1bf96a90da18f312f4df9daefc4 build: number: 0 From 74351fab6ccea227c28f3125a2b346c8684028b2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 21 Aug 2024 08:20:34 -0400 Subject: [PATCH 1139/1589] Update cami-opal to 1.0.13 (#50237) --- recipes/cami-opal/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/cami-opal/meta.yaml b/recipes/cami-opal/meta.yaml index 8e9d6ea40ba94..099c010d085a0 100644 --- a/recipes/cami-opal/meta.yaml +++ b/recipes/cami-opal/meta.yaml @@ -1,6 +1,6 @@ {% set name = "cami-opal" %} -{% set version = "1.0.12" %} -{% set sha256 = "f8ed286472106332d309ced2504b8fa729c03f6b9d72d8db4faabe726f033f87" %} +{% set version = "1.0.13" %} +{% set sha256 = "bbb869b739c555fbbfc26d2771fa1b501f671b620bcbf743c15327a51debd408" %} package: name: {{ name|lower }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 noarch: python script: {{ PYTHON }} -m pip install . --no-deps -vvv run_exports: From 086e8df370af91f10823f92c81faba51455c19f3 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 21 Aug 2024 08:20:54 -0400 Subject: [PATCH 1140/1589] Update assembly_finder to 0.7.6 (#50234) --- recipes/assembly_finder/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/assembly_finder/meta.yaml b/recipes/assembly_finder/meta.yaml index 9a56c6d52fdef..1752e16a42cc1 100644 --- a/recipes/assembly_finder/meta.yaml +++ b/recipes/assembly_finder/meta.yaml @@ -1,5 +1,5 @@ {% set name = "assembly_finder" %} -{% set version = "0.7.5" %} +{% set version = "0.7.6" %} package: name: "{{ name|lower }}" @@ -7,10 +7,10 @@ package: source: url: https://github.com/metagenlab/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz - sha256: 5b5d6ec619775e419c6875215c71a3a1e8c4e745c4a7ddb6847a2c03313a1470 + sha256: aa77170404109f6efcc52aef3bab98d6a24a0c380c18aaba9afba9a6fea7c0ed build: - number: 1 + number: 0 noarch: python entry_points: - assembly_finder=assembly_finder.__main__:main @@ -53,4 +53,4 @@ extra: - farchaab - tpillone identifiers: - - biotools:assembly_finder \ No newline at end of file + - biotools:assembly_finder From 6a824dede4747ad99efc3139fec3ac3b9be5ee24 Mon Sep 17 00:00:00 2001 From: Alexander Peltzer Date: Wed, 21 Aug 2024 14:42:25 +0200 Subject: [PATCH 1141/1589] Update MultiQC to 1.24.1 Patch Release (#50238) --- recipes/multiqc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/multiqc/meta.yaml b/recipes/multiqc/meta.yaml index 2d92bfac620bc..13a32a383c730 100644 --- a/recipes/multiqc/meta.yaml +++ b/recipes/multiqc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "multiqc" %} -{% set version = "1.24" %} +{% set version = "1.24.1" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/MultiQC/MultiQC/archive/v{{ version }}.tar.gz - sha256: 9293f130c3f9ad5ead7b8a1aca96c56f261809bdb7d3a5790892b5f74c862a37 + sha256: 88794a38a2b62635a44ba8af596959e0b2f530b21fa294ff3c6aa68780e9e166 build: number: 0 From 544147784d594d6671e30552ca3c8e48d7fa8a64 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 21 Aug 2024 13:02:11 -0400 Subject: [PATCH 1142/1589] Update cami-amber to 2.0.5 (#50235) * Update cami-amber to 2.0.5 * clean up recipe --------- Co-authored-by: mencian --- recipes/cami-amber/meta.yaml | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/recipes/cami-amber/meta.yaml b/recipes/cami-amber/meta.yaml index 0c4f04ed2f084..47deb58707c78 100644 --- a/recipes/cami-amber/meta.yaml +++ b/recipes/cami-amber/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.0.4" %} +{% set version = "2.0.5" %} package: name: cami-amber @@ -6,18 +6,18 @@ package: source: url: https://pypi.io/packages/source/c/cami-amber/cami-amber-{{ version }}.tar.gz - sha256: a671517d1ea2d43b74f0bd1934621b59b9d6e160f64ef485c03f612c9de21e3a + sha256: 59ccbb4447904b337a7979782fef3f68ee0addac37e4173f826de369c1a3e697 build: noarch: python - number: 1 + number: 0 run_exports: - - {{ pin_subpackage("cami-amber", max_pin="x.x") }} + - {{ pin_subpackage("cami-amber", max_pin="x") }} script: - - python -m pip install --no-deps --ignore-installed . - - cp ./src/utils/add_length_column.py $PREFIX/bin - - cp ./src/utils/convert_fasta_bins_to_biobox_format.py $PREFIX/bin - - cp ./src/utils/argparse_parents.py $PREFIX/bin + - {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv + - cp -rf ./cami_amber/utils/add_length_column.py $PREFIX/bin + - cp -rf ./cami_amber/utils/convert_fasta_bins_to_biobox_format.py $PREFIX/bin + - cp -rf ./cami_amber/utils/argparse_parents.py $PREFIX/bin requirements: host: @@ -25,14 +25,14 @@ requirements: - pip run: - python >=3.6 - - numpy >=1.24.2 - - biopython >=1.81 - - matplotlib-base >=3.7.1 - - pandas >=1.5.3 - - bokeh >=3.1.0 - - seaborn >=0.12.2 - - jinja2 >=3.1.2 - - pyarrow >=11.0.0 + - numpy >=2.0.1 + - biopython >=1.84 + - matplotlib-base >=3.8.4 + - pandas >=2.2.2 + - bokeh >=3.5.1 + - seaborn-base >=0.13.2 + - jinja2 >=3.1.4 + - pyarrow >=17.0.0 test: commands: @@ -42,6 +42,8 @@ test: about: home: https://github.com/CAMI-challenge/AMBER - license: GPL v3 + license: GPL-3.0-or-later + license_family: GPL3 license_file: LICENSE summary: 'AMBER: Assessment of Metagenome BinnERs' + dev_url: https://github.com/CAMI-challenge/AMBER From d3b737e88b99d96214af98371a7b81ee47ac9cdc Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 21 Aug 2024 13:02:54 -0400 Subject: [PATCH 1143/1589] Update pysradb to 2.2.1 (#50242) * Update pysradb to 2.2.1 * clean up recipe --------- Co-authored-by: mencian --- recipes/pysradb/meta.yaml | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/recipes/pysradb/meta.yaml b/recipes/pysradb/meta.yaml index 2fb096f1026c1..243922798a2e8 100644 --- a/recipes/pysradb/meta.yaml +++ b/recipes/pysradb/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pysradb" %} -{% set version = "2.2.0" %} +{% set version = "2.2.1" %} package: name: '{{ name|lower }}' @@ -7,14 +7,14 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: be7c451b590045683cb8b10786fedcd622f5da76e74284e70a4b2ee65faf43e9 + sha256: 038318b70bdf6b9ff0e1c5b67a38c5832d37ed142bbeeb3c5b55eec2d51371f4 build: number: 0 noarch: python entry_points: - pysradb=pysradb.cli:parse_args - script: {{ PYTHON }} -m pip install . --no-deps --ignore-installed -vv + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv run_exports: - {{ pin_subpackage('pysradb', max_pin="x") }} @@ -22,12 +22,7 @@ requirements: host: - python >=3.7 - pip - - lxml >=4.6.3 - - pandas >=1.3.2 - - requests >=2.26.0 - - requests-ftp >=0.3.1 - - tqdm >=4.62.1 - - xmltodict >=0.12.0 + - hatchling run: - python >=3.7 - lxml >=4.6.3 @@ -52,6 +47,7 @@ about: summary: 'Python package for retrieving metadata and downloading datasets from SRA/ENA/GEO' description: 'Python package for retrieving metadata and downloading datasets from SRA/ENA/GEO' doc_url: 'https://saketkc.github.io/pysradb' + dev_url: https://github.com/saketkc/pysradb extra: recipe-maintainers: From a29ce88f6ce11fa1b104e1b1e893b3137817c447 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 21 Aug 2024 14:00:42 -0400 Subject: [PATCH 1144/1589] Update gw to 1.0.2 (#50245) --- recipes/gw/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/gw/meta.yaml b/recipes/gw/meta.yaml index d8d9aa904573c..4645b40c73b2c 100644 --- a/recipes/gw/meta.yaml +++ b/recipes/gw/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.0.1" %} -{% set sha256 = "aacd161bb7131d7874a75b2ed409ee22109be3f87dd062c5590c6d30d1503e68" %} +{% set version = "1.0.2" %} +{% set sha256 = "1f9b17702a073e255a87e5e273c0dd0ddafbc25c02b19aa143b3d744ce5d359d" %} package: name: gw @@ -12,7 +12,7 @@ source: - fix-linker-issues.patch # [linux] build: - number: 3 + number: 0 run_exports: - {{ pin_subpackage('gw', max_pin="x") }} ignore_run_exports: From 43aeddf1571d1987f2a92c42d47b7bc85f359ce2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 21 Aug 2024 15:07:13 -0400 Subject: [PATCH 1145/1589] Update pbstarphase to 0.14.0 (#50248) --- recipes/pbstarphase/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pbstarphase/meta.yaml b/recipes/pbstarphase/meta.yaml index 116b3b5737bea..829520935dfff 100644 --- a/recipes/pbstarphase/meta.yaml +++ b/recipes/pbstarphase/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pbstarphase" %} -{% set version = "0.13.3" %} -{% set sha256 = "3169cc00ef5a5a26d877893550e662bd0f9f817edbd113943178fd20f0a8d2b8" %} +{% set version = "0.14.0" %} +{% set sha256 = "5397c43338d006d65aa36c07d6299bf8c60c071138f0325760d32e65957d236d" %} package: name: {{ name }} From 6018f9975a2efcecbf6a56af02dc991f2a118f63 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 01:31:00 -0400 Subject: [PATCH 1146/1589] Update pyseer to 1.3.12 (#50243) * Update pyseer to 1.3.12 * pyseer: fix missing_run_exports linting error --------- Co-authored-by: Marco Galardini --- recipes/pyseer/meta.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/pyseer/meta.yaml b/recipes/pyseer/meta.yaml index 1b761f3f07687..de56804f70d60 100644 --- a/recipes/pyseer/meta.yaml +++ b/recipes/pyseer/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.3.11" %} +{% set version = "1.3.12" %} package: name: pyseer @@ -6,10 +6,12 @@ package: source: url: https://github.com/mgalardini/pyseer/releases/download/{{ version }}/pyseer-{{ version }}.tar.gz - sha256: 384313a3a14b92f873eaad53f77a319d90b584b9253785a7ca1dfc7d9220c91e + sha256: 31a9a528f0cc6409ddb1556b533dd9631c805b1b83bce0fcc6ad85f1126c9fbe build: + run_exports: + - {{ pin_subpackage('pyseer', max_pin="x") }} number: 0 noarch: python script: python -m pip install --no-deps --ignore-installed . From dcc95cb218705f7707f9ca72c26fa9ea36628f5b Mon Sep 17 00:00:00 2001 From: Mervin Fansler Date: Thu, 22 Aug 2024 10:21:59 +0200 Subject: [PATCH 1147/1589] Adds r-buencolors (#50240) * add r-buencolors * Create build.sh * subpackage --- recipes/r-buencolors/build.sh | 3 +++ recipes/r-buencolors/meta.yaml | 48 ++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 recipes/r-buencolors/build.sh create mode 100644 recipes/r-buencolors/meta.yaml diff --git a/recipes/r-buencolors/build.sh b/recipes/r-buencolors/build.sh new file mode 100644 index 0000000000000..b8d2635525637 --- /dev/null +++ b/recipes/r-buencolors/build.sh @@ -0,0 +1,3 @@ +#!/bin/bash +export DISABLE_AUTOBREW=1 +${R} CMD INSTALL --build . ${R_ARGS} diff --git a/recipes/r-buencolors/meta.yaml b/recipes/r-buencolors/meta.yaml new file mode 100644 index 0000000000000..51fca6e5f9c0a --- /dev/null +++ b/recipes/r-buencolors/meta.yaml @@ -0,0 +1,48 @@ +{% set version = "0.5.6" %} +{% set github = "https://github.com/caleblareau/BuenColors" %} +{% set commit = "f1bc8e640d129ef319a0db49b169a64b00026e00" %} + +package: + name: r-buencolors + version: "{{ version }}" + +source: + url: "{{ github }}/archive/{{ commit }}.zip" + sha256: 6caa14acafd81c9619d795e5dd56ef9fa7a37280d35fe9afe9b4bd9ff3cd776f + +build: + noarch: generic + number: 0 + rpaths: + - lib/R/lib/ + - lib/ + run_exports: + - {{ pin_subpackage("r-buencolors", max_pin="x.x") }} + +requirements: + host: + - r-base + - r-ggplot2 + - r-mass + run: + - r-base + - r-ggplot2 + - r-mass + +test: + commands: + - $R -e "library(BuenColors)" + +about: + home: {{ github }} + dev_url: {{ github }} + license: MIT + license_family: MIT + license_file: + - {{ environ["PREFIX"] }}/lib/R/share/licenses/MIT + - LICENSE + summary: R utility package for color mapping and plot aesthetics. + +extra: + recipe-maintainers: + - mfansler From c9369e84cbb0834a7bbc75a2096ecc637cb20883 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 04:22:55 -0400 Subject: [PATCH 1148/1589] Update sawfish to 0.12.2 (#50255) --- recipes/sawfish/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sawfish/meta.yaml b/recipes/sawfish/meta.yaml index 082d153819d1c..eb47681f4f5f8 100644 --- a/recipes/sawfish/meta.yaml +++ b/recipes/sawfish/meta.yaml @@ -1,5 +1,5 @@ {% set name = "sawfish" %} -{% set version = "0.12.1" %} +{% set version = "0.12.2" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/PacificBiosciences/sawfish/releases/download/v{{ version }}/sawfish-v{{ version }}-x86_64-unknown-linux-gnu.tar.gz - sha256: 4ced0da34a90a0616d8df2db8888021a5b0e1e7dc5b0293e780425b75b958e20 + sha256: 8ece74a9c288a19e3093f65199ab5d7d6511fd4f2a4f4556eedcc9673c5783cd build: number: 0 From 4b3f6608074b9c9f9c9448a35e38f752b21addcf Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 04:23:57 -0400 Subject: [PATCH 1149/1589] Update perl-mce-shared to 1.892 (#50251) --- recipes/perl-mce-shared/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/perl-mce-shared/meta.yaml b/recipes/perl-mce-shared/meta.yaml index c37471eabc40c..a84539cbb15e9 100644 --- a/recipes/perl-mce-shared/meta.yaml +++ b/recipes/perl-mce-shared/meta.yaml @@ -1,14 +1,14 @@ {% set name = "perl-mce-shared" %} -{% set version = "1.891" %} -{% set sha256 = "f65459bd04f5e41bbf3ba82d74af3e0fc6c992cfc245dc403b6ce4cc24904cb5" %} +{% set version = "1.892" %} +{% set sha256 = "f241ea83fbcb916ede5ff0017c0f0c8c1898fe9b40434df91488bfe21ba161a4" %} package: name: {{ name }} version: {{ version }} source: - url: https://cpan.metacpan.org/authors/id/M/MA/MARIOROY/MCE-Shared-1.891.tar.gz + url: https://cpan.metacpan.org/authors/id/M/MA/MARIOROY/MCE-Shared-1.892.tar.gz sha256: {{ sha256 }} build: From 4f654546ff06c7e70c04e7274695eaeff894c8c8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 04:24:22 -0400 Subject: [PATCH 1150/1589] Update perl-mce to 1.898 (#50250) --- recipes/perl-mce/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/perl-mce/meta.yaml b/recipes/perl-mce/meta.yaml index 724ef988ccc24..2d8a8a3f6cd5b 100644 --- a/recipes/perl-mce/meta.yaml +++ b/recipes/perl-mce/meta.yaml @@ -1,13 +1,13 @@ {% set name = "perl-mce" %} -{% set version = "1.897" %} -{% set sha256 = "673d337d14fc2d7a12576ca6615c729821dc616ee76e0ecc9c0f32de8a9f9c39" %} +{% set version = "1.898" %} +{% set sha256 = "c3e9c35dfdbb96073285c450ae10f747e46a4d0416f7d30a1b659dcc3e78a668" %} package: name: {{ name }} version: {{ version }} source: - url: https://cpan.metacpan.org/authors/id/M/MA/MARIOROY/MCE-1.897.tar.gz + url: https://cpan.metacpan.org/authors/id/M/MA/MARIOROY/MCE-1.898.tar.gz sha256: {{ sha256 }} build: From ae57b0c9f119db7096aaafe16a84e0d03ecc1777 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 04:24:48 -0400 Subject: [PATCH 1151/1589] Update sigprofilerassignment to 0.1.8 (#50247) --- recipes/sigprofilerassignment/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sigprofilerassignment/meta.yaml b/recipes/sigprofilerassignment/meta.yaml index 63705800193c8..d67c7198b9b00 100644 --- a/recipes/sigprofilerassignment/meta.yaml +++ b/recipes/sigprofilerassignment/meta.yaml @@ -1,5 +1,5 @@ {% set name = "SigProfilerAssignment" %} -{% set version = "0.1.7" %} +{% set version = "0.1.8" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/SigProfilerAssignment-{{ version }}.tar.gz - sha256: f4522dccecb3a39792d4199aa730134c7cb9efa2f49e54d3d4b58915600fad02 + sha256: dc0deaf3d37570ed5557f829a2708d93c0c0d2feef99ae680c4222bb9e491f5f build: noarch: python From 886cb2715adeb854b9e830910ba7a0f5a1be7738 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 04:26:25 -0400 Subject: [PATCH 1152/1589] Update pathogen-embed to 3.1.0 (#50256) --- recipes/pathogen-embed/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pathogen-embed/meta.yaml b/recipes/pathogen-embed/meta.yaml index 4ff89cddc19cf..6686d0251dbaa 100644 --- a/recipes/pathogen-embed/meta.yaml +++ b/recipes/pathogen-embed/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "3.0.0" %} +{% set version = "3.1.0" %} {% set name = "pathogen-embed" %} package: @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pathogen_embed-{{ version }}.tar.gz - sha256: 3315a03c7fda6bcb49d50cbd3f4c99ab1ca1f261623e95cdce7359aca184cdea + sha256: 27c4a048c7e3c6bafc753ec297252f214a41d75a2c55ebb02542b8f37b19a897 build: number: 0 From 779f7205bd8b33d1f95600c99fbb20f2cf178c47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Thu, 22 Aug 2024 10:37:27 +0200 Subject: [PATCH 1153/1589] add snakemake-executor-plugin-tes (#46363) * add snakemake-executor-plugin-tes * add sha * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update recipes/snakemake-executor-plugin-tes/meta.yaml Co-authored-by: David Laehnemann * Update recipes/snakemake-executor-plugin-tes/meta.yaml Co-authored-by: David Laehnemann * Update meta.yaml --------- Co-authored-by: David Laehnemann --- .../snakemake-executor-plugin-tes/meta.yaml | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 recipes/snakemake-executor-plugin-tes/meta.yaml diff --git a/recipes/snakemake-executor-plugin-tes/meta.yaml b/recipes/snakemake-executor-plugin-tes/meta.yaml new file mode 100644 index 0000000000000..2aaa1f6e115f1 --- /dev/null +++ b/recipes/snakemake-executor-plugin-tes/meta.yaml @@ -0,0 +1,46 @@ +{% set name = "snakemake-executor-plugin-tes" %} +{% set version = "0.1.3" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_executor_plugin_tes-{{ version }}.tar.gz + sha256: bbecd5c1e63a39e2ea84b752e8e4d68e64b16df686062f22e347cf97c7cd47b3 + +build: + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin='x.x') }} + +requirements: + host: + - python >=3.11,<3.13 + - poetry-core + - pip + run: + - python >=3.11.0,<3.13 + - snakemake-interface-common >=1.14.0,<2.0.0 + - snakemake-interface-executor-plugins >=9.0.0,<10.0.0 + - py-tes >=0.4.2,<0.5.0 + +test: + imports: + - snakemake_executor_plugin_tes + commands: + - pip check + requires: + - pip + +about: + home: https://github.com/snakemake/snakemake-executor-plugin-tes + summary: A Snakemake executor plugin for submitting jobs to a GA4GH TES cluster. + license: MIT + license_file: LICENSE + +extra: + recipe-maintainers: + - koesterlab From 8fcab49f557a1123b7956d3d5fba1f71c58afb85 Mon Sep 17 00:00:00 2001 From: Nils Homer Date: Thu, 22 Aug 2024 02:14:36 -0700 Subject: [PATCH 1154/1589] Add new recipe prymer (#50249) --- recipes/prymer/meta.yaml | 47 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 recipes/prymer/meta.yaml diff --git a/recipes/prymer/meta.yaml b/recipes/prymer/meta.yaml new file mode 100644 index 0000000000000..9c240473f7dd5 --- /dev/null +++ b/recipes/prymer/meta.yaml @@ -0,0 +1,47 @@ +{% set name = "prymer" %} +{% set version = "2.0.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/fulcrumgenomics/{{ name }}/archive/refs/tags/{{ version }}.tar.gz + sha256: c491a9a6af77784f911c16e692210b2d1795605b3628c42e80dffca82859d176 + +build: + noarch: python + number: 0 + script: {{ PYTHON }} -m pip install . -vvv --no-build-isolation --no-deps + run_exports: + - {{ pin_subpackage('prymer', max_pin="x.x") }} + +requirements: + host: + - pip + - python >=3.11 + - poetry + run: + - python >=3.11 + - pysam >=0.22.0 + - primer3 >=2.6.1 + +test: + imports: + - prymer + +about: + home: https://pypi.org/project/prymer/ + summary: Python Primer Design Library + license: MIT + license_family: MIT + license_file: LICENSE + dev_url: https://github.com/fulcrumgenomics/prymer + doc_url: https://prymer.readthedocs.io/en/latest/ + +extra: + recipe-maintainers: + - emmcauley + - geoffjentry + - nh13 + - tfenne From 0af39a9586d80c9ad228be0b6709995bf1e5dee2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 05:29:09 -0400 Subject: [PATCH 1155/1589] Update perl-graph to 0.9730 (#50259) --- recipes/perl-graph/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/perl-graph/meta.yaml b/recipes/perl-graph/meta.yaml index 951fae7d30fb1..9238ef88e30c4 100644 --- a/recipes/perl-graph/meta.yaml +++ b/recipes/perl-graph/meta.yaml @@ -1,10 +1,10 @@ package: name: perl-graph - version: "0.9729" + version: "0.9730" source: - url: https://cpan.metacpan.org/authors/id/E/ET/ETJ/Graph-0.9729.tar.gz - sha256: 3efbed46ca82f78f25253d034232b0cc9cfadfbd867437e63f9275850f85abb0 + url: https://cpan.metacpan.org/authors/id/E/ET/ETJ/Graph-0.9730.tar.gz + sha256: 28f4680ba879e079c93988ab092c8c1287f6efc63fb883da28e6e7fd3b947174 build: noarch: generic From 39a547d2f667641de524490114988c8a35408090 Mon Sep 17 00:00:00 2001 From: SantaMcCloud <100047964+SantaMcCloud@users.noreply.github.com> Date: Thu, 22 Aug 2024 13:12:07 +0200 Subject: [PATCH 1156/1589] Add biobox_add_taxid recipe (#50253) * Add biobox_add_taxid recipe * add run_export --- recipes/biobox_add_taxid/meta.yaml | 37 ++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 recipes/biobox_add_taxid/meta.yaml diff --git a/recipes/biobox_add_taxid/meta.yaml b/recipes/biobox_add_taxid/meta.yaml new file mode 100644 index 0000000000000..7cd3d1051365e --- /dev/null +++ b/recipes/biobox_add_taxid/meta.yaml @@ -0,0 +1,37 @@ +{% set name = "biobox_add_taxid" %} +{% set version = "0.3" %} +{% set sha256 = "f0bd555f1fc646e5a7f84d7f46914bcc06a5fa77ca251fd7303354987967208f" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/SantaMcCloud/{{ name }}/archive/refs/tags/release-{{ version }}.tar.gz + sha256: {{ sha256 }} + +build: + noarch: python + number: 0 + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + run_exports: + - {{ pin_subpackage("biobox_add_taxid", max_pin="x.x") }} + +requirements: + host: + - pip + - python + run: + - python + +test: + commands: + - biobox_add_taxid.py --help + - biobox_add_taxid.py --version + +about: + home: https://github.com/SantaMcCloud/biobox_add_taxid + license: MIT + license_family: MIT + license_file: LICENSE + summary: "CAMI amber utility script for adding the taxid output from GTDB and BAT" \ No newline at end of file From 7ce99054b5ec7e8006b1d0767cc6ab9c4ced3274 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 07:14:29 -0400 Subject: [PATCH 1157/1589] Update pybiolib to 1.2.108 (#50260) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index f9ad5ee41554e..2faad08dbd1da 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.2.71" %} +{% set version = "1.2.108" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: 9b81929a07564f0c5309ea20b37d963baa703ca508ddda53dd085526e5659c8f + sha256: f7bc951a8ec05f3282be0d935181648fc9aa38533c5adef509d05d346ca32bc4 build: number: 0 From efa68789652c72e9946d481f04cd65e93c504f2d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 08:39:20 -0400 Subject: [PATCH 1158/1589] Update panfeed to 1.6.2 (#50264) --- recipes/panfeed/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/panfeed/meta.yaml b/recipes/panfeed/meta.yaml index ecb21dbb39dd6..833ba2d123065 100644 --- a/recipes/panfeed/meta.yaml +++ b/recipes/panfeed/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.6.1" %} +{% set version = "1.6.2" %} {% set name = "panfeed" %} package: @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 427bf671c6edfb57e3671a83cd941f5ac894d2b9ed9e7df60f6615d6c911949c + sha256: 71e6e97b29784396421b59511dbca27103acfe31a3f392324d4d0419179340be build: entry_points: From c55af6a9a79bb995cf3f25456a336ab17e4cca9c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 11:12:55 -0400 Subject: [PATCH 1159/1589] Update pybiolib to 1.2.111 (#50265) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index 2faad08dbd1da..a01febe52c749 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.2.108" %} +{% set version = "1.2.111" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: f7bc951a8ec05f3282be0d935181648fc9aa38533c5adef509d05d346ca32bc4 + sha256: 28adeb22b1f56bc0e11d879f0a826dc4576b25e90fe3a5d4b624fd280f2f169d build: number: 0 From 80081ab4022a577c4b1bf01abb5257a77e7fde75 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 11:13:26 -0400 Subject: [PATCH 1160/1589] Update harpy to 1.7.0 (#50244) * Update harpy to 1.7.0 * Update harpy to 1.7.0 --- recipes/harpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index f67de7a1c0b0c..9625e80c0fb41 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.6.1" %} -{% set sha256 = "a3b6a0ebfb51bcc17140a519b3c1df61211f333ba091392053a1637edec8aff7" %} +{% set version = "1.7.0" %} +{% set sha256 = "d9c7d2e36a358e2d13d7d0d5984a0cea2d7ae1224c3f11a4d01968a22efc07a6" %} package: name: harpy From 30e3d445ed8a6254cc1c50755e2fd51a181c67c3 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 15:34:03 -0400 Subject: [PATCH 1161/1589] Update augur to 25.3.0 (#50271) --- recipes/augur/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/augur/meta.yaml b/recipes/augur/meta.yaml index 582384a73f4d2..de58e8414ef84 100644 --- a/recipes/augur/meta.yaml +++ b/recipes/augur/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "25.2.0" %} +{% set version = "25.3.0" %} package: name: augur @@ -6,7 +6,7 @@ package: source: url: https://github.com/nextstrain/augur/releases/download/{{ version }}/nextstrain_augur-{{ version }}.tar.gz - sha256: 2869033bf551476859792e6fa442204dcd03c37e5a8a6239a19fe2da9e307248 + sha256: aff6de12fcbdb52f89da7cc6c8a7f1410b1b473882aa824fb3b40e8cea3d5d2a build: number: 0 From 65bba0b720b63a01eb44d467c955804083da3478 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 15:45:58 -0400 Subject: [PATCH 1162/1589] Update pytximport to 0.8.0 (#50268) --- recipes/pytximport/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pytximport/meta.yaml b/recipes/pytximport/meta.yaml index 698fc623fa95c..d7245d020c367 100644 --- a/recipes/pytximport/meta.yaml +++ b/recipes/pytximport/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pytximport" %} -{% set version = "0.7.0" %} +{% set version = "0.8.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pytximport-{{ version }}.tar.gz - sha256: fa4992d4fe11246941b36eadc886d34d61d6682e5cf2ad266f9f96bb0da9290a + sha256: 18bdf4fbcd78092bba18f6941f5640a937b4f0230c30c2e8fca38ce207b3840b build: noarch: python From 60baecb3ef93bbbd1e0d8130077b673548225b64 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 16:00:38 -0400 Subject: [PATCH 1163/1589] Update ppanggolin to 2.1.1 (#50263) --- recipes/ppanggolin/meta.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/recipes/ppanggolin/meta.yaml b/recipes/ppanggolin/meta.yaml index 3a1b063442689..a1b7a55da9cf0 100644 --- a/recipes/ppanggolin/meta.yaml +++ b/recipes/ppanggolin/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.1.0" %} +{% set version = "2.1.1" %} package: name: ppanggolin @@ -6,7 +6,7 @@ package: source: url: https://github.com/labgem/PPanGGOLiN/archive/{{ version }}.tar.gz - sha256: f0f81d57e571619438a558895de750bb02f4728cfb2eb1928431dadb22fd49d1 + sha256: 2ad2a3a918a00a056323d368457d98252131ac1f75b040f2f351238a99f4ef54 build: number: 0 @@ -23,7 +23,7 @@ requirements: - pip - cython <3 run: - - python + - python >=3.8,<=3.12 - tqdm =4 - pytables =3 - pyrodigal =3 @@ -58,3 +58,4 @@ extra: recipe-maintainers: - axbazin - jpjarnoux + - JeanMainguy From 3228d8e19647db1027880aa363374a4542a8f89d Mon Sep 17 00:00:00 2001 From: stuber Date: Thu, 22 Aug 2024 14:02:58 -0600 Subject: [PATCH 1164/1589] vsnp3 version 3.24 (#50266) --- recipes/vsnp3/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/vsnp3/meta.yaml b/recipes/vsnp3/meta.yaml index 28ed73458bf68..eb92890af55bf 100644 --- a/recipes/vsnp3/meta.yaml +++ b/recipes/vsnp3/meta.yaml @@ -1,7 +1,7 @@ {% set user = "USDA-VS" %} {% set name = "vsnp3" %} -{% set version = "3.23" %} -{% set sha256 = "2ec038783ca43a3014dac3756efd460abea26d8c2edca8a41a65915c036388d9" %} +{% set version = "3.24" %} +{% set sha256 = "1a1013027a8112ba1e71e29a79e1cbdd92fee941738c24bddbee083b7d653788" %} package: From e0292e4fe32e96590baac323908c9b1e0204a038 Mon Sep 17 00:00:00 2001 From: Konstantinn Bonnet <50845450+qwx9@users.noreply.github.com> Date: Thu, 22 Aug 2024 21:05:02 +0100 Subject: [PATCH 1165/1589] update strangepg (#50262) --- recipes/strangepg/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/strangepg/meta.yaml b/recipes/strangepg/meta.yaml index 5305080d13612..5ad6f37944f03 100644 --- a/recipes/strangepg/meta.yaml +++ b/recipes/strangepg/meta.yaml @@ -1,6 +1,6 @@ {% set name = "strangepg" %} -{% set version = "0.8.0" %} -{% set ref = "55e8fba29e9e0259f5d950df477d1850eb4f3163" %} +{% set version = "0.8.1" %} +{% set ref = "aaa5f72ebd55b6562050239cce9a1f10077759bd" %} package: name: {{ name }} @@ -8,7 +8,7 @@ package: source: url: https://github.com/qwx9/{{ name }}/archive/{{ ref }}.tar.gz - sha256: a8210b50f6ceda7dc6edd05a771d8645523a05d43d01fc7d15bb36ad86d4ffc9 + sha256: 33acfe6ac4eb85ecaf41fc3a5990b466b7fccebe6fd6d5b002c085cd4d52cc0f build: number: 0 From ddef3d16288f8c4bf0b86419260dfa533103aebf Mon Sep 17 00:00:00 2001 From: Arya Massarat <23412689+aryarm@users.noreply.github.com> Date: Thu, 22 Aug 2024 13:06:40 -0700 Subject: [PATCH 1166/1589] art: enable osx-arm64 build (#50270) --- recipes/art/build.sh | 6 +++++- recipes/art/meta.yaml | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/recipes/art/build.sh b/recipes/art/build.sh index 0ed4c0e67646f..ee2131550a5ab 100644 --- a/recipes/art/build.sh +++ b/recipes/art/build.sh @@ -8,7 +8,11 @@ export CPATH=${PREFIX}/include mkdir -p $PREFIX/bin -./configure --prefix=$PREFIX +if [[ "$HOST" == "arm64-apple-"* ]]; then + ./configure --prefix=$PREFIX --host=arm +else + ./configure --prefix=$PREFIX +fi make -j ${CPU_COUNT} make install diff --git a/recipes/art/meta.yaml b/recipes/art/meta.yaml index cefbaaa1b2e1e..84123e4e38846 100644 --- a/recipes/art/meta.yaml +++ b/recipes/art/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 11 + number: 12 run_exports: - {{ pin_subpackage(name, max_pin=None) }} @@ -40,3 +40,4 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 From 79b7f8def6433e1ce31a974f635bac7819246f0d Mon Sep 17 00:00:00 2001 From: "Pavel V. Dimens" <19176506+pdimens@users.noreply.github.com> Date: Thu, 22 Aug 2024 16:08:55 -0400 Subject: [PATCH 1167/1589] Add popoolation2 recipe (from HCC) (#50211) --- recipes/popoolation2/build.sh | 21 +++++ recipes/popoolation2/meta.yaml | 55 ++++++++++++ recipes/popoolation2/mpileup2sync.py | 123 +++++++++++++++++++++++++++ 3 files changed, 199 insertions(+) create mode 100644 recipes/popoolation2/build.sh create mode 100644 recipes/popoolation2/meta.yaml create mode 100644 recipes/popoolation2/mpileup2sync.py diff --git a/recipes/popoolation2/build.sh b/recipes/popoolation2/build.sh new file mode 100644 index 0000000000000..0d2faf8de0be4 --- /dev/null +++ b/recipes/popoolation2/build.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +outdir=${PREFIX}/share/${PKG_NAME}-${PKG_VERSION}-${PKG_BUILDNUM} +mkdir -p ${PREFIX}/bin ${outdir} + +chmod +x *.pl export/*.pl indel_filtering/*.pl +cp -R *.pl export Modules indel_filtering ${PREFIX}/bin +cp mpileup2sync.jar ${outdir} +cp ${RECIPE_DIR}/mpileup2sync.py ${outdir}/mpileup2sync + +ln -s ${outdir}/mpileup2sync ${PREFIX}/bin + +for f in cmh2gwas.pl pwc2igv.pl subsample_sync2fasta.pl subsample_sync2GenePop.pl + do + ln -s ${PREFIX}/bin/export/${f} ${PREFIX}/bin +done + +for f in filter-sync-by-gtf.pl identify-indel-regions.pl + do + ln -s ${PREFIX}/bin/indel_filtering/${f} ${PREFIX}/bin +done diff --git a/recipes/popoolation2/meta.yaml b/recipes/popoolation2/meta.yaml new file mode 100644 index 0000000000000..6f33895b378fc --- /dev/null +++ b/recipes/popoolation2/meta.yaml @@ -0,0 +1,55 @@ +{% set name = "popoolation2" %} +{% set version = "1.201" %} +{% set sha256 = "7f45353a211ec88d36fd1beed1d128673f3ff911b731211eb5a39f8602bddd42" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://downloads.sourceforge.net/project/popoolation2/popoolation2_1201.zip + sha256: {{ sha256 }} + +build: + number: 0 + noarch: generic + run_exports: + - {{ pin_subpackage('popoolation2', max_pin="x") }} + +requirements: + host: + - perl + run: + - perl + - perl-text-nsp + - r-base + - bwa + - samtools + - igv + - openjdk + - python + +test: + commands: + - page -V 2>&1 | grep page + - snp-frequency-diff.pl --help 2>&1 | grep SNP-frequency-diff.pl + - fst-sliding.pl --help 2>&1 | grep fst-sliding.pl + - fisher-test.pl --help 2>&1 | grep fisher-test.pl + - pwc2igv.pl --help 2>&1 | grep pwc2igv + - cmh2gwas.pl --help 2>&1 | grep cmh2gwas + - identify-indel-regions.pl 2>&1 | grep identify-indel-regions + - filter-sync-by-gtf.pl 2>&1 | grep filter-sync-by-gtf + - mpileup2sync --help 2>&1 | grep mpileup2sync + - subsample_sync2fasta.pl 2>&1 | grep subsample_sync2fasta + - subsample_sync2GenePop.pl 2>&1 | grep subsample_sync2GenePop + - filter-sync-by-gtf.pl 2>&1 | grep filter-sync-by-gtf + +about: + home: "https://sourceforge.net/projects/popoolation2" + summary: "PoPoolation2 allows to compare allele frequencies for SNPs between two or more populations and to identify significant differences." + license: BSD-3 + license_family: BSD + +extra: + identifiers: + - doi:10.1093/bioinformatics/btr589 diff --git a/recipes/popoolation2/mpileup2sync.py b/recipes/popoolation2/mpileup2sync.py new file mode 100644 index 0000000000000..2629cf831876a --- /dev/null +++ b/recipes/popoolation2/mpileup2sync.py @@ -0,0 +1,123 @@ +#! /usr/bin/env python +# +# Wrapper script for Java Conda packages that ensures that the java runtime +# is invoked with the right options. Adapted from the bash script (http://stackoverflow.com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in/246128#246128). + +# +# Program Parameters +# +import os +import subprocess +import sys +import shutil +from os import access +from os import getenv +from os import X_OK + +jar_file = 'mpileup2sync.jar' + + +default_jvm_mem_opts = ['-Xms2g', '-Xmx7g'] + +# !!! End of parameter section. No user-serviceable code below this line !!! + + +def real_dirname(path): + """Return the symlink-resolved, canonicalized directory-portion of path.""" + return os.path.dirname(os.path.realpath(path)) + + +def java_executable(): + """Return the executable name of the Java interpreter.""" + java_home = getenv('JAVA_HOME') + java_bin = os.path.join('bin', 'java') + + if java_home and access(os.path.join(java_home, java_bin), X_OK): + return os.path.join(java_home, java_bin) + else: + return 'java' + + +def jvm_opts(argv): + """Construct list of Java arguments based on our argument list. + + The argument list passed in argv must not include the script name. + The return value is a 3-tuple lists of strings of the form: + (memory_options, prop_options, passthrough_options) + """ + mem_opts = [] + prop_opts = [] + pass_args = [] + exec_dir = None + + for arg in argv: + if arg.startswith('-D'): + prop_opts.append(arg) + elif arg.startswith('-XX'): + prop_opts.append(arg) + elif arg.startswith('-Xm'): + mem_opts.append(arg) + elif arg.startswith('--exec_dir='): + exec_dir = arg.split('=')[1].strip('"').strip("'") + if not os.path.exists(exec_dir): + shutil.copytree(real_dirname(sys.argv[0]), exec_dir, symlinks=False, ignore=None) + else: + pass_args.append(arg) + + # In the original shell script the test coded below read: + # if [ "$jvm_mem_opts" == "" ] && [ -z ${_JAVA_OPTIONS+x} ] + # To reproduce the behaviour of the above shell code fragment + # it is important to explictly check for equality with None + # in the second condition, so a null envar value counts as True! + + if mem_opts == [] and getenv('_JAVA_OPTIONS') is None: + mem_opts = default_jvm_mem_opts + + return (mem_opts, prop_opts, pass_args, exec_dir) + + +def def_temp_log_opts(args): + """ + Establish default temporary and log folders. + """ + TEMP = os.getenv("TEMP") + + if TEMP is not None: + if '-log' not in args: + args.append('-log') + args.append(TEMP+'/logs') + + if '-temp_folder' not in args : + args.append('-temp_folder') + args.append(TEMP) + + return args + + +def main(): + java = java_executable() + """ + PeptideShaker updates files relative to the path of the jar file. + In a multiuser setting, the option --exec_dir="exec_dir" + can be used as the location for the peptide-shaker distribution. + If the exec_dir dies not exist, + we copy the jar file, lib, and resources to the exec_dir directory. + """ + (mem_opts, prop_opts, pass_args, exec_dir) = jvm_opts(sys.argv[1:]) + pass_args = def_temp_log_opts(pass_args) + jar_dir = exec_dir if exec_dir else real_dirname(sys.argv[0]) + + if pass_args != [] and pass_args[0].startswith('eu'): + jar_arg = '-cp' + else: + jar_arg = '-jar' + + jar_path = os.path.join(jar_dir, jar_file) + + java_args = [java] + mem_opts + prop_opts + [jar_arg] + [jar_path] + pass_args + + sys.exit(subprocess.call(java_args)) + + +if __name__ == '__main__': + main() From dda73253e4f3c8840e45ebee8b25e14ffd7f3c43 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 17:37:53 -0400 Subject: [PATCH 1168/1589] Update mimsi to 0.4.5 (#50246) * Update mimsi to 0.4.5 * Update mimsi to 0.4.5 * Add run_exports --------- Co-authored-by: Martin Grigorov --- recipes/mimsi/meta.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/mimsi/meta.yaml b/recipes/mimsi/meta.yaml index ff1db577f609a..afbe48b18ac7d 100755 --- a/recipes/mimsi/meta.yaml +++ b/recipes/mimsi/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.4.4" %} +{% set version = "0.4.5" %} package: @@ -7,10 +7,12 @@ package: source: url: https://github.com/mskcc/mimsi/archive/refs/tags/v{{ version }}.tar.gz - sha256: fcf866629615550f30ce63d065036370141a050ae5643c0bcd3751ae0f5696aa + sha256: 3bbca89b5592911c92f5e18c3d490f85914ccf64101b8dabb35c196668f6e3bd build: number: 0 + run_exports: + - {{ pin_subpackage('mimsi', max_pin='x.x') }} noarch: python script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed --no-cache-dir " From c6af63245016af367e1ec658639a23ed3f91e557 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 17:38:01 -0400 Subject: [PATCH 1169/1589] Update relion to 4.0.2 (#50257) * Update relion to 4.0.2 * Add run_exports * Fix Jinja2 syntax --------- Co-authored-by: Martin Grigorov --- recipes/relion/meta.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/recipes/relion/meta.yaml b/recipes/relion/meta.yaml index b790782ac6bbb..dd09e484e2da1 100644 --- a/recipes/relion/meta.yaml +++ b/recipes/relion/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "4.0.1" %} +{% set version = "4.0.2" %} package: name: relion @@ -6,10 +6,12 @@ package: source: url: https://github.com/3dem/relion/archive/refs/tags/{{ version }}.tar.gz - sha256: 0ebbd94ad922d7f457e3f3b81f5660e2691a845d9a53f0f1c9fbeb4e54cd5c17 + sha256: 7ccc941a6a885bd850efa8867ea908254d8dc260cf72cc24c375bb9f1d56bf91 build: - number: 3 + number: 0 + run_exports: + - {{ pin_subpackage('relion', max_pin='x') }} requirements: build: From 40dc5300f247045de37e9e633060e6ee2ad9f477 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 19:21:06 -0400 Subject: [PATCH 1170/1589] Update orthanq to 1.7.6 (#50273) --- recipes/orthanq/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/orthanq/meta.yaml b/recipes/orthanq/meta.yaml index 9d9e65247ca0d..94442d6f600ce 100644 --- a/recipes/orthanq/meta.yaml +++ b/recipes/orthanq/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.7.5" %} +{% set version = "1.7.6" %} package: name: orthanq @@ -12,7 +12,7 @@ build: source: url: https://github.com/orthanq/orthanq/archive/v{{ version }}.tar.gz - sha256: f116404548dd15641785177a39b272d91c43c5f66e0022266277e51811426e24 + sha256: 866dca2de2b8599ba70e6435ad5edd1d4945242a9f7e7edeabdaffc3a7037cc9 requirements: build: From 7ae9a51dd3138547a702e149c23f53a1a47de510 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 23 Aug 2024 12:42:34 -0400 Subject: [PATCH 1171/1589] Update bpipe to 0.9.13 (#50280) --- recipes/bpipe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/bpipe/meta.yaml b/recipes/bpipe/meta.yaml index 9bc00b7316519..68230c4b19867 100644 --- a/recipes/bpipe/meta.yaml +++ b/recipes/bpipe/meta.yaml @@ -1,5 +1,5 @@ {% set name = "bpipe" %} -{% set version = "0.9.12" %} +{% set version = "0.9.13" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/ssadedin/bpipe/releases/download/{{ version }}/bpipe-{{ version }}.tar.gz - sha256: '2c8b004e8bcc6bc85c14b699ee011af8a9f9e19f252260a14561492dadc5878b' + sha256: '206939fe11d47d3d5d93667317d6acfdf23fb0bdc3ffb0e7a891c3010d390339' build: number: 0 From 6df1f85b6384b9a134e7e37151dcf0085cb2ac8f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 23 Aug 2024 12:42:49 -0400 Subject: [PATCH 1172/1589] Update mess to 0.9.0 (#50282) --- recipes/mess/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/mess/meta.yaml b/recipes/mess/meta.yaml index d6e0e7fbdce95..79e6e64a7263c 100644 --- a/recipes/mess/meta.yaml +++ b/recipes/mess/meta.yaml @@ -1,5 +1,5 @@ {% set name = "MeSS" %} -{% set version = "0.8.3" %} +{% set version = "0.9.0" %} package: name: "{{ name|lower }}" @@ -7,10 +7,10 @@ package: source: url: https://github.com/metagenlab/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz - sha256: 0f33dad4c2a90ed5e7d573c5cdb878150d63e99cfdbf83504f72c557eb075d74 + sha256: a0bb9d8dc81548cfad1cc45d43c82d41b28a399dd8f6bad4c5588a8201196f1a build: - number: 1 + number: 0 noarch: python entry_points: - mess=mess.__main__:main From 7fa05c7e0d470fb2a4aba022f3e201834c1ec7b2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 23 Aug 2024 12:43:01 -0400 Subject: [PATCH 1173/1589] Update gapseq to 1.3 (#50283) --- recipes/gapseq/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gapseq/meta.yaml b/recipes/gapseq/meta.yaml index b62b67d0b8755..44e964c9e8146 100644 --- a/recipes/gapseq/meta.yaml +++ b/recipes/gapseq/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.2" %} +{% set version = "1.3" %} package: name: gapseq @@ -6,7 +6,7 @@ package: source: url: https://github.com/jotech/gapseq/archive/refs/tags/v{{ version}}.tar.gz - sha256: 061799f8e0406662450dd3d8d61d824220670fb23231895deecd490a5cbdf7cf + sha256: 2ab2512813741593e1c69bf18e396edf9643e7dd7ab80afa59c4ba18c13f13ee build: number: 0 From 851d4d8b962079d969e7f73dfd04f9932cf9a74b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 23 Aug 2024 12:45:59 -0400 Subject: [PATCH 1174/1589] Update gxformat2 to 0.20.0 (#50285) --- recipes/gxformat2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gxformat2/meta.yaml b/recipes/gxformat2/meta.yaml index 94eda22a18411..dac668815b47c 100644 --- a/recipes/gxformat2/meta.yaml +++ b/recipes/gxformat2/meta.yaml @@ -1,5 +1,5 @@ {% set name = "gxformat2" %} -{% set version = "0.19.0" %} +{% set version = "0.20.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 19cf7d4301ef3a7545c465e5daa7127042758bf4d9eba1f1dcc122eb47b99cfc + sha256: 9697b1548c7a016e211581831c48242718f2cbe8987c7db0dc75c20e65931df8 build: number: 0 From 2ac21793fac0f1d5564cd402282af7b516fa74ff Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 23 Aug 2024 12:46:18 -0400 Subject: [PATCH 1175/1589] Update orthanq to 1.7.7 (#50286) --- recipes/orthanq/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/orthanq/meta.yaml b/recipes/orthanq/meta.yaml index 94442d6f600ce..5547095f2a958 100644 --- a/recipes/orthanq/meta.yaml +++ b/recipes/orthanq/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.7.6" %} +{% set version = "1.7.7" %} package: name: orthanq @@ -12,7 +12,7 @@ build: source: url: https://github.com/orthanq/orthanq/archive/v{{ version }}.tar.gz - sha256: 866dca2de2b8599ba70e6435ad5edd1d4945242a9f7e7edeabdaffc3a7037cc9 + sha256: 1adbdb92ce2b47974603eacfec4907121ca701cf43e260780b3e018ba3767cfb requirements: build: From 0c0545cfa1a37a719446f1a17aa468f4841cb3fc Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 23 Aug 2024 12:58:11 -0400 Subject: [PATCH 1176/1589] Update snakemake-executor-plugin-slurm to 0.10.0 (#50284) --- recipes/snakemake-executor-plugin-slurm/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-executor-plugin-slurm/meta.yaml b/recipes/snakemake-executor-plugin-slurm/meta.yaml index dcd161f2ac530..3c0bfb35d7ec2 100644 --- a/recipes/snakemake-executor-plugin-slurm/meta.yaml +++ b/recipes/snakemake-executor-plugin-slurm/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-executor-plugin-slurm" %} -{% set version = "0.9.0" %} +{% set version = "0.10.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_executor_plugin_slurm-{{ version }}.tar.gz - sha256: 1d527dc8d09daa194b4ced3360d06bce61001bfa78471ff35bd421c818fa4101 + sha256: d970bd08e00f1664adbd3c421c956b2ce926359ff10a4d7650c444c1179bec3f build: noarch: python From 7c0757ddf8304ef266b64d985184da13c8f13d68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20P=C5=99=C3=ADhoda?= Date: Fri, 23 Aug 2024 19:02:54 +0200 Subject: [PATCH 1177/1589] Bump up abnumber (#50278) --- recipes/abnumber/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/abnumber/meta.yaml b/recipes/abnumber/meta.yaml index e0f38f1c54682..e151ff0389261 100644 --- a/recipes/abnumber/meta.yaml +++ b/recipes/abnumber/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.3.7" %} # Remember to update sha256 below +{% set version = "0.3.8" %} # Remember to update sha256 below package: name: abnumber @@ -6,7 +6,7 @@ package: source: url: https://github.com/prihoda/abnumber/archive/v{{ version }}.tar.gz - sha256: '4c99804745202ddf7bdf3da1add8d043035aabb5064ee69c8ef7b734d925e2ae' + sha256: '9d811615800d479bb2ddd54996f1255806bd9ebc140407a54a0bc1790f9a8cee' build: noarch: python From b1234589fc68e154717ad327f529d2c009fff013 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 23 Aug 2024 13:03:28 -0400 Subject: [PATCH 1178/1589] Update dfast_qc to 1.0.4 (#50279) * Update dfast_qc to 1.0.3 * Update build.sh * Update dfast_qc to 1.0.4 --------- Co-authored-by: Yasuhiro Tanizawa <30499043+nigyta@users.noreply.github.com> --- recipes/dfast_qc/build.sh | 1 + recipes/dfast_qc/meta.yaml | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/dfast_qc/build.sh b/recipes/dfast_qc/build.sh index ffe64f11c0e4a..1a99a07fb5e4b 100755 --- a/recipes/dfast_qc/build.sh +++ b/recipes/dfast_qc/build.sh @@ -21,6 +21,7 @@ ln -s ${APPROOT}/dfast_qc ${PREFIX}/bin/ ln -s ${APPROOT}/dqc_admin_tools.py ${PREFIX}/bin/ ln -s ${APPROOT}/initial_setup.sh ${PREFIX}/bin/dqc_initial_setup.sh ln -s ${APPROOT}/dqc_ref_manager.py ${PREFIX}/bin/ +ln -s ${APPROOT}/dqc_multi ${PREFIX}/bin/ # ${PREFIX}/bin/dfast_qc --version dfast_qc --version diff --git a/recipes/dfast_qc/meta.yaml b/recipes/dfast_qc/meta.yaml index 5481d28e3c43b..e9867cd503264 100644 --- a/recipes/dfast_qc/meta.yaml +++ b/recipes/dfast_qc/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.0.2" %} +{% set version = "1.0.4" %} package: name: dfast_qc @@ -12,7 +12,7 @@ build: source: url: https://github.com/nigyta/dfast_qc/archive/{{ version }}.tar.gz - sha256: 60cc0badf7b2aa8a464b92db717b2853e343b09a18f2c4bf6eeced3c79b0ba7b + sha256: 3e501924c6f75d95a9528b026f2e40eec54147b5190dcf5d549f38fb57ba92ab requirements: From e3f73b7e00d695b7ef07cc6134df068ed5684644 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 23 Aug 2024 18:25:17 -0400 Subject: [PATCH 1179/1589] Update biobox_add_taxid to 0.4 (#50288) --- recipes/biobox_add_taxid/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/biobox_add_taxid/meta.yaml b/recipes/biobox_add_taxid/meta.yaml index 7cd3d1051365e..58b40f8d0412a 100644 --- a/recipes/biobox_add_taxid/meta.yaml +++ b/recipes/biobox_add_taxid/meta.yaml @@ -1,6 +1,6 @@ {% set name = "biobox_add_taxid" %} -{% set version = "0.3" %} -{% set sha256 = "f0bd555f1fc646e5a7f84d7f46914bcc06a5fa77ca251fd7303354987967208f" %} +{% set version = "0.4" %} +{% set sha256 = "2df4de457494ef85b8ca38326629f2705499564a360a7156871d5d2281df1086" %} package: name: {{ name|lower }} @@ -34,4 +34,4 @@ about: license: MIT license_family: MIT license_file: LICENSE - summary: "CAMI amber utility script for adding the taxid output from GTDB and BAT" \ No newline at end of file + summary: "CAMI amber utility script for adding the taxid output from GTDB and BAT" From bb377039d06bc57f7789d3077da01884fa2122cd Mon Sep 17 00:00:00 2001 From: lweber21 Date: Fri, 23 Aug 2024 23:01:15 -0500 Subject: [PATCH 1180/1589] Add tribal (#50252) --- recipes/tribal/meta.yaml | 55 ++++++++++++++++++++++++++++++++++++++ recipes/tribal/run_test.py | 21 +++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 recipes/tribal/meta.yaml create mode 100644 recipes/tribal/run_test.py diff --git a/recipes/tribal/meta.yaml b/recipes/tribal/meta.yaml new file mode 100644 index 0000000000000..fc988e2ff8264 --- /dev/null +++ b/recipes/tribal/meta.yaml @@ -0,0 +1,55 @@ +{% set name = "TRIBAL" %} +{% set version = "0.1.1" %} + +package: + name: '{{ name|lower }}' + version: '{{ version }}' + +source: + url: https://github.com/elkebir-group/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz + sha256: 3859295c1e615ce9ce5d34e73c9dea33a08a105a502096e7640e0feeda83756e + +build: + number: 0 + run_exports: + - {{ pin_subpackage('tribal', max_pin='x.x') }} + script: + - "{{ PYTHON }} -m pip install . --no-deps --ignore-installed -vvv" + - $CC -c tribal/dnapars/phylip.c -o tribal/dnapars/phylip.o -fcommon + - $CC -c tribal/dnapars/seq.c -o tribal/dnapars/seq.o -fcommon + - $CC -c tribal/dnapars/dnapars.c -o tribal/dnapars/dnapars.o -fcommon + - $CC tribal/dnapars/seq.o tribal/dnapars/phylip.o tribal/dnapars/dnapars.o -lm -o $PREFIX/bin/dnapars + +requirements: + build: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + host: + - python >=3.9,<3.11 + - pip + - setuptools + run: + - python >=3.9,<3.11 + - numpy >=1.26,<2.0 + - pandas + - networkx >=3.1 + - pygraphviz >=1.10 + - ete3 >=3.1.2 + - mafft ==7.526 + - glpk >=5.0 + - pyomo >=6.7 + - biopython >=1.81 + +test: + imports: + - tribal + commands: + - tribal --help + - tribal preprocess -h + - tribal fit -h + +about: + home: "https://github.com/elkebir-group/TRIBAL" + doc_url: "https://elkebir-group.github.io/TRIBAL" + license: "BSD-3-Clause" + summary: "TRIBAL is a package to infer B cell lineage trees from single-cell RNA sequencing data." diff --git a/recipes/tribal/run_test.py b/recipes/tribal/run_test.py new file mode 100644 index 0000000000000..74c8489f92072 --- /dev/null +++ b/recipes/tribal/run_test.py @@ -0,0 +1,21 @@ +""" +Vignette to demonstrate the capabilities of the tribal package. +""" + +from tribal.preprocess import preprocess +from tribal import df, roots +from tribal import Tribal + + +if __name__ == "__main__": + + isotypes = ['IGHM', 'IGHG3', 'IGHG1', 'IGHA1','IGHG2','IGHG4','IGHE','IGHA2'] + + #test that dnapars installed correctly by running it during preprocessing + clonotypes, df_filt = preprocess(df, roots,isotypes, cores=3, verbose=True ) + + #test that the tribal package is working + tr = Tribal(n_isotypes=len(isotypes), verbose=True, restarts=1, niter=15) + + #run in refinement mode + shm_score, csr_likelihood, best_scores, transmat = tr.fit(clonotypes=clonotypes, mode="refinement", cores=6) \ No newline at end of file From 759aa530221efca9d17ab70a50a6ae0400388260 Mon Sep 17 00:00:00 2001 From: Nils Homer Date: Fri, 23 Aug 2024 21:04:03 -0700 Subject: [PATCH 1181/1589] Add new recipe for bwa-aln-interactive (#50269) --- recipes/bwa-aln-interactive/build.sh | 5 ++++ recipes/bwa-aln-interactive/meta.yaml | 38 +++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 recipes/bwa-aln-interactive/build.sh create mode 100644 recipes/bwa-aln-interactive/meta.yaml diff --git a/recipes/bwa-aln-interactive/build.sh b/recipes/bwa-aln-interactive/build.sh new file mode 100644 index 0000000000000..f7f3b28babaf1 --- /dev/null +++ b/recipes/bwa-aln-interactive/build.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +make CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" LDFLAGS="$LDFLAGS" -j "${CPU_COUNT}" +mkdir -p $PREFIX/bin +cp bwa $PREFIX/bin/bwa-aln-interactive diff --git a/recipes/bwa-aln-interactive/meta.yaml b/recipes/bwa-aln-interactive/meta.yaml new file mode 100644 index 0000000000000..ac90752afdf90 --- /dev/null +++ b/recipes/bwa-aln-interactive/meta.yaml @@ -0,0 +1,38 @@ +{% set version = "0.7.18" %} +{% set sha256 = "66645908adeeaa288177fd87f1878f83d6547dd37cdf999aff5b5ce9a9437c81" %} + + +package: + name: bwa-aln-interactive + version: {{ version }} + +source: + url: https://github.com/fulcrumgenomics/bwa-aln-interactive/archive/refs/tags/v{{ version }}.tar.gz + sha256: {{ sha256 }} + +build: + number: 0 + run_exports: + - {{ pin_subpackage("bwa-aln-interactive", max_pin="x.x") }} + +requirements: + build: + - make + - {{ compiler('c') }} + host: + - zlib + +test: + commands: + - bwa-aln-interactive 2>&1 | grep "index sequences in the" + +about: + home: https://github.com/fulcrumgenomics/bwa-aln-interactive + license: GPL-3.0-only + license_file: COPYING + summary: Version of the BWA aln read mapper for interactive alignment. + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From 85e135c0e9429ec7414f7caa700e692c5fd89eda Mon Sep 17 00:00:00 2001 From: Daria Frolova <64833238+babayagaofficial@users.noreply.github.com> Date: Sat, 24 Aug 2024 05:05:56 +0100 Subject: [PATCH 1182/1589] add pling (#50267) --- recipes/pling/meta.yaml | 48 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 recipes/pling/meta.yaml diff --git a/recipes/pling/meta.yaml b/recipes/pling/meta.yaml new file mode 100644 index 0000000000000..61c2193346c7e --- /dev/null +++ b/recipes/pling/meta.yaml @@ -0,0 +1,48 @@ +{% set version = "2.0.0" %} +{% set name = "pling" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/iqbal-lab-org/{{ name|lower }}/archive/refs/tags/v{{ version }}.tar.gz + sha256: 9e00b70239dcefdcfbaf3089757f1d6505428d71e1ef612fa3e3a230b368ce44 + +build: + number: 0 + noarch: python + script: "pip install . --no-deps --ignore-installed --no-cache-dir -vvv" + entry_points: + - pling = pling.run_pling:main + run_exports: + - {{ pin_subpackage("pling", max_pin="x") }} + +requirements: + host: + - python >=3.9,<3.12 + - pip + run: + - python >=3.9,<3.12 + - sourmash >=4.4.0,<5.0.0 + - pandas >=1.5.3 + - numpy >=1.26.0 + - intervaltree >=3.0.2 + - mummer >=3.23 + - glpk >=5.0 + - snakemake >=7.25.4,<8.0.0 + - plasnet >=0.6.0 + - dingII +test: + imports: + - pling + + commands: + - pling --help + +about: + home: https://github.com/iqbal-lab-org/pling + license: LICENSE + license_family: MIT + summary: 'Pling computes the rearrangement distance between plasmids and clusters on their basis ' + From 28a408b31556c98f8a968f06fb51bd102c71f547 Mon Sep 17 00:00:00 2001 From: Peter Cock Date: Sat, 24 Aug 2024 05:07:39 +0100 Subject: [PATCH 1183/1589] Build hmmer for osx-arm64 (#50281) --- recipes/hmmer/build.sh | 4 +- recipes/hmmer/config.guess | 1700 ++++++++++++++++++++++++++++++++ recipes/hmmer/config.sub | 1885 ++++++++++++++++++++++++++++++++++++ recipes/hmmer/meta.yaml | 3 +- 4 files changed, 3590 insertions(+), 2 deletions(-) create mode 100644 recipes/hmmer/config.guess create mode 100644 recipes/hmmer/config.sub diff --git a/recipes/hmmer/build.sh b/recipes/hmmer/build.sh index 9bedf04f9819a..00abe00649fa1 100755 --- a/recipes/hmmer/build.sh +++ b/recipes/hmmer/build.sh @@ -2,6 +2,9 @@ set -e -u -x +# use newer config.guess and config.sub that support osx-arm64 +cp ${RECIPE_DIR}/config.* . + ./configure --prefix=$PREFIX make -j4 make install @@ -11,4 +14,3 @@ make install mkdir -p $PREFIX/share rm -rf ${SRC_DIR}/easel/miniapps cp -r ${SRC_DIR}/easel $PREFIX/share/ - diff --git a/recipes/hmmer/config.guess b/recipes/hmmer/config.guess new file mode 100644 index 0000000000000..1972fda8eb05d --- /dev/null +++ b/recipes/hmmer/config.guess @@ -0,0 +1,1700 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright 1992-2021 Free Software Foundation, Inc. + +timestamp='2021-01-25' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. +# +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess +# +# Please send patches to . + + +me=$(echo "$0" | sed -e 's,.*/,,') + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright 1992-2021 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +tmp= +# shellcheck disable=SC2172 +trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 + +set_cc_for_build() { + # prevent multiple calls if $tmp is already set + test "$tmp" && return 0 + : "${TMPDIR=/tmp}" + # shellcheck disable=SC2039 + { tmp=$( (umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null) && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } + dummy=$tmp/dummy + case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in + ,,) echo "int x;" > "$dummy.c" + for driver in cc gcc c89 c99 ; do + if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD="$driver" + break + fi + done + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; + esac +} + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if test -f /.attbin/uname ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=$( (uname -m) 2>/dev/null) || UNAME_MACHINE=unknown +UNAME_RELEASE=$( (uname -r) 2>/dev/null) || UNAME_RELEASE=unknown +UNAME_SYSTEM=$( (uname -s) 2>/dev/null) || UNAME_SYSTEM=unknown +UNAME_VERSION=$( (uname -v) 2>/dev/null) || UNAME_VERSION=unknown + +case "$UNAME_SYSTEM" in +Linux|GNU|GNU/*) + LIBC=unknown + + set_cc_for_build + cat <<-EOF > "$dummy.c" + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #elif defined(__GLIBC__) + LIBC=gnu + #else + #include + /* First heuristic to detect musl libc. */ + #ifdef __DEFINED_va_list + LIBC=musl + #endif + #endif + EOF + eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g')" + + # Second heuristic to detect musl libc. + if [ "$LIBC" = unknown ] && + command -v ldd >/dev/null && + ldd --version 2>&1 | grep -q ^musl; then + LIBC=musl + fi + + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + if [ "$LIBC" = unknown ]; then + LIBC=gnu + fi + ;; +esac + +# Note: order is significant - the case branches are not exclusive. + +case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + UNAME_MACHINE_ARCH=$( (uname -p 2>/dev/null || \ + /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + echo unknown)) + case "$UNAME_MACHINE_ARCH" in + aarch64eb) machine=aarch64_be-unknown ;; + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + earmv*) + arch=$(echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,') + endian=$(echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p') + machine="${arch}${endian}"-unknown + ;; + *) machine="$UNAME_MACHINE_ARCH"-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently (or will in the future) and ABI. + case "$UNAME_MACHINE_ARCH" in + earm*) + os=netbsdelf + ;; + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # Determine ABI tags. + case "$UNAME_MACHINE_ARCH" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=$(echo "$UNAME_MACHINE_ARCH" | sed -e "$expr") + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "$UNAME_VERSION" in + Debian*) + release='-gnu' + ;; + *) + release=$(echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2) + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "$machine-${os}${release}${abi-}" + exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=$(arch | sed 's/Bitrig.//') + echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=$(arch | sed 's/OpenBSD.//') + echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" + exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=$(arch | sed 's/^.*BSD\.//') + echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" + exit ;; + *:MidnightBSD:*:*) + echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" + exit ;; + *:ekkoBSD:*:*) + echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" + exit ;; + *:SolidBSD:*:*) + echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" + exit ;; + *:OS108:*:*) + echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE" + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd"$UNAME_RELEASE" + exit ;; + *:MirBSD:*:*) + echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" + exit ;; + *:Sortix:*:*) + echo "$UNAME_MACHINE"-unknown-sortix + exit ;; + *:Twizzler:*:*) + echo "$UNAME_MACHINE"-unknown-twizzler + exit ;; + *:Redox:*:*) + echo "$UNAME_MACHINE"-unknown-redox + exit ;; + mips:OSF1:*.*) + echo mips-dec-osf1 + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $3}') + ;; + *5.*) + UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $4}') + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=$(/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1) + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE=alpha ;; + "EV4.5 (21064)") + UNAME_MACHINE=alpha ;; + "LCA4 (21066/21068)") + UNAME_MACHINE=alpha ;; + "EV5 (21164)") + UNAME_MACHINE=alphaev5 ;; + "EV5.6 (21164A)") + UNAME_MACHINE=alphaev56 ;; + "EV5.6 (21164PC)") + UNAME_MACHINE=alphapca56 ;; + "EV5.7 (21164PC)") + UNAME_MACHINE=alphapca57 ;; + "EV6 (21264)") + UNAME_MACHINE=alphaev6 ;; + "EV6.7 (21264A)") + UNAME_MACHINE=alphaev67 ;; + "EV6.8CB (21264C)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8AL (21264B)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8CX (21264D)") + UNAME_MACHINE=alphaev68 ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE=alphaev69 ;; + "EV7 (21364)") + UNAME_MACHINE=alphaev7 ;; + "EV7.9 (21364A)") + UNAME_MACHINE=alphaev79 ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo "$UNAME_MACHINE"-dec-osf"$(echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz)" + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo "$UNAME_MACHINE"-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo "$UNAME_MACHINE"-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix"$UNAME_RELEASE" + exit ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "$( (/bin/universe) 2>/dev/null)" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case $(/usr/bin/uname -p) in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo "$UNAME_MACHINE"-ibm-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')" + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')" + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux"$UNAME_RELEASE" + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + set_cc_for_build + SUN_ARCH=i386 + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH=x86_64 + fi + fi + echo "$SUN_ARCH"-pc-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" + exit ;; + sun4*:SunOS:*:*) + case "$(/usr/bin/arch -k)" in + Series*|S4*) + UNAME_RELEASE=$(uname -v) + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/')" + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos"$UNAME_RELEASE" + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=$( (sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null) + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 + case "$(/bin/arch)" in + sun3) + echo m68k-sun-sunos"$UNAME_RELEASE" + ;; + sun4) + echo sparc-sun-sunos"$UNAME_RELEASE" + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos"$UNAME_RELEASE" + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint"$UNAME_RELEASE" + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint"$UNAME_RELEASE" + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint"$UNAME_RELEASE" + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten"$UNAME_RELEASE" + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten"$UNAME_RELEASE" + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix"$UNAME_RELEASE" + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix"$UNAME_RELEASE" + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix"$UNAME_RELEASE" + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=$(echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p') && + SYSTEM_NAME=$("$dummy" "$dummyarg") && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos"$UNAME_RELEASE" + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=$(/usr/bin/uname -p) + if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 + then + if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ + test "$TARGET_BINARY_INTERFACE"x = x + then + echo m88k-dg-dgux"$UNAME_RELEASE" + else + echo m88k-dg-dguxbcs"$UNAME_RELEASE" + fi + else + echo i586-dg-dgux"$UNAME_RELEASE" + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/g')" + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'$(uname -s)'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if test -x /usr/bin/oslevel ; then + IBM_REV=$(/usr/bin/oslevel) + else + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" + fi + echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy") + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[4567]) + IBM_CPU_ID=$(/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }') + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if test -x /usr/bin/lslpp ; then + IBM_REV=$(/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/) + else + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" + fi + echo "$IBM_ARCH"-ibm-aix"$IBM_REV" + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//') + case "$UNAME_MACHINE" in + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if test -x /usr/bin/getconf; then + sc_cpu_version=$(/usr/bin/getconf SC_CPU_VERSION 2>/dev/null) + sc_kernel_bits=$(/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null) + case "$sc_cpu_version" in + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "$sc_kernel_bits" in + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 + esac ;; + esac + fi + if test "$HP_ARCH" = ""; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=$("$dummy") + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if test "$HP_ARCH" = hppa2.0w + then + set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH=hppa2.0w + else + HP_ARCH=hppa64 + fi + fi + echo "$HP_ARCH"-hp-hpux"$HPUX_REV" + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//') + echo ia64-hp-hpux"$HPUX_REV" + exit ;; + 3050*:HI-UX:*:*) + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy") && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if test -x /usr/sbin/sysversion ; then + echo "$UNAME_MACHINE"-unknown-osf1mk + else + echo "$UNAME_MACHINE"-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=$(uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz) + FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///') + FUJITSU_REL=$(echo "$UNAME_RELEASE" | sed -e 's/ /_/') + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///') + FUJITSU_REL=$(echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/') + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi"$UNAME_RELEASE" + exit ;; + *:BSD/OS:*:*) + echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" + exit ;; + arm:FreeBSD:*:*) + UNAME_PROCESSOR=$(uname -p) + set_cc_for_build + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabi + else + echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabihf + fi + exit ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=$(/usr/bin/uname -p) + case "$UNAME_PROCESSOR" in + amd64) + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; + esac + echo "$UNAME_PROCESSOR"-unknown-freebsd"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')" + exit ;; + i*:CYGWIN*:*) + echo "$UNAME_MACHINE"-pc-cygwin + exit ;; + *:MINGW64*:*) + echo "$UNAME_MACHINE"-pc-mingw64 + exit ;; + *:MINGW*:*) + echo "$UNAME_MACHINE"-pc-mingw32 + exit ;; + *:MSYS*:*) + echo "$UNAME_MACHINE"-pc-msys + exit ;; + i*:PW*:*) + echo "$UNAME_MACHINE"-pc-pw32 + exit ;; + *:Interix*:*) + case "$UNAME_MACHINE" in + x86) + echo i586-pc-interix"$UNAME_RELEASE" + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix"$UNAME_RELEASE" + exit ;; + IA64) + echo ia64-unknown-interix"$UNAME_RELEASE" + exit ;; + esac ;; + i*:UWIN*:*) + echo "$UNAME_MACHINE"-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-pc-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" + exit ;; + *:GNU:*:*) + # the GNU system + echo "$(echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,')-unknown-$LIBC$(echo "$UNAME_RELEASE"|sed -e 's,/.*$,,')" + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo "$UNAME_MACHINE-unknown-$(echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]")$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')-$LIBC" + exit ;; + *:Minix:*:*) + echo "$UNAME_MACHINE"-unknown-minix + exit ;; + aarch64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + alpha:Linux:*:*) + case $(sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null) in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + arm*:Linux:*:*) + set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi + else + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf + fi + fi + exit ;; + avr32*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + cris:Linux:*:*) + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" + exit ;; + crisv32:Linux:*:*) + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" + exit ;; + e2k:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + frv:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + hexagon:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + i*86:Linux:*:*) + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" + exit ;; + ia64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + k1om:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + m32r*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + m68*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + set_cc_for_build + IS_GLIBC=0 + test x"${LIBC}" = xgnu && IS_GLIBC=1 + sed 's/^ //' << EOF > "$dummy.c" + #undef CPU + #undef mips + #undef mipsel + #undef mips64 + #undef mips64el + #if ${IS_GLIBC} && defined(_ABI64) + LIBCABI=gnuabi64 + #else + #if ${IS_GLIBC} && defined(_ABIN32) + LIBCABI=gnuabin32 + #else + LIBCABI=${LIBC} + #endif + #endif + + #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa64r6 + #else + #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa32r6 + #else + #if defined(__mips64) + CPU=mips64 + #else + CPU=mips + #endif + #endif + #endif + + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + MIPS_ENDIAN=el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + MIPS_ENDIAN= + #else + MIPS_ENDIAN= + #endif + #endif +EOF + eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI')" + test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } + ;; + mips64el:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + openrisc*:Linux:*:*) + echo or1k-unknown-linux-"$LIBC" + exit ;; + or32:Linux:*:* | or1k*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-"$LIBC" + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-"$LIBC" + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case $(grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2) in + PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; + PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; + *) echo hppa-unknown-linux-"$LIBC" ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-"$LIBC" + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-"$LIBC" + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-"$LIBC" + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-"$LIBC" + exit ;; + riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" + exit ;; + sh64*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + sh*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + tile*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + vax:Linux:*:*) + echo "$UNAME_MACHINE"-dec-linux-"$LIBC" + exit ;; + x86_64:Linux:*:*) + set_cc_for_build + LIBCABI=$LIBC + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_X32 >/dev/null + then + LIBCABI="$LIBC"x32 + fi + fi + echo "$UNAME_MACHINE"-pc-linux-"$LIBCABI" + exit ;; + xtensa*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo "$UNAME_MACHINE"-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo "$UNAME_MACHINE"-unknown-stop + exit ;; + i*86:atheos:*:*) + echo "$UNAME_MACHINE"-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo "$UNAME_MACHINE"-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos"$UNAME_RELEASE" + exit ;; + i*86:*DOS:*:*) + echo "$UNAME_MACHINE"-pc-msdosdjgpp + exit ;; + i*86:*:4.*:*) + UNAME_REL=$(echo "$UNAME_RELEASE" | sed 's/\/MP$//') + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" + else + echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case $(/bin/uname -X | grep "^Machine") in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}" + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=$(sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=$( (/bin/uname -X|grep Release|sed -e 's/.*= //')) + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" + else + echo "$UNAME_MACHINE"-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configure will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos"$UNAME_RELEASE" + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos"$UNAME_RELEASE" + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos"$UNAME_RELEASE" + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos"$UNAME_RELEASE" + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv"$UNAME_RELEASE" + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=$( (uname -p) 2>/dev/null) + echo "$UNAME_MACHINE"-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo "$UNAME_MACHINE"-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux"$UNAME_RELEASE" + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if test -d /usr/nec; then + echo mips-nec-sysv"$UNAME_RELEASE" + else + echo mips-unknown-sysv"$UNAME_RELEASE" + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux"$UNAME_RELEASE" + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux"$UNAME_RELEASE" + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux"$UNAME_RELEASE" + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux"$UNAME_RELEASE" + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux"$UNAME_RELEASE" + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux"$UNAME_RELEASE" + exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux"$UNAME_RELEASE" + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody"$UNAME_RELEASE" + exit ;; + *:Rhapsody:*:*) + echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" + exit ;; + arm64:Darwin:*:*) + echo aarch64-apple-darwin"$UNAME_RELEASE" + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=$(uname -p) + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + if command -v xcode-select > /dev/null 2> /dev/null && \ + ! xcode-select --print-path > /dev/null 2> /dev/null ; then + # Avoid executing cc if there is no toolchain installed as + # cc will be a stub that puts up a graphical alert + # prompting the user to install developer tools. + CC_FOR_BUILD=no_compiler_found + else + set_cc_for_build + fi + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # uname -m returns i386 or x86_64 + UNAME_PROCESSOR=$UNAME_MACHINE + fi + echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=$(uname -p) + if test "$UNAME_PROCESSOR" = x86; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NEO-*:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSR-*:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSV-*:NONSTOP_KERNEL:*:*) + echo nsv-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSX-*:NONSTOP_KERNEL:*:*) + echo nsx-tandem-nsk"$UNAME_RELEASE" + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + # shellcheck disable=SC2154 + if test "$cputype" = 386; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo "$UNAME_MACHINE"-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux"$UNAME_RELEASE" + exit ;; + *:DragonFly:*:*) + echo "$UNAME_MACHINE"-unknown-dragonfly"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')" + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=$( (uname -p) 2>/dev/null) + case "$UNAME_MACHINE" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo "$UNAME_MACHINE"-pc-skyos"$(echo "$UNAME_RELEASE" | sed -e 's/ .*$//')" + exit ;; + i*86:rdos:*:*) + echo "$UNAME_MACHINE"-pc-rdos + exit ;; + *:AROS:*:*) + echo "$UNAME_MACHINE"-unknown-aros + exit ;; + x86_64:VMkernel:*:*) + echo "$UNAME_MACHINE"-unknown-esx + exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; + *:Unleashed:*:*) + echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE" + exit ;; +esac + +# No uname command or uname output not recognized. +set_cc_for_build +cat > "$dummy.c" < +#include +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#include +#if defined(_SIZE_T_) || defined(SIGLOST) +#include +#endif +#endif +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=$( (hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null); + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); +#endif + +#if defined (vax) +#if !defined (ultrix) +#include +#if defined (BSD) +#if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +#else +#if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#endif +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#else +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname un; + uname (&un); + printf ("vax-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("vax-dec-ultrix\n"); exit (0); +#endif +#endif +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname *un; + uname (&un); + printf ("mips-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("mips-dec-ultrix\n"); exit (0); +#endif +#endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=$($dummy) && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. +test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } + +echo "$0: unable to guess system type" >&2 + +case "$UNAME_MACHINE:$UNAME_SYSTEM" in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <&2 <&2 </dev/null || echo unknown) +uname -r = $( (uname -r) 2>/dev/null || echo unknown) +uname -s = $( (uname -s) 2>/dev/null || echo unknown) +uname -v = $( (uname -v) 2>/dev/null || echo unknown) + +/usr/bin/uname -p = $( (/usr/bin/uname -p) 2>/dev/null) +/bin/uname -X = $( (/bin/uname -X) 2>/dev/null) + +hostinfo = $( (hostinfo) 2>/dev/null) +/bin/universe = $( (/bin/universe) 2>/dev/null) +/usr/bin/arch -k = $( (/usr/bin/arch -k) 2>/dev/null) +/bin/arch = $( (/bin/arch) 2>/dev/null) +/usr/bin/oslevel = $( (/usr/bin/oslevel) 2>/dev/null) +/usr/convex/getsysinfo = $( (/usr/convex/getsysinfo) 2>/dev/null) + +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" +EOF +fi + +exit 1 + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/recipes/hmmer/config.sub b/recipes/hmmer/config.sub new file mode 100644 index 0000000000000..38f3d037a785f --- /dev/null +++ b/recipes/hmmer/config.sub @@ -0,0 +1,1885 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2021 Free Software Foundation, Inc. + +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2021-10-27' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + +Canonicalize a configuration name. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2021 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo "$1" + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Split fields of configuration type +# shellcheck disable=SC2162 +saved_IFS=$IFS +IFS="-" read field1 field2 field3 field4 <&2 + exit 1 + ;; + *-*-*-*) + basic_machine=$field1-$field2 + basic_os=$field3-$field4 + ;; + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova*) + basic_machine=$field1 + basic_os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + basic_os=linux-android + ;; + *) + basic_machine=$field1-$field2 + basic_os=$field3 + ;; + esac + ;; + *-*) + # A lone config we happen to match not fitting any pattern + case $field1-$field2 in + decstation-3100) + basic_machine=mips-dec + basic_os= + ;; + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + basic_os=$field2 + ;; + zephyr*) + basic_machine=$field1-unknown + basic_os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ + | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ + | unicom* | ibm* | next | hp | isi* | apollo | altos* \ + | convergent* | ncr* | news | 32* | 3600* | 3100* \ + | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ + | ultra | tti* | harris | dolphin | highlevel | gould \ + | cbm | ns | masscomp | apple | axis | knuth | cray \ + | microblaze* | sim | cisco \ + | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + basic_os= + ;; + *) + basic_machine=$field1 + basic_os=$field2 + ;; + esac + ;; + esac + ;; + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + basic_os=bsd + ;; + a29khif) + basic_machine=a29k-amd + basic_os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + basic_os=scout + ;; + alliant) + basic_machine=fx80-alliant + basic_os= + ;; + altos | altos3068) + basic_machine=m68k-altos + basic_os= + ;; + am29k) + basic_machine=a29k-none + basic_os=bsd + ;; + amdahl) + basic_machine=580-amdahl + basic_os=sysv + ;; + amiga) + basic_machine=m68k-unknown + basic_os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown + basic_os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + basic_os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + basic_os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + basic_os=bsd + ;; + aros) + basic_machine=i386-pc + basic_os=aros + ;; + aux) + basic_machine=m68k-apple + basic_os=aux + ;; + balance) + basic_machine=ns32k-sequent + basic_os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + basic_os=linux + ;; + cegcc) + basic_machine=arm-unknown + basic_os=cegcc + ;; + convex-c1) + basic_machine=c1-convex + basic_os=bsd + ;; + convex-c2) + basic_machine=c2-convex + basic_os=bsd + ;; + convex-c32) + basic_machine=c32-convex + basic_os=bsd + ;; + convex-c34) + basic_machine=c34-convex + basic_os=bsd + ;; + convex-c38) + basic_machine=c38-convex + basic_os=bsd + ;; + cray) + basic_machine=j90-cray + basic_os=unicos + ;; + crds | unos) + basic_machine=m68k-crds + basic_os= + ;; + da30) + basic_machine=m68k-da30 + basic_os= + ;; + decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec + basic_os= + ;; + delta88) + basic_machine=m88k-motorola + basic_os=sysv3 + ;; + dicos) + basic_machine=i686-pc + basic_os=dicos + ;; + djgpp) + basic_machine=i586-pc + basic_os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + basic_os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + basic_os=ose + ;; + gmicro) + basic_machine=tron-gmicro + basic_os=sysv + ;; + go32) + basic_machine=i386-pc + basic_os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + basic_os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + basic_os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + basic_os=hms + ;; + harris) + basic_machine=m88k-harris + basic_os=sysv3 + ;; + hp300 | hp300hpux) + basic_machine=m68k-hp + basic_os=hpux + ;; + hp300bsd) + basic_machine=m68k-hp + basic_os=bsd + ;; + hppaosf) + basic_machine=hppa1.1-hp + basic_os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + basic_os=proelf + ;; + i386mach) + basic_machine=i386-mach + basic_os=mach + ;; + isi68 | isi) + basic_machine=m68k-isi + basic_os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + basic_os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + basic_os=sysv + ;; + merlin) + basic_machine=ns32k-utek + basic_os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + basic_os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + basic_os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + basic_os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + basic_os=coff + ;; + morphos) + basic_machine=powerpc-unknown + basic_os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + basic_os=moxiebox + ;; + msdos) + basic_machine=i386-pc + basic_os=msdos + ;; + msys) + basic_machine=i686-pc + basic_os=msys + ;; + mvs) + basic_machine=i370-ibm + basic_os=mvs + ;; + nacl) + basic_machine=le32-unknown + basic_os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + basic_os=sysv4 + ;; + netbsd386) + basic_machine=i386-pc + basic_os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + basic_os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + basic_os=newsos + ;; + news1000) + basic_machine=m68030-sony + basic_os=newsos + ;; + necv70) + basic_machine=v70-nec + basic_os=sysv + ;; + nh3000) + basic_machine=m68k-harris + basic_os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + basic_os=cxux + ;; + nindy960) + basic_machine=i960-intel + basic_os=nindy + ;; + mon960) + basic_machine=i960-intel + basic_os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + basic_os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + basic_os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + basic_os=ose + ;; + os68k) + basic_machine=m68k-none + basic_os=os68k + ;; + paragon) + basic_machine=i860-intel + basic_os=osf + ;; + parisc) + basic_machine=hppa-unknown + basic_os=linux + ;; + psp) + basic_machine=mipsallegrexel-sony + basic_os=psp + ;; + pw32) + basic_machine=i586-unknown + basic_os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + basic_os=rdos + ;; + rdos32) + basic_machine=i386-pc + basic_os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + basic_os=coff + ;; + sa29200) + basic_machine=a29k-amd + basic_os=udi + ;; + sei) + basic_machine=mips-sei + basic_os=seiux + ;; + sequent) + basic_machine=i386-sequent + basic_os= + ;; + sps7) + basic_machine=m68k-bull + basic_os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem + basic_os= + ;; + stratus) + basic_machine=i860-stratus + basic_os=sysv4 + ;; + sun2) + basic_machine=m68000-sun + basic_os= + ;; + sun2os3) + basic_machine=m68000-sun + basic_os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + basic_os=sunos4 + ;; + sun3) + basic_machine=m68k-sun + basic_os= + ;; + sun3os3) + basic_machine=m68k-sun + basic_os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + basic_os=sunos4 + ;; + sun4) + basic_machine=sparc-sun + basic_os= + ;; + sun4os3) + basic_machine=sparc-sun + basic_os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + basic_os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + basic_os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + basic_os= + ;; + sv1) + basic_machine=sv1-cray + basic_os=unicos + ;; + symmetry) + basic_machine=i386-sequent + basic_os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + basic_os=unicos + ;; + t90) + basic_machine=t90-cray + basic_os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + basic_os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + basic_os=tpf + ;; + udi29k) + basic_machine=a29k-amd + basic_os=udi + ;; + ultra3) + basic_machine=a29k-nyu + basic_os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + basic_os=none + ;; + vaxv) + basic_machine=vax-dec + basic_os=sysv + ;; + vms) + basic_machine=vax-dec + basic_os=vms + ;; + vsta) + basic_machine=i386-pc + basic_os=vsta + ;; + vxworks960) + basic_machine=i960-wrs + basic_os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + basic_os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + basic_os=vxworks + ;; + xbox) + basic_machine=i686-pc + basic_os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + basic_os=unicos + ;; + *) + basic_machine=$1 + basic_os= + ;; + esac + ;; +esac + +# Decode 1-component or ad-hoc basic machines +case $basic_machine in + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. + w89k) + cpu=hppa1.1 + vendor=winbond + ;; + op50n) + cpu=hppa1.1 + vendor=oki + ;; + op60c) + cpu=hppa1.1 + vendor=oki + ;; + ibm*) + cpu=i370 + vendor=ibm + ;; + orion105) + cpu=clipper + vendor=highlevel + ;; + mac | mpw | mac-mpw) + cpu=m68k + vendor=apple + ;; + pmac | pmac-mpw) + cpu=powerpc + vendor=apple + ;; + + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + cpu=m68000 + vendor=att + ;; + 3b*) + cpu=we32k + vendor=att + ;; + bluegene*) + cpu=powerpc + vendor=ibm + basic_os=cnk + ;; + decsystem10* | dec10*) + cpu=pdp10 + vendor=dec + basic_os=tops10 + ;; + decsystem20* | dec20*) + cpu=pdp10 + vendor=dec + basic_os=tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + cpu=m68k + vendor=motorola + ;; + dpx2*) + cpu=m68k + vendor=bull + basic_os=sysv3 + ;; + encore | umax | mmax) + cpu=ns32k + vendor=encore + ;; + elxsi) + cpu=elxsi + vendor=elxsi + basic_os=${basic_os:-bsd} + ;; + fx2800) + cpu=i860 + vendor=alliant + ;; + genix) + cpu=ns32k + vendor=ns + ;; + h3050r* | hiux*) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + cpu=m68000 + vendor=hp + ;; + hp9k3[2-9][0-9]) + cpu=m68k + vendor=hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + i*86v32) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv32 + ;; + i*86v4*) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv4 + ;; + i*86v) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv + ;; + i*86sol2) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=solaris2 + ;; + j90 | j90-cray) + cpu=j90 + vendor=cray + basic_os=${basic_os:-unicos} + ;; + iris | iris4d) + cpu=mips + vendor=sgi + case $basic_os in + irix*) + ;; + *) + basic_os=irix4 + ;; + esac + ;; + miniframe) + cpu=m68000 + vendor=convergent + ;; + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) + cpu=m68k + vendor=atari + basic_os=mint + ;; + news-3600 | risc-news) + cpu=mips + vendor=sony + basic_os=newsos + ;; + next | m*-next) + cpu=m68k + vendor=next + case $basic_os in + openstep*) + ;; + nextstep*) + ;; + ns2*) + basic_os=nextstep2 + ;; + *) + basic_os=nextstep3 + ;; + esac + ;; + np1) + cpu=np1 + vendor=gould + ;; + op50n-* | op60c-*) + cpu=hppa1.1 + vendor=oki + basic_os=proelf + ;; + pa-hitachi) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + pbd) + cpu=sparc + vendor=tti + ;; + pbb) + cpu=m68k + vendor=tti + ;; + pc532) + cpu=ns32k + vendor=pc532 + ;; + pn) + cpu=pn + vendor=gould + ;; + power) + cpu=power + vendor=ibm + ;; + ps2) + cpu=i386 + vendor=ibm + ;; + rm[46]00) + cpu=mips + vendor=siemens + ;; + rtpc | rtpc-*) + cpu=romp + vendor=ibm + ;; + sde) + cpu=mipsisa32 + vendor=sde + basic_os=${basic_os:-elf} + ;; + simso-wrs) + cpu=sparclite + vendor=wrs + basic_os=vxworks + ;; + tower | tower-32) + cpu=m68k + vendor=ncr + ;; + vpp*|vx|vx-*) + cpu=f301 + vendor=fujitsu + ;; + w65) + cpu=w65 + vendor=wdc + ;; + w89k-*) + cpu=hppa1.1 + vendor=winbond + basic_os=proelf + ;; + none) + cpu=none + vendor=none + ;; + leon|leon[3-9]) + cpu=sparc + vendor=$basic_machine + ;; + leon-*|leon[3-9]-*) + cpu=sparc + vendor=`echo "$basic_machine" | sed 's/-.*//'` + ;; + + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read cpu vendor <&2 + exit 1 + ;; + esac + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $vendor in + digital*) + vendor=dec + ;; + commodore*) + vendor=cbm + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if test x$basic_os != x +then + +# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just +# set os. +case $basic_os in + gnu/linux*) + kernel=linux + os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` + ;; + os2-emx) + kernel=os2 + os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` + ;; + nto-qnx*) + kernel=nto + os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` + ;; + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read kernel os <&2 + exit 1 + ;; +esac + +# As a final step for OS-related things, validate the OS-kernel combination +# (given a valid OS), if there is a kernel. +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ + | linux-musl* | linux-relibc* | linux-uclibc* ) + ;; + uclinux-uclibc* ) + ;; + -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) + # These are just libc implementations, not actual OSes, and thus + # require a kernel. + echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + kfreebsd*-gnu* | kopensolaris*-gnu*) + ;; + vxworks-simlinux | vxworks-simwindows | vxworks-spe) + ;; + nto-qnx*) + ;; + os2-emx) + ;; + *-eabi* | *-gnueabi*) + ;; + -*) + # Blank kernel with real OS is always fine. + ;; + *-*) + echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 + exit 1 + ;; +esac + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +case $vendor in + unknown) + case $cpu-$os in + *-riscix*) + vendor=acorn + ;; + *-sunos*) + vendor=sun + ;; + *-cnk* | *-aix*) + vendor=ibm + ;; + *-beos*) + vendor=be + ;; + *-hpux*) + vendor=hp + ;; + *-mpeix*) + vendor=hp + ;; + *-hiux*) + vendor=hitachi + ;; + *-unos*) + vendor=crds + ;; + *-dgux*) + vendor=dg + ;; + *-luna*) + vendor=omron + ;; + *-genix*) + vendor=ns + ;; + *-clix*) + vendor=intergraph + ;; + *-mvs* | *-opened*) + vendor=ibm + ;; + *-os400*) + vendor=ibm + ;; + s390-* | s390x-*) + vendor=ibm + ;; + *-ptx*) + vendor=sequent + ;; + *-tpf*) + vendor=ibm + ;; + *-vxsim* | *-vxworks* | *-windiss*) + vendor=wrs + ;; + *-aux*) + vendor=apple + ;; + *-hms*) + vendor=hitachi + ;; + *-mpw* | *-macos*) + vendor=apple + ;; + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) + vendor=atari + ;; + *-vos*) + vendor=stratus + ;; + esac + ;; +esac + +echo "$cpu-$vendor-${kernel:+$kernel-}$os" +exit + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/recipes/hmmer/meta.yaml b/recipes/hmmer/meta.yaml index a5b3120a4bd0d..fdd92c051b30e 100644 --- a/recipes/hmmer/meta.yaml +++ b/recipes/hmmer/meta.yaml @@ -7,7 +7,7 @@ source: sha256: ca70d94fd0cf271bd7063423aabb116d42de533117343a9b27a65c17ff06fbf3 build: - number: 1 + number: 2 run_exports: # commands/options have been removed or replaced between minor versions - {{ pin_subpackage('hmmer', max_pin="x.x") }} @@ -47,3 +47,4 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 From 150c58af59b7400e0b304712bf20387f8196ed34 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 24 Aug 2024 00:09:56 -0400 Subject: [PATCH 1184/1589] Update mvip to 1.1.3 (#50289) --- recipes/mvip/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mvip/meta.yaml b/recipes/mvip/meta.yaml index 48a731822a9fd..0705dd9549b86 100644 --- a/recipes/mvip/meta.yaml +++ b/recipes/mvip/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mvip" %} -{% set version = "1.1.2" %} +{% set version = "1.1.3" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: c76dabb1383556692f7a43efb32365a1e9ef5e4159fe10d994a49a5f4b2408af + sha256: e8d96300ed3371048ecf27c61b269871d0c3c5f52789ba5726c958f565af8800 build: number: 0 From 7b22b08c2d838116f11af03775dd37ee114a3813 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 24 Aug 2024 00:11:07 -0400 Subject: [PATCH 1185/1589] Update perl-graph to 0.9731 (#50291) --- recipes/perl-graph/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/perl-graph/meta.yaml b/recipes/perl-graph/meta.yaml index 9238ef88e30c4..d8205c4edc8a4 100644 --- a/recipes/perl-graph/meta.yaml +++ b/recipes/perl-graph/meta.yaml @@ -1,10 +1,10 @@ package: name: perl-graph - version: "0.9730" + version: "0.9731" source: - url: https://cpan.metacpan.org/authors/id/E/ET/ETJ/Graph-0.9730.tar.gz - sha256: 28f4680ba879e079c93988ab092c8c1287f6efc63fb883da28e6e7fd3b947174 + url: https://cpan.metacpan.org/authors/id/E/ET/ETJ/Graph-0.9731.tar.gz + sha256: 0714ade6e6caf4681ed5cf0e746ae1e2a71b65e822fd7a0ea39591a96a66fe50 build: noarch: generic From 26346b4dc7ffdc6f5c848fa2a90a420bd9a61b51 Mon Sep 17 00:00:00 2001 From: Nils Homer Date: Fri, 23 Aug 2024 21:14:57 -0700 Subject: [PATCH 1186/1589] Update minimap2 to install the man page (#41052) --- recipes/minimap2/build.sh | 3 ++- recipes/minimap2/meta.yaml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/minimap2/build.sh b/recipes/minimap2/build.sh index b6f518c35e81b..7dc49651a2b3b 100644 --- a/recipes/minimap2/build.sh +++ b/recipes/minimap2/build.sh @@ -2,7 +2,7 @@ set -xe -mkdir -p ${PREFIX}/bin ${PREFIX}/lib ${PREFIX}/include +mkdir -p ${PREFIX}/bin ${PREFIX}/lib ${PREFIX}/include $PREFIX/share/man/man1 case $(uname -m) in aarch64) @@ -22,3 +22,4 @@ cp minimap2 misc/paftools.js ${PREFIX}/bin cp sdust ${PREFIX}/bin cp libminimap2.a ${PREFIX}/lib cp *.h ${PREFIX}/include +cp minimap2.1 $PREFIX/share/man/man1 diff --git a/recipes/minimap2/meta.yaml b/recipes/minimap2/meta.yaml index 7c2bc89fb1520..fff2923d41783 100644 --- a/recipes/minimap2/meta.yaml +++ b/recipes/minimap2/meta.yaml @@ -12,7 +12,7 @@ source: - override-makefile.patch build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage(name, max_pin="x") }} From e7e10f7c13946b13f98a95a880e199ebd2fb42b0 Mon Sep 17 00:00:00 2001 From: Chunyu Ma Date: Fri, 23 Aug 2024 23:16:30 -0500 Subject: [PATCH 1187/1589] Update yacht package version to v1.2.3 (#50275) --- recipes/yacht/meta.yaml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/recipes/yacht/meta.yaml b/recipes/yacht/meta.yaml index 660b5f47c822d..c38a49f2cc743 100644 --- a/recipes/yacht/meta.yaml +++ b/recipes/yacht/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.2.2" %} +{% set version = "1.2.3" %} package: name: yacht @@ -6,7 +6,7 @@ package: source: url: https://github.com/KoslickiLab/YACHT/releases/download/v{{ version }}/yacht-{{ version }}.tar.gz - sha256: a5c97eecac7aee24e5850f29537cfe5f0b3647ac2766b7876321d369e8bdf514 + sha256: 93adb23ad4f143d48c9f0ea661fe2283ff42e9c51e073a05460596ecabc65214 build: number: 0 @@ -28,10 +28,14 @@ requirements: - tqdm - biom-format - numpy + - setuptools + - requests run: - python >3.6 - sourmash >=4.8.3,<5 + - rust - scipy + - requests - numpy - pandas - scikit-learn @@ -39,12 +43,15 @@ requirements: - pytest - pytest-cov - loguru + - maturin >=1,<2 - tqdm - biom-format - pytaxonkit - openpyxl + - ruff - sourmash_plugin_branchwater + test: commands: - yacht --help @@ -75,3 +82,4 @@ extra: - ShaopengLiu1 - raquellewei - mohsenht + From 05c0d16d77b01e85dec0326088d3f89dc672aba5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 24 Aug 2024 05:53:19 -0400 Subject: [PATCH 1188/1589] Update r-mutsigextractor to 1.29 (#50294) --- recipes/r-mutsigextractor/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/r-mutsigextractor/meta.yaml b/recipes/r-mutsigextractor/meta.yaml index 43ca06abbf2c8..f37f235e466e4 100644 --- a/recipes/r-mutsigextractor/meta.yaml +++ b/recipes/r-mutsigextractor/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.28" %} -{% set sha256 = "395d89050444f87babf22e3341d4898e3b0d283462ffb1f161da3b8bdc975aee" %} +{% set version = "1.29" %} +{% set sha256 = "7edea78713d59166c8a03c374288e3f72ddcb9b69b0ce06def7c76f27ce49f45" %} package: name: r-mutsigextractor From 69fc599743106b1902350203fa159a5cb200601a Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Sat, 24 Aug 2024 07:45:19 -0400 Subject: [PATCH 1189/1589] feat: Prereqs for Bioconductor script (#50209) * feat: report conda-forge packages stuck in migration * use dag to find ancestors of dependencies * format * only show stuck ancestors * format * include .conda packages * ticks around package names --- scripts/bioconductor/missingCranPackages.py | 155 +++++++++++++++++--- 1 file changed, 132 insertions(+), 23 deletions(-) diff --git a/scripts/bioconductor/missingCranPackages.py b/scripts/bioconductor/missingCranPackages.py index e0bd60d6bdde0..28bcd2317a01d 100755 --- a/scripts/bioconductor/missingCranPackages.py +++ b/scripts/bioconductor/missingCranPackages.py @@ -1,55 +1,164 @@ #!/usr/bin/env python import argparse +from itertools import chain import networkx as nx -from datetime import datetime, timedelta import requests -from bioconda_utils import utils, graph +from bioconda_utils import utils def getRepoData(): res = set() - for subdir in ["linux-64", "noarch", "osx-64"]: + for subdir in ["linux-64", "noarch", "osx-64", "linux-aarch64", "osx-arm64"]: for channel in ["conda-forge", "bioconda"]: r = requests.get(f"https://conda.anaconda.org/{channel}/{subdir}/repodata.json") - js = r.json()['packages'] - for k, v in r.json()['packages'].items(): - if k.startswith('r-'): - res.add(v['name']) + for k, v in chain(r.json()["packages"].items(), r.json()["packages.conda"].items()): + if k.startswith("r-"): + res.add(v["name"]) return res -def printMissingCRAN(config_path, recipe_folder): - config = utils.load_config(config_path) - recipes = utils.get_recipes(recipe_folder) +def getDag(js): + dag = nx.DiGraph() + for k, v in js["_feedstock_status"].items(): + dag.add_node(k) + children = v["immediate_children"] + dag.add_edges_from((k, dep) for dep in set(children)) + return dag + + +def getCondaForgeMigrationStatus(migration_id): + r = requests.get(f"https://raw.githubusercontent.com/regro/cf-graph-countyfair/master/status/migration_json/{migration_id}.json") + js = r.json() + depDag = getDag(js) + res = { + "in-pr": dict(), + "bot-error": dict(), + "not-solvable": dict(), + "awaiting-parents": dict(), + "dag": depDag, + } + for recipe in js["in-pr"]: + res["in-pr"][recipe] = f"`{recipe}`: In PR {js['_feedstock_status'][recipe]['pr_url']}" + for recipe in js["bot-error"]: + status = js["_feedstock_status"][recipe]["pre_pr_migrator_status"] + segment = status.split("\n") + res["bot-error"][recipe] = f"`{recipe}`: {segment[0] + ' ' + segment[1]}" + for recipe in js["not-solvable"]: + status = js["_feedstock_status"][recipe]["pre_pr_migrator_status"] + segment1 = status.split("\n")[0] + segment2 = status.split(":")[3].split("\n")[0] + res["not-solvable"][recipe] = f"`{recipe}`: {segment1 + ' ' + segment2}" + for recipe in js["awaiting-parents"]: + res["awaiting-parents"][recipe] = f"`{recipe}`: Awaiting parents" + return res - repo = getRepoData() +def printMissingCRAN(recipe_folder, migration_id, format): # Construct a set of all dependencies (ignoring versions) + recipes = utils.get_recipes(recipe_folder) dependencies = set() for r in recipes: if "bioconductor" not in r: continue d = utils.load_meta_fast(r)[0] # a dictionary with keys requirements, build, etc. - if d['requirements']['run'] is None: + if d["requirements"]["run"] is None: continue - for dep in d['requirements']['run']: - if dep.startswith('r-'): - dependencies.add(dep.split(' ')[0]) + for dep in d["requirements"]["run"]: + if dep.startswith("r-"): + dependencies.add(dep.split(" ")[0]) + + CHECKBOX = "- [ ]" + # Find packages waiting for a migration + if migration_id: + cf = getCondaForgeMigrationStatus(migration_id) + dag = cf["dag"] + # Update dependencies based on DAG from conda-forge migration data + awaiting_parents = set.intersection(dependencies, set(cf["awaiting-parents"].keys())) + for recipe in awaiting_parents: + dependencies = set.union(dependencies, nx.algorithms.ancestors(dag, recipe)) + # Now that we expanded dependencies, get the new list of awaiting parents + awaiting_parents = set.intersection(dependencies, set(cf["awaiting-parents"].keys())) + in_pr = set.intersection(dependencies, set(cf["in-pr"].keys())) + bot_error = set.intersection(dependencies, set(cf["bot-error"].keys())) + not_solvable = set.intersection(dependencies, set(cf["not-solvable"].keys())) + if format == "markdown": + print( + "## Awaiting migration of {} packages ##".format( + len(in_pr) + len(bot_error) + len(not_solvable) + len(awaiting_parents) + ) + ) + print("### In PR ({} packages) ###".format(len(in_pr))) + for recipe in in_pr: + print(CHECKBOX, cf["in-pr"][recipe]) + print("### Bot Error ({} packages) ###".format(len(bot_error))) + for recipe in bot_error: + print(CHECKBOX, cf["bot-error"][recipe]) + print("### Not Solvable ({} packages) ###".format(len(not_solvable))) + for recipe in not_solvable: + print(CHECKBOX, cf["not-solvable"][recipe]) + print("### Awaiting Parents ({} packages) ###".format(len(awaiting_parents))) + for recipe in awaiting_parents: + print( + CHECKBOX, + cf["awaiting-parents"][recipe], + "(", + ", ".join([r for r in nx.algorithms.ancestors(dag, recipe) if r in set.union(in_pr, bot_error, not_solvable, awaiting_parents)]), + ")", + ) + else: + print("In PR:") + for recipe in in_pr: + print(recipe) + print("Bot Error:") + for recipe in bot_error: + print(recipe) + print("Not Solvable:") + for recipe in not_solvable: + print(recipe) + print("Awaiting Parents:") + for recipe in awaiting_parents: + print(recipe) + + # Find missing packages + repo = getRepoData() missing = dependencies - repo - print("Missing {} packages!".format(len(missing))) - for m in missing: - print(m) + if format == "markdown": + print("## Missing {} packages ##".format(len(missing))) + for recipe in missing: + print(CHECKBOX, recipe) + else: + print("Missing:") + for recipe in missing: + print(recipe) def main(): - parser = argparse.ArgumentParser(description="""Print a list of missing CRAN dependencies for Bioconductor packages.""") - parser.add_argument("config_path", default="config.yml", help="Location of config.yml (default: %(default)s", nargs='?') - parser.add_argument("recipe_folder", default="recipes", help="Location of the recipes folder (default: %(default)s)", nargs='?') + parser = argparse.ArgumentParser( + description="""Print a list of missing CRAN dependencies for Bioconductor packages.""" + ) + parser.add_argument( + "recipe_folder", + default="recipes", + help="Location of the recipes folder (default: %(default)s)", + nargs="?", + ) + parser.add_argument( + "--migration_id", + help="See conda-forge status page. If populated, will report packages held up in a conda-forge migration (default: None)", + nargs="?", + ) + parser.add_argument( + "--format", + dest="format", + default="plain", + help="Format of results: ['plain', 'markdown'] (default: %(default)s)", + nargs="?", + ) args = parser.parse_args() - printMissingCRAN(args.config_path, args.recipe_folder) + printMissingCRAN(args.recipe_folder, args.migration_id, args.format) -if __name__ == '__main__': +if __name__ == "__main__": main() From e6147b0ef6e82cfb20d9fbcfb2a7b41905714dcd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 24 Aug 2024 10:02:46 -0400 Subject: [PATCH 1190/1589] Update orthanq to 1.7.8 (#50296) --- recipes/orthanq/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/orthanq/meta.yaml b/recipes/orthanq/meta.yaml index 5547095f2a958..4b7782c61727f 100644 --- a/recipes/orthanq/meta.yaml +++ b/recipes/orthanq/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.7.7" %} +{% set version = "1.7.8" %} package: name: orthanq @@ -12,7 +12,7 @@ build: source: url: https://github.com/orthanq/orthanq/archive/v{{ version }}.tar.gz - sha256: 1adbdb92ce2b47974603eacfec4907121ca701cf43e260780b3e018ba3767cfb + sha256: bc4036a3d058263c8a49319573d1ef926e807a1d6b4bf845d09d686556c0d893 requirements: build: From 6af0fb08e2d6fa162e0b34c65f9171fc327ed3b3 Mon Sep 17 00:00:00 2001 From: niklasmueboe <42138117+niklasmueboe@users.noreply.github.com> Date: Sat, 24 Aug 2024 14:04:46 +0000 Subject: [PATCH 1191/1589] Add spatialleiden recipe (#50295) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add spatialleiden recipe * add doc_url * pin_subpackage * add homepage --------- Co-authored-by: Müller-Bötticher --- recipes/spatialleiden/meta.yaml | 53 +++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 recipes/spatialleiden/meta.yaml diff --git a/recipes/spatialleiden/meta.yaml b/recipes/spatialleiden/meta.yaml new file mode 100644 index 0000000000000..b269d97634ff7 --- /dev/null +++ b/recipes/spatialleiden/meta.yaml @@ -0,0 +1,53 @@ +{% set name = "spatialleiden" %} +{% set version = "0.1.1" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/spatialleiden-{{ version }}.tar.gz + sha256: 9f2c9781a347423ba45d14a3e21eaeec1b9ca24bc26edf207fafa41fab71139b + +build: + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x.x") }} + +requirements: + host: + - python >=3.10 + - setuptools >=61.0.0 + - setuptools-scm >=6.2 + - pip + run: + - python >=3.10 + - anndata + - igraph + - leidenalg >=0.10.2,<0.11.dev0 + - numpy >=1.21 + - scanpy + - scipy >=1.9 + +test: + imports: + - spatialleiden + commands: + - pip check + requires: + - pip + +about: + home: https://github.com/HiDiHlabs/SpatialLeiden + summary: Implementation of multiplex Leiden for analysis of spatial omics data. + license: MIT + license_family: MIT + license_file: LICENSE + doc_url: https://spatialleiden.readthedocs.io/ + +extra: + recipe-maintainers: + - niklasmueboe + - shashwatsahay From bd349d9380fdbee25060b1b87fef5f797d81819b Mon Sep 17 00:00:00 2001 From: Jose Figueroa Date: Sat, 24 Aug 2024 10:05:58 -0400 Subject: [PATCH 1192/1589] Update metacerberus (#50292) --- recipes/metacerberus/meta.yaml | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/recipes/metacerberus/meta.yaml b/recipes/metacerberus/meta.yaml index 8ecc533811481..10e9b5464d1ae 100644 --- a/recipes/metacerberus/meta.yaml +++ b/recipes/metacerberus/meta.yaml @@ -1,13 +1,13 @@ {% set name = "MetaCerberus" %} -{% set version = "1.3.1" %} +{% set version = "1.4.0" %} package: name: "{{ name|lower }}" version: "{{ version }}" source: - url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 725be35a0e9b2a3867791e1cb8284ec95a09d3479516e9b265e3751659ce7935 + url: "https://github.com/raw-lab/MetaCerberus/archive/refs/tags/v{{version}}.tar.gz" + sha256: 0651000d6b9a3ed4fb8301ccc2508befdd32e39be6bbeb3bb29bdc0142816be3 build: number: 0 @@ -24,7 +24,6 @@ requirements: run: - python >=3.8 - setuptools <70.0.0 - - grpcio =1.43 - pandas - fastqc - flash2 @@ -36,10 +35,6 @@ requirements: - phanotate - trnascan-se - pyhmmer - - ray-default <=2.6.3 - - ray-core <=2.6.3 - - ray-tune <=2.6.3 - - ray-dashboard <=2.6.3 - plotly - scikit-learn - dominate @@ -47,6 +42,7 @@ requirements: - configargparse - metaomestats - psutil + - hydrampp test: From e884bec7839ebd01dfb482d109f78cc23fe2025f Mon Sep 17 00:00:00 2001 From: Jose Figueroa Date: Sat, 24 Aug 2024 11:47:54 -0400 Subject: [PATCH 1193/1589] Update metacerberus-lite (#50298) --- recipes/metacerberus-lite/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/metacerberus-lite/meta.yaml b/recipes/metacerberus-lite/meta.yaml index 3888274b58bec..1ac5cf12771ec 100644 --- a/recipes/metacerberus-lite/meta.yaml +++ b/recipes/metacerberus-lite/meta.yaml @@ -1,5 +1,5 @@ {% set name = "MetaCerberus-lite" %} -{% set version = "1.3.2" %} +{% set version = "1.4.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://github.com/raw-lab/MetaCerberus/archive/refs/tags/v{{version}}.tar.gz" - sha256: 678929f58b38fafc635dfb35e248b5c76b4cd682b9e2d3499fe953ee3b974d68 + sha256: 0651000d6b9a3ed4fb8301ccc2508befdd32e39be6bbeb3bb29bdc0142816be3 build: number: 0 @@ -36,6 +36,7 @@ requirements: - configargparse - metaomestats - psutil + - hydrampp test: From c34f4af33ab2c1947df2780304262cf65abd81a7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 24 Aug 2024 23:20:44 -0400 Subject: [PATCH 1194/1589] Update adapterremoval to 2.3.4 (#50299) --- recipes/adapterremoval/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/adapterremoval/meta.yaml b/recipes/adapterremoval/meta.yaml index e916bf3a3bd45..7f369ac53924a 100644 --- a/recipes/adapterremoval/meta.yaml +++ b/recipes/adapterremoval/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "2.3.3" %} -{% set sha256 = "a1bdc054319ede085fc8a4e9867c23ffed7df5e97b99d52221b7c587d19418fc" %} +{% set version = "2.3.4" %} +{% set sha256 = "a4433a45b73ead907aede22ed0c7ea6fbc080f6de6ed7bc00f52173dfb309aa1" %} package: name: adapterremoval @@ -10,7 +10,7 @@ source: sha256: {{ sha256 }} build: - number: 3 + number: 0 run_exports: - {{ pin_subpackage("adapterremoval", max_pin="x") }} From 92a2ef6b942c75809747c52317770266a08668a2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 25 Aug 2024 12:47:30 -0400 Subject: [PATCH 1195/1589] Update camlhmp to 1.0.1 (#50307) --- recipes/camlhmp/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/camlhmp/meta.yaml b/recipes/camlhmp/meta.yaml index 307261630f3d6..895ec2af53c5b 100644 --- a/recipes/camlhmp/meta.yaml +++ b/recipes/camlhmp/meta.yaml @@ -1,5 +1,5 @@ {% set name = "camlhmp" %} -{% set version = "1.0.0" %} +{% set version = "1.0.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/camlhmp/camlhmp-{{ version }}.tar.gz - sha256: 91bb81e2c7e548a3e6acdd01f2276e54e4a82df491a61864aff647bd8b327c3d + sha256: 6d4b4375af6306a13c026014fa54465459a9d5115d0d7d15497a87f11bf1868d build: noarch: python From 46817a1e97a45358299cea2c1fa4b38e9bd5b3df Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 25 Aug 2024 13:50:56 -0400 Subject: [PATCH 1196/1589] Update camlhmp to 1.1.0 (#50308) --- recipes/camlhmp/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/camlhmp/meta.yaml b/recipes/camlhmp/meta.yaml index 895ec2af53c5b..ff176d7dbb452 100644 --- a/recipes/camlhmp/meta.yaml +++ b/recipes/camlhmp/meta.yaml @@ -1,5 +1,5 @@ {% set name = "camlhmp" %} -{% set version = "1.0.1" %} +{% set version = "1.1.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/camlhmp/camlhmp-{{ version }}.tar.gz - sha256: 6d4b4375af6306a13c026014fa54465459a9d5115d0d7d15497a87f11bf1868d + sha256: 0f20b94fc0bd469299bd9bec6fe384013bd7043cb4dd97e9df827895f2d06fb2 build: noarch: python From c6e6dc2047635739238c7f505782fb7ccf63ebfd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 25 Aug 2024 13:56:09 -0400 Subject: [PATCH 1197/1589] Update jvarkit to 2024.08.25 (#50306) --- recipes/jvarkit/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/jvarkit/meta.yaml b/recipes/jvarkit/meta.yaml index b6f52cdbf9b3d..be7fae1b83d12 100644 --- a/recipes/jvarkit/meta.yaml +++ b/recipes/jvarkit/meta.yaml @@ -1,6 +1,6 @@ {% set name = "jvarkit" %} -{% set version = "2024.08.01" %} -{% set sha256 = "5c35258898ef0c65e118e01db663489565989792d949e6a5d93965c9680250cd" %} +{% set version = "2024.08.25" %} +{% set sha256 = "1836eae5f27216a3df84d8dbb9282575955149452883d5f86ba1aebb57b59cbf" %} package: name: {{ name|lower }} From bb7364a16366755998283de2e3d1328de824621e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 25 Aug 2024 15:05:51 -0400 Subject: [PATCH 1198/1589] Update quantms-utils to 0.0.10 (#50304) --- recipes/quantms-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/quantms-utils/meta.yaml b/recipes/quantms-utils/meta.yaml index cccce41a9db28..a0db34e2b81b2 100644 --- a/recipes/quantms-utils/meta.yaml +++ b/recipes/quantms-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "quantms-utils" %} -{% set version = "0.0.9" %} +{% set version = "0.0.10" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/quantms_utils-{{ version }}.tar.gz - sha256: 72f86706f6dc10e7e332317b2b78e22acb33b63cff37d8c897871934ac60c2af + sha256: 95e6a7e29f3053fe37071b180d4ac6f3a3da9a3f3cb1e9bcbd682fd65b8fd217 build: entry_points: From 98eec65f1cb12cef96ecb6815c2ebd7d0943fccf Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 25 Aug 2024 15:37:04 -0400 Subject: [PATCH 1199/1589] Update pasty to 2.2.0 (#50312) * Update pasty to 2.2.0 * Update meta.yaml --------- Co-authored-by: Robert A. Petit III --- recipes/pasty/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pasty/meta.yaml b/recipes/pasty/meta.yaml index 6bf522de760df..ba6de3e3380fe 100644 --- a/recipes/pasty/meta.yaml +++ b/recipes/pasty/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pasty" %} -{% set version = "2.1.0" %} +{% set version = "2.2.0" %} package: name: {{ name | lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/rpetit3/pasty/archive/v{{ version }}.tar.gz - sha256: 408bfe89cd33be1f532d4a280ede1d4f1e17e1ffa8283d8746fc36c5d2d27564 + sha256: b6728abde78c0d91d89ac9dc92731285eb10b15a297af1ecf971915c3037b9f3 build: number: 0 @@ -17,7 +17,7 @@ build: requirements: run: - - camlhmp >=0.3.1 + - camlhmp >=1.1.0 test: commands: From 76077066697e2981399ad99ac21b642f41e41c3a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 25 Aug 2024 15:52:48 -0400 Subject: [PATCH 1200/1589] Update sccmec to 1.2.0 (#50311) * Update sccmec to 1.2.0 * update depends * Update build.sh * Update meta.yaml * Update build.sh * Update build.sh --------- Co-authored-by: Robert A. Petit III --- recipes/sccmec/build.sh | 15 ++++++++++++--- recipes/sccmec/meta.yaml | 10 +++++++--- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/recipes/sccmec/build.sh b/recipes/sccmec/build.sh index aa318ca945110..5ca6a640acbd0 100644 --- a/recipes/sccmec/build.sh +++ b/recipes/sccmec/build.sh @@ -3,9 +3,18 @@ mkdir -p $PREFIX/bin ${PREFIX}/share/sccmec # Copy wrapper -chmod 755 bin/sccmec-bioconda +chmod 755 bin/sccmec-targets-bioconda +cp -f bin/sccmec-targets-bioconda $PREFIX/bin/sccmec-targets + +chmod 755 bin/sccmec-regions-bioconda +cp -f bin/sccmec-regions-bioconda $PREFIX/bin/sccmec-regions + +chmod 755 bin/sccmec bin/sccmec-bioconda +cp -f bin/sccmec $PREFIX/bin/sccmec-main cp -f bin/sccmec-bioconda $PREFIX/bin/sccmec # Copy schema (~100kb) -cp -f data/sccmec.yaml ${PREFIX}/share/sccmec -cp -f data/sccmec.fasta ${PREFIX}/share/sccmec +cp -f data/sccmec-targets.yaml ${PREFIX}/share/sccmec +cp -f data/sccmec-targets.fasta ${PREFIX}/share/sccmec +cp -f data/sccmec-regions.yaml ${PREFIX}/share/sccmec +cp -f data/sccmec-regions.fasta ${PREFIX}/share/sccmec diff --git a/recipes/sccmec/meta.yaml b/recipes/sccmec/meta.yaml index a71583506a783..02c1875f8ecb1 100644 --- a/recipes/sccmec/meta.yaml +++ b/recipes/sccmec/meta.yaml @@ -1,6 +1,6 @@ {% set name="sccmec" %} -{% set version = "1.1.0" %} -{% set sha256 = "176e0103a6e683583ed5caf1980781ec09ca315a0aa2cfe8d2a3d72321ce7488" %} +{% set version = "1.2.0" %} +{% set sha256 = "b8ff1fb5f6d5d4c2bbfd3a5b95711ecd152638417558ecc98dc5e22724f06d8f" %} package: name: {{ name }} @@ -18,12 +18,16 @@ build: requirements: run: - - camlhmp >=1.0.0 + - camlhmp >=1.1.0 test: commands: - sccmec --version - sccmec --help + - sccmec-targets --version + - sccmec-targets --help + - sccmec-regions --version + - sccmec-regions --help about: home: https://github.com/rpetit3/sccmec From c380359075020b62aba905506959aaf439aedcd3 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 25 Aug 2024 21:26:02 -0400 Subject: [PATCH 1201/1589] Update oakvar to 2.11.8 (#50301) --- recipes/oakvar/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/oakvar/meta.yaml b/recipes/oakvar/meta.yaml index 4121090865787..55b4d4c0bad61 100644 --- a/recipes/oakvar/meta.yaml +++ b/recipes/oakvar/meta.yaml @@ -1,6 +1,6 @@ {% set name = "OakVar" %} -{% set version = "2.11.5" %} -{% set sha256 = "9967ff6751ea8141ccf5c879a128c47ab78b30035091209680b5d67fa8b88e6c" %} +{% set version = "2.11.8" %} +{% set sha256 = "c863dd431b4fd2f754e226d1519914ff698a88ea1dd766cb267902219f5947c8" %} package: name: {{ name|lower }} From d19c9d9f5ca5b456acbfb18272b75e5b50ea1e84 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 25 Aug 2024 21:26:31 -0400 Subject: [PATCH 1202/1589] Update itolapi to 4.1.5 (#50302) --- recipes/itolapi/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/itolapi/meta.yaml b/recipes/itolapi/meta.yaml index 0e664d28481a5..806c0a9213404 100644 --- a/recipes/itolapi/meta.yaml +++ b/recipes/itolapi/meta.yaml @@ -1,5 +1,5 @@ {% set name = "itolapi" %} -{% set version = "4.1.4" %} +{% set version = "4.1.5" %} package: name: '{{ name|lower }}' @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 68e87ba51d209da556b0e373b3b0456b644a1a732c193fedbd7785ff37b6a2cb + sha256: 8ce2f6c0560b4b3898913a61a821667ea62aca330aad008e4c71fe98ec26c874 build: noarch: python From 2256920d99b23e8e27adf6cbb80c5199043ef2c9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 25 Aug 2024 21:26:57 -0400 Subject: [PATCH 1203/1589] Update deeplc to 3.0.8 (#50303) --- recipes/deeplc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/deeplc/meta.yaml b/recipes/deeplc/meta.yaml index ba8400cb54ab6..a06a3a30d25e1 100644 --- a/recipes/deeplc/meta.yaml +++ b/recipes/deeplc/meta.yaml @@ -1,6 +1,6 @@ {% set name = "DeepLC" %} -{% set version = "3.0.7" %} -{% set sha256 = "40bf8b3c2ef53b103ea5c004d5abc8643eacda83efdcdc7589276cdff9732261" %} +{% set version = "3.0.8" %} +{% set sha256 = "49f579fd96d937f7c62b99044b8bf12085ccc9b6d123b93ab2c4417189106ca0" %} package: name: {{ name|lower }} From 895e403a04caf48730d6578b1fca283465f2309b Mon Sep 17 00:00:00 2001 From: Pierre Lindenbaum <33838+lindenb@users.noreply.github.com> Date: Mon, 26 Aug 2024 03:28:01 +0200 Subject: [PATCH 1204/1589] Update : adding samtools and bcftools to jvarkit/meta.yaml (#50305) --- recipes/jvarkit/meta.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/recipes/jvarkit/meta.yaml b/recipes/jvarkit/meta.yaml index be7fae1b83d12..2aab4804abf41 100644 --- a/recipes/jvarkit/meta.yaml +++ b/recipes/jvarkit/meta.yaml @@ -26,6 +26,8 @@ requirements: - gawk run: - openjdk >=11 + - samtools >=1.20 + - bcftools >=1.20 test: commands: From ed93777d43a224e8a691c2272c04ef8d8f4e213c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 25 Aug 2024 21:30:47 -0400 Subject: [PATCH 1205/1589] Update psims to 1.3.4 (#50310) --- recipes/psims/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/psims/meta.yaml b/recipes/psims/meta.yaml index fbab7ed9f4c18..64e6ca723d030 100644 --- a/recipes/psims/meta.yaml +++ b/recipes/psims/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.3.3" %} -{% set sha256 = "d956fb6d2a42087fe35595ad452802fe115a7952c8bcb63951d19b99530b1358" %} +{% set version = "1.3.4" %} +{% set sha256 = "4cac9368616118186fe12dc137adcd12d934df5013956816615b5eaa95cb0573" %} package: name: "psims" From 81bb3d0149fa021f6cdfed898acb313e3679976d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 03:56:34 -0400 Subject: [PATCH 1206/1589] Update pasty to 2.2.1 (#50316) --- recipes/pasty/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pasty/meta.yaml b/recipes/pasty/meta.yaml index ba6de3e3380fe..69cec8609056a 100644 --- a/recipes/pasty/meta.yaml +++ b/recipes/pasty/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pasty" %} -{% set version = "2.2.0" %} +{% set version = "2.2.1" %} package: name: {{ name | lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/rpetit3/pasty/archive/v{{ version }}.tar.gz - sha256: b6728abde78c0d91d89ac9dc92731285eb10b15a297af1ecf971915c3037b9f3 + sha256: e407107082aadbbbc4d650dfbe965b6b9421c9fd384ee7e2ab380e7eca8991cc build: number: 0 From 770c547b8aa026be633858d794f95b6779a76685 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 03:56:59 -0400 Subject: [PATCH 1207/1589] Update cogent3 to 2024.7.19a5 (#50315) --- recipes/cogent3/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/cogent3/meta.yaml b/recipes/cogent3/meta.yaml index d32a78fc20af4..e92074697c06d 100644 --- a/recipes/cogent3/meta.yaml +++ b/recipes/cogent3/meta.yaml @@ -1,5 +1,5 @@ {% set name = "cogent3" %} -{% set version = "2024.7.19a4" %} +{% set version = "2024.7.19a5" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 3ff157aa3a778d4b2f473d18619d674073d5b61ad864daca3ee5283a9cdc50bb + sha256: 6bd7c16b7662a09f65295a4256b1aa7034c9f872e1359cfd7047b22c86bc8d5a build: noarch: python From a21d40486b60413f45e43a999df5c7b02bc90ea2 Mon Sep 17 00:00:00 2001 From: pvanheus Date: Mon, 26 Aug 2024 10:28:58 +0200 Subject: [PATCH 1208/1589] Add recipe for jclusterfunk (#50309) * Add recipe for jclusterfunk * Add build.sh for jclusterfunk * Resolve license naming as per suggestion from martin-g --- recipes/jclusterfunk/build.sh | 11 +++++++++++ recipes/jclusterfunk/meta.yaml | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100755 recipes/jclusterfunk/build.sh create mode 100644 recipes/jclusterfunk/meta.yaml diff --git a/recipes/jclusterfunk/build.sh b/recipes/jclusterfunk/build.sh new file mode 100755 index 0000000000000..8750eb03bcab7 --- /dev/null +++ b/recipes/jclusterfunk/build.sh @@ -0,0 +1,11 @@ +#!/bin/bash +set -eu -o pipefail + +outdir=$PREFIX/share/$PKG_NAME-$PKG_VERSION-$PKG_BUILDNUM +mkdir -p $outdir +mkdir -p $PREFIX/bin + +cp jclusterfunk jclusterfunk.jar $outdir/ + +ln -s $outdir/jclusterfunk $PREFIX/bin +chmod 0755 "${PREFIX}/bin/jclusterfunk" diff --git a/recipes/jclusterfunk/meta.yaml b/recipes/jclusterfunk/meta.yaml new file mode 100644 index 0000000000000..1e468afe4134c --- /dev/null +++ b/recipes/jclusterfunk/meta.yaml @@ -0,0 +1,33 @@ +{% set version = "0.0.25" %} +{% set name = "jclusterfunk" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/snake-flu/jclusterfunk/releases/download/v{{ version }}/jclusterfunk_v{{ version }}.tgz + sha256: 333029dfcfe5d08ecb96bd31f2fed1b732547d45a1f892b9515ae28b528beee8 + +build: + noarch: generic + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x.x") }} + +requirements: + host: + - openjdk + run: + - openjdk + +test: + commands: + - jclusterfunk --help + +about: + home: https://github.com/snake-flu/jclusterfunk + license: GPL-3.0-only + license_family: GPL3 + license_url: https://github.com/snake-flu/jclusterfunk/blob/master/LICENSE + summary: A command line tool with a bunch of functions for trees From 23fe8cc0729ff70883819a8d2b2fdfc4d1da1443 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 04:29:15 -0400 Subject: [PATCH 1209/1589] Update perl-parallel-forkmanager to 2.03 (#50300) * Update perl-parallel-forkmanager to 2.03 * Add run_exports --------- Co-authored-by: Martin Grigorov --- recipes/perl-parallel-forkmanager/meta.yaml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/recipes/perl-parallel-forkmanager/meta.yaml b/recipes/perl-parallel-forkmanager/meta.yaml index 538bd3c4c8a96..bba5e7ed46bfe 100644 --- a/recipes/perl-parallel-forkmanager/meta.yaml +++ b/recipes/perl-parallel-forkmanager/meta.yaml @@ -1,14 +1,16 @@ package: name: perl-parallel-forkmanager - version: "2.02" + version: "2.03" source: - url: https://cpan.metacpan.org/authors/id/Y/YA/YANICK/Parallel-ForkManager-2.02.tar.gz - sha256: c1b2970a8bb666c3de7caac4a8f4dbcc043ab819bbc337692ec7bf27adae4404 + url: https://cpan.metacpan.org/authors/id/Y/YA/YANICK/Parallel-ForkManager-2.03.tar.gz + sha256: c0e0bead458224b9ac5bb32ed2b1fa088963b565521c1bb1a6a3566d522c2e35 build: noarch: generic - number: 1 + number: 0 + run_exports: + - {{ pin_subpackage('perl-parallel-forkmanager', max_pin='x') }} requirements: build: From e21cb22daac86ef5491f02f44a0a2106b284d512 Mon Sep 17 00:00:00 2001 From: pvanheus Date: Mon, 26 Aug 2024 12:51:52 +0200 Subject: [PATCH 1210/1589] Add recipe for squirrel (#50297) * Add recipe for squirrel * Define name variable * Correct typo - make to mako * Use matplotlib-base * Change source for jclusterfunk * Adjust license description --- recipes/squirrel/meta.yaml | 47 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 recipes/squirrel/meta.yaml diff --git a/recipes/squirrel/meta.yaml b/recipes/squirrel/meta.yaml new file mode 100644 index 0000000000000..9ced95e59b168 --- /dev/null +++ b/recipes/squirrel/meta.yaml @@ -0,0 +1,47 @@ +{% set version = "1.0.7" %} +{% set name = "squirrel" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/aineniamh/squirrel/archive/refs/tags/{{ version }}.tar.gz + sha256: 308fa2625b9c414bd939825c03168bd04616886b8ebb1eea269b17d6b5be9c6b + +build: + number: 0 + noarch: python + script: python -m pip install --no-deps --ignore-installed . + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} + +requirements: + host: + - python ==3.10 + - pip + run: + - python ==3.10 + - biopython >=1.74 + - minimap2 >=2.16 + - snakemake-minimal ==7.32 + - matplotlib-base >=3.3.1 + - seaborn + - gofasta + - baltic + - mako ==1.2 + - pandas + - iqtree >=2.1 + - jclusterfunk >=0.0.25 + +test: + commands: + - squirrel --help + +about: + home: https://github.com/aineniamh/squirrel + license: GPL-3.0-only + license_family: GPL3 + license_file: LICENSE + summary: Some QUIck Reconstruction to Resolve Evolutionary Links + From b4fd84339708d4f6d7bdaba7828901ea058a9f4a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 06:52:31 -0400 Subject: [PATCH 1211/1589] Update dfast to 1.3.2 (#50317) --- recipes/dfast/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/dfast/meta.yaml b/recipes/dfast/meta.yaml index 36eb6d765c65d..63eb3ed37c582 100644 --- a/recipes/dfast/meta.yaml +++ b/recipes/dfast/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.3.1" %} +{% set version = "1.3.2" %} package: name: dfast @@ -6,7 +6,7 @@ package: source: url: https://github.com/nigyta/dfast_core/archive/{{ version }}.tar.gz - sha256: afee0c4e13482b519203c2bedbf48375788aa17ef7f340f0c52165d10931efcb + sha256: d889e00c6870cdb7229cc91fe8f52b6dafc95535948669b91f0a0b276501adb7 build: number: 0 From 49e2570e978071a95da740ab363512ba1947d6dd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 07:01:34 -0400 Subject: [PATCH 1212/1589] Update gapseq to 1.3.1 (#50318) --- recipes/gapseq/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gapseq/meta.yaml b/recipes/gapseq/meta.yaml index 44e964c9e8146..c1275e49f6191 100644 --- a/recipes/gapseq/meta.yaml +++ b/recipes/gapseq/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.3" %} +{% set version = "1.3.1" %} package: name: gapseq @@ -6,7 +6,7 @@ package: source: url: https://github.com/jotech/gapseq/archive/refs/tags/v{{ version}}.tar.gz - sha256: 2ab2512813741593e1c69bf18e396edf9643e7dd7ab80afa59c4ba18c13f13ee + sha256: 8702d9bc844c04aa06fba083bd81bdf4585bfbb581b890052ba5af378a85a2c6 build: number: 0 From 565e610ee64e6ef9b60dc3276532eddee24badcf Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 11:55:18 -0400 Subject: [PATCH 1213/1589] Update lambda to 3.1.0 (#50328) --- recipes/lambda/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/lambda/meta.yaml b/recipes/lambda/meta.yaml index e87ddb3cc388c..882b493ea719d 100644 --- a/recipes/lambda/meta.yaml +++ b/recipes/lambda/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "3.0.0" %} +{% set version = "3.1.0" %} package: name: lambda @@ -6,7 +6,7 @@ package: source: url: https://github.com/seqan/lambda/releases/download/lambda-v{{ version }}/lambda3-{{ version }}-SourceWithSubmodules.tar.xz - sha256: 48b4b72007ffc86c4aad59634721e89a990fb42cb90f2cd17f52edc60d0c6482 + sha256: fb3388e8b5a9f33f7423699803eaef4e6b9838c11017bd5b0d2b07f66491f191 build: number: 0 From b00456c470a1ac9f14af83dc7af847c9afb0d080 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 11:55:29 -0400 Subject: [PATCH 1214/1589] Update dxpy to 0.381.0 (#50329) --- recipes/dxpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/dxpy/meta.yaml b/recipes/dxpy/meta.yaml index 11e66e5ca8a77..d9db812fe9085 100644 --- a/recipes/dxpy/meta.yaml +++ b/recipes/dxpy/meta.yaml @@ -1,5 +1,5 @@ {% set name = "dxpy" %} -{% set version = "0.380.0" %} +{% set version = "0.381.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: e3fb70b283a9eda2f861d6b85322841d78b2655cd7de11f1e946643b58de3d4f + sha256: 84fea9b33be93b97ce2d92ff0f5b0eaa63920c43776df3cdf0abb099c117c6cc build: number: 0 From b9b55417409c07056abb2920e3f36fe86377bb0b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 11:55:54 -0400 Subject: [PATCH 1215/1589] Update metav to 1.0.6 (#50321) --- recipes/metav/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/metav/meta.yaml b/recipes/metav/meta.yaml index 3423876580db3..5c61f129ddc50 100644 --- a/recipes/metav/meta.yaml +++ b/recipes/metav/meta.yaml @@ -1,5 +1,5 @@ {% set name = "metav" %} -{% set version = "1.0.5" %} +{% set version = "1.0.6" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: f1cbf33630a26e9c34276244e08e2d56fa7128aca2553347700065f6536cdd65 + sha256: 54c59f9d72aff1a2129a7e02c1cb10a1f14196d87242c8fd6ea18de30a771612 build: number: 0 From 3ee8f70c6a3d3b514df7acf6149d481520855b54 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 11:56:02 -0400 Subject: [PATCH 1216/1589] Update squirrel to 1.0.8 (#50320) --- recipes/squirrel/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/squirrel/meta.yaml b/recipes/squirrel/meta.yaml index 9ced95e59b168..7fb2286ec8471 100644 --- a/recipes/squirrel/meta.yaml +++ b/recipes/squirrel/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.0.7" %} +{% set version = "1.0.8" %} {% set name = "squirrel" %} package: @@ -7,7 +7,7 @@ package: source: url: https://github.com/aineniamh/squirrel/archive/refs/tags/{{ version }}.tar.gz - sha256: 308fa2625b9c414bd939825c03168bd04616886b8ebb1eea269b17d6b5be9c6b + sha256: 9e89d062f849c0b947a1d469f3864936164ea912645131e5120f86a5e12dc00d build: number: 0 From 79fd662faf6520845f81d204a320d4721746ac02 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 12:32:14 -0400 Subject: [PATCH 1217/1589] Update cami-amber to 2.0.6 (#50330) --- recipes/cami-amber/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/cami-amber/meta.yaml b/recipes/cami-amber/meta.yaml index 47deb58707c78..4326d2805dc2c 100644 --- a/recipes/cami-amber/meta.yaml +++ b/recipes/cami-amber/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.0.5" %} +{% set version = "2.0.6" %} package: name: cami-amber @@ -6,7 +6,7 @@ package: source: url: https://pypi.io/packages/source/c/cami-amber/cami-amber-{{ version }}.tar.gz - sha256: 59ccbb4447904b337a7979782fef3f68ee0addac37e4173f826de369c1a3e697 + sha256: d2d3d13a135f7ce4dff6bc1aab014945b0e5249b02f9afff3e6df1d82ef45d5a build: noarch: python From 1ce02d1d9d340cbf624bd2f4866be53de8306dd4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 12:40:10 -0400 Subject: [PATCH 1218/1589] Update argnorm to 0.6.0 (#50331) --- recipes/argnorm/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/argnorm/meta.yaml b/recipes/argnorm/meta.yaml index 3eaff5920960f..2349661f642da 100644 --- a/recipes/argnorm/meta.yaml +++ b/recipes/argnorm/meta.yaml @@ -1,5 +1,5 @@ {% set name = "argnorm" %} -{% set version = "0.5.0" %} +{% set version = "0.6.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 60589492f01c000a5b8b4c2608cd607d8bc922786b2b3fc0cfbc5a4575cb9baf + sha256: 85b54bff237943af418a4f6fedd83c1c67c14522f9ef81e1b750bbd5aec2051b build: noarch: python From 1e57c1d5b498ee96d3e66735e405223462b6f27d Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Mon, 26 Aug 2024 12:00:28 -0500 Subject: [PATCH 1219/1589] Update last to 1574 (#50332) --- recipes/last/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/last/meta.yaml b/recipes/last/meta.yaml index 84605ee676679..6ebfe4a978db5 100644 --- a/recipes/last/meta.yaml +++ b/recipes/last/meta.yaml @@ -1,5 +1,5 @@ {% set name = "LAST" %} -{% set version = "1571" %} +{% set version = "1574" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: "https://gitlab.com/mcfrith/last/-/archive/{{ version }}/last-{{ version }}.tar.gz" - sha256: c91e99aa98bcb72fe08dada48aa2d8952cf724f2b8beadaa3a35b6f32ce5717c + sha256: adcec227328ec74e47ca1851920d796807a530d2bb25be5d912e0abdd9694d5f build: number: 0 From 1b6b5b24748c85cba72b2c78157adf946c15d82c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 16:14:49 -0400 Subject: [PATCH 1220/1589] Update open-cravat to 2.8.0 (#50335) --- recipes/open-cravat/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/open-cravat/meta.yaml b/recipes/open-cravat/meta.yaml index 4575700fc40ea..25f02e804c642 100644 --- a/recipes/open-cravat/meta.yaml +++ b/recipes/open-cravat/meta.yaml @@ -1,5 +1,5 @@ {% set name = "open-cravat" %} -{% set version = "2.7.3" %} +{% set version = "2.8.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: e052ab00c04c1db9f45cd1ec2d7d774279fb1fe4d5763ab13d6fcb7e6d1d7df9 + sha256: 14759157660f2c46fd235947489cf73952a82e2340c9f588eb112190b415e18d build: number: 0 From 6ce049ba36eb3bd95fd2812d53bb90bfd04a7e06 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 16:16:46 -0400 Subject: [PATCH 1221/1589] Update wfmash to 0.20.0 (#50336) --- recipes/wfmash/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/wfmash/meta.yaml b/recipes/wfmash/meta.yaml index 92d3eb3b21ec8..f73b34171c1cf 100644 --- a/recipes/wfmash/meta.yaml +++ b/recipes/wfmash/meta.yaml @@ -1,5 +1,5 @@ {% set name = "wfmash" %} -{% set version = "0.19.0" %} +{% set version = "0.20.0" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: https://github.com/waveygang/{{ name }}/releases/download/v{{ version }}/{{ name }}-v{{ version }}.tar.gz - sha256: db6eefc7296739c6276daa8ed413c171487eceed1a62588c1d2fdb40011b011f + sha256: 10e96f454bce8aa6dd3ec579f41c2bfc62667499005016071da19ab1c3754173 build: skip: True # [osx] From 3abd5b8ef4f2c745a9fd5d24da9861d0c1922269 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 17:04:37 -0400 Subject: [PATCH 1222/1589] Update oarfish to 0.6.1 (#50337) * Update oarfish to 0.6.0 * Update oarfish to 0.6.1 * Update meta.yaml include zlib * Update meta.yaml Add c compiler b/c of minimap2 --------- Co-authored-by: Rob Patro --- recipes/oarfish/meta.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/recipes/oarfish/meta.yaml b/recipes/oarfish/meta.yaml index ad46a7b90f03d..e7735d01488bd 100644 --- a/recipes/oarfish/meta.yaml +++ b/recipes/oarfish/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.5.1" %} +{% set version = "0.6.1" %} package: name: oarfish @@ -11,13 +11,17 @@ build: source: url: https://github.com/COMBINE-lab/oarfish/archive/v{{ version }}.tar.gz - sha256: 83fe964065c1068be8085eaf36ce436d8199577d2647fa52138046ccc253d62b + sha256: 43d123010c1abb813ffea785715b2fba39d730a708e7f8d7ea966422834e503d requirements: build: + - make - {{ compiler('rust') }} + - {{ compiler('c') }} host: + - zlib run: + - zlib test: commands: From b3334cd26cdb32ff4accd16c4457a0ba77a4dea1 Mon Sep 17 00:00:00 2001 From: John Huddleston Date: Mon, 26 Aug 2024 16:00:41 -0700 Subject: [PATCH 1223/1589] Update Auspice to 2.56.1 (#50340) --- recipes/auspice/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/auspice/meta.yaml b/recipes/auspice/meta.yaml index 3d686e8bf8ffe..074f6de8fabf9 100644 --- a/recipes/auspice/meta.yaml +++ b/recipes/auspice/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.56.0" %} +{% set version = "2.56.1" %} {% set name = "auspice" %} package: @@ -7,10 +7,10 @@ package: source: url: https://registry.npmjs.org/{{ name }}/-/{{ name }}-{{ version }}.tgz - sha256: 89c620bc790c5e3f28969a253f41e36bf35a13346cb8c6ab55868d9c6ee08714 + sha256: d100c0f6cc13ba1f9fe2b7bde5983b0383f523320dcc69a19cf9c86570febf03 build: - number: 3 + number: 0 run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} From f52fd52e9396dc3178557f955df4f048b46921f8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 19:00:50 -0400 Subject: [PATCH 1224/1589] Update thapbi-pict to 1.0.14 (#50339) * Update thapbi-pict to 1.0.14 * Avoid pydot v3 (until networkx updated) See https://github.com/peterjc/thapbi-pict/issues/638 where I used "pydot <3" as an interim measure to avoid an incompatibility with the current and recent releases of networkx. The first release of networkx after 3.3 _should_ fix this (allowing pydot v2 or v3). --------- Co-authored-by: Peter Cock --- recipes/thapbi-pict/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/thapbi-pict/meta.yaml b/recipes/thapbi-pict/meta.yaml index 6a3ccb82537e6..47d868ee8633a 100644 --- a/recipes/thapbi-pict/meta.yaml +++ b/recipes/thapbi-pict/meta.yaml @@ -1,5 +1,5 @@ {% set name = "thapbi-pict" %} -{% set version = "1.0.13" %} +{% set version = "1.0.14" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name | replace("-", "_") }}/{{ name | replace("-", "_") }}-{{ version }}.tar.gz - sha256: 772b10381901f9bbebc63588ae67c16676462393b8c9a5f886eab32ad13aa7ea + sha256: 6c1b397d608b8aa7999445de09977e727698adbdb2d8b7fe43db7e8b19b748ed build: noarch: python @@ -29,7 +29,7 @@ requirements: - cutadapt >=4.0 - matplotlib-base >=3.7 - networkx >=2.4,!=2.8.3,!=2.8.4 - - pydot + - pydot <3 - python >=3.8 - rapidfuzz >=2.4.0 - sqlalchemy >=2.0 From 10049f2d556c486bf0ace23b25e5883427a37c82 Mon Sep 17 00:00:00 2001 From: Peter Cock Date: Tue, 27 Aug 2024 00:05:54 +0100 Subject: [PATCH 1225/1589] Build k8 on osx-arm64 (#49946) * Build k8 on osx-arm64 Needed to build minimap2 * Use node-18.20.4 for macOS * Fix Darwin specific version of node * Avoid hybrid sh/python configure script This was failing when tried to build osx-arm64, somehow trying to use the system Python not the conda provided one. * Python is used (at least for the configure stage) * Revert explicit python build dependency (times out) This reverts commit 3ebb480605c3141df7d5f4870d50b7688ab166fb. * skip x86_64 for now --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Co-authored-by: mencian --- recipes/k8/build.sh | 13 +++++++++++-- recipes/k8/meta.yaml | 4 +++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/recipes/k8/build.sh b/recipes/k8/build.sh index 3b3aeda6a195d..164078d31402a 100644 --- a/recipes/k8/build.sh +++ b/recipes/k8/build.sh @@ -3,7 +3,15 @@ set -x DEFAULT_LINUX_VERSION="cos7" -NODE_VERSION="18.19.1" +# * k8 is only compatible with Node.js v18.x, not more recent node versions +# * node-18.19.x can be compiled on CentOS 7, but not on macOS with clang +# * node-18.20.x can be compiled on MacOS but not on CentOS 7 because it +# includes an updated c-ares library which is incompatible with glibc on CentOS 7 +if [ "$(uname)" == "Darwin" ]; then + NODE_VERSION="18.20.4" +else + NODE_VERSION="18.19.1" +fi wget -O- https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}.tar.gz | tar -zxf - pushd node-v${NODE_VERSION} @@ -15,7 +23,8 @@ pushd node-v${NODE_VERSION} # 2024-03-19T13:32:27.9241412Z 13:32:27 BIOCONDA INFO (OUT) cc1plus: some warnings being treated as errors patch -p0 < ${RECIPE_DIR}/nodejs-x86_64.patch -./configure --without-node-snapshot --without-etw --without-npm --without-inspector --without-dtrace +# The provided configure script is a sh/python hybrid which boils down to one line of Python +python -c "import configure" --without-node-snapshot --without-etw --without-npm --without-inspector --without-dtrace make -j3 popd diff --git a/recipes/k8/meta.yaml b/recipes/k8/meta.yaml index bd8884f37dc2f..690b3631745dd 100644 --- a/recipes/k8/meta.yaml +++ b/recipes/k8/meta.yaml @@ -10,7 +10,8 @@ source: sha256: 4157aa86066eb0a7874de194893c4544ac772d009cc1148377c9c346f9fc6d07 build: - number: 1 + number: 2 + skip: True # [x86_64] run_exports: - {{ pin_subpackage('k8', max_pin="x") }} @@ -44,3 +45,4 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 From b82a4fe6896ae83999ee7c153d458ffa62952a1a Mon Sep 17 00:00:00 2001 From: Vijini Mallawaarachchi Date: Tue, 27 Aug 2024 08:36:09 +0930 Subject: [PATCH 1226/1589] Update kmertools to v0.1.2 (#50319) * Update kmertools to v0.1.1 * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update build.sh * Update build.sh * clean up recipe * add python back to build --------- Co-authored-by: mencian --- recipes/kmertools/build.sh | 32 +++++++++++++++++++++++++++++++- recipes/kmertools/meta.yaml | 12 ++++++++++-- 2 files changed, 41 insertions(+), 3 deletions(-) diff --git a/recipes/kmertools/build.sh b/recipes/kmertools/build.sh index 9a40edcacf2d1..1f86b1f9190de 100644 --- a/recipes/kmertools/build.sh +++ b/recipes/kmertools/build.sh @@ -4,4 +4,34 @@ cargo build --release # Install the binaries -cargo install --path kmertools --root $PREFIX +cargo install --verbose --path kmertools --root "${PREFIX}" + +# Check if the system is macOS +if [[ "$(uname)" == "Darwin" ]]; then + # Get the architecture + arch=$(uname -m) + + # Set MACOSX_DEPLOYMENT_TARGET based on architecture + if [[ "$arch" == "x86_64" ]]; then + # For Intel Macs + export MACOSX_DEPLOYMENT_TARGET=10.12 + elif [[ "$arch" == "arm64" ]]; then + # For Apple Silicon Macs + export MACOSX_DEPLOYMENT_TARGET=11.0 + else + echo "Unknown architecture: $arch" + exit 1 + fi + + echo "Set MACOSX_DEPLOYMENT_TARGET to $MACOSX_DEPLOYMENT_TARGET for $arch" +else + echo "Not running on macOS, skipping MACOSX_DEPLOYMENT_TARGET" +fi + +# Build statically linked binary with Rust +RUST_BACKTRACE=1 +# Build with maturin +maturin build -m ./pykmertools/Cargo.toml -b pyo3 --interpreter "${PYTHON}" --release --strip + +# Install the wheel file +${PYTHON} -m pip install ./target/wheels/*.whl --no-deps --no-build-isolation --no-cache-dir -vvv diff --git a/recipes/kmertools/meta.yaml b/recipes/kmertools/meta.yaml index 0e97b0c0e1d13..603fb2102a2d2 100644 --- a/recipes/kmertools/meta.yaml +++ b/recipes/kmertools/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "0.1.0" %} +{% set version = "0.1.2" %} {% set name = "kmertools" %} -{% set sha256 = "3c8cf78c95ab0baf0f69e7bc631ea52a54733bed0122b9d20e76d49df5639a4c" %} +{% set sha256 = "0dfade580e1fbf6ba2bc1665792ae74b918bbe0cd5272c5f52bf553eee285a71" %} package: name: {{ name }} @@ -18,6 +18,11 @@ source: requirements: build: - {{ compiler("rust") }} + - python >=3.9 + host: + - maturin >=1.7,<2.0 + - python >=3.9 + - pip test: commands: @@ -33,6 +38,9 @@ about: dev_url: https://github.com/anuradhawick/kmertools extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - anuradhawick - Vini2 From 997db1a95107da7d24493709d21ace9d928b842e Mon Sep 17 00:00:00 2001 From: Peter Cock Date: Tue, 27 Aug 2024 02:11:49 +0100 Subject: [PATCH 1227/1589] Build minimap2 on osx-arm64 (#49945) * Build minimap2 on osx-arm64 Closes #49565 * minimap2: add arm64 build * add osx-arm64 --------- Co-authored-by: mencian Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/minimap2/build.sh | 16 +++++++++------- recipes/minimap2/meta.yaml | 6 +++--- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/recipes/minimap2/build.sh b/recipes/minimap2/build.sh index 7dc49651a2b3b..8cb728cd50339 100644 --- a/recipes/minimap2/build.sh +++ b/recipes/minimap2/build.sh @@ -8,18 +8,20 @@ case $(uname -m) in aarch64) ARCH_OPTS="aarch64=1" ;; + arm64) + ARCH_OPTS="aarch64=1" + ;; *) ARCH_OPTS="" ;; esac -make CFLAGS="-g -Wall -O2 -Wc++-compat -I${PREFIX}/include -L${PREFIX}/lib" \ - ${ARCH_OPTS} -j${CPU_COUNT} minimap2 sdust +make CFLAGS="${CFLAGS} -g -Wall -O3 -Wc++-compat -I${PREFIX}/include -L${PREFIX}/lib" \ + "${ARCH_OPTS}" -j"${CPU_COUNT}" minimap2 sdust chmod 755 minimap2 && chmod 755 sdust -cp minimap2 misc/paftools.js ${PREFIX}/bin -cp sdust ${PREFIX}/bin -cp libminimap2.a ${PREFIX}/lib -cp *.h ${PREFIX}/include -cp minimap2.1 $PREFIX/share/man/man1 +cp -rf minimap2 misc/paftools.js ${PREFIX}/bin +cp -rf sdust ${PREFIX}/bin +cp -rf libminimap2.a ${PREFIX}/lib +cp -rf *.h ${PREFIX}/include diff --git a/recipes/minimap2/meta.yaml b/recipes/minimap2/meta.yaml index fff2923d41783..bcfd16f66dfac 100644 --- a/recipes/minimap2/meta.yaml +++ b/recipes/minimap2/meta.yaml @@ -12,7 +12,7 @@ source: - override-makefile.patch build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage(name, max_pin="x") }} @@ -24,7 +24,6 @@ requirements: - zlib run: - k8 - - zlib test: commands: @@ -46,7 +45,8 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:{{ name| lower }} - usegalaxy-eu:{{ name| lower }} - - doi:10.1093/bioinformatics/bty191 \ No newline at end of file + - doi:10.1093/bioinformatics/bty191 From 80b16ed83d9717ad88166ab2beb058c9b055a8da Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 22:17:26 -0400 Subject: [PATCH 1228/1589] Update mvip to 1.1.4 (#50342) --- recipes/mvip/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mvip/meta.yaml b/recipes/mvip/meta.yaml index 0705dd9549b86..613e0bbbd9bb8 100644 --- a/recipes/mvip/meta.yaml +++ b/recipes/mvip/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mvip" %} -{% set version = "1.1.3" %} +{% set version = "1.1.4" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: e8d96300ed3371048ecf27c61b269871d0c3c5f52789ba5726c958f565af8800 + sha256: ca056513e45714c5988aba02572aa179055b17100a0c4192a274324a02e8cc46 build: number: 0 From 43e264abce3f22d6618629c9159006987c0be87e Mon Sep 17 00:00:00 2001 From: Zechen Chong <1734434+czc@users.noreply.github.com> Date: Mon, 26 Aug 2024 21:50:04 -0500 Subject: [PATCH 1229/1589] Update Inspector to v1.3 (#50314) --- recipes/inspector/meta.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/inspector/meta.yaml b/recipes/inspector/meta.yaml index 25408db41b8b1..096917931b33d 100644 --- a/recipes/inspector/meta.yaml +++ b/recipes/inspector/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.2" %} +{% set version = "1.3" %} package: name: inspector @@ -6,11 +6,13 @@ package: source: url: https://github.com/ChongLab/Inspector/archive/refs/tags/inspector-v{{ version }}.tar.gz - sha256: 6d7ca6b22053d06105a549a064cf9a26efaf5c4a2a1a4502f2f36a4eb248ec4a + sha256: 6e1278de333990005a720a85048581783040ed4473b2247d0aa0eeaa8cb9ffda build: number: 0 noarch: generic + run_exports: + - {{ pin_subpackage('inspector', max_pin="x") }} requirements: run: From 7a7487cd3c301e095ca025124b8bb994f3ff2e9c Mon Sep 17 00:00:00 2001 From: Konstantinn Bonnet <50845450+qwx9@users.noreply.github.com> Date: Tue, 27 Aug 2024 03:54:41 +0100 Subject: [PATCH 1230/1589] update strangepg and fix runtime dependency spec (#50333) --- recipes/strangepg/build.sh | 2 +- recipes/strangepg/meta.yaml | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/recipes/strangepg/build.sh b/recipes/strangepg/build.sh index 08e12b16862ae..b2d6d2c62ccc8 100644 --- a/recipes/strangepg/build.sh +++ b/recipes/strangepg/build.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -eu export CFLAGS="$CFLAGS -I${PREFIX}/include" export LDFLAGS="$LDFLAGS -ldl -lpthread" make -j install diff --git a/recipes/strangepg/meta.yaml b/recipes/strangepg/meta.yaml index 5ad6f37944f03..6889a4d933a92 100644 --- a/recipes/strangepg/meta.yaml +++ b/recipes/strangepg/meta.yaml @@ -1,6 +1,6 @@ {% set name = "strangepg" %} -{% set version = "0.8.1" %} -{% set ref = "aaa5f72ebd55b6562050239cce9a1f10077759bd" %} +{% set version = "0.8.2" %} +{% set ref = "7fbd2957cf1bf0295b6c4bd95fcfc9f1970ecb13" %} package: name: {{ name }} @@ -8,7 +8,7 @@ package: source: url: https://github.com/qwx9/{{ name }}/archive/{{ ref }}.tar.gz - sha256: 33acfe6ac4eb85ecaf41fc3a5990b466b7fccebe6fd6d5b002c085cd4d52cc0f + sha256: bac0f9bbce7fdee6a555cca37536ed7f41b8c594aa16ff92212345e2664b7f67 build: number: 0 @@ -36,6 +36,15 @@ requirements: - xorg-libxi - xorg-libxrandr run: + - xorg-libx11 + - xorg-libxau + - xorg-libxcb + - xorg-libxcursor + - xorg-libxdmcp + - xorg-libxext + - xorg-libxfixes + - xorg-libxi + - xorg-libxrandr test: commands: From 2bf55abbaa1e69cbb307b816bf4dd62a9520663d Mon Sep 17 00:00:00 2001 From: Matty Allan <31744230+matthewfallan@users.noreply.github.com> Date: Mon, 26 Aug 2024 23:38:42 -0400 Subject: [PATCH 1231/1589] Update seismic-rna to 0.20.1 (#50344) * Initial commit of recipe for seismic-rna * Add run_exports to meta.yaml build section * Fix the problems causing linting errors * Apply suggestions from code review Co-authored-by: Martin Grigorov * Update meta.yaml Add Conda package brotli-python (equivalent of PyPI package brotli) to runtime dependencies * Update recipe generator; rebuild recipe files * seismic-rna v0.20.0 * bump build numer * Update seismic-rna to 0.20.1 --------- Co-authored-by: Martin Grigorov Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/seismic-rna/meta.yaml | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/recipes/seismic-rna/meta.yaml b/recipes/seismic-rna/meta.yaml index 408e717537b7e..0ea99cde077e3 100644 --- a/recipes/seismic-rna/meta.yaml +++ b/recipes/seismic-rna/meta.yaml @@ -2,8 +2,8 @@ package: name: seismic-rna - version: 0.20.0 - + version: 0.20.1 + about: home: https://github.com/rouskinlab/seismic-rna license: GPL-3.0-only @@ -13,12 +13,12 @@ about: summary: SEISMIC-RNA software by the Rouskin Lab source: - url: https://github.com/rouskinlab/seismic-rna/archive/refs/tags/v0.20.0.tar.gz - sha256: 91ea9c7d23a85a0d9d035e41ee0782f892ea7e4f0df5af96317b7302a58c8de4 + url: https://github.com/rouskinlab/seismic-rna/archive/refs/tags/v0.20.1.tar.gz + sha256: b6d159119d394a9a92f74a886dc398a8479e4d890438bf2e19e2eee3eefaee24 build: noarch: python - number: 1 + number: 0 run_exports: - {{ pin_subpackage("seismic-rna", max_pin="x.x") }} @@ -29,22 +29,23 @@ requirements: - hatch >=1.12 run: - python >=3.10 - - bowtie2 >=2.5.1 + - bowtie2 >=2.5.4 - fastqc >=0.12.1 - - rnastructure >=6.3 - - samtools >=1.17 - - matplotlib-base >=3.6 + - rnastructure >=6.4 + - samtools >=1.20 + - matplotlib-base >=3.9 - brotli-python >=1.0 + - python-kaleido >=0.2.1 - click >=8.1 - - cutadapt >=4.4 + - cutadapt >=4.8 - fastqsplitter >=1.2 - - numpy >=1.23,<1.27 - - numba >=0.59 - - pandas >=1.5 - - plotly >=5.11 + - numpy >=1.26,<1.27 + - numba >=0.60 + - pandas >=2.2 + - plotly >=5.23 - pyyaml >=6.0 - - scipy >=1.9 - + - scipy >=1.13 + test: imports: - - seismicrna + - seismicrna \ No newline at end of file From 125830ff71c95b3531b087564a229fbaced69690 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 27 Aug 2024 00:15:16 -0500 Subject: [PATCH 1232/1589] Update kmertools recipe (#50345) --- recipes/kmertools/meta.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/recipes/kmertools/meta.yaml b/recipes/kmertools/meta.yaml index 603fb2102a2d2..18f8c00e7dcd2 100644 --- a/recipes/kmertools/meta.yaml +++ b/recipes/kmertools/meta.yaml @@ -7,7 +7,8 @@ package: version: {{ version }} build: - number: 0 + number: 1 + skip: True # [py < 39] run_exports: - {{ pin_subpackage('kmertools', max_pin="x.x") }} @@ -18,10 +19,10 @@ source: requirements: build: - {{ compiler("rust") }} - - python >=3.9 + - python host: - maturin >=1.7,<2.0 - - python >=3.9 + - python - pip test: From 87796db043817d98215e012f5f31775808860e80 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 27 Aug 2024 01:23:01 -0500 Subject: [PATCH 1233/1589] maegatk: update build (#50346) --- recipes/maegatk/meta.yaml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/recipes/maegatk/meta.yaml b/recipes/maegatk/meta.yaml index a7a26ecda678c..f0101130ca332 100644 --- a/recipes/maegatk/meta.yaml +++ b/recipes/maegatk/meta.yaml @@ -10,7 +10,7 @@ source: sha256: fce1ec287914e03ce2b317a4f6a338f1806cd82e5c77f4e4cb1efbd48c87bdda build: - number: 1 + number: 2 noarch: python entry_points: - maegatk = maegatk.cli:main @@ -32,9 +32,9 @@ requirements: - biopython - optparse-pretty - regex - - ruamel.yaml + - ruamel.yaml 0.16.12 - openjdk - - fgbio + - fgbio-minimal - bwa - samtools - freebayes @@ -52,13 +52,17 @@ test: - maegatk --help about: - home: https://github.com/caleblareau/maegatk - summary: Mitochondrial Alteration Enrichment and Genome Analysis Toolkit + home: "https://github.com/caleblareau/maegatk" + summary: "Mitochondrial Alteration Enrichment and Genome Analysis Toolkit." license: MIT license_family: MIT license_file: LICENSE.txt description: Processing and quality control of mitochondrial genome variants from MAESTER data. + dev_url: "https://github.com/caleblareau/maegatk" + doc_url: "https://github.com/caleblareau/maegatk/wiki" extra: recipe-maintainers: - mencian + identifiers: + - doi:10.1038/s41587-022-01210-8 From 0040ecf688846771e0aeb0813d0a9f06bb959ca2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 27 Aug 2024 03:18:12 -0400 Subject: [PATCH 1234/1589] Update cagee to 1.1.1 (#43439) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update cagee to 1.1 * add run_exports * Update cagee to 1.1.1 * clean up recipe * clean up recipe * add linux-aarch64 * update meta.yaml * update meta.yaml --------- Co-authored-by: joshuazhuang7 Co-authored-by: Andreas Sjödin Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/cagee/build.sh | 40 ++++++++++++++++++++-------------------- recipes/cagee/meta.yaml | 16 +++++++++------- 2 files changed, 29 insertions(+), 27 deletions(-) diff --git a/recipes/cagee/build.sh b/recipes/cagee/build.sh index 5d921656c8975..79aff1ef6a196 100755 --- a/recipes/cagee/build.sh +++ b/recipes/cagee/build.sh @@ -1,28 +1,28 @@ #!/bin/bash -set -e -set -x +set -ex -if [ "$(uname)" = "Darwin" ]; then - # LDFLAGS fix: https://github.com/AnacondaRecipes/intel_repack-feedstock/issues/8 - export LDFLAGS="-Wl,-pie -Wl,-headerpad_max_install_names -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib" +export INCLUDES="-I{PREFIX}/include" +export LIBPATH="-L${PREFIX}/lib" +export CXXFLAGS="${CXXFLAGS} -O3 -I{PREFIX}/include" + +if [[ "$(uname)" == "Darwin" ]]; then + # LDFLAGS fix: https://github.com/AnacondaRecipes/intel_repack-feedstock/issues/8 + export LDFLAGS="${LDFLAGS} -Wl,-pie -Wl,-headerpad_max_install_names -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib" + export CONFIG_ARGS="-DCMAKE_FIND_FRAMEWORK=NEVER -DCMAKE_FIND_APPBUNDLE=NEVER" else - export LDFLAGS="-L$PREFIX/lib" - export MKL_THREADING_LAYER="GNU" + export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" + export MKL_THREADING_LAYER="GNU" + export CONFIG_ARGS="" fi -# https://bioconda.github.io/contributor/troubleshooting.html#zlib-errors -export CFLAGS="-I$PREFIX/include" -export CPATH=${PREFIX}/include - -mkdir -p build -cd build - -cmake -DCMAKE_PREFIX_PATH:PATH=${PREFIX} \ - -DCMAKE_INSTALL_PREFIX:PATH=${PREFIX} \ - -DCMAKE_BUILD_TYPE="Release" \ - .. +# https://bioconda.github.io/contributor/troubleshooting.html#zlib-errors +export CFLAGS="${CFLAGS} -O3 -I$PREFIX/include" +export INCLUDE_PATH="${PREFIX}/include" -make -make install +cmake -S . -B build \ + -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DCMAKE_BUILD_TYPE="Release" \ + -DCMAKE_CXX_COMPILER="${CXX}" -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ + "${CONFIG_ARGS}" +cmake --build build --target install -j "${CPU_COUNT}" -v diff --git a/recipes/cagee/meta.yaml b/recipes/cagee/meta.yaml index ff080b956e86b..df3e506dd1ad6 100755 --- a/recipes/cagee/meta.yaml +++ b/recipes/cagee/meta.yaml @@ -1,6 +1,6 @@ {% set name = "CAGEE" %} -{% set version = "1.0" %} -{% set sha256 = "3aec98af3552ef86df03d42a068925e2becd69daac3720ea9fd136b084198f57" %} +{% set version = "1.1.1" %} +{% set sha256 = "b282b954249491f5379c27e36ad0c7b7d5cd120c798e11e6e355b13b5849dfc3" %} package: name: {{ name|lower }} @@ -11,27 +11,30 @@ source: sha256: {{ sha256 }} build: - number: 2 + number: 0 + skip: True # [osx] + run_exports: + - {{ pin_subpackage('cagee', max_pin="x") }} requirements: build: - - {{ compiler('c') }} - {{ compiler('cxx') }} - binutils >=2.33.1 # [linux] + - binutils_impl_linux-aarch64 # [osx] - cmake >=3.13 - make - - llvm-openmp # [osx] host: - eigen >=3.4.0 - boost-cpp - mkl >=2020.4 - mkl-include + - libgomp # [linux] + - llvm-openmp # [osx] - zlib - zstd run: - boost-cpp - mkl >=2020.4 - - zlib test: commands: @@ -49,4 +52,3 @@ about: extra: recipe-maintainers: - benfulton - From 745c02283091f8376751fc651b3593b71bdcaa65 Mon Sep 17 00:00:00 2001 From: Pedro Madrigal <8195212+pmb59@users.noreply.github.com> Date: Tue, 27 Aug 2024 09:18:06 +0100 Subject: [PATCH 1235/1589] add r-mams (#50341) * Create meta.yaml * Create build.sh * Create build.sh * Delete r-mams/build.sh * fix typo * fix anndata dependency * fix r-anndata in run: & add license_file * clean up recipe --------- Co-authored-by: mencian --- recipes/r-mams/meta.yaml | 66 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 recipes/r-mams/meta.yaml diff --git a/recipes/r-mams/meta.yaml b/recipes/r-mams/meta.yaml new file mode 100644 index 0000000000000..673fe63a605e3 --- /dev/null +++ b/recipes/r-mams/meta.yaml @@ -0,0 +1,66 @@ +{% set version = "1.0.1" %} +{% set sha256 = "90b4658c20f8420d3e158522d5e94ada026ff8bc9a71f644f6bd5c78c9539bfd" %} + +package: + name: r-mams + version: '{{ version }}' + +source: + url: https://github.com/single-cell-mams/rmams/archive/refs/tags/{{ version }}.tar.gz + sha256: '{{ sha256 }}' + +build: + noarch: generic + number: 0 + script: ${R} CMD INSTALL --build . ${R_ARGS} + rpaths: + - lib/R/lib/ + - lib/ + run_exports: + - {{ pin_subpackage("r-mams", max_pin="x") }} + +requirements: + host: + - r-base + - r-seurat + - r-jsonlite + - r-rmdformats + - r-r.methodss3 + - r-anndata + - bioconductor-scran + - bioconductor-scater + - bioconductor-singlecellexperiment + - bioconductor-dropletutils + - bioconductor-annotationdbi + - bioconductor-org.hs.eg.db + run: + - r-base + - r-seurat + - r-jsonlite + - r-rmdformats + - r-r.methodss3 + - r-anndata + - bioconductor-scran + - bioconductor-scater + - bioconductor-singlecellexperiment + - bioconductor-dropletutils + - bioconductor-annotationdbi + - bioconductor-org.hs.eg.db + +test: + commands: + - $R -e "library('rmams')" + +about: + home: "https://github.com/single-cell-mams/rmams" + license: MIT + license_family: MIT + license_file: LICENSE + summary: "R package for Matrix and Analysis Metadata Standards." + dev_url: "https://github.com/single-cell-mams/rmams" + doc_url: "https://single-cell-mams.github.io/rmams" + +extra: + recipe-maintainers: + - pmb59 + - irzamsarfraz From 00922cc558f8729e8e08dc7e05d117afb3e1fd6e Mon Sep 17 00:00:00 2001 From: Marc Sturm Date: Tue, 27 Aug 2024 10:18:17 +0200 Subject: [PATCH 1236/1589] Updated ngs-bits to version 2024_08 (#50347) * Updated ngs-bits to version 2018_10 * bla * Updated ngs-bits to version 2024_08 --- recipes/ngs-bits/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ngs-bits/meta.yaml b/recipes/ngs-bits/meta.yaml index a0cfd0e03364c..5a2b865428cdb 100644 --- a/recipes/ngs-bits/meta.yaml +++ b/recipes/ngs-bits/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2024_07" %} +{% set version = "2024_08" %} package: name: ngs-bits @@ -12,7 +12,7 @@ build: source: url: https://github.com/imgag/ngs-bits/releases/download/{{ version }}/ngs-bits-{{ version }}.tgz - sha256: c1f78b59d87516c5fba44a1375da561b8b1577b4ef949ce63b9a042bbf7f1853 + sha256: 615e61360eafdfdb923336e7c985e7a599c80ad56e534b30bbe97e4b524bc55d # Note: pinning of sysroot_linux-64 =2.17 enforces cos7 and is currently needed to prevent an memcpy@GLIBC2.14 error requirements: From 71a78b058cc6cad4accb4deb40ccf6c25e39d7d5 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 27 Aug 2024 17:31:39 +0300 Subject: [PATCH 1237/1589] ucsc-pslmrnacover: add linux-aarch64 build (#50324) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-pslmrnacover/build.sh | 28 ++++++++++++++++--------- recipes/ucsc-pslmrnacover/include.patch | 6 +++--- recipes/ucsc-pslmrnacover/meta.yaml | 26 +++++++++++++++-------- 4 files changed, 38 insertions(+), 23 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index a1d0a9225fc37..da85474fca2cb 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -914,7 +914,6 @@ recipes/ucsc-pslfilter recipes/ucsc-pslliftsubrangeblat recipes/ucsc-pslmap recipes/ucsc-pslmappostchain -recipes/ucsc-pslmrnacover recipes/ucsc-pslpartition recipes/ucsc-pslpretty recipes/ucsc-pslrc diff --git a/recipes/ucsc-pslmrnacover/build.sh b/recipes/ucsc-pslmrnacover/build.sh index 356e0e2e3bc36..a7c9804cb5f4a 100644 --- a/recipes/ucsc-pslmrnacover/build.sh +++ b/recipes/ucsc-pslmrnacover/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/pslMrnaCover && make) -cp bin/pslMrnaCover "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslMrnaCover" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/pslMrnaCover && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/pslMrnaCover "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/pslMrnaCover" diff --git a/recipes/ucsc-pslmrnacover/include.patch b/recipes/ucsc-pslmrnacover/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-pslmrnacover/include.patch +++ b/recipes/ucsc-pslmrnacover/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-pslmrnacover/meta.yaml b/recipes/ucsc-pslmrnacover/meta.yaml index 8a19d625c6e28..3b0628781bcd1 100644 --- a/recipes/ucsc-pslmrnacover/meta.yaml +++ b/recipes/ucsc-pslmrnacover/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslmrnacover" %} {% set program = "pslMrnaCover" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Make histogram of coverage percentage of mRNA in psl." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From f5257d504d7cc52b865cceae57d87bcc30a5461a Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 27 Aug 2024 17:32:19 +0300 Subject: [PATCH 1238/1589] Update the scripts used to generate the ucsc-XYZ recipes (#50325) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update the scripts used to generate the ucsc-XYZ recipes Signed-off-by: Martin Tzvetanov Grigorov * Do not render linux-aarch64 as an additional platform for recipes with known build issues on aarch64 Signed-off-by: Martin Tzvetanov Grigorov * Add identifiers Co-authored-by: Björn Grüning * Do not use `-f` (force) when copying the binaries to $PREFIX/bin https://github.com/bioconda/bioconda-recipes/pull/50325#pullrequestreview-2262253967 Signed-off-by: Martin Tzvetanov Grigorov * Move extra > identifiers above the additional-platforms Signed-off-by: Martin Tzvetanov Grigorov * Update doi identifier Co-authored-by: Björn Grüning * Ignore template-meta.yaml when checking for additional_platforms Set -x for easier debugging Signed-off-by: Martin Tzvetanov Grigorov * Rename NO_AARCH64 list to SKIP_AARCH64 To be consistent with the SKIP list Signed-off-by: Martin Tzvetanov Grigorov * Apply suggestions from code review --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Björn Grüning --- scripts/check-for-additional-platforms.sh | 9 +++++- scripts/ucsc/create-ucsc-packages.py | 12 +++++-- scripts/ucsc/include.patch | 6 ++-- scripts/ucsc/template-build-cp-short.sh | 9 ++++-- scripts/ucsc/template-build-cp.sh | 7 +++-- .../ucsc/template-build-fetchChromSizes.sh | 6 ++-- scripts/ucsc/template-build-no-bin.sh | 29 +++++++++++------ scripts/ucsc/template-build-parasol.sh | 29 +++++++++++------ scripts/ucsc/template-build-with-stringify.sh | 31 ++++++++++++------- scripts/ucsc/template-build.sh | 29 +++++++++++------ scripts/ucsc/template-meta-with-python.yaml | 18 +++++++++-- scripts/ucsc/template-meta.yaml | 27 +++++++++++----- scripts/ucsc/ucsc_config.yaml | 4 +-- 13 files changed, 149 insertions(+), 67 deletions(-) diff --git a/scripts/check-for-additional-platforms.sh b/scripts/check-for-additional-platforms.sh index d088794f14422..3c4e17a0d7c88 100755 --- a/scripts/check-for-additional-platforms.sh +++ b/scripts/check-for-additional-platforms.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -x + # Check to see if any changed recipes have specified the key # extra:additional-platforms, and if so, if they match the platform of the # currently-running machine. @@ -18,10 +20,12 @@ wget https://github.com/mikefarah/yq/releases/latest/download/yq_${yq_platform}_ chmod +x ${HOME}/bin/yq # Find recipes changed from this merge -files=`git diff --name-only --diff-filter AMR ${git_range} | grep -E 'meta.yaml$' ` +files=`git diff --name-only --diff-filter AMR ${git_range} | grep -v 'template' | grep -E 'meta.yaml$' ` build=0 for file in $files; do + echo "Going to check '${file}' for additional-platforms." + # To create a properly-formatted yaml that yq can parse, comment out jinja2 # variable setting with {% %} and remove variable use with {{ }}. additional_platforms=$(cat $file \ @@ -32,6 +36,9 @@ for file in $files; do parsing_status=$? if [ $parsing_status -gt 0 ]; then echo "An error occurred while reading/parsing ${file}" + echo "==================== ${file} START ===========================" + cat $file + echo "==================== ${file} END =============================" exit $parsing_status fi diff --git a/scripts/ucsc/create-ucsc-packages.py b/scripts/ucsc/create-ucsc-packages.py index f07ea3be2f92e..6785e01f7cd8c 100755 --- a/scripts/ucsc/create-ucsc-packages.py +++ b/scripts/ucsc/create-ucsc-packages.py @@ -13,7 +13,6 @@ # e.g.,# "addCols - Sum columns in a text file." re_summary = re.compile(r'^(?P\w.*?) - (?P.*)$') - def parse_footer(fn): """ Parse the downloaded FOOTER file, which contains a header for each program @@ -54,13 +53,13 @@ def parse_footer(fn): # # version: 332 # sha256: 8c2663c7bd302a77cdf52b2e9e85e2cd -ucsc_config = yaml.load(open('ucsc_config.yaml')) +ucsc_config = yaml.safe_load(open('ucsc_config.yaml')) VERSION = ucsc_config['version'] SHA256 = ucsc_config['sha256'] # Download tarball if it doesn't exist. Always download FOOTER. tarball = ( - 'http://hgdownload.cse.ucsc.edu/admin/exe/userApps.v{0}.src.tgz' + 'http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{0}.src.tgz' .format(VERSION)) if not os.path.exists(os.path.basename(tarball)): f = urllib.request.urlopen(tarball) @@ -198,6 +197,12 @@ def program_subdir(program, names): 'gfServer', ] +# A list of programs which have problems to build on linux-aarch64 +SKIP_AARCH64 = [ + 'pslCDnaFilter', # https://github.com/bioconda/bioconda-recipes/pull/49297 + 'pslCheck', # https://github.com/bioconda/bioconda-recipes/pull/50193 +] + # Some programs need to be built differently. It seems that a subset of # programs need the "stringify" binary build as well. Or, in the case of # fetchChromSizes, it's simply a script that needs to be copied. @@ -294,6 +299,7 @@ def program_subdir(program, names): summary=description, version=VERSION, sha256=SHA256, + linux_aarch64='' if program in SKIP_AARCH64 else 'additional-platforms:\n - linux-aarch64\n', ) ) diff --git a/scripts/ucsc/include.patch b/scripts/ucsc/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/scripts/ucsc/include.patch +++ b/scripts/ucsc/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/scripts/ucsc/template-build-cp-short.sh b/scripts/ucsc/template-build-cp-short.sh index d47bb19e9f7d9..f51f7ee2c9c55 100644 --- a/scripts/ucsc/template-build-cp-short.sh +++ b/scripts/ucsc/template-build-cp-short.sh @@ -1,4 +1,7 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -cp kent/src/utils/{program} "$PREFIX/bin" -chmod +x "$PREFIX/bin/{program}" + +set -xe + +mkdir -p "${{PREFIX}}/bin" +cp kent/src/utils/{program} "${{PREFIX}}/bin" +chmod 0755 "${{PREFIX}}/bin/{program}" diff --git a/scripts/ucsc/template-build-cp.sh b/scripts/ucsc/template-build-cp.sh index 73f3a75e23add..937159593f973 100644 --- a/scripts/ucsc/template-build-cp.sh +++ b/scripts/ucsc/template-build-cp.sh @@ -1,4 +1,7 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -cp {program_source_dir}/{program} "$PREFIX/bin" -chmod +x "$PREFIX/bin/{program}" +cp {program_source_dir}/{program} "${{PREFIX}}/bin" +chmod 0755 "${{PREFIX}}/bin/{program}" diff --git a/scripts/ucsc/template-build-fetchChromSizes.sh b/scripts/ucsc/template-build-fetchChromSizes.sh index 502e537cac181..487e643544ef8 100644 --- a/scripts/ucsc/template-build-fetchChromSizes.sh +++ b/scripts/ucsc/template-build-fetchChromSizes.sh @@ -1,4 +1,6 @@ #!/bin/bash -cp kent/src/utils/userApps/fetchChromSizes $PREFIX/bin -chmod +x $PREFIX/bin/fetchChromSizes +set -xe + +cp kent/src/utils/userApps/fetchChromSizes ${{PREFIX}}/bin +chmod 0755 ${{PREFIX}}/bin/fetchChromSizes diff --git a/scripts/ucsc/template-build-no-bin.sh b/scripts/ucsc/template-build-no-bin.sh index 24469788935d2..9e597e406cf4d 100644 --- a/scripts/ucsc/template-build-no-bin.sh +++ b/scripts/ucsc/template-build-no-bin.sh @@ -1,12 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${{PREFIX}}/bin" +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${{PREFIX}}/include" +export LIBRARY_PATH="${{PREFIX}}/lib" +export LDFLAGS="${{LDFLAGS} -L${{PREFIX}}/lib" +export CFLAGS="${{CFLAGS}} -O3 ${{LDFLAGS}}" +export CXXFLAGS="${{CXXFLAGS}} -I${{PREFIX}}/include ${{LDFLAGS}}" export BINDIR=$(pwd)/bin -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd {program_source_dir} && make) -cp {program_source_dir}/{program} "$PREFIX/bin" -chmod +x "$PREFIX/bin/{program}" +export L="${{LDFLAGS}}" +mkdir -p "${{BINDIR}}" +(cd kent/src/lib && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd kent/src/htslib && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd kent/src/jkOwnLib && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd {program_source_dir} && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +cp {program_source_dir}/{program} "${{PREFIX}}/bin" +chmod 0755 "${{PREFIX}}/bin/{program}" diff --git a/scripts/ucsc/template-build-parasol.sh b/scripts/ucsc/template-build-parasol.sh index 5614488afa6a1..253f747ebad66 100644 --- a/scripts/ucsc/template-build-parasol.sh +++ b/scripts/ucsc/template-build-parasol.sh @@ -1,12 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${{PREFIX}}/bin" +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${{PREFIX}}/include" +export LIBRARY_PATH="${{PREFIX}}/lib" +export LDFLAGS="${{LDFLAGS}} -L${{PREFIX}}/lib" +export CFLAGS="${{CFLAGS}} -O3 ${{LDFLAGS}}" +export CXXFLAGS="${{CXXFLAGS}} -I${{PREFIX}}/include ${{LDFLAGS}}" export BINDIR=$(pwd)/bin -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/parasol && make) -cp kent/src/parasol/bin/{program} "$PREFIX/bin" -chmod +x "$PREFIX/bin/{program}" +export L="${{LDFLAGS}}" +mkdir -p "${{BINDIR}}" +(cd kent/src/lib && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd kent/src/htslib && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd kent/src/jkOwnLib && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd kent/src/parasol && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +cp kent/src/parasol/bin/{program} "${{PREFIX}}/bin" +chmod 0755 "${{PREFIX}}/bin/{program}" diff --git a/scripts/ucsc/template-build-with-stringify.sh b/scripts/ucsc/template-build-with-stringify.sh index 225c22fe8fda1..c61d710eaa8f1 100644 --- a/scripts/ucsc/template-build-with-stringify.sh +++ b/scripts/ucsc/template-build-with-stringify.sh @@ -1,13 +1,22 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${{PREFIX}}/bin" +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${{PREFIX}}/include" +export LIBRARY_PATH="${{PREFIX}}/lib" +export LDFLAGS="${{LDFLAGS}} -L${{PREFIX}}/lib" +export CFLAGS="${{CFLAGS}} -O3 ${{LDFLAGS}}" +export CXXFLAGS="${{CXXFLAGS}} -I${{PREFIX}}/include ${{LDFLAGS}}" export BINDIR=$(pwd)/bin -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/stringify && make) -(cd {program_source_dir} && make) -cp bin/{program} "$PREFIX/bin" -chmod +x "$PREFIX/bin/{program}" +export L="${{LDFLAGS}}" +mkdir -p "${{BINDIR}}" +(cd kent/src/lib && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd kent/src/htslib && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd kent/src/jkOwnLib && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd kent/src/utils/stringify && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd {program_source_dir} && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +cp bin/{program} "${{PREFIX}}/bin" +chmod 0755 "${{PREFIX}}/bin/{program}" diff --git a/scripts/ucsc/template-build.sh b/scripts/ucsc/template-build.sh index e5f98c64a3a1c..f2f5d27f6e621 100644 --- a/scripts/ucsc/template-build.sh +++ b/scripts/ucsc/template-build.sh @@ -1,12 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${{PREFIX}}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd {program_source_dir} && make) -cp bin/{program} "$PREFIX/bin" -chmod +x "$PREFIX/bin/{program}" +export INCLUDE_PATH="${{PREFIX}}/include" +export LIBRARY_PATH="${{PREFIX}}/lib" +export LDFLAGS="${{LDFLAGS}} -L${{PREFIX}}/lib" +export CFLAGS="${{CFLAGS}} -O3 ${{LDFLAGS}}" +export CXXFLAGS="${{CXXFLAGS}} -I${{PREFIX}}/include ${{LDFLAGS}}" +export L="${{LDFLAGS}}" +mkdir -p "${{BINDIR}}" +(cd kent/src/lib && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd kent/src/htslib && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd kent/src/jkOwnLib && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd {program_source_dir} && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +cp bin/{program} "${{PREFIX}}/bin" +chmod 0755 "${{PREFIX}}/bin/{program}" diff --git a/scripts/ucsc/template-meta-with-python.yaml b/scripts/ucsc/template-meta-with-python.yaml index e232fd400c642..d904f30099bda 100644 --- a/scripts/ucsc/template-meta-with-python.yaml +++ b/scripts/ucsc/template-meta-with-python.yaml @@ -8,13 +8,16 @@ package: version: "{{{{ version }}}}" source: - url: "http://hgdownload.cse.ucsc.edu/admin/exe/userApps.v{{{{ version }}}}.src.tgz" + url: "http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{{ version }}.src.tgz" sha256: "{{{{ sha256 }}}}" patches: - "include.patch" build: + skip: True # [osx] number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -23,14 +26,14 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - python - zlib @@ -43,3 +46,12 @@ about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "{summary}" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + {linux_aarch64} + \ No newline at end of file diff --git a/scripts/ucsc/template-meta.yaml b/scripts/ucsc/template-meta.yaml index 74498a6983ed3..a063435a2380a 100644 --- a/scripts/ucsc/template-meta.yaml +++ b/scripts/ucsc/template-meta.yaml @@ -8,37 +8,50 @@ package: version: "{{{{ version }}}}" source: - url: "http://hgdownload.cse.ucsc.edu/admin/exe/userApps.v{{{{ version }}}}.src.tgz" + url: "http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{{{{ version }}}}.src.tgz" sha256: "{{{{ sha256 }}}}" patches: - "include.patch" build: + skip: True # [osx] number: 0 + run_exports: + - {{{{ pin_subpackage(package, max_pin=None) }}}} requirements: build: + - make - {{{{ compiler('c') }}}} host: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{{{ program }}}} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${{PREFIX}}/bin/{{{{ program }}}} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "{summary}" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + {linux_aarch64} + \ No newline at end of file diff --git a/scripts/ucsc/ucsc_config.yaml b/scripts/ucsc/ucsc_config.yaml index 0111932c1c44f..96df218c9e5ca 100644 --- a/scripts/ucsc/ucsc_config.yaml +++ b/scripts/ucsc/ucsc_config.yaml @@ -1,2 +1,2 @@ -version: 377 -sha256: 932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676 +version: 469 +sha256: 3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963 From f0fc09043954d4d61617cc70b48030688b41c5f3 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 27 Aug 2024 18:00:44 +0300 Subject: [PATCH 1239/1589] Update ucsc-addCols to v469 (#50323) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/ucsc-addcols/build.sh | 11 +++++++---- recipes/ucsc-addcols/meta.yaml | 4 ++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/recipes/ucsc-addcols/build.sh b/recipes/ucsc-addcols/build.sh index 8a3ac9a9447cd..1acf16c4e77af 100644 --- a/recipes/ucsc-addcols/build.sh +++ b/recipes/ucsc-addcols/build.sh @@ -1,5 +1,8 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" + +set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" @@ -8,11 +11,11 @@ export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/utils/addCols && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/addCols "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/addCols" +cp -f bin/addCols "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/addCols" diff --git a/recipes/ucsc-addcols/meta.yaml b/recipes/ucsc-addcols/meta.yaml index e75b5b93e7d1d..b192a7574045a 100644 --- a/recipes/ucsc-addcols/meta.yaml +++ b/recipes/ucsc-addcols/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-addcols" %} {% set program = "addCols" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" From 3ed8bf61f484278f81b78f44295b147e58fe3605 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 27 Aug 2024 11:09:37 -0400 Subject: [PATCH 1240/1589] Update isoquant to 3.5.1 (#50351) --- recipes/isoquant/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/isoquant/meta.yaml b/recipes/isoquant/meta.yaml index bbc7fbd26d950..3909056b93f8d 100644 --- a/recipes/isoquant/meta.yaml +++ b/recipes/isoquant/meta.yaml @@ -1,6 +1,6 @@ {% set name = "IsoQuant" %} -{% set version = "3.5.0" %} -{% set sha256 = "80771cc4fbe8d222b5dfa45be392942b2fdd356ebbb1d99e26d251c37bba085d" %} +{% set version = "3.5.1" %} +{% set sha256 = "3153389594062618012ec946512b81147af0ac4529466c46d79524cabeda6313" %} package: name: {{ name | lower }} From 90bc105b8316b6bc2622788b1750a546b190b358 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 27 Aug 2024 11:10:02 -0400 Subject: [PATCH 1241/1589] Update parascopy to 1.17.1 (#50352) --- recipes/parascopy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/parascopy/meta.yaml b/recipes/parascopy/meta.yaml index 1b1f041d3a225..2befb97a039a4 100644 --- a/recipes/parascopy/meta.yaml +++ b/recipes/parascopy/meta.yaml @@ -1,5 +1,5 @@ {% set name = "parascopy" %} -{% set version = "1.17.0" %} +{% set version = "1.17.1" %} package: name: {{ name|lower }} @@ -14,7 +14,7 @@ build: source: url: https://github.com/tprodanov/{{ name }}/archive/v{{ version }}.tar.gz - sha256: 42d2d32888a1c57ccee272d26015c96663c81cf36a747a3f5e1b1deea813c953 + sha256: 3b6871a198e60b76a0d1f94dd219134c8662547d3a98fb20786443916e964a5b requirements: build: From 18a6a8eb38a35ea861351d8ced0d2b76d9a4a195 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 27 Aug 2024 10:55:51 -0500 Subject: [PATCH 1242/1589] spoa: add arm64 build (#50226) * spoa: add arm64 build * clean up recipe * clean up recipe --- recipes/spoa/build.sh | 16 ++++++++++++---- recipes/spoa/meta.yaml | 13 +++++++++---- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/recipes/spoa/build.sh b/recipes/spoa/build.sh index 925752eeaca8e..1f0c524a7b06f 100644 --- a/recipes/spoa/build.sh +++ b/recipes/spoa/build.sh @@ -4,7 +4,7 @@ set -eoux pipefail export INCLUDES="-I{PREFIX}/include" export LIBPATH="-L${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" -export CXXFLAGS="${CXXFLAGS} -O3" +export CXXFLAGS="${CXXFLAGS} -O3 -I{PREFIX}/include" case $(uname -m) in x86_64) @@ -13,21 +13,29 @@ case $(uname -m) in aarch64) SPOA_OPTS="-Dspoa_use_simde_nonvec=ON -DBUILD_TESTING=OFF" ;; + arm64) + SPOA_OPTS="-Dspoa_use_simde_nonvec=ON -DBUILD_TESTING=OFF" + ;; *) ;; esac +if [[ `uname` == "Darwin" ]]; then + export CONFIG_ARGS="-DCMAKE_FIND_FRAMEWORK=NEVER -DCMAKE_FIND_APPBUNDLE=NEVER" +else + export CONFIG_ARGS="" +fi cmake -S . -B build \ -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ -DCMAKE_BUILD_TYPE=Release \ - -DBUILD_SHARED_LIBS=ON \ -Dspoa_install=ON \ -Dspoa_build_exe=ON \ - ${SPOA_OPTS} \ + "${SPOA_OPTS}" \ -Dspoa_use_simde=ON \ -Dspoa_use_simde_openmp=ON \ + -Dspoa_use_cereal=ON \ -DCMAKE_CXX_COMPILER="${CXX}" \ - -DCMAKE_CXX_FLAGS="${CXXFLAGS}" + -DCMAKE_CXX_FLAGS="${CXXFLAGS}" "${CONFIG_ARGS}" cmake --build build/ --target install -j ${CPU_COUNT} -v diff --git a/recipes/spoa/meta.yaml b/recipes/spoa/meta.yaml index b4c53999344c7..ca3c358ba60bf 100644 --- a/recipes/spoa/meta.yaml +++ b/recipes/spoa/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage(name, max_pin="x") }} @@ -23,9 +23,10 @@ requirements: host: - zlib - simde - - libgomp # [linux] + - libgomp # [linux] - llvm-openmp # [osx] - - cpu_features + - cpu_features # [linux] + - cereal test: commands: @@ -34,12 +35,16 @@ test: about: home: 'https://github.com/rvaser/spoa' license: MIT + license_family: MIT license_file: LICENSE - summary: 'SIMD partial order alignment tool/library' + summary: 'SIMD partial order alignment tool/library.' + dev_url: 'https://github.com/rvaser/spoa' + doc_url: 'https://github.com/rvaser/spoa/blob/{{ version }}/README.md' extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:spoa - doi:10.1101/gr.214270.116 From 3454fd8d9a8aa45864f1b0f214ac64feebce0b5f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 27 Aug 2024 14:03:16 -0400 Subject: [PATCH 1243/1589] Update gw to 1.0.3 (#50360) --- recipes/gw/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gw/meta.yaml b/recipes/gw/meta.yaml index 4645b40c73b2c..ba0135f18a300 100644 --- a/recipes/gw/meta.yaml +++ b/recipes/gw/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.0.2" %} -{% set sha256 = "1f9b17702a073e255a87e5e273c0dd0ddafbc25c02b19aa143b3d744ce5d359d" %} +{% set version = "1.0.3" %} +{% set sha256 = "7247a8ec9efb7ebcd9566f6a3759520ee87f305efc91c8ce658307308ee6368a" %} package: name: gw From bb39fc9fcbc0c48d9d2c3548337ce069cfb958fc Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 27 Aug 2024 14:36:27 -0500 Subject: [PATCH 1244/1589] sorted_nearest: add arm64 build (#50361) * sorted_nearest: add arm64 build * edit license --- .../sorted_nearest/build_failure.osx-64.yaml | 105 ------------------ recipes/sorted_nearest/meta.yaml | 18 ++- 2 files changed, 12 insertions(+), 111 deletions(-) delete mode 100644 recipes/sorted_nearest/build_failure.osx-64.yaml diff --git a/recipes/sorted_nearest/build_failure.osx-64.yaml b/recipes/sorted_nearest/build_failure.osx-64.yaml deleted file mode 100644 index b28a52d273527..0000000000000 --- a/recipes/sorted_nearest/build_failure.osx-64.yaml +++ /dev/null @@ -1,105 +0,0 @@ -recipe_sha: 2fa8de914f4d17ddde8039fbe1761352a875d48f192b025f668e9186e0a4edc9 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -category: test failure -log: |2- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - WARNING: Importing conda-verify failed. Please be sure to test your packages. conda install conda-verify to make this message go away. - compiling .pyc files... - number of files: 54 - INFO: sysroot: '/System/Library/Frameworks/' files: '['vmnet.framework/Versions/Current', 'vmnet.framework/Versions/A/_CodeSignature/CodeResources', 'vmnet.framework/Versions/A/Resources/version.plist', 'vmnet.framework/Versions/A/Resources/InfoPlist.loctable']' - INFO: sysroot: '/usr/lib/' files: '['zsh/5.9/zsh/zselect.so', 'zsh/5.9/zsh/zpty.so', 'zsh/5.9/zsh/zprof.so', 'zsh/5.9/zsh/zleparameter.so']' - INFO: sysroot: '/opt/X11/' files: '[]' - INFO (sorted_nearest,lib/python3.9/site-packages/sorted_nearest/src/sorted_nearest.cpython-39-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - INFO (sorted_nearest,lib/python3.9/site-packages/sorted_nearest/src/tiles.cpython-39-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - INFO (sorted_nearest,lib/python3.9/site-packages/sorted_nearest/src/k_nearest.cpython-39-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - INFO (sorted_nearest,lib/python3.9/site-packages/sorted_nearest/src/max_disjoint_intervals.cpython-39-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - INFO (sorted_nearest,lib/python3.9/site-packages/sorted_nearest/src/clusters.cpython-39-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - INFO (sorted_nearest,lib/python3.9/site-packages/sorted_nearest/src/k_nearest_ties.cpython-39-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - INFO (sorted_nearest,lib/python3.9/site-packages/sorted_nearest/src/windows.cpython-39-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - INFO (sorted_nearest,lib/python3.9/site-packages/sorted_nearest/src/introns.cpython-39-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - INFO (sorted_nearest,lib/python3.9/site-packages/sorted_nearest/src/annotate_clusters.cpython-39-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - INFO (sorted_nearest,lib/python3.9/site-packages/sorted_nearest/src/merge_by.cpython-39-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - INFO (sorted_nearest,lib/python3.9/site-packages/sorted_nearest/src/cluster_by.cpython-39-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - WARNING (sorted_nearest): interpreter (Python) package conda-forge/osx-64::python==3.9.19=h7a9c478_0_cpython in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) - Fixing permissions - INFO :: Time taken to mark (prefix) - 0 replacements in 0 files was 0.06 seconds - TEST START: /opt/mambaforge/envs/bioconda/conda-bld/osx-64/sorted_nearest-0.0.39-py39h1841df5_2.tar.bz2 - Renaming work directory '/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1718121720195/work' to '/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1718121720195/work_moved_sorted_nearest-0.0.39-py39h1841df5_2_osx-64' - shutil.move(work)=/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1718121720195/work, dest=/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1718121720195/work_moved_sorted_nearest-0.0.39-py39h1841df5_2_osx-64) - Reloading output folder (local): ...working... done - Solving environment (_test_env): ...working... done - - ## Package Plan ## - - environment location: /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1718121720195/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac - - - The following NEW packages will be INSTALLED: - - bzip2: 1.0.8-h10d778d_5 conda-forge - ca-certificates: 2024.6.2-h8857fd0_0 conda-forge - libblas: 3.9.0-22_osx64_openblas conda-forge - libcblas: 3.9.0-22_osx64_openblas conda-forge - libcxx: 17.0.6-h88467a6_0 conda-forge - libffi: 3.4.2-h0d85af4_5 conda-forge - libgfortran: 5.0.0-13_2_0_h97931a8_3 conda-forge - libgfortran5: 13.2.0-h2873a65_3 conda-forge - liblapack: 3.9.0-22_osx64_openblas conda-forge - libopenblas: 0.3.27-openmp_hfef2a42_0 conda-forge - libsqlite: 3.46.0-h1b8f9f3_0 conda-forge - libzlib: 1.3.1-h87427d6_1 conda-forge - llvm-openmp: 18.1.7-h15ab845_0 conda-forge - ncurses: 6.5-h5846eda_0 conda-forge - numpy: 1.26.4-py39h28c39a1_0 conda-forge - openssl: 3.3.1-h87427d6_0 conda-forge - python: 3.9.19-h7a9c478_0_cpython conda-forge - python_abi: 3.9-4_cp39 conda-forge - readline: 8.2-h9e318b2_1 conda-forge - sorted_nearest: 0.0.39-py39h1841df5_2 local - tk: 8.6.13-h1abcd95_1 conda-forge - tzdata: 2024a-h0c530f3_0 conda-forge - xz: 5.2.6-h775f41a_0 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1718121720195/test_tmp/run_test.py", line 2, in - import sorted_nearest - File "/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1718121720195/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.9/site-packages/sorted_nearest/__init__.py", line 1, in - import pkg_resources - ModuleNotFoundError: No module named 'pkg_resources' - WARNING: Tests failed for sorted_nearest-0.0.39-py39h1841df5_2.tar.bz2 - moving package to /opt/mambaforge/envs/bioconda/conda-bld/broken - TESTS FAILED: sorted_nearest-0.0.39-py39h1841df5_2.tar.bz2 - export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1718121720195/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac - export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1718121720195/test_tmp - import: 'sorted_nearest' -# Last 100 lines of the build log. diff --git a/recipes/sorted_nearest/meta.yaml b/recipes/sorted_nearest/meta.yaml index d6a32c10c8df0..6c2a719b9b627 100644 --- a/recipes/sorted_nearest/meta.yaml +++ b/recipes/sorted_nearest/meta.yaml @@ -4,7 +4,6 @@ {% set hash_type = "sha256" %} {% set hash_value = "16a51d5db87ae226b47ace43c176bb672477a1b7ba8052ea9291a6356c9c69b1" %} - package: name: '{{ name|lower }}' version: '{{ version }}' @@ -14,8 +13,10 @@ source: '{{ hash_type }}': '{{ hash_value }}' build: - number: 2 - script: "{{ PYTHON }} setup.py install --single-version-externally-managed --record=record.txt" + number: 3 + script_env: + - SETUPTOOLS_SCM_PRETEND_VERSION={{ version }} + script: "{{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir" run_exports: - {{ pin_subpackage(name|lower, max_pin='x.x') }} @@ -24,8 +25,9 @@ requirements: - {{ compiler('c') }} host: - python - - setuptools + - pip - cython + - setuptools-scm >=6.2 run: - python - numpy @@ -36,9 +38,13 @@ test: about: home: https://github.com/endrebak/sorted_nearest - license: BSD - summary: Find nearest interval. + license: BSD-3-Clause + license_family: BSD + license_file: LICENSE.txt + summary: "Find nearest interval." + dev_url: https://github.com/endrebak/sorted_nearest extra: additional-platforms: - linux-aarch64 + - osx-arm64 From e675ac09c99a914a742992307e9cb7c8ff2560eb Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 27 Aug 2024 14:36:38 -0500 Subject: [PATCH 1245/1589] Update flye to 2.9.5 (#50359) --- recipes/flye/build_failure.linux-64.yaml | 104 ------------------ recipes/flye/build_failure.linux-aarch64.yaml | 104 ------------------ recipes/flye/build_failure.osx-64.yaml | 104 ------------------ recipes/flye/meta.yaml | 7 +- 4 files changed, 3 insertions(+), 316 deletions(-) delete mode 100644 recipes/flye/build_failure.linux-64.yaml delete mode 100644 recipes/flye/build_failure.linux-aarch64.yaml delete mode 100644 recipes/flye/build_failure.osx-64.yaml diff --git a/recipes/flye/build_failure.linux-64.yaml b/recipes/flye/build_failure.linux-64.yaml deleted file mode 100644 index a406f2626fdcc..0000000000000 --- a/recipes/flye/build_failure.linux-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 577df4f0a9db63e97ed56cec147ab74fc83826ef97945bc3489ec47ece2f4725 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |- - Removed build tracker: '/tmp/pip-build-tracker-0s_3_n2n' - - Resource usage statistics from building flye: - Process count: 20 - CPU time: Sys=0:00:08.1, User=0:02:13.1 - Memory: 1.6G - Disk usage: 252.4K - Time elapsed: 0:01:11.0 - - - compiling .pyc files... - number of files: 104 - Warning: rpath /opt/conda/conda-bld/flye_1717795145756/_build_env/lib is outside prefix /opt/conda/conda-bld/flye_1717795145756/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol (removing it) - Warning: rpath /opt/conda/conda-bld/flye_1717795145756/_build_env/lib is outside prefix /opt/conda/conda-bld/flye_1717795145756/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol (removing it) - Warning: rpath /opt/conda/conda-bld/flye_1717795145756/_build_env/lib is outside prefix /opt/conda/conda-bld/flye_1717795145756/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol (removing it) - INFO: sysroot: '/opt/conda/conda-bld/flye_1717795145756/_build_env/x86_64-conda-linux-gnu/sysroot/' files: '['usr/share/zoneinfo/zone.tab', 'usr/share/zoneinfo/tzdata.zi', 'usr/share/zoneinfo/right/Zulu', 'usr/share/zoneinfo/right/WET']' - INFO (flye,bin/flye-minimap2): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libm.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 - INFO (flye,bin/flye-minimap2): Needed DSO lib/libz.so.1 found in conda-forge/linux-64::libzlib==1.2.13=h4ab18f5_6 - INFO (flye,bin/flye-minimap2): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libpthread.so.0 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 - INFO (flye,bin/flye-minimap2): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libc.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 - INFO (flye,bin/flye-modules): Needed DSO lib/libz.so.1 found in conda-forge/linux-64::libzlib==1.2.13=h4ab18f5_6 - INFO (flye,bin/flye-modules): Needed DSO lib/libstdc.so.6 found in conda-forge/linux-64::libstdcxx-ng==13.2.0=hc0a3c3a_7 - INFO (flye,bin/flye-modules): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libm.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 - INFO (flye,bin/flye-modules): Needed DSO lib/libgcc_s.so.1 found in conda-forge/linux-64::libgcc-ng==13.2.0=h77fa898_7 - INFO (flye,bin/flye-modules): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libpthread.so.0 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 - INFO (flye,bin/flye-modules): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libc.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 - INFO (flye,bin/flye-modules): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/ld-linux-x86-64.so.2 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 - INFO (flye,bin/flye-samtools): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libpthread.so.0 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 - INFO (flye,bin/flye-samtools): Needed DSO lib/libz.so.1 found in conda-forge/linux-64::libzlib==1.2.13=h4ab18f5_6 - INFO (flye,bin/flye-samtools): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libm.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 - INFO (flye,bin/flye-samtools): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libdl.so.2 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 - INFO (flye,bin/flye-samtools): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libc.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 - INFO (flye): Interpreted package 'flye' is interpreted by 'python' - Fixing permissions - Packaged license file/s. - INFO :: Time taken to mark (prefix) - 0 replacements in 0 files was 0.07 seconds - Files containing CONDA_PREFIX - ----------------------------- - bin/flye (text): Patching - TEST START: /opt/conda/conda-bld/linux-64/flye-2.9.4-py312ha1f7cf2_1.tar.bz2 - Renaming work directory '/opt/conda/conda-bld/flye_1717795145756/work' to '/opt/conda/conda-bld/flye_1717795145756/work_moved_flye-2.9.4-py312ha1f7cf2_1_linux-64' - shutil.move(work)=/opt/conda/conda-bld/flye_1717795145756/work, dest=/opt/conda/conda-bld/flye_1717795145756/work_moved_flye-2.9.4-py312ha1f7cf2_1_linux-64) - Reloading output folder (local): ...working... done - Solving environment (_test_env): ...working... done - - ## Package Plan ## - - environment location: /opt/conda/conda-bld/flye_1717795145756/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla - - - The following NEW packages will be INSTALLED: - - _libgcc_mutex: 0.1-conda_forge conda-forge - _openmp_mutex: 4.5-2_gnu conda-forge - bzip2: 1.0.8-hd590300_5 conda-forge - ca-certificates: 2024.6.2-hbcca054_0 conda-forge - flye: 2.9.4-py312ha1f7cf2_1 local - ld_impl_linux-64: 2.40-hf3520f5_2 conda-forge - libexpat: 2.6.2-h59595ed_0 conda-forge - libffi: 3.4.2-h7f98852_5 conda-forge - libgcc-ng: 13.2.0-h77fa898_7 conda-forge - libgomp: 13.2.0-h77fa898_7 conda-forge - libnsl: 2.0.1-hd590300_0 conda-forge - libsqlite: 3.45.3-h2797004_0 conda-forge - libstdcxx-ng: 13.2.0-hc0a3c3a_7 conda-forge - libuuid: 2.38.1-h0b41bf4_0 conda-forge - libxcrypt: 4.4.36-hd590300_1 conda-forge - libzlib: 1.3.1-h4ab18f5_1 conda-forge - ncurses: 6.5-h59595ed_0 conda-forge - openssl: 3.3.1-h4ab18f5_0 conda-forge - pip: 24.0-pyhd8ed1ab_0 conda-forge - python: 3.12.3-hab00c5b_0_cpython conda-forge - python_abi: 3.12-4_cp312 conda-forge - readline: 8.2-h8228510_1 conda-forge - setuptools: 70.0.0-pyhd8ed1ab_0 conda-forge - tk: 8.6.13-noxft_h4845f30_101 conda-forge - tzdata: 2024a-h0c530f3_0 conda-forge - wheel: 0.43.0-pyhd8ed1ab_1 conda-forge - xz: 5.2.6-h166bdaf_0 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - export PREFIX=/opt/conda/conda-bld/flye_1717795145756/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla - export SRC_DIR=/opt/conda/conda-bld/flye_1717795145756/test_tmp - flye -h - grep Assembly - Traceback (most recent call last): - File "/opt/conda/conda-bld/flye_1717795145756/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/flye", line 7, in - from flye.main import main - File "/opt/conda/conda-bld/flye_1717795145756/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.12/site-packages/flye/main.py", line 19, in - import flye.polishing.alignment as aln - File "/opt/conda/conda-bld/flye_1717795145756/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.12/site-packages/flye/polishing/alignment.py", line 18, in - import flye.utils.fasta_parser as fp - File "/opt/conda/conda-bld/flye_1717795145756/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.12/site-packages/flye/utils/fasta_parser.py", line 26, in - from flye.six.moves import range - ModuleNotFoundError: No module named 'flye.six.moves' - WARNING: Tests failed for flye-2.9.4-py312ha1f7cf2_1.tar.bz2 - moving package to /opt/conda/conda-bld/broken - TESTS FAILED: flye-2.9.4-py312ha1f7cf2_1.tar.bz2 -# Last 100 lines of the build log. diff --git a/recipes/flye/build_failure.linux-aarch64.yaml b/recipes/flye/build_failure.linux-aarch64.yaml deleted file mode 100644 index d451186baca31..0000000000000 --- a/recipes/flye/build_failure.linux-aarch64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 577df4f0a9db63e97ed56cec147ab74fc83826ef97945bc3489ec47ece2f4725 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - CPU time: Sys=0:00:04.6, User=0:01:53.3 - Memory: 1.7G - Disk usage: 289.9K - Time elapsed: 0:01:33.1 - - - Packaging flye - Packaging flye-2.9.4-py312h747c3d4_1 - compiling .pyc files... - number of files: 104 - Warning: rpath /opt/conda/conda-bld/flye_1717793573507/_build_env/lib is outside prefix /opt/conda/conda-bld/flye_1717793573507/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol (removing it) - Warning: rpath /opt/conda/conda-bld/flye_1717793573507/_build_env/lib is outside prefix /opt/conda/conda-bld/flye_1717793573507/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol (removing it) - Warning: rpath /opt/conda/conda-bld/flye_1717793573507/_build_env/lib is outside prefix /opt/conda/conda-bld/flye_1717793573507/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol (removing it) - INFO: sysroot: '/opt/conda/conda-bld/flye_1717793573507/_build_env/aarch64-conda-linux-gnu/sysroot/' files: '['usr/share/zoneinfo/zone1970.tab', 'usr/share/zoneinfo/zone.tab', 'usr/share/zoneinfo/tzdata.zi', 'usr/share/zoneinfo/right/Zulu']' - INFO (flye,bin/flye-modules): Needed DSO lib/libz.so.1 found in conda-forge/linux-aarch64::libzlib==1.2.13=h68df207_6 - INFO (flye,bin/flye-modules): Needed DSO lib/libstdc.so.6 found in conda-forge/linux-aarch64::libstdcxx-ng==13.2.0=h3f4de04_7 - INFO (flye,bin/flye-modules): Needed DSO aarch64-conda-linux-gnu/sysroot/lib64/libm.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-aarch64==2.17=h5b4a56d_14 - INFO (flye,bin/flye-modules): Needed DSO lib/libgcc_s.so.1 found in conda-forge/linux-aarch64::libgcc-ng==13.2.0=he277a41_7 - INFO (flye,bin/flye-modules): Needed DSO aarch64-conda-linux-gnu/sysroot/lib64/libpthread.so.0 found in CDT/compiler package conda-forge/noarch::sysroot_linux-aarch64==2.17=h5b4a56d_14 - INFO (flye,bin/flye-modules): Needed DSO aarch64-conda-linux-gnu/sysroot/lib64/libc.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-aarch64==2.17=h5b4a56d_14 - INFO (flye,bin/flye-modules): Needed DSO aarch64-conda-linux-gnu/sysroot/lib64/ld-linux-aarch64.so.1 found in CDT/compiler package conda-forge/noarch::sysroot_linux-aarch64==2.17=h5b4a56d_14 - INFO (flye,bin/flye-minimap2): Needed DSO aarch64-conda-linux-gnu/sysroot/lib64/libm.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-aarch64==2.17=h5b4a56d_14 - INFO (flye,bin/flye-minimap2): Needed DSO lib/libz.so.1 found in conda-forge/linux-aarch64::libzlib==1.2.13=h68df207_6 - INFO (flye,bin/flye-minimap2): Needed DSO aarch64-conda-linux-gnu/sysroot/lib64/libpthread.so.0 found in CDT/compiler package conda-forge/noarch::sysroot_linux-aarch64==2.17=h5b4a56d_14 - INFO (flye,bin/flye-minimap2): Needed DSO aarch64-conda-linux-gnu/sysroot/lib64/libc.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-aarch64==2.17=h5b4a56d_14 - INFO (flye,bin/flye-minimap2): Needed DSO aarch64-conda-linux-gnu/sysroot/lib64/ld-linux-aarch64.so.1 found in CDT/compiler package conda-forge/noarch::sysroot_linux-aarch64==2.17=h5b4a56d_14 - INFO (flye,bin/flye-samtools): Needed DSO aarch64-conda-linux-gnu/sysroot/lib64/libpthread.so.0 found in CDT/compiler package conda-forge/noarch::sysroot_linux-aarch64==2.17=h5b4a56d_14 - INFO (flye,bin/flye-samtools): Needed DSO lib/libz.so.1 found in conda-forge/linux-aarch64::libzlib==1.2.13=h68df207_6 - INFO (flye,bin/flye-samtools): Needed DSO aarch64-conda-linux-gnu/sysroot/lib64/libm.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-aarch64==2.17=h5b4a56d_14 - INFO (flye,bin/flye-samtools): Needed DSO aarch64-conda-linux-gnu/sysroot/lib64/libdl.so.2 found in CDT/compiler package conda-forge/noarch::sysroot_linux-aarch64==2.17=h5b4a56d_14 - INFO (flye,bin/flye-samtools): Needed DSO aarch64-conda-linux-gnu/sysroot/lib64/libc.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-aarch64==2.17=h5b4a56d_14 - INFO (flye,bin/flye-samtools): Needed DSO aarch64-conda-linux-gnu/sysroot/lib64/ld-linux-aarch64.so.1 found in CDT/compiler package conda-forge/noarch::sysroot_linux-aarch64==2.17=h5b4a56d_14 - INFO (flye): Interpreted package 'flye' is interpreted by 'python' - Fixing permissions - Packaged license file/s. - INFO :: Time taken to mark (prefix) - 0 replacements in 0 files was 0.13 seconds - Files containing CONDA_PREFIX - ----------------------------- - bin/flye (text): Patching - WARNING: Importing conda-verify failed. Please be sure to test your packages. conda install conda-verify to make this message go away. - TEST START: /opt/conda/conda-bld/linux-aarch64/flye-2.9.4-py312h747c3d4_1.tar.bz2 - Renaming work directory '/opt/conda/conda-bld/flye_1717793573507/work' to '/opt/conda/conda-bld/flye_1717793573507/work_moved_flye-2.9.4-py312h747c3d4_1_linux-aarch64' - shutil.move(work)=/opt/conda/conda-bld/flye_1717793573507/work, dest=/opt/conda/conda-bld/flye_1717793573507/work_moved_flye-2.9.4-py312h747c3d4_1_linux-aarch64) - Reloading output folder (local): ...working... done - Solving environment (_test_env): ...working... done - - ## Package Plan ## - - environment location: /opt/conda/conda-bld/flye_1717793573507/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla - - - The following NEW packages will be INSTALLED: - - _openmp_mutex: 4.5-2_gnu conda-forge - bzip2: 1.0.8-h31becfc_5 conda-forge - ca-certificates: 2024.6.2-hcefe29a_0 conda-forge - flye: 2.9.4-py312h747c3d4_1 local - ld_impl_linux-aarch64: 2.40-h9fc2d93_2 conda-forge - libexpat: 2.6.2-h2f0025b_0 conda-forge - libffi: 3.4.2-h3557bc0_5 conda-forge - libgcc-ng: 13.2.0-he277a41_7 conda-forge - libgomp: 13.2.0-he277a41_7 conda-forge - libnsl: 2.0.1-h31becfc_0 conda-forge - libsqlite: 3.45.3-h194ca79_0 conda-forge - libstdcxx-ng: 13.2.0-h3f4de04_7 conda-forge - libuuid: 2.38.1-hb4cce97_0 conda-forge - libxcrypt: 4.4.36-h31becfc_1 conda-forge - libzlib: 1.3.1-h68df207_1 conda-forge - ncurses: 6.5-h0425590_0 conda-forge - openssl: 3.3.1-h68df207_0 conda-forge - pip: 24.0-pyhd8ed1ab_0 conda-forge - python: 3.12.3-h43d1f9e_0_cpython conda-forge - python_abi: 3.12-4_cp312 conda-forge - readline: 8.2-h8fc344f_1 conda-forge - setuptools: 70.0.0-pyhd8ed1ab_0 conda-forge - tk: 8.6.13-h194ca79_0 conda-forge - tzdata: 2024a-h0c530f3_0 conda-forge - wheel: 0.43.0-pyhd8ed1ab_1 conda-forge - xz: 5.2.6-h9cdd2b7_0 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - export PREFIX=/opt/conda/conda-bld/flye_1717793573507/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla - export SRC_DIR=/opt/conda/conda-bld/flye_1717793573507/test_tmp - flye -h - grep Assembly - Traceback (most recent call last): - File "/opt/conda/conda-bld/flye_1717793573507/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/flye", line 7, in - from flye.main import main - File "/opt/conda/conda-bld/flye_1717793573507/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.12/site-packages/flye/main.py", line 19, in - import flye.polishing.alignment as aln - File "/opt/conda/conda-bld/flye_1717793573507/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.12/site-packages/flye/polishing/alignment.py", line 18, in - import flye.utils.fasta_parser as fp - File "/opt/conda/conda-bld/flye_1717793573507/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.12/site-packages/flye/utils/fasta_parser.py", line 26, in - from flye.six.moves import range - ModuleNotFoundError: No module named 'flye.six.moves' - WARNING: Tests failed for flye-2.9.4-py312h747c3d4_1.tar.bz2 - moving package to /opt/conda/conda-bld/broken - TESTS FAILED: flye-2.9.4-py312h747c3d4_1.tar.bz2 -# Last 100 lines of the build log. diff --git a/recipes/flye/build_failure.osx-64.yaml b/recipes/flye/build_failure.osx-64.yaml deleted file mode 100644 index 453ba051fb8e3..0000000000000 --- a/recipes/flye/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 577df4f0a9db63e97ed56cec147ab74fc83826ef97945bc3489ec47ece2f4725 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - make: 4.3-h22f3db7_1 conda-forge - openssl: 3.3.1-h87427d6_0 conda-forge - sigtool: 0.1.3-h88f4db0_0 conda-forge - tapi: 1100.0.11-h9ce4665_0 conda-forge - xz: 5.2.6-h775f41a_0 conda-forge - zstd: 1.5.6-h915ae27_0 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache - Downloading source to cache: 2.9.4_197a2dfe39.tar.gz - Downloading https://github.com/fenderglass/Flye/archive/2.9.4.tar.gz - Success - checking file Makefile - patching file Makefile - /opt/mambaforge/envs/bioconda/conda-bld/flye_1717794246060/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/python: No module named pip - Extracting download - Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/flye/0001-Makefile-aarch64.patch - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/flye/0001-Makefile-aarch64.patch with args: - ['-Np1', '-i', '/tmp/tmpfu1zkvqb/0001-Makefile-aarch64.patch.native', '--binary'] - Patch analysis gives: - utils.check_call_env( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - [[ RA-MD1LOVE ]] - [[ 0001-Makefile-aarch64.patch ]] - - Key: - - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - R :: Reversible A :: Applicable - Y :: Build-prefix patch in use M :: Minimal, non-amalgamated - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/flye_1717794246060/work/conda_build.sh']' returned non-zero exit status 1. - D :: Dry-runnable N :: Patch level (1 is preferred) - L :: Patch level not-ambiguous O :: Patch applies without offsets - V :: Patch applies without fuzz E :: Patch applies without emitting to stderr - - source tree in: /opt/mambaforge/envs/bioconda/conda-bld/flye_1717794246060/work - export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/flye_1717794246060/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold - export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/flye_1717794246060/_build_env - export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/flye_1717794246060/work - INFO: activate_clang_osx-64.sh made the following environmental changes: - AR=x86_64-apple-darwin13.4.0-ar - AS=x86_64-apple-darwin13.4.0-as - CC=x86_64-apple-darwin13.4.0-clang - CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/flye-2.9.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms - CLANG=x86_64-apple-darwin13.4.0-clang - CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin - CMAKE_PREFIX_PATH=:$PREFIX - CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 - CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 - CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 - DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/flye-2.9.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - HOST=x86_64-apple-darwin13.4.0 - INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool - LD=x86_64-apple-darwin13.4.0-ld - LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib - LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib - LIBTOOL=x86_64-apple-darwin13.4.0-libtool - LIPO=x86_64-apple-darwin13.4.0-lipo - MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib - NM=x86_64-apple-darwin13.4.0-nm - NMEDIT=x86_64-apple-darwin13.4.0-nmedit - OBJC=x86_64-apple-darwin13.4.0-clang - OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - OTOOL=x86_64-apple-darwin13.4.0-otool - PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff - RANLIB=x86_64-apple-darwin13.4.0-ranlib - REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding - SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk - SEGEDIT=x86_64-apple-darwin13.4.0-segedit - SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table - SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack - SIZE=x86_64-apple-darwin13.4.0-size - STRINGS=x86_64-apple-darwin13.4.0-strings - STRIP=x86_64-apple-darwin13.4.0-strip - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 - ac_cv_func_malloc_0_nonnull=yes - ac_cv_func_realloc_0_nonnull=yes - build_alias=x86_64-apple-darwin13.4.0 - host_alias=x86_64-apple-darwin13.4.0 - INFO: activate_clangxx_osx-64.sh made the following environmental changes: - CLANGXX=x86_64-apple-darwin13.4.0-clang - CXX=x86_64-apple-darwin13.4.0-clang - CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/flye-2.9.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/flye-2.9.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -# Last 100 lines of the build log. diff --git a/recipes/flye/meta.yaml b/recipes/flye/meta.yaml index 4cc8f7c9eb91a..c3e7e7cef65fb 100644 --- a/recipes/flye/meta.yaml +++ b/recipes/flye/meta.yaml @@ -1,6 +1,6 @@ {% set name = "flye" %} -{% set version = "2.9.4" %} -{% set sha256 = "197a2dfe39fc324a39d8e1901af4f539609159c4a64a578ec8e60f73f5ea4696" %} +{% set version = "2.9.5" %} +{% set sha256 = "7b384266d83b1e66bcaf82d49d35ac6c587bad9146e8f3b752a220291f6b1a6f" %} package: name: {{ name }} @@ -13,8 +13,7 @@ source: - 0001-Makefile-aarch64.patch build: - number: 2 - skip: True # [py > 311] + number: 0 entry_points: - flye = flye.main:main run_exports: From 2ab11d76aeb187d010be885ba94c33243fc8171e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 27 Aug 2024 15:58:30 -0400 Subject: [PATCH 1246/1589] Update nextstrain-cli to 8.5.2 (#50363) --- recipes/nextstrain-cli/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/nextstrain-cli/meta.yaml b/recipes/nextstrain-cli/meta.yaml index 6d6f19923748b..7d4034a370549 100644 --- a/recipes/nextstrain-cli/meta.yaml +++ b/recipes/nextstrain-cli/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "8.5.1" %} +{% set version = "8.5.2" %} package: name: nextstrain-cli @@ -6,7 +6,7 @@ package: source: url: https://pypi.io/packages/source/n/nextstrain-cli/nextstrain_cli-{{ version }}.tar.gz - sha256: 5318296512acc4e47fe7d0ffa11b0654ec47ad7822006be3b75864f17b94ea67 + sha256: 1c7a1a0fac911c8b6e70b6be296e48e7abb3ff38262abc2f62d185f567ac24d6 build: number: 0 From bec54887620139c54741c9dca280d17977706bd5 Mon Sep 17 00:00:00 2001 From: kdc10 <66701561+kdc10@users.noreply.github.com> Date: Tue, 27 Aug 2024 21:59:11 +0200 Subject: [PATCH 1247/1589] Update emu v3.4.6 (#50353) * Update emu v3.4.6 * change url to github * add run_scports --- recipes/emu/meta.yaml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/recipes/emu/meta.yaml b/recipes/emu/meta.yaml index ad6bd76d68361..afaf213e3773d 100644 --- a/recipes/emu/meta.yaml +++ b/recipes/emu/meta.yaml @@ -1,18 +1,21 @@ {% set name = "emu" %} -{% set version = "3.4.5" %} +{% set version = "3.4.6" %} package: name: "{{ name|lower }}" version: "{{ version }}" source: - url: 'https://gitlab.com/treangenlab/emu/-/archive/v{{version}}/emu-v{{version}}.tar.gz' - sha256: a77a3d362384d8e12bbb5f75dc74eaf0f04faec1e4f69195b9e92bc7c025296e + url: 'https://github.com/treangenlab/emu/archive/refs/tags/v{{version}}.tar.gz' + sha256: 9c7dab900ad6c3e8689733778a0ecfd8ebb15733e3c45f6ec3a7c32b8cb06805 build: noarch: generic number: 0 script: mkdir -p ${PREFIX}/bin && cp emu ${PREFIX}/bin + + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} requirements: run: @@ -36,7 +39,7 @@ test: - emu --help about: - home: https://gitlab.com/treangenlab/emu + home: https://github.com/treangenlab/emu license: MIT license_file: LICENSE.txt summary: Emu is a relative abundance estimator for 16s genomic data. From 098846a80bb227d2faa4527449fffc0c35ad5bef Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 27 Aug 2024 22:10:27 -0400 Subject: [PATCH 1248/1589] Update methbat to 0.13.2 (#50365) --- recipes/methbat/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/methbat/meta.yaml b/recipes/methbat/meta.yaml index 33388fb2c43a5..3a568f5b18909 100644 --- a/recipes/methbat/meta.yaml +++ b/recipes/methbat/meta.yaml @@ -1,6 +1,6 @@ {% set name = "methbat" %} -{% set version = "0.13.1" %} -{% set sha256 = "79e3e48edda49d31601a58252a5e4b5a0d2d35900208df97f16de66712d6ba56" %} +{% set version = "0.13.2" %} +{% set sha256 = "3a3a6374170e8b2acdc5e2c160eaabdafe5d613139d0c798438794ea35bff6c5" %} package: name: {{ name }} From 81ab4f7258ef01a85ed56d465027e874af817996 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 27 Aug 2024 22:10:42 -0400 Subject: [PATCH 1249/1589] Update pbstarphase to 0.14.1 (#50364) --- recipes/pbstarphase/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pbstarphase/meta.yaml b/recipes/pbstarphase/meta.yaml index 829520935dfff..20e9abaa3900a 100644 --- a/recipes/pbstarphase/meta.yaml +++ b/recipes/pbstarphase/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pbstarphase" %} -{% set version = "0.14.0" %} -{% set sha256 = "5397c43338d006d65aa36c07d6299bf8c60c071138f0325760d32e65957d236d" %} +{% set version = "0.14.1" %} +{% set sha256 = "d49a9a20c40edac7e35cbd9d87beabb78166ea08af8538eb3d3492a03d2d5425" %} package: name: {{ name }} From e432de98e9438e2c120a1a3b58c1ce9d9a6c1976 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 27 Aug 2024 22:30:16 -0500 Subject: [PATCH 1250/1589] Update meme to 5.5.7 (#50367) --- recipes/meme/build.sh | 13 +++---------- recipes/meme/meta.yaml | 9 +++------ 2 files changed, 6 insertions(+), 16 deletions(-) diff --git a/recipes/meme/build.sh b/recipes/meme/build.sh index 7873b96820409..30440594b5d6a 100644 --- a/recipes/meme/build.sh +++ b/recipes/meme/build.sh @@ -1,10 +1,10 @@ #!/bin/bash -ex export MEME_ETC_DIR="${PREFIX}/etc" +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" -autoreconf -i - -perl scripts/dependencies.pl +autoreconf -if ./configure CC="${CC}" \ CFLAGS="${CFLAGS} -O3 -I${PREFIX}/include" \ @@ -14,13 +14,6 @@ perl scripts/dependencies.pl --enable-build-libxslt make AM_CFLAGS='-DNAN="(0.0/0.0)"' -j"${CPU_COUNT}" - -# tests will only work inside the build dir, but -# https://github.com/conda/conda-build/issues/1453 -# so you need `conda build --prefix-length 1` -# for it to work properly -# make test - make install make clean diff --git a/recipes/meme/meta.yaml b/recipes/meme/meta.yaml index 5e8ace3b3461a..b44bef89008de 100644 --- a/recipes/meme/meta.yaml +++ b/recipes/meme/meta.yaml @@ -1,6 +1,6 @@ {% set name = "MEME" %} -{% set version = "5.5.6" %} -{% set sha256 = "8f719002c3a2177f6bb9da6861098ccf4f08b3006f002a88bb3afe9473596c67" %} +{% set version = "5.5.7" %} +{% set sha256 = "1dca8d0e6d1d36570c1a88ab8dbe7e4b177733fbbeacaa2e8c4674febf57aaf4" %} package: name: {{ name|lower }} @@ -12,7 +12,6 @@ source: build: number: 0 - detect_binary_files_with_prefix: True run_exports: - {{ pin_subpackage("meme", max_pin="x") }} @@ -27,11 +26,9 @@ requirements: - nodejs >=16.4.1 - libgomp # [linux] - llvm-openmp # [osx] - - yaml - - icu >=72.1,<73.0a0 + - icu - ghostscript - zlib - - xz - libxslt - libxml2 - expat From 770b5e61f58969f2f6304f1e3a2bf5758252c8d8 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 28 Aug 2024 01:53:04 -0500 Subject: [PATCH 1251/1589] ucsc-bigwigsummary: update macOS build (#50368) * ucsc-bigwigsummary: update macOS build * edit build.sh * edit meta.yaml --- recipes/ucsc-bigwigsummary/build.sh | 29 ++++++++++++++----- recipes/ucsc-bigwigsummary/htmshell.patch | 11 ------- .../ucsc-bigwigsummary/include.macos.patch | 27 +++++++++++++++++ recipes/ucsc-bigwigsummary/meta.yaml | 27 +++++++++-------- 4 files changed, 63 insertions(+), 31 deletions(-) delete mode 100644 recipes/ucsc-bigwigsummary/htmshell.patch create mode 100644 recipes/ucsc-bigwigsummary/include.macos.patch diff --git a/recipes/ucsc-bigwigsummary/build.sh b/recipes/ucsc-bigwigsummary/build.sh index bc10870454d00..603cc567834b8 100644 --- a/recipes/ucsc-bigwigsummary/build.sh +++ b/recipes/ucsc-bigwigsummary/build.sh @@ -1,13 +1,26 @@ #!/bin/bash + mkdir -p "$PREFIX/bin" + export MACHTYPE=$(uname -m) -export BINDIR=$(pwd)/bin +export BINDIR="$(pwd)/bin" +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export L="${LDFLAGS}" + mkdir -p "$BINDIR" -(cd kent/src/lib && make -j ${CPU_COUNT}) -(cd kent/src/htslib && make -j ${CPU_COUNT}) -(cd kent/src/jkOwnLib && make -j ${CPU_COUNT}) -(cd kent/src/hg/lib && make -j ${CPU_COUNT}) -(cd kent/src/utils/bigWigSummary && make -j ${CPU_COUNT}) -cp bin/bigWigSummary "$PREFIX/bin" -chmod +x "$PREFIX/bin/bigWigSummary" + +if [[ "$(uname)" == Darwin ]]; then + export LDFLAGS="${LDFLAGS} -Wl,-rpath,${PREFIX}/lib" + export CFLAGS="${CFLAGS} -Wno-unused-command-line-argument" +fi + +(cd kent/src/lib && make CC="${CC}" CFLAGS="${CFLAGS}" -j ${CPU_COUNT}) +(cd kent/src/htslib && make CC="${CC}" CFLAGS="${CFLAGS}" -j ${CPU_COUNT}) +(cd kent/src/jkOwnLib && make CC="${CC}" CFLAGS="${CFLAGS}" -j ${CPU_COUNT}) +(cd kent/src/hg/lib && make CC="${CC}" CFLAGS="${CFLAGS}" -j ${CPU_COUNT}) +(cd kent/src/utils/bigWigSummary && make CC="${CC}" CFLAGS="${CFLAGS}" -j ${CPU_COUNT}) +cp -rf bin/bigWigSummary "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/bigWigSummary" diff --git a/recipes/ucsc-bigwigsummary/htmshell.patch b/recipes/ucsc-bigwigsummary/htmshell.patch deleted file mode 100644 index 1e6f87375ed01..0000000000000 --- a/recipes/ucsc-bigwigsummary/htmshell.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- kent/src/lib/htmshell.c 2024-03-27 10:56:44.493892141 +0200 -+++ kent/src/lib/htmshell.c 2024-03-27 10:57:01.073792396 +0200 -@@ -713,7 +713,7 @@ - puts("Status: 400\r"); - puts("Content-Type: text/plain; charset=UTF-8\r"); - puts("\r"); --if (format != NULL && args != NULL) -+if (format != NULL) - { - vfprintf(stdout, format, args); - fprintf(stdout, "\n"); diff --git a/recipes/ucsc-bigwigsummary/include.macos.patch b/recipes/ucsc-bigwigsummary/include.macos.patch new file mode 100644 index 0000000000000..979f87005a72e --- /dev/null +++ b/recipes/ucsc-bigwigsummary/include.macos.patch @@ -0,0 +1,27 @@ +--- a/kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 ++++ b/kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 +@@ -17,7 +17,7 @@ + endif + + HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} +-HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I${PREFIX}/include + + # to check for Mac OSX Darwin specifics: + UNAME_S := $(shell uname -s) +--- a/kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 ++++ b/kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 +@@ -1,4 +1,4 @@ +-KENT_INC=-I../../../inc ++KENT_INC=-I../../../inc -I${PREFIX}/include + + straw: straw.o cStraw.o + ld -r -o ../straw.o straw.o cStraw.o +--- a/kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 ++++ b/kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python2.7 ++#!/usr/bin/env python + # expMatrixToBarchartBed + """ + Generate a barChart bed6+5 file from a matrix, meta data, and coordinates. diff --git a/recipes/ucsc-bigwigsummary/meta.yaml b/recipes/ucsc-bigwigsummary/meta.yaml index ca2ca18d6646b..76a38a7d908f4 100644 --- a/recipes/ucsc-bigwigsummary/meta.yaml +++ b/recipes/ucsc-bigwigsummary/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bigwigsummary" %} {% set program = "bigWigSummary" %} -{% set version = "448" %} -{% set sha256 = "90c28f06f3f5b6d79ff141cbf745e6a0c1b289a2ce640bbd1b0a14c826f08a85" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: {{ package }} @@ -11,12 +11,11 @@ source: url: http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{{ version }}.src.tgz sha256: {{ sha256 }} patches: - - include.patch - - htmshell.patch + - include.patch # [linux] + - include.macos.patch # [osx] build: number: 1 - skip: True # [osx] run_exports: - {{ pin_subpackage(package|lower, max_pin=None) }} @@ -25,29 +24,33 @@ requirements: - make - {{ compiler('c') }} - {{ compiler('cxx') }} - - binutils # [linux] + - binutils # [linux] host: - libpng - libuuid - mysql-connector-c - - openssl + - mariadb-connector-c - libopenssl-static + - clangdev # [osx] - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - mariadb-connector-c + - libopenssl-static test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Extract summary information from a bigWig file." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/v{{ version }}_base/README" extra: additional-platforms: From fbc27ac5c441c7dc7e4d4c8293a31058871c1393 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 28 Aug 2024 03:44:32 -0500 Subject: [PATCH 1252/1589] ucsc-fatotwobit: update macOS build (#50369) * ucsc-fatotwobit: update macOS build * try without mariadb --- recipes/ucsc-fatotwobit/build.sh | 29 +++++++++++++----- recipes/ucsc-fatotwobit/htmshell.patch | 11 ------- recipes/ucsc-fatotwobit/include.macos.patch | 27 ++++++++++++++++ recipes/ucsc-fatotwobit/include.patch | 16 +++++----- recipes/ucsc-fatotwobit/meta.yaml | 34 ++++++++++----------- 5 files changed, 72 insertions(+), 45 deletions(-) delete mode 100644 recipes/ucsc-fatotwobit/htmshell.patch create mode 100644 recipes/ucsc-fatotwobit/include.macos.patch diff --git a/recipes/ucsc-fatotwobit/build.sh b/recipes/ucsc-fatotwobit/build.sh index cd1c569ec1e88..017f496c75e0d 100644 --- a/recipes/ucsc-fatotwobit/build.sh +++ b/recipes/ucsc-fatotwobit/build.sh @@ -1,13 +1,26 @@ #!/bin/bash + mkdir -p "$PREFIX/bin" + export MACHTYPE=$(uname -m) -export BINDIR=$(pwd)/bin +export BINDIR="$(pwd)/bin" +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export L="${LDFLAGS}" + mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/faToTwoBit && make) -cp bin/faToTwoBit "$PREFIX/bin" -chmod +x "$PREFIX/bin/faToTwoBit" + +if [[ "$(uname)" == Darwin ]]; then + export LDFLAGS="${LDFLAGS} -Wl,-rpath,${PREFIX}/lib" + export CFLAGS="${CFLAGS} -Wno-unused-command-line-argument" +fi + +(cd kent/src/lib && make CC="${CC}" CFLAGS="${CFLAGS}" -j ${CPU_COUNT}) +(cd kent/src/htslib && make CC="${CC}" CFLAGS="${CFLAGS}" -j ${CPU_COUNT}) +(cd kent/src/jkOwnLib && make CC="${CC}" CFLAGS="${CFLAGS}" -j ${CPU_COUNT}) +(cd kent/src/hg/lib && make CC="${CC}" CFLAGS="${CFLAGS}" -j ${CPU_COUNT}) +(cd kent/src/utils/faToTwoBit && make CC="${CC}" CFLAGS="${CFLAGS}" -j ${CPU_COUNT}) +cp -rf bin/faToTwoBit "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/faToTwoBit" diff --git a/recipes/ucsc-fatotwobit/htmshell.patch b/recipes/ucsc-fatotwobit/htmshell.patch deleted file mode 100644 index 1e6f87375ed01..0000000000000 --- a/recipes/ucsc-fatotwobit/htmshell.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- kent/src/lib/htmshell.c 2024-03-27 10:56:44.493892141 +0200 -+++ kent/src/lib/htmshell.c 2024-03-27 10:57:01.073792396 +0200 -@@ -713,7 +713,7 @@ - puts("Status: 400\r"); - puts("Content-Type: text/plain; charset=UTF-8\r"); - puts("\r"); --if (format != NULL && args != NULL) -+if (format != NULL) - { - vfprintf(stdout, format, args); - fprintf(stdout, "\n"); diff --git a/recipes/ucsc-fatotwobit/include.macos.patch b/recipes/ucsc-fatotwobit/include.macos.patch new file mode 100644 index 0000000000000..979f87005a72e --- /dev/null +++ b/recipes/ucsc-fatotwobit/include.macos.patch @@ -0,0 +1,27 @@ +--- a/kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 ++++ b/kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 +@@ -17,7 +17,7 @@ + endif + + HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} +-HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I${PREFIX}/include + + # to check for Mac OSX Darwin specifics: + UNAME_S := $(shell uname -s) +--- a/kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 ++++ b/kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 +@@ -1,4 +1,4 @@ +-KENT_INC=-I../../../inc ++KENT_INC=-I../../../inc -I${PREFIX}/include + + straw: straw.o cStraw.o + ld -r -o ../straw.o straw.o cStraw.o +--- a/kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 ++++ b/kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python2.7 ++#!/usr/bin/env python + # expMatrixToBarchartBed + """ + Generate a barChart bed6+5 file from a matrix, meta data, and coordinates. diff --git a/recipes/ucsc-fatotwobit/include.patch b/recipes/ucsc-fatotwobit/include.patch index e9c8621194325..2c1e8a7f20226 100644 --- a/recipes/ucsc-fatotwobit/include.patch +++ b/recipes/ucsc-fatotwobit/include.patch @@ -1,5 +1,5 @@ ---- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 +--- a/kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 ++++ b/kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif @@ -9,24 +9,24 @@ # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -+++ kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 +--- a/kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 ++++ b/kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 @@ -147,4 +147,4 @@ - L+=${PREFIX}/lib/libssl.a ${PREFIX}/lib/libcrypto.a -ldl + L+=${PREFIX}/lib/libssl.so ${PREFIX}/lib/libcrypto.so -ldl else ifneq ($(wildcard /opt/local/lib/libssl.a),) L+=/opt/local/lib/libssl.a ---- kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 -+++ kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 +--- a/kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 ++++ b/kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 @@ -1,4 +1,4 @@ -KENT_INC=-I../../../inc +KENT_INC=-I../../../inc -I${PREFIX}/include straw: straw.o cStraw.o ld -r -o ../straw.o straw.o cStraw.o ---- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +--- a/kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 ++++ b/kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-fatotwobit/meta.yaml b/recipes/ucsc-fatotwobit/meta.yaml index 4a21a851c4e54..492d7f4a37cdd 100644 --- a/recipes/ucsc-fatotwobit/meta.yaml +++ b/recipes/ucsc-fatotwobit/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-fatotwobit" %} {% set program = "faToTwoBit" %} -{% set version = "455" %} -{% set sha256 = "e458cadad7c4a5c1b8385edafffa1b29380ac725a0c20535bf5a3bab99fe80db" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -11,15 +11,11 @@ source: url: "http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{{ version }}.src.tgz" sha256: "{{ sha256 }}" patches: - - "include.patch" - - htmshell.patch + - include.patch # [linux] + - include.macos.patch # [osx] build: - skip: True # [osx] - number: 2 - ignore_run_exports: - - libpng - - libuuid + number: 1 run_exports: - {{ pin_subpackage("ucsc-fatotwobit", max_pin=None) }} @@ -28,29 +24,31 @@ requirements: - make - {{ compiler('c') }} - {{ compiler('cxx') }} - - binutils # [linux] + - binutils # [linux] host: - libpng - libuuid - mysql-connector-c - - openssl - libopenssl-static - - zlib >=1.3.1,<2.0a0 + - clangdev # [osx] + - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" - summary: "Convert DNA from fasta to 2bit format" + home: "https://hgdownload.cse.ucsc.edu/admin/exe" + license: "Varies; see http://genome.ucsc.edu/license" + summary: "Convert DNA from fasta to 2bit format." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/v{{ version }}_base/README" extra: additional-platforms: From 225e66338a1ec62f40dcb2bd046d6321552eae69 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Wed, 28 Aug 2024 12:29:49 +0200 Subject: [PATCH 1253/1589] bump WisecondorX to v1.2.8 (#50374) --- recipes/wisecondorx/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/wisecondorx/meta.yaml b/recipes/wisecondorx/meta.yaml index c32c17e5562fa..cd381550d1544 100644 --- a/recipes/wisecondorx/meta.yaml +++ b/recipes/wisecondorx/meta.yaml @@ -1,11 +1,11 @@ -{% set version="1.2.7" %} +{% set version="1.2.8" %} package: name: wisecondorx version: {{ version }} source: url: https://github.com/CenterForMedicalGeneticsGhent/wisecondorX/archive/v{{ version }}.tar.gz - sha256: 4597377e664afd5b4d78f92061d854186bbaba92ba9951f034e9e7ce4c2d1c29 + sha256: 9460649cdfd36fd4edb74c89618a4fbecefa857f9bfa357d76898f7de433b131 build: number: 0 @@ -19,6 +19,7 @@ requirements: - python >=3.6 - setuptools run: + - pandas - python >=3.6 - pysam - scipy From 3b9a0262d7533fd4ca5bf9f27b0811692312fb4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20K=C3=B6nig?= <35546377+patrick-koenig@users.noreply.github.com> Date: Wed, 28 Aug 2024 13:31:39 +0200 Subject: [PATCH 1254/1589] Add blast2galaxy (#50375) * Added meta.yaml for blast2galaxy * Updated recipe for blast2galaxy --- recipes/blast2galaxy/meta.yaml | 52 ++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 recipes/blast2galaxy/meta.yaml diff --git a/recipes/blast2galaxy/meta.yaml b/recipes/blast2galaxy/meta.yaml new file mode 100644 index 0000000000000..91ee70dd020be --- /dev/null +++ b/recipes/blast2galaxy/meta.yaml @@ -0,0 +1,52 @@ +{% set name = "blast2galaxy" %} +{% set version = "0.1.0a1" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.org/packages/source/{{ name[0] }}/{{ name }}/blast2galaxy-{{ version }}.tar.gz + sha256: ec1934a5a0e23a06175814790e6e9cefcbccadf52a7752f8278788b48b45eb4e + +build: + entry_points: + - blast2galaxy = blast2galaxy.cli:cli + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + run_exports: + - {{ pin_subpackage('blast2galaxy', max_pin="x.x") }} + +requirements: + host: + - python >=3.10,<4.0 + - poetry-core >=1.0.0 + - pip + run: + - python >=3.10,<4.0 + - typer >=0.9.0,<0.10.0 + - bioblend >=1.2.0,<2.0.0 + - rich >=13.6.0,<14.0.0 + - tomli >=2.0.1,<3.0.0 + +test: + imports: + - blast2galaxy + commands: + - pip check + - blast2galaxy --help + requires: + - pip + +about: + summary: A Python package with a CLI and API to perform BLAST queries against Galaxy servers + license: MIT + license_file: LICENSE + home: "https://github.com/IPK-BIT/blast2galaxy" + doc_url: "https://ipk-bit.github.io/blast2galaxy/" + dev_url: "https://github.com/IPK-BIT/blast2galaxy" + +extra: + recipe-maintainers: + - patrick-koenig From fd4d29d55fae468bcfc50307adcdc620f42687fb Mon Sep 17 00:00:00 2001 From: Anuradha Date: Wed, 28 Aug 2024 21:01:48 +0930 Subject: [PATCH 1255/1589] Update kmertools to v0.1.3 (#50370) --- recipes/kmertools/build.sh | 2 +- recipes/kmertools/meta.yaml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/kmertools/build.sh b/recipes/kmertools/build.sh index 1f86b1f9190de..472a714ec66c5 100644 --- a/recipes/kmertools/build.sh +++ b/recipes/kmertools/build.sh @@ -31,7 +31,7 @@ fi # Build statically linked binary with Rust RUST_BACKTRACE=1 # Build with maturin -maturin build -m ./pykmertools/Cargo.toml -b pyo3 --interpreter "${PYTHON}" --release --strip +maturin build -m ./conda/Cargo.toml -b pyo3 --interpreter "${PYTHON}" --release --strip # Install the wheel file ${PYTHON} -m pip install ./target/wheels/*.whl --no-deps --no-build-isolation --no-cache-dir -vvv diff --git a/recipes/kmertools/meta.yaml b/recipes/kmertools/meta.yaml index 18f8c00e7dcd2..2ead57a35b7be 100644 --- a/recipes/kmertools/meta.yaml +++ b/recipes/kmertools/meta.yaml @@ -1,13 +1,13 @@ -{% set version = "0.1.2" %} +{% set version = "0.1.3" %} {% set name = "kmertools" %} -{% set sha256 = "0dfade580e1fbf6ba2bc1665792ae74b918bbe0cd5272c5f52bf553eee285a71" %} +{% set sha256 = "02892ce148db4043bede10267f390c9fea14d49f65b43e1f05092153939bd5e0" %} package: name: {{ name }} version: {{ version }} build: - number: 1 + number: 0 skip: True # [py < 39] run_exports: - {{ pin_subpackage('kmertools', max_pin="x.x") }} From 6ec724437d483aabec8dff691226f36b27244813 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 28 Aug 2024 13:02:54 -0400 Subject: [PATCH 1256/1589] Update jbrowse2 to 2.14.0 (#50381) --- recipes/jbrowse2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/jbrowse2/meta.yaml b/recipes/jbrowse2/meta.yaml index 761afe067f7c8..79a3e07bae78c 100644 --- a/recipes/jbrowse2/meta.yaml +++ b/recipes/jbrowse2/meta.yaml @@ -1,12 +1,12 @@ # When updating, check the @jbrowse/cli version in build.sh too -{% set version = "2.13.1" %} +{% set version = "2.14.0" %} package: name: jbrowse2 version: {{ version }} source: - sha256: 6b2ccd796ae6c0e09e8e02fc4b7173826994b1db81bad5961fde588c6fc6964e + sha256: 027eea356652c7adb1e0dbab9cd78bf2f277d065b5b1d5447256e0d2315c2ea1 url: https://github.com/GMOD/jbrowse-components/releases/download/v{{ version }}/jbrowse-web-v{{ version }}.zip build: From 5482ed8f6e283fddb3b2e1fd421fc317f2822483 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 28 Aug 2024 13:03:12 -0400 Subject: [PATCH 1257/1589] Update psm-utils to 1.0.1 (#50382) --- recipes/psm-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/psm-utils/meta.yaml b/recipes/psm-utils/meta.yaml index 70adfed61ccec..1e6ac303ee92f 100644 --- a/recipes/psm-utils/meta.yaml +++ b/recipes/psm-utils/meta.yaml @@ -1,6 +1,6 @@ {% set name = "psm-utils" %} -{% set version = "1.0.0" %} -{% set sha256 = "75377a3347e3b8d9889ec4c2939d91b565fc9473c511d6d0a590c9a7d1c345ff" %} +{% set version = "1.0.1" %} +{% set sha256 = "56ed80a363f87a49ab3c712f8f8f6aae8d2fad777920428d3a321f52a8494cff" %} package: name: {{ name|lower }} From 3e9c8160ed9bf568b5f0f805b04c679e737baa0e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 28 Aug 2024 13:03:37 -0400 Subject: [PATCH 1258/1589] Update lotus2 to 2.34 (#50384) --- recipes/lotus2/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/lotus2/meta.yaml b/recipes/lotus2/meta.yaml index 0856d2ca4d10a..2ddeeeff9145d 100644 --- a/recipes/lotus2/meta.yaml +++ b/recipes/lotus2/meta.yaml @@ -1,6 +1,6 @@ {% set name = "lotus2" %} -{% set version = "2.32" %} -{% set sha256 = "5c1c4e6e0cb6cd7277be6a163d184ea4dd30eac3b03b171deede8ce85509fb4e" %} +{% set version = "2.34" %} +{% set sha256 = "d654f5ea445d43a9a4ed4dd21c64c2377f628b63f1745358539ad5e33823530e" %} package: name: {{ name }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 noarch: generic run_exports: - {{ pin_subpackage(name, max_pin='x') }} From 4adbb5d9e4413695359188817a182e4766b702b6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 28 Aug 2024 13:04:19 -0400 Subject: [PATCH 1259/1589] Update gencove to 2.19.0 (#50385) --- recipes/gencove/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gencove/meta.yaml b/recipes/gencove/meta.yaml index da047bd0ccbbe..c11d08a06e330 100644 --- a/recipes/gencove/meta.yaml +++ b/recipes/gencove/meta.yaml @@ -1,6 +1,6 @@ {% set name = "gencove" %} -{% set version = "2.18.5" %} -{% set sha256 = "785a6f076770116f45ecb1b85458328db540c244183509e9d4ef368d78bb58bf" %} +{% set version = "2.19.0" %} +{% set sha256 = "19420897a37281a52b9ed0fe8957faf4d867cbc53b4b1849082db75b8418c341" %} package: name: {{ name }} From 4ae047801dcb2149a1711d01f2e30001cac98917 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 28 Aug 2024 13:07:44 -0400 Subject: [PATCH 1260/1589] Update pygcap to 1.2.6 (#50386) --- recipes/pygcap/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pygcap/meta.yaml b/recipes/pygcap/meta.yaml index abc14978799ed..37b05921420ad 100644 --- a/recipes/pygcap/meta.yaml +++ b/recipes/pygcap/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pygcap" %} -{% set version = "1.2.5" %} +{% set version = "1.2.6" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pygcap-{{ version }}.tar.gz - sha256: caa4edf728b8cee811daf71e6fda4f3a088fcec3a6bd24a3fc37807c2ee01125 + sha256: 172aa62ec82bab05713f573e7920e65bd38ace3341f4ea4b6f8f000733c3d170 build: number: 0 From ebd1d1c47a0cf211c9a95883737b4f011bb2cf1b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 28 Aug 2024 13:08:06 -0400 Subject: [PATCH 1261/1589] Update inspector to 1.3.1 (#50387) --- recipes/inspector/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/inspector/meta.yaml b/recipes/inspector/meta.yaml index 096917931b33d..bba467348658e 100644 --- a/recipes/inspector/meta.yaml +++ b/recipes/inspector/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.3" %} +{% set version = "1.3.1" %} package: name: inspector @@ -6,7 +6,7 @@ package: source: url: https://github.com/ChongLab/Inspector/archive/refs/tags/inspector-v{{ version }}.tar.gz - sha256: 6e1278de333990005a720a85048581783040ed4473b2247d0aa0eeaa8cb9ffda + sha256: 2f1fa14ed4f504909183de09161681ae1a2dcfb3463b15fec09d227b69c51d0f build: number: 0 From c31cb985f4dca6465d59503e82ed9d3b05fc0e76 Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Wed, 28 Aug 2024 13:36:55 -0400 Subject: [PATCH 1262/1589] ci: Fix platform script echo (#50389) * bump test file * ci: revert set -x and extra echo * revert test recipe --- scripts/check-for-additional-platforms.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/scripts/check-for-additional-platforms.sh b/scripts/check-for-additional-platforms.sh index 3c4e17a0d7c88..844a09652c04d 100755 --- a/scripts/check-for-additional-platforms.sh +++ b/scripts/check-for-additional-platforms.sh @@ -1,6 +1,6 @@ #!/bin/bash -set -x +# Do not set -x, this script outputs a value with echo # Check to see if any changed recipes have specified the key # extra:additional-platforms, and if so, if they match the platform of the @@ -24,8 +24,6 @@ files=`git diff --name-only --diff-filter AMR ${git_range} | grep -v 'template' build=0 for file in $files; do - echo "Going to check '${file}' for additional-platforms." - # To create a properly-formatted yaml that yq can parse, comment out jinja2 # variable setting with {% %} and remove variable use with {{ }}. additional_platforms=$(cat $file \ From b8287eb6dc0faf11f1f6443e6e6dfeeeccc82dbb Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 28 Aug 2024 12:44:30 -0500 Subject: [PATCH 1263/1589] scoring-matrices: add arm64 build (#50390) --- recipes/scoring-matrices/meta.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/recipes/scoring-matrices/meta.yaml b/recipes/scoring-matrices/meta.yaml index abd5f86254259..b97fea1eea695 100644 --- a/recipes/scoring-matrices/meta.yaml +++ b/recipes/scoring-matrices/meta.yaml @@ -11,7 +11,7 @@ source: sha256: 2192df3f5f8ecd144071858cc287c958d2a842cdc8cc082c13755dfefe2f66b8 build: - number: 0 + number: 1 skip: True # [py < 36] script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir --use-pep517 -vvv" run_exports: @@ -38,8 +38,8 @@ about: license: MIT license_family: MIT license_file: COPYING - summary: Dependency free, Cython-compatible scoring matrices to use with biological sequences. - doc_url: https://scoring-matrices.readthedocs.org/ + summary: "Dependency free, Cython-compatible scoring matrices to use with biological sequences." + doc_url: https://scoring-matrices.readthedocs.org dev_url: https://github.com/althonos/scoring-matrices extra: @@ -47,3 +47,4 @@ extra: - althonos additional-platforms: - linux-aarch64 + - osx-arm64 From 6445ca80de851f3c6bebae428a425a2b14a32d2f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 28 Aug 2024 13:48:44 -0400 Subject: [PATCH 1264/1589] Update pytrimal to 0.8.0 (#50383) * Update pytrimal to 0.8.0 * clean up recipe * pytrimal: add aarch64/arm64 build --------- Co-authored-by: mencian --- recipes/pytrimal/build_failure.osx-64.yaml | 104 --------------------- recipes/pytrimal/meta.yaml | 27 +++--- 2 files changed, 15 insertions(+), 116 deletions(-) delete mode 100644 recipes/pytrimal/build_failure.osx-64.yaml diff --git a/recipes/pytrimal/build_failure.osx-64.yaml b/recipes/pytrimal/build_failure.osx-64.yaml deleted file mode 100644 index fd387f6646163..0000000000000 --- a/recipes/pytrimal/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: e82086ce8ce28d6bc499d24ecfe8511786c73430b331466ae2d3b51273a9ab20 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |- - export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/pytrimal_1717522804579/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place - export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/pytrimal_1717522804579/_build_env - Traceback (most recent call last): - export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/pytrimal_1717522804579/work - INFO: activate_clang_osx-64.sh made the following environmental changes: - File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in - sys.exit(execute()) - AR=x86_64-apple-darwin13.4.0-ar - AS=x86_64-apple-darwin13.4.0-as - CC=x86_64-apple-darwin13.4.0-clang - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - utils.check_call_env( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pytrimal-0.7.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms - CLANG=x86_64-apple-darwin13.4.0-clang - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/pytrimal_1717522804579/work/conda_build.sh']' returned non-zero exit status 1. - CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin - CMAKE_PREFIX_PATH=:$PREFIX - CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 - CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 - CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 - DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pytrimal-0.7.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - HOST=x86_64-apple-darwin13.4.0 - INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool - LD=x86_64-apple-darwin13.4.0-ld - LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib - LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib - LIBTOOL=x86_64-apple-darwin13.4.0-libtool - LIPO=x86_64-apple-darwin13.4.0-lipo - MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib - NM=x86_64-apple-darwin13.4.0-nm - NMEDIT=x86_64-apple-darwin13.4.0-nmedit - OBJC=x86_64-apple-darwin13.4.0-clang - OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - OTOOL=x86_64-apple-darwin13.4.0-otool - PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff - RANLIB=x86_64-apple-darwin13.4.0-ranlib - REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding - SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk - SEGEDIT=x86_64-apple-darwin13.4.0-segedit - SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table - SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack - SIZE=x86_64-apple-darwin13.4.0-size - STRINGS=x86_64-apple-darwin13.4.0-strings - STRIP=x86_64-apple-darwin13.4.0-strip - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 - ac_cv_func_malloc_0_nonnull=yes - ac_cv_func_realloc_0_nonnull=yes - build_alias=x86_64-apple-darwin13.4.0 - host_alias=x86_64-apple-darwin13.4.0 - INFO: activate_clangxx_osx-64.sh made the following environmental changes: - CLANGXX=x86_64-apple-darwin13.4.0-clang - CXX=x86_64-apple-darwin13.4.0-clang - CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pytrimal-0.7.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pytrimal-0.7.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - Using pip 24.0 from $PREFIX/lib/python3.8/site-packages/pip (python 3.8) - Non-user install because user site-packages disabled - Ignoring indexes: https://pypi.org/simple - Created temporary directory: /private/tmp/pip-build-tracker-xa5aes5p - Initialized build tracking at /private/tmp/pip-build-tracker-xa5aes5p - Created build tracker: /private/tmp/pip-build-tracker-xa5aes5p - Entered build tracker: /private/tmp/pip-build-tracker-xa5aes5p - Created temporary directory: /private/tmp/pip-install-r7bug1kb - Created temporary directory: /private/tmp/pip-ephem-wheel-cache-spxymxhx - Processing $SRC_DIR - Added file://$SRC_DIR to build tracker '/private/tmp/pip-build-tracker-xa5aes5p' - Created temporary directory: /private/tmp/pip-modern-metadata-qhph_27o - Preparing metadata (pyproject.toml): started - Preparing metadata (pyproject.toml): finished with status 'done' - Source in $SRC_DIR has version 0.7.0, which satisfies requirement pytrimal==0.7.0 from file://$SRC_DIR - Removed pytrimal==0.7.0 from file://$SRC_DIR from build tracker '/private/tmp/pip-build-tracker-xa5aes5p' - Created temporary directory: /private/tmp/pip-unpack-0bkomd0_ - Building wheels for collected packages: pytrimal - Created temporary directory: /private/tmp/pip-wheel-71ufbp5h - Destination directory: /private/tmp/pip-wheel-71ufbp5h - Building wheel for pytrimal (pyproject.toml): started - Building wheel for pytrimal (pyproject.toml): finished with status 'error' - Failed to build pytrimal - Exception information: - Traceback (most recent call last): - File "$PREFIX/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper - status = run_func(*args) - File "$PREFIX/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper - return func(self, options, args) - File "$PREFIX/lib/python3.8/site-packages/pip/_internal/commands/install.py", line 429, in run - raise InstallationError( - pip._internal.exceptions.InstallationError: Could not build wheels for pytrimal, which is required to install pyproject.toml-based projects - Removed build tracker: '/private/tmp/pip-build-tracker-xa5aes5p' -# Last 100 lines of the build log. diff --git a/recipes/pytrimal/meta.yaml b/recipes/pytrimal/meta.yaml index c135226ad4b8d..1fc319258a782 100644 --- a/recipes/pytrimal/meta.yaml +++ b/recipes/pytrimal/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pytrimal" %} -{% set version = "0.7.0" %} +{% set version = "0.8.0" %} package: name: "{{ name|lower }}" @@ -7,13 +7,13 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: e80df938e83a95bf81d620f5909580f3f07b661f25b8613e67037134785b91b4 + sha256: 2331e67a74f3144d82373b6a79f42198f6632bd1b5025ab01cdd3eb527ef88cf build: - number: 1 - - skip: True #[py2k] - script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed -vvv " + number: 0 + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir --use-pep517 -vvv" + run_exports: + - {{ pin_subpackage('pytrimal', max_pin="x.x") }} requirements: build: @@ -23,11 +23,10 @@ requirements: - python - pip - cython - - setuptools + - scoring-matrices >=0.2.0 run: - python - - setuptools - - archspec + - scoring-matrices >=0.2.0 test: imports: @@ -37,12 +36,16 @@ test: about: home: https://github.com/althonos/pytrimal - license: GPL-3 + license: GPL-3.0-or-later license_family: GPL license_file: COPYING - summary: Cython bindings and Python interface to trimAl, a tool for automated alignment trimming. - doc_url: https://pytrimal.readthedocs.org/ + summary: "Cython bindings and Python interface to trimAl, a tool for automated alignment trimming." + doc_url: https://pytrimal.readthedocs.org + dev_url: https://github.com/althonos/pytrimal extra: recipe-maintainers: - althonos + additional-platforms: + - linux-aarch64 + - osx-arm64 From 821b619784b8570081695449e2b6875ef103f22b Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 28 Aug 2024 13:26:35 -0500 Subject: [PATCH 1265/1589] trimal: add arm64 build (#50391) --- recipes/trimal/build.sh | 21 ++++++++++++++------- recipes/trimal/meta.yaml | 21 ++++++++++++++------- 2 files changed, 28 insertions(+), 14 deletions(-) diff --git a/recipes/trimal/build.sh b/recipes/trimal/build.sh index 3b76620205a47..32fa745b57afe 100644 --- a/recipes/trimal/build.sh +++ b/recipes/trimal/build.sh @@ -1,11 +1,18 @@ -#!/bin/sh - -cd source -make CC="${CXX}" FLAGS="${CPPFLAGS} ${CXXFLAGS}" -j ${CPU_COUNT} +#!/bin/bash mkdir -p $PREFIX/bin -cp readal $PREFIX/bin -cp statal $PREFIX/bin -cp trimal $PREFIX/bin +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CPPFLAGS="${CPPFLAGS} -I${PREFIX}/include" +export CXXFLAGS="${CXXFLAGS} -O3" + +cd source +make CC="${CXX}" FLAGS="${CPPFLAGS} ${CXXFLAGS}" -j "${CPU_COUNT}" + +cp -f readal $PREFIX/bin +cp -f statal $PREFIX/bin +cp -f trimal $PREFIX/bin +chmod 0755 $PREFIX/bin/readal +chmod 0755 $PREFIX/bin/statal +chmod 0755 $PREFIX/bin/trimal diff --git a/recipes/trimal/meta.yaml b/recipes/trimal/meta.yaml index 659a5cb83b357..49ab7cd5dc61d 100644 --- a/recipes/trimal/meta.yaml +++ b/recipes/trimal/meta.yaml @@ -1,13 +1,16 @@ +{% set name = "trimal" %} +{% set version = "1.5.0" %} + package: - name: trimal - version: "1.5.0" + name: {{ name }} + version: {{ version }} source: - url: https://github.com/inab/trimal/archive/v1.5.0.tar.gz - md5: 414cebd328157f63704e49a592645286 + url: https://github.com/inab/trimal/archive/refs/tags/v{{ version }}.tar.gz + sha256: 3fba2e07bffb7290c34e713a052d0f0ff1ce0792861740a8cec46f40685c6d73 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('trimal', max_pin='x') }} @@ -15,7 +18,6 @@ requirements: build: - make - {{ compiler('cxx') }} - run: test: commands: @@ -26,10 +28,15 @@ test: about: home: 'https://trimal.readthedocs.io' summary: 'A tool for the automated removal of spurious sequences or poorly aligned regions from a multiple sequence alignment' - license: GNU General Public License v3 or later (GPLv3+) + license: "GPL-3.0-or-later" + license_family: GPL3 + dev_url: "https://github.com/inab/trimal" + doc_url: "https://trimal.readthedocs.io" extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:trimAl + - doi:10.1093/bioinformatics/btp348 From 514208abebb7a17a3760e36e6d040be0a6dc62e1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 28 Aug 2024 15:43:10 -0400 Subject: [PATCH 1266/1589] Update ipyrad to 0.9.100 (#50392) --- recipes/ipyrad/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ipyrad/meta.yaml b/recipes/ipyrad/meta.yaml index b8e9d2790d862..89cd34aaa2d02 100644 --- a/recipes/ipyrad/meta.yaml +++ b/recipes/ipyrad/meta.yaml @@ -1,6 +1,6 @@ {% set name = "ipyrad" %} -{% set version = "0.9.99" %} -{% set sha256 = "7a769bcfea004d603415c1d5d2d782857c3d960e38c48586abe93f7f31667d9c" %} +{% set version = "0.9.100" %} +{% set sha256 = "80abc1aa88ce0dda814a77c0c7531157aef3dba00ab74d1fb834700f7aaaf169" %} package: name: {{ name }} From a22984446f7646c6f440d5e0f51c0d623767e674 Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Wed, 28 Aug 2024 16:02:04 -0400 Subject: [PATCH 1267/1589] Bulk: UCSC updates (#50393) * bulk fixes and failures * [ci run] trigger bulk run * [ci skip] add build failure record for recipe recipes/cgat-apps * [ci skip] fix pcaone openmp dependency * [ci skip] remove build failure record for recipe recipes/genometools-genometools * [ci skip] add build failure record for recipe recipes/cgat-apps * [ci skip] add build failure record for recipe recipes/tobias * remove caching as it causes problems and doesn't save much time * move run_exports to correct location * add run_exports * rebuild failure * skiplist build failures * [ci run] trigger bulk run * [ci skip] add build failure record for recipe recipes/maxentpy * [ci skip] remove build failure record for recipe recipes/pcaone * [ci skip] add build failure record for recipe recipes/maxentpy * [ci skip] remove build failure record for recipe recipes/pcaone * [ci skip] add build failure record for recipe recipes/pydnase * [ci skip] add build failure record for recipe recipes/ntsynt * [ci skip] add build failure record for recipe recipes/nanovar * [ci skip] add build failure record for recipe recipes/chorus2 * [ci skip] remove build failure record for recipe recipes/rpbp * bulk fixes and failures * [ci run] trigger bulk run * remove bad character * [ci skip] add build failure record for recipe recipes/chorus2 * [ci skip] add build failure record for recipe recipes/whatshap * bulk fixes and failures * [ci run] trigger bulk run * exclude bioconda-repodata-patches * the other one is not the same * only run linux but add extra runners * [ci run] trigger bulk run * rebuild osx failures * revert runner changes * add run_exports * remove build failure * skiplist * [ci run] trigger bulk run * [ci skip] remove build failure record for recipe recipes/gsalign * [ci skip] remove build failure record for recipe recipes/bustools * [ci skip] remove build failure record for recipe recipes/metabuli * [ci skip] remove build failure record for recipe recipes/nonpareil * [ci skip] remove build failure record for recipe recipes/f5c * [ci skip] remove build failure record for recipe recipes/sankoff * [ci skip] remove build failure record for recipe recipes/humid * [ci skip] add build failure record for recipe recipes/pepsirf * [ci skip] remove build failure record for recipe recipes/flexiplex * [ci skip] remove build failure record for recipe recipes/gatb * [ci skip] remove build failure record for recipe recipes/stare-abc * [ci skip] remove build failure record for recipe recipes/encode-blacklist * [ci skip] add build failure record for recipe recipes/phyloacc * [ci skip] remove build failure record for recipe recipes/parascopy * [ci skip] remove build failure record for recipe recipes/metagraph * [ci skip] remove build failure record for recipe recipes/msisensor-pro * [ci skip] add build failure record for recipe recipes/verifybamid2 * [ci skip] remove build failure record for recipe recipes/ksnp * [ci skip] add build failure record for recipe recipes/ataqv * [ci skip] remove build failure record for recipe recipes/arriba * add run_exports * skip build failures * [ci run] trigger bulk run * [ci skip] remove build failure record for recipe recipes/scelestial * [ci skip] remove build failure record for recipe recipes/fastsimbac * [ci run] trigger bulk run * [ci skip] remove build failure record for recipe recipes/mgems * [ci skip] add build failure record for recipe recipes/mykrobe * [ci skip] add build failure record for recipe recipes/pegasuspy * [ci skip] add build failure record for recipe recipes/spades * [ci skip] remove build failure record for recipe recipes/jcvi * [ci skip] remove build failure record for recipe recipes/rpbp * [ci skip] add build failure record for recipe recipes/dicey * [ci skip] add build failure record for recipe recipes/zol * revert temporary CI changes * bump divergent build strings * skiplist build failures * [ci run] trigger bulk run * [ci skip] add build failure record for recipe recipes/dinopy * [ci skip] add build failure record for recipe recipes/dinopy * [ci skip] add build failure record for recipe recipes/dicey * [ci skip] remove build failure record for recipe recipes/tiddit * [ci skip] add build failure record for recipe recipes/dinopy * [ci skip] add build failure record for recipe recipes/phispy * [ci skip] add build failure record for recipe recipes/pyopal * [ci skip] add build failure record for recipe recipes/dicey * [ci skip] add build failure record for recipe recipes/zol * [ci skip] add build failure record for recipe recipes/pegasuspy * [ci skip] add build failure record for recipe recipes/bamread * skiplist build failures * bump build number * [ci run] trigger bulk run * [ci skip] add build failure record for recipe recipes/dinopy * [ci skip] add build failure record for recipe recipes/pegasuspy * [ci skip] add build failure record for recipe recipes/dinopy * [ci skip] add build failure record for recipe recipes/pegasuspy * bump updated recipes * centrifuge: add linux-aarch64 build (#48450) * centrifuge: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Add a patch for fixing the build on linux aarch64 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov * Update matchms to 0.26.4 (#48478) * r-spp: add linux-aarch64 build (#48467) * r-spp: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Add run_exports. Use DESCRIPTION as a license file, although it is just mentioning it Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov * callerpp: add linux-aarch64 build (#48442) * callerpp: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Allow signed char for Linux aarch64 Signed-off-by: Martin Tzvetanov Grigorov * Bump the version to 0.1.5 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov * genepop: add linux-aarch64 build (#48468) * genepop: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Remove from the blacklist Signed-off-by: Martin Tzvetanov Grigorov * Fix the source url to an existing one, pointing to R-genepop 1.2.2 Signed-off-by: Martin Tzvetanov Grigorov * Reset the build number to 0 Signed-off-by: Martin Tzvetanov Grigorov * Require C++ for the build Signed-off-by: Martin Tzvetanov Grigorov * Use Github tag for v1.2.2. Fix the build Signed-off-by: Martin Tzvetanov Grigorov * Improve the test to deal with the new interactive behavior of the program Signed-off-by: Martin Tzvetanov Grigorov * Simplify the test. It seems `echo -e` does not work well at the CI systems Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov * velvet: add linux-aarch64 build (#48469) Signed-off-by: Martin Tzvetanov Grigorov * Update earlgrey to 4.3.0 (#48477) * bump build number * skiplist failures * Update pybiolib to 1.1.2141 (#48479) * [ci run] trigger bulk run * [ci skip] add build failure record for recipe recipes/curves * bump build number for pinnings * [ci run] trigger bulk run * [ci skip] add build failure record for recipe recipes/curves * skiplist * add run exports * bump build number * [ci run] trigger bulk run * [ci run] trigger bulk run * fix incorrectly merged files * remove extra spaces * bulk update latest ucsc version and fix failures * remove all ucsc from skiplist * [ci run] trigger bulk run * [ci skip] add build failure record for recipe recipes/ucsc-hgloadnet * [ci skip] add build failure record for recipe recipes/ucsc-hgspeciesrna * [ci skip] add build failure record for recipe recipes/ucsc-liftover * [ci skip] add build failure record for recipe recipes/ucsc-psltobigpsl * [ci skip] add build failure record for recipe recipes/ucsc-positionaltblcheck * [ci skip] add build failure record for recipe recipes/ucsc-hgfindspec * [ci skip] add build failure record for recipe recipes/ucsc-hgloadout * [ci skip] add build failure record for recipe recipes/ucsc-hubcheck * [ci skip] add build failure record for recipe recipes/ucsc-hgloadbed * [ci skip] add build failure record for recipe recipes/ucsc-beditemoverlapcount * [ci skip] add build failure record for recipe recipes/ucsc-getrnapred * [ci skip] add build failure record for recipe recipes/ucsc-bedtogenepred * [ci skip] add build failure record for recipe recipes/ucsc-checktablecoords * [ci skip] add build failure record for recipe recipes/ucsc-pslliftsubrangeblat * [ci skip] add build failure record for recipe recipes/ucsc-mafcoverage * [ci skip] add build failure record for recipe recipes/ucsc-gaptolift * [ci skip] add build failure record for recipe recipes/ucsc-hggcpercent * [ci skip] add build failure record for recipe recipes/ucsc-bedjointaboffset * [ci skip] add build failure record for recipe recipes/ucsc-genepredfilter * [ci skip] add build failure record for recipe recipes/ucsc-websync * [ci skip] add build failure record for recipe recipes/ucsc-netclass * [ci skip] add build failure record for recipe recipes/ucsc-hgloadwiggle * [ci skip] add build failure record for recipe recipes/ucsc-hgloadoutjoined * [ci skip] add build failure record for recipe recipes/ucsc-chromgraphfrombin * [ci skip] add build failure record for recipe recipes/ucsc-maketablelist * [ci skip] add build failure record for recipe recipes/ucsc-bedcoverage * [ci skip] add build failure record for recipe recipes/ucsc-genepredtogtf * [ci skip] add build failure record for recipe recipes/ucsc-checkcoveragegaps * [ci skip] add build failure record for recipe recipes/ucsc-genepredhisto * [ci skip] add build failure record for recipe recipes/ucsc-genepredtoprot * [ci skip] add build failure record for recipe recipes/ucsc-overlapselect * [ci skip] add build failure record for recipe recipes/ucsc-expmatrixtobarchartbed * [ci skip] add build failure record for recipe recipes/ucsc-bedjointaboffset * [ci skip] add build failure record for recipe recipes/ucsc-clustergenes * [ci skip] add build failure record for recipe recipes/ucsc-websync * [ci skip] add build failure record for recipe recipes/ucsc-hggoldgapgl * [ci skip] add build failure record for recipe recipes/ucsc-chainbridge * [ci skip] add build failure record for recipe recipes/ucsc-hubcheck * [ci skip] add build failure record for recipe recipes/ucsc-bedrestricttopositions * [ci skip] add build failure record for recipe recipes/ucsc-endsinlf * [ci skip] add build failure record for recipe recipes/ucsc-gff3togenepred * [ci skip] add build failure record for recipe recipes/ucsc-fafilter * [ci skip] add build failure record for recipe recipes/ucsc-liftup * [ci skip] add build failure record for recipe recipes/ucsc-hgvstovcf * [ci skip] add build failure record for recipe recipes/ucsc-localtime * [ci skip] add build failure record for recipe recipes/ucsc-bigwigtobedgraph * [ci skip] add build failure record for recipe recipes/ucsc-pslcheck * [ci skip] add build failure record for recipe recipes/ucsc-bedremoveoverlap * [ci skip] add build failure record for recipe recipes/ucsc-chainantirepeat * [ci skip] add build failure record for recipe recipes/ucsc-parahubstop * [ci skip] add build failure record for recipe recipes/ucsc-mafsplitpos * temporarily disable osx on bulk * remove build failures for http errors * remove failures related to disk space * remove failures related to http * skiplist build failures * [ci run] trigger bulk run * [ci skip] add build failure record for recipe recipes/ucsc-chromgraphtobin * [ci skip] add build failure record for recipe recipes/ucsc-gtftogenepred * [ci skip] add build failure record for recipe recipes/ucsc-checkhgfindspec * [ci skip] add build failure record for recipe recipes/ucsc-genepredcheck * [ci skip] add build failure record for recipe recipes/ucsc-maftosnpbed * [ci skip] add build failure record for recipe recipes/ucsc-genepredtobed * [ci skip] add build failure record for recipe recipes/ucsc-bedjointaboffset * [ci skip] add build failure record for recipe recipes/ucsc-genepredsinglecover * [ci skip] add build failure record for recipe recipes/ucsc-ldhggene * [ci skip] add build failure record for recipe recipes/ucsc-validatefiles * [ci skip] add build failure record for recipe recipes/ucsc-maffetch * [ci skip] add build failure record for recipe recipes/ucsc-hubpubliccheck * [ci skip] add build failure record for recipe recipes/ucsc-dbtrash * [ci skip] add build failure record for recipe recipes/ucsc-hgtrackdb * [ci skip] add build failure record for recipe recipes/ucsc-estorient * [ci skip] add build failure record for recipe recipes/ucsc-liftup * [ci skip] add build failure record for recipe recipes/ucsc-genepredtofakepsl * [ci skip] add build failure record for recipe recipes/ucsc-gff3togenepred * [ci skip] add build failure record for recipe recipes/ucsc-genepredtomafframes * [ci skip] add build failure record for recipe recipes/ucsc-genepredtobiggenepred * [ci skip] add build failure record for recipe recipes/ucsc-hgtrackdb * [ci skip] add build failure record for recipe recipes/ucsc-bamtopsl * [ci skip] add build failure record for recipe recipes/ucsc-transmappsltogenepred * [ci skip] add build failure record for recipe recipes/ucsc-maffrags * [ci skip] add build failure record for recipe recipes/ucsc-rasqlquery * [ci skip] add build failure record for recipe recipes/ucsc-getrna * [ci skip] add build failure record for recipe recipes/ucsc-mafgene * [ci skip] add build failure record for recipe recipes/ucsc-featurebits * [ci skip] add build failure record for recipe recipes/ucsc-tdbquery * [ci skip] add build failure record for recipe recipes/ucsc-websync * [ci skip] add build failure record for recipe recipes/ucsc-mafsplitpos * [ci skip] add build failure record for recipe recipes/ucsc-maffrag * remove http errors * fix curly brackets * fix curly brackets * [ci run] trigger bulk run * [ci skip] add build failure record for recipe recipes/ucsc-bedjointaboffset * [ci skip] add build failure record for recipe recipes/ucsc-genepredtobed * [ci skip] add build failure record for recipe recipes/ucsc-genepredtobiggenepred * [ci skip] add build failure record for recipe recipes/ucsc-gtftogenepred * [ci skip] add build failure record for recipe recipes/ucsc-hgloadchain * [ci skip] add build failure record for recipe recipes/ucsc-hgloadmaf * [ci skip] add build failure record for recipe recipes/ucsc-bedjointaboffset * [ci skip] add build failure record for recipe recipes/ucsc-genepredcheck * [ci skip] add build failure record for recipe recipes/ucsc-gff3togenepred * [ci skip] add build failure record for recipe recipes/ucsc-mrnatogene * [ci skip] add build failure record for recipe recipes/ucsc-bedextendranges * [ci skip] add build failure record for recipe recipes/ucsc-checkhgfindspec * skip failed builds * remove linux-aarch64 from known failures * [ci run] trigger bulk run * [ci skip] add build failure record for recipe recipes/ucsc-hgtrackdb * [ci skip] add build failure record for recipe recipes/ucsc-hubcheck * re-enable osx builds * [ci run] trigger bulk run * [ci skip] add build failure record for recipe recipes/ucsc-bigwigsummary * [ci skip] add build failure record for recipe recipes/sorted_nearest * [ci skip] add build failure record for recipe recipes/flye * merge script update and osx changes * skip broken osx-arm64 builds * [ci run] trigger bulk run * [ci skip] remove build failure record for recipe recipes/ucsc-bigwigsummary * remove accidental checkins --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: BiocondaBot Co-authored-by: Johannes Koester Co-authored-by: Martin Grigorov Co-authored-by: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> --- .github/workflows/Bulk.yml | 6 +- build-fail-blacklist | 200 ------------------ recipes/flye/build_failure.osx-arm64.yaml | 104 +++++++++ .../build_failure.osx-arm64.yaml | 104 +++++++++ recipes/ucsc-addcols/build.sh | 2 +- recipes/ucsc-addcols/meta.yaml | 5 +- recipes/ucsc-ameme/build.sh | 11 +- recipes/ucsc-ameme/meta.yaml | 7 +- recipes/ucsc-autodtd/build.sh | 11 +- recipes/ucsc-autodtd/meta.yaml | 9 +- recipes/ucsc-autosql/build.sh | 11 +- recipes/ucsc-autosql/meta.yaml | 7 +- recipes/ucsc-autoxml/build.sh | 11 +- recipes/ucsc-autoxml/meta.yaml | 9 +- recipes/ucsc-avecols/build.sh | 11 +- recipes/ucsc-avecols/meta.yaml | 7 +- recipes/ucsc-axtchain/build.sh | 28 ++- recipes/ucsc-axtchain/include.patch | 33 +-- recipes/ucsc-axtchain/meta.yaml | 28 ++- recipes/ucsc-axtsort/build.sh | 11 +- recipes/ucsc-axtsort/meta.yaml | 9 +- recipes/ucsc-axtswap/build.sh | 8 +- recipes/ucsc-axtswap/meta.yaml | 9 +- recipes/ucsc-axttomaf/build.sh | 28 ++- recipes/ucsc-axttomaf/include.patch | 6 +- recipes/ucsc-axttomaf/meta.yaml | 29 ++- recipes/ucsc-axttopsl/build.sh | 28 ++- recipes/ucsc-axttopsl/include.patch | 37 ++-- recipes/ucsc-axttopsl/meta.yaml | 28 ++- recipes/ucsc-bamtopsl/build.sh | 28 ++- .../build_failure.linux-aarch64.yaml | 104 +++++++++ recipes/ucsc-bamtopsl/include.patch | 6 +- recipes/ucsc-bamtopsl/meta.yaml | 29 ++- recipes/ucsc-bedclip/build.sh | 33 ++- recipes/ucsc-bedclip/include.patch | 6 +- recipes/ucsc-bedclip/meta.yaml | 33 +-- recipes/ucsc-bedcommonregions/build.sh | 11 +- recipes/ucsc-bedcommonregions/meta.yaml | 9 +- recipes/ucsc-bedcoverage/build.sh | 28 ++- recipes/ucsc-bedcoverage/include.patch | 6 +- recipes/ucsc-bedcoverage/meta.yaml | 28 ++- recipes/ucsc-bedextendranges/build.sh | 28 ++- recipes/ucsc-bedextendranges/include.patch | 6 +- recipes/ucsc-bedextendranges/meta.yaml | 28 ++- recipes/ucsc-bedgeneparts/build.sh | 11 +- recipes/ucsc-bedgeneparts/meta.yaml | 9 +- recipes/ucsc-bedgraphpack/build.sh | 10 +- recipes/ucsc-bedgraphpack/meta.yaml | 9 +- recipes/ucsc-bedgraphtobigwig/build.sh | 28 +-- recipes/ucsc-bedgraphtobigwig/include.patch | 14 +- recipes/ucsc-bedgraphtobigwig/meta.yaml | 36 ++-- recipes/ucsc-bedintersect/build.sh | 28 ++- recipes/ucsc-bedintersect/include.patch | 6 +- recipes/ucsc-bedintersect/meta.yaml | 29 ++- recipes/ucsc-beditemoverlapcount/build.sh | 28 ++- .../ucsc-beditemoverlapcount/include.patch | 6 +- recipes/ucsc-beditemoverlapcount/meta.yaml | 28 ++- recipes/ucsc-bedjointaboffset/build.sh | 9 +- .../build_failure.linux-64.yaml | 104 +++++++++ .../build_failure.linux-aarch64.yaml | 104 +++++++++ recipes/ucsc-bedjointaboffset/include.patch | 6 +- recipes/ucsc-bedjointaboffset/meta.yaml | 26 ++- recipes/ucsc-bedpileups/build.sh | 28 ++- recipes/ucsc-bedpileups/include.patch | 6 +- recipes/ucsc-bedpileups/meta.yaml | 29 ++- recipes/ucsc-bedremoveoverlap/build.sh | 10 +- recipes/ucsc-bedremoveoverlap/meta.yaml | 9 +- recipes/ucsc-bedrestricttopositions/build.sh | 28 ++- .../ucsc-bedrestricttopositions/include.patch | 6 +- recipes/ucsc-bedrestricttopositions/meta.yaml | 29 ++- recipes/ucsc-bedsort/build.sh | 13 +- recipes/ucsc-bedsort/include.patch | 12 +- recipes/ucsc-bedsort/meta.yaml | 14 +- recipes/ucsc-bedtobigbed/build.sh | 28 ++- recipes/ucsc-bedtobigbed/include.patch | 26 +-- recipes/ucsc-bedtobigbed/meta.yaml | 44 ++-- recipes/ucsc-bedtogenepred/build.sh | 12 +- recipes/ucsc-bedtogenepred/meta.yaml | 10 +- recipes/ucsc-bedtopsl/build.sh | 28 ++- recipes/ucsc-bedtopsl/include.patch | 6 +- recipes/ucsc-bedtopsl/meta.yaml | 29 ++- recipes/ucsc-bedweedoverlapping/build.sh | 28 ++- recipes/ucsc-bedweedoverlapping/include.patch | 6 +- recipes/ucsc-bedweedoverlapping/meta.yaml | 29 ++- recipes/ucsc-bigbedinfo/build.sh | 26 ++- recipes/ucsc-bigbedinfo/include.patch | 2 +- recipes/ucsc-bigbedinfo/meta.yaml | 15 +- recipes/ucsc-bigbednameditems/build.sh | 26 ++- recipes/ucsc-bigbednameditems/include.patch | 2 +- recipes/ucsc-bigbednameditems/meta.yaml | 15 +- recipes/ucsc-bigbedsummary/build.sh | 26 ++- recipes/ucsc-bigbedsummary/include.patch | 2 +- recipes/ucsc-bigbedsummary/meta.yaml | 15 +- recipes/ucsc-bigbedtobed/build.sh | 23 +- recipes/ucsc-bigbedtobed/include.patch | 2 +- recipes/ucsc-bigbedtobed/meta.yaml | 16 +- recipes/ucsc-bigmaftomaf/build.sh | 26 ++- recipes/ucsc-bigmaftomaf/include.patch | 2 +- recipes/ucsc-bigmaftomaf/meta.yaml | 15 +- recipes/ucsc-bigpsltopsl/build.sh | 26 ++- recipes/ucsc-bigpsltopsl/include.patch | 2 +- recipes/ucsc-bigpsltopsl/meta.yaml | 15 +- recipes/ucsc-bigwigaverageoverbed/build.sh | 26 ++- .../ucsc-bigwigaverageoverbed/include.patch | 2 +- recipes/ucsc-bigwigaverageoverbed/meta.yaml | 15 +- recipes/ucsc-bigwigcat/build.sh | 26 ++- recipes/ucsc-bigwigcat/include.patch | 2 +- recipes/ucsc-bigwigcat/meta.yaml | 15 +- recipes/ucsc-bigwigcluster/build.sh | 26 ++- recipes/ucsc-bigwigcluster/include.patch | 2 +- recipes/ucsc-bigwigcluster/meta.yaml | 15 +- recipes/ucsc-bigwigcorrelate/build.sh | 26 ++- recipes/ucsc-bigwigcorrelate/include.patch | 2 +- recipes/ucsc-bigwigcorrelate/meta.yaml | 15 +- recipes/ucsc-bigwiginfo/build.sh | 13 +- recipes/ucsc-bigwiginfo/include.patch | 12 +- recipes/ucsc-bigwiginfo/meta.yaml | 12 +- recipes/ucsc-bigwigmerge/build.sh | 10 +- recipes/ucsc-bigwigmerge/meta.yaml | 14 +- recipes/ucsc-bigwigsummary/build.sh | 22 +- recipes/ucsc-bigwigsummary/include.patch | 26 +-- recipes/ucsc-bigwigsummary/meta.yaml | 21 +- recipes/ucsc-bigwigtobedgraph/build.sh | 23 +- recipes/ucsc-bigwigtobedgraph/include.patch | 26 +-- recipes/ucsc-bigwigtobedgraph/meta.yaml | 39 ++-- recipes/ucsc-bigwigtowig/build.sh | 26 ++- recipes/ucsc-bigwigtowig/include.patch | 26 +-- recipes/ucsc-bigwigtowig/meta.yaml | 43 ++-- recipes/ucsc-blasttopsl/build.sh | 28 ++- recipes/ucsc-blasttopsl/include.patch | 6 +- recipes/ucsc-blasttopsl/meta.yaml | 29 ++- recipes/ucsc-blat/build.sh | 19 +- recipes/ucsc-blat/include.patch | 12 +- recipes/ucsc-blat/meta.yaml | 30 +-- recipes/ucsc-catdir/build.sh | 28 ++- recipes/ucsc-catdir/include.patch | 6 +- recipes/ucsc-catdir/meta.yaml | 29 ++- recipes/ucsc-catuncomment/build.sh | 28 ++- recipes/ucsc-catuncomment/include.patch | 6 +- recipes/ucsc-catuncomment/meta.yaml | 29 ++- recipes/ucsc-chainantirepeat/build.sh | 28 ++- recipes/ucsc-chainantirepeat/include.patch | 37 ++-- recipes/ucsc-chainantirepeat/meta.yaml | 27 ++- .../build_failure.linux-64.yaml | 104 +++++++++ recipes/ucsc-chainfilter/build.sh | 28 ++- recipes/ucsc-chainfilter/include.patch | 37 ++-- recipes/ucsc-chainfilter/meta.yaml | 27 ++- recipes/ucsc-chainmergesort/build.sh | 28 ++- recipes/ucsc-chainmergesort/include.patch | 37 ++-- recipes/ucsc-chainmergesort/meta.yaml | 27 ++- recipes/ucsc-chainnet/build.sh | 28 ++- recipes/ucsc-chainnet/include.patch | 37 ++-- recipes/ucsc-chainnet/meta.yaml | 28 ++- recipes/ucsc-chainprenet/build.sh | 28 ++- recipes/ucsc-chainprenet/include.patch | 6 +- recipes/ucsc-chainprenet/meta.yaml | 29 ++- recipes/ucsc-chainsort/build.sh | 28 ++- recipes/ucsc-chainsort/include.patch | 26 +-- recipes/ucsc-chainsort/meta.yaml | 29 ++- recipes/ucsc-chainsplit/build.sh | 28 ++- recipes/ucsc-chainsplit/include.patch | 6 +- recipes/ucsc-chainsplit/meta.yaml | 29 ++- recipes/ucsc-chainstitchid/build.sh | 28 ++- recipes/ucsc-chainstitchid/include.patch | 6 +- recipes/ucsc-chainstitchid/meta.yaml | 29 ++- recipes/ucsc-chainswap/build.sh | 28 ++- recipes/ucsc-chainswap/include.patch | 6 +- recipes/ucsc-chainswap/meta.yaml | 29 ++- recipes/ucsc-chaintoaxt/build.sh | 28 ++- recipes/ucsc-chaintoaxt/include.patch | 6 +- recipes/ucsc-chaintoaxt/meta.yaml | 29 ++- recipes/ucsc-chaintopsl/build.sh | 28 ++- recipes/ucsc-chaintopsl/include.patch | 6 +- recipes/ucsc-chaintopsl/meta.yaml | 29 ++- recipes/ucsc-chaintopslbasic/build.sh | 28 ++- recipes/ucsc-chaintopslbasic/include.patch | 6 +- recipes/ucsc-chaintopslbasic/meta.yaml | 29 ++- recipes/ucsc-checkagpandfa/build.sh | 28 ++- recipes/ucsc-checkagpandfa/include.patch | 6 +- recipes/ucsc-checkagpandfa/meta.yaml | 29 ++- recipes/ucsc-checkcoveragegaps/build.sh | 28 ++- recipes/ucsc-checkcoveragegaps/include.patch | 6 +- recipes/ucsc-checkcoveragegaps/meta.yaml | 28 ++- recipes/ucsc-checkhgfindspec/build.sh | 28 ++- .../build_failure.linux-64.yaml | 104 +++++++++ .../build_failure.linux-aarch64.yaml | 104 +++++++++ recipes/ucsc-checkhgfindspec/include.patch | 6 +- recipes/ucsc-checkhgfindspec/meta.yaml | 29 ++- recipes/ucsc-checktablecoords/build.sh | 28 ++- recipes/ucsc-checktablecoords/include.patch | 6 +- recipes/ucsc-checktablecoords/meta.yaml | 28 ++- recipes/ucsc-chopfalines/build.sh | 28 ++- recipes/ucsc-chopfalines/include.patch | 6 +- recipes/ucsc-chopfalines/meta.yaml | 29 ++- recipes/ucsc-chromgraphfrombin/build.sh | 28 ++- recipes/ucsc-chromgraphfrombin/include.patch | 6 +- recipes/ucsc-chromgraphfrombin/meta.yaml | 28 ++- recipes/ucsc-chromgraphtobin/build.sh | 28 ++- recipes/ucsc-chromgraphtobin/include.patch | 6 +- recipes/ucsc-chromgraphtobin/meta.yaml | 28 ++- .../build_failure.linux-64.yaml | 104 +++++++++ recipes/ucsc-coltransform/build.sh | 28 ++- recipes/ucsc-coltransform/include.patch | 6 +- recipes/ucsc-coltransform/meta.yaml | 29 ++- recipes/ucsc-countchars/build.sh | 28 ++- recipes/ucsc-countchars/include.patch | 6 +- recipes/ucsc-countchars/meta.yaml | 29 ++- recipes/ucsc-crtreeindexbed/build.sh | 28 ++- recipes/ucsc-crtreeindexbed/include.patch | 6 +- recipes/ucsc-crtreeindexbed/meta.yaml | 29 ++- recipes/ucsc-crtreesearchbed/build.sh | 28 ++- recipes/ucsc-crtreesearchbed/include.patch | 6 +- recipes/ucsc-crtreesearchbed/meta.yaml | 29 ++- recipes/ucsc-dbsnoop/build.sh | 28 ++- recipes/ucsc-dbsnoop/include.patch | 6 +- recipes/ucsc-dbsnoop/meta.yaml | 29 ++- recipes/ucsc-dbtrash/build.sh | 28 ++- recipes/ucsc-dbtrash/include.patch | 6 +- recipes/ucsc-dbtrash/meta.yaml | 28 ++- .../ucsc-endsinlf/build_failure.linux-64.yaml | 104 +++++++++ recipes/ucsc-estorient/build.sh | 28 ++- recipes/ucsc-estorient/include.patch | 6 +- recipes/ucsc-estorient/meta.yaml | 28 ++- recipes/ucsc-expmatrixtobarchartbed/build.sh | 7 +- .../ucsc-expmatrixtobarchartbed/include.patch | 6 +- recipes/ucsc-expmatrixtobarchartbed/meta.yaml | 26 ++- recipes/ucsc-faalign/build.sh | 28 ++- recipes/ucsc-faalign/include.patch | 6 +- recipes/ucsc-faalign/meta.yaml | 29 ++- recipes/ucsc-facmp/build.sh | 28 ++- recipes/ucsc-facmp/include.patch | 6 +- recipes/ucsc-facmp/meta.yaml | 29 ++- recipes/ucsc-facount/build.sh | 28 ++- recipes/ucsc-facount/include.patch | 6 +- recipes/ucsc-facount/meta.yaml | 29 ++- recipes/ucsc-fafilter/build.sh | 28 ++- recipes/ucsc-fafilter/include.patch | 6 +- recipes/ucsc-fafilter/meta.yaml | 29 ++- recipes/ucsc-fafiltern/build.sh | 28 ++- recipes/ucsc-fafiltern/include.patch | 6 +- recipes/ucsc-fafiltern/meta.yaml | 29 ++- recipes/ucsc-fafrag/build.sh | 28 ++- recipes/ucsc-fafrag/include.patch | 6 +- recipes/ucsc-fafrag/meta.yaml | 29 ++- recipes/ucsc-fanoise/build.sh | 28 ++- recipes/ucsc-fanoise/include.patch | 6 +- recipes/ucsc-fanoise/meta.yaml | 29 ++- recipes/ucsc-faonerecord/build.sh | 28 ++- recipes/ucsc-faonerecord/include.patch | 6 +- recipes/ucsc-faonerecord/meta.yaml | 29 ++- recipes/ucsc-fapolyasizes/build.sh | 28 ++- recipes/ucsc-fapolyasizes/include.patch | 6 +- recipes/ucsc-fapolyasizes/meta.yaml | 29 ++- recipes/ucsc-farandomize/build.sh | 28 ++- recipes/ucsc-farandomize/include.patch | 6 +- recipes/ucsc-farandomize/meta.yaml | 29 ++- recipes/ucsc-farc/build.sh | 28 ++- recipes/ucsc-farc/include.patch | 6 +- recipes/ucsc-farc/meta.yaml | 29 ++- recipes/ucsc-fasize/build.sh | 28 ++- recipes/ucsc-fasize/include.patch | 6 +- recipes/ucsc-fasize/meta.yaml | 29 ++- recipes/ucsc-fasomerecords/build.sh | 28 ++- recipes/ucsc-fasomerecords/include.patch | 33 +-- recipes/ucsc-fasomerecords/meta.yaml | 28 ++- recipes/ucsc-fasplit/build.sh | 28 ++- recipes/ucsc-fasplit/include.patch | 6 +- recipes/ucsc-fasplit/meta.yaml | 29 ++- recipes/ucsc-fastqstatsandsubsample/build.sh | 28 ++- .../ucsc-fastqstatsandsubsample/include.patch | 6 +- recipes/ucsc-fastqstatsandsubsample/meta.yaml | 29 ++- recipes/ucsc-fastqtofa/build.sh | 28 ++- recipes/ucsc-fastqtofa/include.patch | 6 +- recipes/ucsc-fastqtofa/meta.yaml | 29 ++- recipes/ucsc-fatofastq/build.sh | 28 ++- recipes/ucsc-fatofastq/include.patch | 6 +- recipes/ucsc-fatofastq/meta.yaml | 29 ++- recipes/ucsc-fatotab/build.sh | 28 ++- recipes/ucsc-fatotab/include.patch | 6 +- recipes/ucsc-fatotab/meta.yaml | 29 ++- recipes/ucsc-fatotwobit/build.sh | 22 +- recipes/ucsc-fatotwobit/include.patch | 2 +- recipes/ucsc-fatotwobit/meta.yaml | 14 +- recipes/ucsc-fatrans/build.sh | 28 ++- recipes/ucsc-fatrans/include.patch | 6 +- recipes/ucsc-fatrans/meta.yaml | 29 ++- recipes/ucsc-featurebits/build.sh | 28 ++- recipes/ucsc-featurebits/include.patch | 6 +- recipes/ucsc-featurebits/meta.yaml | 28 ++- recipes/ucsc-fetchchromsizes/build.sh | 6 +- recipes/ucsc-fetchchromsizes/include.patch | 12 +- recipes/ucsc-fetchchromsizes/meta.yaml | 15 +- recipes/ucsc-findmotif/build.sh | 28 ++- recipes/ucsc-findmotif/include.patch | 6 +- recipes/ucsc-findmotif/meta.yaml | 29 ++- recipes/ucsc-gaptolift/build.sh | 28 ++- recipes/ucsc-gaptolift/include.patch | 6 +- recipes/ucsc-gaptolift/meta.yaml | 28 ++- recipes/ucsc-genepredcheck/build.sh | 26 ++- recipes/ucsc-genepredcheck/include.patch | 26 +-- recipes/ucsc-genepredcheck/meta.yaml | 43 ++-- recipes/ucsc-genepredfilter/build.sh | 28 ++- recipes/ucsc-genepredfilter/include.patch | 6 +- recipes/ucsc-genepredfilter/meta.yaml | 28 ++- recipes/ucsc-genepredhisto/build.sh | 28 ++- recipes/ucsc-genepredhisto/include.patch | 6 +- recipes/ucsc-genepredhisto/meta.yaml | 28 ++- recipes/ucsc-genepredsinglecover/build.sh | 28 ++- .../ucsc-genepredsinglecover/include.patch | 6 +- recipes/ucsc-genepredsinglecover/meta.yaml | 28 ++- recipes/ucsc-genepredtobed/build.sh | 26 ++- recipes/ucsc-genepredtobed/include.patch | 26 +-- recipes/ucsc-genepredtobed/meta.yaml | 43 ++-- recipes/ucsc-genepredtobiggenepred/build.sh | 23 +- .../ucsc-genepredtobiggenepred/include.patch | 26 +-- recipes/ucsc-genepredtobiggenepred/meta.yaml | 41 ++-- recipes/ucsc-genepredtofakepsl/build.sh | 28 ++- recipes/ucsc-genepredtofakepsl/include.patch | 6 +- recipes/ucsc-genepredtofakepsl/meta.yaml | 28 ++- recipes/ucsc-genepredtogtf/build.sh | 23 +- recipes/ucsc-genepredtogtf/include.patch | 2 +- recipes/ucsc-genepredtogtf/meta.yaml | 16 +- recipes/ucsc-genepredtomafframes/build.sh | 28 ++- .../ucsc-genepredtomafframes/include.patch | 6 +- recipes/ucsc-genepredtomafframes/meta.yaml | 28 ++- recipes/ucsc-genepredtoprot/build.sh | 28 ++- recipes/ucsc-genepredtoprot/include.patch | 6 +- recipes/ucsc-genepredtoprot/meta.yaml | 28 ++- recipes/ucsc-gensub2/build.sh | 28 ++- recipes/ucsc-gensub2/include.patch | 6 +- recipes/ucsc-gensub2/meta.yaml | 29 ++- recipes/ucsc-getrna/build.sh | 28 ++- recipes/ucsc-getrna/include.patch | 6 +- recipes/ucsc-getrna/meta.yaml | 28 ++- recipes/ucsc-getrnapred/build.sh | 28 ++- recipes/ucsc-getrnapred/include.patch | 6 +- recipes/ucsc-getrnapred/meta.yaml | 28 ++- recipes/ucsc-gff3togenepred/build.sh | 26 ++- recipes/ucsc-gff3togenepred/include.patch | 26 +-- recipes/ucsc-gff3togenepred/meta.yaml | 43 ++-- recipes/ucsc-gff3topsl/build.sh | 28 ++- recipes/ucsc-gff3topsl/include.patch | 6 +- recipes/ucsc-gff3topsl/meta.yaml | 29 ++- recipes/ucsc-gmtime/build.sh | 28 ++- recipes/ucsc-gmtime/include.patch | 6 +- recipes/ucsc-gmtime/meta.yaml | 29 ++- recipes/ucsc-gtftogenepred/build.sh | 28 ++- recipes/ucsc-gtftogenepred/include.patch | 26 +-- recipes/ucsc-gtftogenepred/meta.yaml | 47 ++-- recipes/ucsc-headrest/build.sh | 28 ++- recipes/ucsc-headrest/include.patch | 6 +- recipes/ucsc-headrest/meta.yaml | 29 ++- recipes/ucsc-hgbbidblink/build.sh | 28 ++- recipes/ucsc-hgbbidblink/include.patch | 6 +- recipes/ucsc-hgbbidblink/meta.yaml | 29 ++- recipes/ucsc-hgfakeagp/build.sh | 28 ++- recipes/ucsc-hgfakeagp/include.patch | 6 +- recipes/ucsc-hgfakeagp/meta.yaml | 29 ++- recipes/ucsc-hgfindspec/build.sh | 28 ++- recipes/ucsc-hgfindspec/include.patch | 6 +- recipes/ucsc-hgfindspec/meta.yaml | 28 ++- recipes/ucsc-hggcpercent/build.sh | 26 ++- recipes/ucsc-hggcpercent/include.patch | 26 +-- recipes/ucsc-hggcpercent/meta.yaml | 38 ++-- .../build_failure.linux-64.yaml | 104 +++++++++ recipes/ucsc-hgloadbed/build.sh | 28 ++- recipes/ucsc-hgloadbed/include.patch | 6 +- recipes/ucsc-hgloadbed/meta.yaml | 28 ++- recipes/ucsc-hgloadchain/build.sh | 28 ++- recipes/ucsc-hgloadchain/include.patch | 6 +- recipes/ucsc-hgloadchain/meta.yaml | 28 ++- recipes/ucsc-hgloadmaf/build.sh | 28 ++- recipes/ucsc-hgloadmaf/include.patch | 6 +- recipes/ucsc-hgloadmaf/meta.yaml | 28 ++- recipes/ucsc-hgloadnet/build.sh | 28 ++- recipes/ucsc-hgloadnet/include.patch | 6 +- recipes/ucsc-hgloadnet/meta.yaml | 28 ++- recipes/ucsc-hgloadout/build.sh | 28 ++- recipes/ucsc-hgloadout/include.patch | 6 +- recipes/ucsc-hgloadout/meta.yaml | 28 ++- recipes/ucsc-hgloadoutjoined/build.sh | 28 ++- recipes/ucsc-hgloadoutjoined/include.patch | 6 +- recipes/ucsc-hgloadoutjoined/meta.yaml | 28 ++- recipes/ucsc-hgloadsqltab/build.sh | 28 ++- recipes/ucsc-hgloadsqltab/include.patch | 6 +- recipes/ucsc-hgloadsqltab/meta.yaml | 29 ++- recipes/ucsc-hgloadwiggle/build.sh | 28 ++- recipes/ucsc-hgloadwiggle/include.patch | 6 +- recipes/ucsc-hgloadwiggle/meta.yaml | 28 ++- recipes/ucsc-hgspeciesrna/build.sh | 28 ++- recipes/ucsc-hgspeciesrna/include.patch | 6 +- recipes/ucsc-hgspeciesrna/meta.yaml | 28 ++- recipes/ucsc-hgsqldump/build.sh | 28 ++- recipes/ucsc-hgsqldump/include.patch | 6 +- recipes/ucsc-hgsqldump/meta.yaml | 29 ++- recipes/ucsc-hgtrackdb/build.sh | 28 ++- .../build_failure.linux-64.yaml | 104 +++++++++ recipes/ucsc-hgtrackdb/include.patch | 6 +- recipes/ucsc-hgtrackdb/meta.yaml | 28 ++- .../build_failure.linux-64.yaml | 104 +++++++++ recipes/ucsc-htmlcheck/build.sh | 28 ++- recipes/ucsc-htmlcheck/include.patch | 6 +- recipes/ucsc-htmlcheck/meta.yaml | 29 ++- recipes/ucsc-hubcheck/build.sh | 28 ++- .../ucsc-hubcheck/build_failure.linux-64.yaml | 104 +++++++++ recipes/ucsc-hubcheck/include.patch | 6 +- recipes/ucsc-hubcheck/meta.yaml | 28 ++- recipes/ucsc-hubpubliccheck/build.sh | 28 ++- recipes/ucsc-hubpubliccheck/include.patch | 6 +- recipes/ucsc-hubpubliccheck/meta.yaml | 28 ++- recipes/ucsc-ixixx/build.sh | 13 +- recipes/ucsc-ixixx/include.patch | 12 +- recipes/ucsc-ixixx/meta.yaml | 15 +- recipes/ucsc-lavtoaxt/build.sh | 28 ++- recipes/ucsc-lavtoaxt/include.patch | 6 +- recipes/ucsc-lavtoaxt/meta.yaml | 29 ++- recipes/ucsc-lavtopsl/build.sh | 28 ++- recipes/ucsc-lavtopsl/include.patch | 6 +- recipes/ucsc-lavtopsl/meta.yaml | 29 ++- recipes/ucsc-ldhggene/build.sh | 28 ++- recipes/ucsc-ldhggene/include.patch | 6 +- recipes/ucsc-ldhggene/meta.yaml | 28 ++- recipes/ucsc-liftover/build.sh | 26 ++- recipes/ucsc-liftover/include.patch | 26 +-- recipes/ucsc-liftover/meta.yaml | 43 ++-- recipes/ucsc-liftup/build.sh | 28 ++- recipes/ucsc-liftup/include.patch | 6 +- recipes/ucsc-liftup/meta.yaml | 28 ++- recipes/ucsc-linestora/build.sh | 28 ++- recipes/ucsc-linestora/include.patch | 6 +- recipes/ucsc-linestora/meta.yaml | 29 ++- recipes/ucsc-localtime/build.sh | 28 ++- recipes/ucsc-localtime/include.patch | 6 +- recipes/ucsc-localtime/meta.yaml | 29 ++- recipes/ucsc-mafaddirows/build.sh | 28 ++- recipes/ucsc-mafaddirows/include.patch | 6 +- recipes/ucsc-mafaddirows/meta.yaml | 29 ++- recipes/ucsc-mafaddqrows/build.sh | 28 ++- recipes/ucsc-mafaddqrows/include.patch | 6 +- recipes/ucsc-mafaddqrows/meta.yaml | 29 ++- recipes/ucsc-mafcoverage/build.sh | 28 ++- recipes/ucsc-mafcoverage/include.patch | 6 +- recipes/ucsc-mafcoverage/meta.yaml | 28 ++- recipes/ucsc-maffetch/build.sh | 28 ++- recipes/ucsc-maffetch/include.patch | 6 +- recipes/ucsc-maffetch/meta.yaml | 28 ++- recipes/ucsc-maffilter/build.sh | 28 ++- recipes/ucsc-maffilter/include.patch | 6 +- recipes/ucsc-maffilter/meta.yaml | 29 ++- recipes/ucsc-maffrag/build.sh | 28 ++- recipes/ucsc-maffrag/include.patch | 6 +- recipes/ucsc-maffrag/meta.yaml | 28 ++- recipes/ucsc-maffrags/build.sh | 28 ++- recipes/ucsc-maffrags/include.patch | 6 +- recipes/ucsc-maffrags/meta.yaml | 28 ++- recipes/ucsc-mafgene/build.sh | 28 ++- recipes/ucsc-mafgene/include.patch | 6 +- recipes/ucsc-mafgene/meta.yaml | 28 ++- recipes/ucsc-mafmefirst/build.sh | 28 ++- recipes/ucsc-mafmefirst/include.patch | 6 +- recipes/ucsc-mafmefirst/meta.yaml | 29 ++- recipes/ucsc-maforder/build.sh | 28 ++- recipes/ucsc-maforder/include.patch | 6 +- recipes/ucsc-maforder/meta.yaml | 29 ++- recipes/ucsc-mafranges/build.sh | 28 ++- recipes/ucsc-mafranges/include.patch | 6 +- recipes/ucsc-mafranges/meta.yaml | 29 ++- recipes/ucsc-mafsinregion/build.sh | 28 ++- recipes/ucsc-mafsinregion/include.patch | 6 +- recipes/ucsc-mafsinregion/meta.yaml | 29 ++- recipes/ucsc-mafspecieslist/build.sh | 28 ++- recipes/ucsc-mafspecieslist/include.patch | 6 +- recipes/ucsc-mafspecieslist/meta.yaml | 29 ++- recipes/ucsc-mafspeciessubset/build.sh | 28 ++- recipes/ucsc-mafspeciessubset/include.patch | 6 +- recipes/ucsc-mafspeciessubset/meta.yaml | 29 ++- recipes/ucsc-mafsplit/build.sh | 28 ++- recipes/ucsc-mafsplit/include.patch | 6 +- recipes/ucsc-mafsplit/meta.yaml | 29 ++- recipes/ucsc-mafsplitpos/build.sh | 28 ++- recipes/ucsc-mafsplitpos/include.patch | 6 +- recipes/ucsc-mafsplitpos/meta.yaml | 28 ++- recipes/ucsc-maftoaxt/build.sh | 28 ++- recipes/ucsc-maftoaxt/include.patch | 6 +- recipes/ucsc-maftoaxt/meta.yaml | 29 ++- recipes/ucsc-maftobigmaf/build.sh | 28 ++- recipes/ucsc-maftobigmaf/include.patch | 6 +- recipes/ucsc-maftobigmaf/meta.yaml | 29 ++- recipes/ucsc-maftopsl/build.sh | 28 ++- recipes/ucsc-maftopsl/include.patch | 6 +- recipes/ucsc-maftopsl/meta.yaml | 29 ++- recipes/ucsc-maftosnpbed/build.sh | 28 ++- recipes/ucsc-maftosnpbed/include.patch | 6 +- recipes/ucsc-maftosnpbed/meta.yaml | 28 ++- recipes/ucsc-maketablelist/build.sh | 28 ++- recipes/ucsc-maketablelist/include.patch | 6 +- recipes/ucsc-maketablelist/meta.yaml | 28 ++- recipes/ucsc-maskoutfa/build.sh | 28 ++- recipes/ucsc-maskoutfa/include.patch | 6 +- recipes/ucsc-maskoutfa/meta.yaml | 29 ++- recipes/ucsc-mktime/build.sh | 28 ++- recipes/ucsc-mktime/include.patch | 6 +- recipes/ucsc-mktime/meta.yaml | 29 ++- recipes/ucsc-mrnatogene/build.sh | 28 ++- recipes/ucsc-mrnatogene/include.patch | 6 +- recipes/ucsc-mrnatogene/meta.yaml | 28 ++- recipes/ucsc-netchainsubset/build.sh | 28 ++- recipes/ucsc-netchainsubset/include.patch | 6 +- recipes/ucsc-netchainsubset/meta.yaml | 29 ++- recipes/ucsc-netclass/build.sh | 28 ++- recipes/ucsc-netclass/include.patch | 6 +- recipes/ucsc-netclass/meta.yaml | 28 ++- recipes/ucsc-netfilter/build.sh | 28 ++- recipes/ucsc-netfilter/include.patch | 6 +- recipes/ucsc-netfilter/meta.yaml | 29 ++- recipes/ucsc-netsplit/build.sh | 28 ++- recipes/ucsc-netsplit/include.patch | 6 +- recipes/ucsc-netsplit/meta.yaml | 29 ++- recipes/ucsc-netsyntenic/build.sh | 28 ++- recipes/ucsc-netsyntenic/include.patch | 6 +- recipes/ucsc-netsyntenic/meta.yaml | 29 ++- recipes/ucsc-nettoaxt/build.sh | 28 ++- recipes/ucsc-nettoaxt/include.patch | 6 +- recipes/ucsc-nettoaxt/meta.yaml | 29 ++- recipes/ucsc-nettobed/build.sh | 28 ++- recipes/ucsc-nettobed/include.patch | 6 +- recipes/ucsc-nettobed/meta.yaml | 29 ++- recipes/ucsc-newprog/build.sh | 28 ++- recipes/ucsc-newprog/include.patch | 6 +- recipes/ucsc-newprog/meta.yaml | 29 ++- recipes/ucsc-newpythonprog/build.sh | 28 ++- recipes/ucsc-newpythonprog/include.patch | 6 +- recipes/ucsc-newpythonprog/meta.yaml | 29 ++- recipes/ucsc-nibfrag/build.sh | 10 +- recipes/ucsc-nibfrag/meta.yaml | 13 +- recipes/ucsc-nibsize/build.sh | 28 ++- recipes/ucsc-nibsize/include.patch | 6 +- recipes/ucsc-nibsize/meta.yaml | 29 ++- recipes/ucsc-oligomatch/build.sh | 10 +- recipes/ucsc-oligomatch/meta.yaml | 13 +- recipes/ucsc-overlapselect/build.sh | 31 +-- recipes/ucsc-overlapselect/include.patch | 6 +- recipes/ucsc-overlapselect/meta.yaml | 28 ++- recipes/ucsc-para/build.sh | 28 ++- recipes/ucsc-para/include.patch | 6 +- recipes/ucsc-para/meta.yaml | 29 ++- recipes/ucsc-parafetch/build.sh | 28 ++- recipes/ucsc-parafetch/include.patch | 6 +- recipes/ucsc-parafetch/meta.yaml | 29 ++- recipes/ucsc-parahub/build.sh | 28 ++- recipes/ucsc-parahub/include.patch | 6 +- recipes/ucsc-parahub/meta.yaml | 29 ++- recipes/ucsc-parahubstop/build.sh | 28 ++- recipes/ucsc-parahubstop/include.patch | 6 +- recipes/ucsc-parahubstop/meta.yaml | 29 ++- recipes/ucsc-paranode/build.sh | 28 ++- recipes/ucsc-paranode/include.patch | 6 +- recipes/ucsc-paranode/meta.yaml | 29 ++- recipes/ucsc-paranodestart/build.sh | 28 ++- recipes/ucsc-paranodestart/include.patch | 6 +- recipes/ucsc-paranodestart/meta.yaml | 29 ++- recipes/ucsc-paranodestatus/build.sh | 28 ++- recipes/ucsc-paranodestatus/include.patch | 6 +- recipes/ucsc-paranodestatus/meta.yaml | 29 ++- recipes/ucsc-paranodestop/build.sh | 28 ++- recipes/ucsc-paranodestop/include.patch | 6 +- recipes/ucsc-paranodestop/meta.yaml | 29 ++- recipes/ucsc-parasol/build.sh | 28 ++- recipes/ucsc-parasol/include.patch | 6 +- recipes/ucsc-parasol/meta.yaml | 29 ++- recipes/ucsc-parasync/build.sh | 28 ++- recipes/ucsc-parasync/include.patch | 6 +- recipes/ucsc-parasync/meta.yaml | 29 ++- recipes/ucsc-paratestjob/build.sh | 28 ++- recipes/ucsc-paratestjob/include.patch | 6 +- recipes/ucsc-paratestjob/meta.yaml | 29 ++- recipes/ucsc-positionaltblcheck/build.sh | 28 ++- recipes/ucsc-positionaltblcheck/include.patch | 6 +- recipes/ucsc-positionaltblcheck/meta.yaml | 28 ++- recipes/ucsc-pslcat/build.sh | 28 ++- recipes/ucsc-pslcat/include.patch | 6 +- recipes/ucsc-pslcat/meta.yaml | 29 ++- recipes/ucsc-pslcdnafilter/build.sh | 30 ++- recipes/ucsc-pslcdnafilter/include.patch | 26 +-- recipes/ucsc-pslcdnafilter/meta.yaml | 33 +-- recipes/ucsc-pslcheck/build.sh | 28 ++- recipes/ucsc-pslcheck/include.patch | 6 +- recipes/ucsc-pslcheck/meta.yaml | 28 ++- recipes/ucsc-psldropoverlap/build.sh | 28 ++- recipes/ucsc-psldropoverlap/include.patch | 6 +- recipes/ucsc-psldropoverlap/meta.yaml | 29 ++- recipes/ucsc-pslfilter/build.sh | 28 ++- recipes/ucsc-pslfilter/include.patch | 6 +- recipes/ucsc-pslfilter/meta.yaml | 29 ++- recipes/ucsc-pslhisto/build.sh | 10 +- recipes/ucsc-pslhisto/meta.yaml | 13 +- recipes/ucsc-pslliftsubrangeblat/build.sh | 28 ++- .../ucsc-pslliftsubrangeblat/include.patch | 6 +- recipes/ucsc-pslliftsubrangeblat/meta.yaml | 28 ++- recipes/ucsc-pslmap/build.sh | 30 ++- recipes/ucsc-pslmap/include.patch | 6 +- recipes/ucsc-pslmap/meta.yaml | 29 ++- recipes/ucsc-pslmappostchain/build.sh | 28 ++- recipes/ucsc-pslmappostchain/include.patch | 6 +- recipes/ucsc-pslmappostchain/meta.yaml | 29 ++- recipes/ucsc-pslmrnacover/build.sh | 2 +- recipes/ucsc-pslmrnacover/meta.yaml | 5 +- recipes/ucsc-pslpairs/build.sh | 12 +- recipes/ucsc-pslpairs/meta.yaml | 13 +- recipes/ucsc-pslpartition/build.sh | 28 ++- recipes/ucsc-pslpartition/include.patch | 6 +- recipes/ucsc-pslpartition/meta.yaml | 29 ++- recipes/ucsc-pslpostarget/build.sh | 10 +- recipes/ucsc-pslpostarget/meta.yaml | 13 +- recipes/ucsc-pslpretty/build.sh | 28 ++- recipes/ucsc-pslpretty/include.patch | 6 +- recipes/ucsc-pslpretty/meta.yaml | 29 ++- recipes/ucsc-pslrc/build.sh | 28 ++- recipes/ucsc-pslrc/include.patch | 6 +- recipes/ucsc-pslrc/meta.yaml | 29 ++- recipes/ucsc-pslrecalcmatch/build.sh | 10 +- recipes/ucsc-pslrecalcmatch/meta.yaml | 13 +- recipes/ucsc-pslreps/build.sh | 28 ++- recipes/ucsc-pslreps/include.patch | 6 +- recipes/ucsc-pslreps/meta.yaml | 29 ++- recipes/ucsc-pslscore/build.sh | 28 ++- recipes/ucsc-pslscore/include.patch | 6 +- recipes/ucsc-pslscore/meta.yaml | 29 ++- recipes/ucsc-pslselect/build.sh | 28 ++- recipes/ucsc-pslselect/include.patch | 6 +- recipes/ucsc-pslselect/meta.yaml | 29 ++- recipes/ucsc-pslsomerecords/build.sh | 28 ++- recipes/ucsc-pslsomerecords/include.patch | 6 +- recipes/ucsc-pslsomerecords/meta.yaml | 29 ++- recipes/ucsc-pslsort/build.sh | 10 +- recipes/ucsc-pslsort/meta.yaml | 13 +- recipes/ucsc-pslstats/build.sh | 28 ++- recipes/ucsc-pslstats/include.patch | 6 +- recipes/ucsc-pslstats/meta.yaml | 29 ++- recipes/ucsc-pslswap/build.sh | 28 ++- recipes/ucsc-pslswap/include.patch | 6 +- recipes/ucsc-pslswap/meta.yaml | 29 ++- recipes/ucsc-psltobed/build.sh | 10 +- recipes/ucsc-psltobed/meta.yaml | 13 +- recipes/ucsc-psltobigpsl/build.sh | 28 ++- recipes/ucsc-psltobigpsl/include.patch | 6 +- recipes/ucsc-psltobigpsl/meta.yaml | 28 ++- recipes/ucsc-psltochain/build.sh | 10 +- recipes/ucsc-psltochain/meta.yaml | 13 +- recipes/ucsc-psltopslx/build.sh | 28 ++- recipes/ucsc-psltopslx/include.patch | 6 +- recipes/ucsc-psltopslx/meta.yaml | 29 ++- recipes/ucsc-pslxtofa/build.sh | 28 ++- recipes/ucsc-pslxtofa/include.patch | 6 +- recipes/ucsc-pslxtofa/meta.yaml | 29 ++- recipes/ucsc-qacagplift/build.sh | 28 ++- recipes/ucsc-qacagplift/include.patch | 6 +- recipes/ucsc-qacagplift/meta.yaml | 29 ++- recipes/ucsc-qactoqa/build.sh | 28 ++- recipes/ucsc-qactoqa/include.patch | 6 +- recipes/ucsc-qactoqa/meta.yaml | 29 ++- recipes/ucsc-qactowig/build.sh | 10 +- recipes/ucsc-qactowig/meta.yaml | 13 +- recipes/ucsc-qatoqac/build.sh | 28 ++- recipes/ucsc-qatoqac/include.patch | 6 +- recipes/ucsc-qatoqac/meta.yaml | 29 ++- recipes/ucsc-randomlines/build.sh | 28 ++- recipes/ucsc-randomlines/include.patch | 6 +- recipes/ucsc-randomlines/meta.yaml | 29 ++- recipes/ucsc-rasqlquery/build.sh | 28 ++- recipes/ucsc-rasqlquery/include.patch | 6 +- recipes/ucsc-rasqlquery/meta.yaml | 28 ++- recipes/ucsc-ratolines/build.sh | 28 ++- recipes/ucsc-ratolines/include.patch | 6 +- recipes/ucsc-ratolines/meta.yaml | 29 ++- recipes/ucsc-ratotab/build.sh | 28 ++- recipes/ucsc-ratotab/include.patch | 6 +- recipes/ucsc-ratotab/meta.yaml | 29 ++- recipes/ucsc-rmfadups/build.sh | 28 ++- recipes/ucsc-rmfadups/include.patch | 6 +- recipes/ucsc-rmfadups/meta.yaml | 29 ++- recipes/ucsc-rowstocols/build.sh | 28 ++- recipes/ucsc-rowstocols/include.patch | 6 +- recipes/ucsc-rowstocols/meta.yaml | 29 ++- recipes/ucsc-spacedtotab/build.sh | 28 ++- recipes/ucsc-spacedtotab/include.patch | 6 +- recipes/ucsc-spacedtotab/meta.yaml | 29 ++- recipes/ucsc-splitfile/build.sh | 28 ++- recipes/ucsc-splitfile/include.patch | 6 +- recipes/ucsc-splitfile/meta.yaml | 29 ++- recipes/ucsc-splitfilebycolumn/build.sh | 28 ++- recipes/ucsc-splitfilebycolumn/include.patch | 6 +- recipes/ucsc-splitfilebycolumn/meta.yaml | 29 ++- recipes/ucsc-sqltoxml/build.sh | 28 ++- recipes/ucsc-sqltoxml/include.patch | 6 +- recipes/ucsc-sqltoxml/meta.yaml | 29 ++- recipes/ucsc-stringify/build.sh | 10 +- recipes/ucsc-stringify/meta.yaml | 15 +- recipes/ucsc-subchar/build.sh | 10 +- recipes/ucsc-subchar/meta.yaml | 13 +- recipes/ucsc-subcolumn/build.sh | 28 ++- recipes/ucsc-subcolumn/include.patch | 6 +- recipes/ucsc-subcolumn/meta.yaml | 29 ++- recipes/ucsc-taillines/build.sh | 28 ++- recipes/ucsc-taillines/include.patch | 6 +- recipes/ucsc-taillines/meta.yaml | 29 ++- recipes/ucsc-tdbquery/build.sh | 28 ++- recipes/ucsc-tdbquery/include.patch | 6 +- recipes/ucsc-tdbquery/meta.yaml | 28 ++- recipes/ucsc-texthistogram/build.sh | 28 ++- recipes/ucsc-texthistogram/include.patch | 6 +- recipes/ucsc-texthistogram/meta.yaml | 29 ++- recipes/ucsc-ticktodate/build.sh | 28 ++- recipes/ucsc-ticktodate/include.patch | 6 +- recipes/ucsc-ticktodate/meta.yaml | 29 ++- recipes/ucsc-tolower/build.sh | 10 +- recipes/ucsc-tolower/meta.yaml | 14 +- recipes/ucsc-toupper/build.sh | 28 ++- recipes/ucsc-toupper/include.patch | 6 +- recipes/ucsc-toupper/meta.yaml | 29 ++- recipes/ucsc-transmappsltogenepred/build.sh | 28 ++- .../ucsc-transmappsltogenepred/include.patch | 6 +- recipes/ucsc-transmappsltogenepred/meta.yaml | 28 ++- recipes/ucsc-trfbig/build.sh | 28 ++- recipes/ucsc-trfbig/include.patch | 6 +- recipes/ucsc-trfbig/meta.yaml | 29 ++- recipes/ucsc-twobitdup/build.sh | 28 ++- recipes/ucsc-twobitdup/include.patch | 6 +- recipes/ucsc-twobitdup/meta.yaml | 29 ++- recipes/ucsc-twobitinfo/build.sh | 28 ++- recipes/ucsc-twobitinfo/include.patch | 26 +-- recipes/ucsc-twobitinfo/meta.yaml | 34 +-- recipes/ucsc-twobitmask/build.sh | 28 ++- recipes/ucsc-twobitmask/include.patch | 6 +- recipes/ucsc-twobitmask/meta.yaml | 29 ++- recipes/ucsc-twobittofa/build.sh | 26 ++- recipes/ucsc-twobittofa/include.patch | 26 +-- recipes/ucsc-twobittofa/meta.yaml | 44 ++-- recipes/ucsc-validatefiles/build.sh | 28 ++- recipes/ucsc-validatefiles/include.patch | 6 +- recipes/ucsc-validatefiles/meta.yaml | 28 ++- recipes/ucsc-validatemanifest/build.sh | 28 ++- recipes/ucsc-validatemanifest/include.patch | 6 +- recipes/ucsc-validatemanifest/meta.yaml | 29 ++- recipes/ucsc-websync/build.sh | 9 +- recipes/ucsc-websync/include.patch | 6 +- recipes/ucsc-websync/meta.yaml | 26 ++- recipes/ucsc-wigcorrelate/build.sh | 28 ++- recipes/ucsc-wigcorrelate/include.patch | 6 +- recipes/ucsc-wigcorrelate/meta.yaml | 29 ++- recipes/ucsc-wigtobigwig/build.sh | 28 ++- recipes/ucsc-wigtobigwig/include.patch | 26 +-- recipes/ucsc-wigtobigwig/meta.yaml | 44 ++-- recipes/ucsc-wordline/build.sh | 28 ++- recipes/ucsc-wordline/include.patch | 6 +- recipes/ucsc-wordline/meta.yaml | 29 ++- recipes/ucsc-xmlcat/build.sh | 12 +- recipes/ucsc-xmlcat/meta.yaml | 13 +- recipes/ucsc-xmltosql/build.sh | 28 ++- recipes/ucsc-xmltosql/include.patch | 6 +- recipes/ucsc-xmltosql/meta.yaml | 29 ++- scripts/ucsc/create-ucsc-packages.py | 60 ++++++ scripts/ucsc/template-meta-with-python.yaml | 7 +- scripts/ucsc/template-meta.yaml | 3 +- 764 files changed, 11060 insertions(+), 5908 deletions(-) create mode 100644 recipes/flye/build_failure.osx-arm64.yaml create mode 100644 recipes/sorted_nearest/build_failure.osx-arm64.yaml create mode 100644 recipes/ucsc-bamtopsl/build_failure.linux-aarch64.yaml create mode 100644 recipes/ucsc-bedjointaboffset/build_failure.linux-64.yaml create mode 100644 recipes/ucsc-bedjointaboffset/build_failure.linux-aarch64.yaml create mode 100644 recipes/ucsc-chainbridge/build_failure.linux-64.yaml create mode 100644 recipes/ucsc-checkhgfindspec/build_failure.linux-64.yaml create mode 100644 recipes/ucsc-checkhgfindspec/build_failure.linux-aarch64.yaml create mode 100644 recipes/ucsc-clustergenes/build_failure.linux-64.yaml create mode 100644 recipes/ucsc-endsinlf/build_failure.linux-64.yaml create mode 100644 recipes/ucsc-hggoldgapgl/build_failure.linux-64.yaml create mode 100644 recipes/ucsc-hgtrackdb/build_failure.linux-64.yaml create mode 100644 recipes/ucsc-hgvstovcf/build_failure.linux-64.yaml create mode 100644 recipes/ucsc-hubcheck/build_failure.linux-64.yaml diff --git a/.github/workflows/Bulk.yml b/.github/workflows/Bulk.yml index 38e3f8248cf8b..f04fc084c8a1e 100644 --- a/.github/workflows/Bulk.yml +++ b/.github/workflows/Bulk.yml @@ -128,9 +128,9 @@ jobs: runs-on: macOS-14 # M1 strategy: fail-fast: false - max-parallel: 4 + max-parallel: 1 # GHA free plan allows 5 concurrent Mac runners total, we still need most on osx-64. matrix: - runner: [0, 1, 2, 3] + runner: [0] steps: - uses: actions/checkout@v4 with: @@ -179,7 +179,7 @@ jobs: python -c 'import bioconda_utils.utils as u ; import pathlib as p ; print(*(f"{f}:\n{p.Path(f).read_text()}" for f in u.load_conda_build_config().exclusive_config_files), sep="\n")' echo '============' bioconda-utils build recipes config.yml \ - --worker-offset ${{ matrix.runner }} --n-workers 4 \ + --worker-offset ${{ matrix.runner }} --n-workers 1 \ --lint --anaconda-upload --record-build-failures --skiplist-leafs \ --exclude bioconda-repodata-patches conda clean -y --all diff --git a/build-fail-blacklist b/build-fail-blacklist index da85474fca2cb..d3670c5dc160a 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -632,10 +632,6 @@ recipes/tedna recipes/transtermhp recipes/carna -# stringify can't find libmysqlclient.18 -recipes/ucsc-overlapselect -recipes/ucsc-pslmap - # Source seems to have moved recipes/discovar @@ -760,202 +756,6 @@ recipes/maker # Takes hours to solve the environment recipes/rop -# Need to redo the skeletons for these -recipes/ucsc-axttomaf -recipes/ucsc-bamtopsl -recipes/ucsc-bedcoverage -recipes/ucsc-bedextendranges -recipes/ucsc-bedintersect -recipes/ucsc-beditemoverlapcount -recipes/ucsc-bedjointaboffset -recipes/ucsc-bedpileups -recipes/ucsc-bedrestricttopositions -recipes/ucsc-bedtopsl -recipes/ucsc-bedweedoverlapping -recipes/ucsc-blasttopsl -recipes/ucsc-catdir -recipes/ucsc-catuncomment -recipes/ucsc-chainbridge -recipes/ucsc-chainfilter -recipes/ucsc-chainnet -recipes/ucsc-chainprenet -recipes/ucsc-chainsplit -recipes/ucsc-chainstitchid -recipes/ucsc-chainswap -recipes/ucsc-chaintoaxt -recipes/ucsc-chaintopsl -recipes/ucsc-chaintopslbasic -recipes/ucsc-checkagpandfa -recipes/ucsc-checkcoveragegaps -recipes/ucsc-checkhgfindspec -recipes/ucsc-checktablecoords -recipes/ucsc-chopfalines -recipes/ucsc-chromgraphfrombin -recipes/ucsc-chromgraphtobin -recipes/ucsc-clustergenes -recipes/ucsc-coltransform -recipes/ucsc-countchars -recipes/ucsc-crtreeindexbed -recipes/ucsc-crtreesearchbed -recipes/ucsc-dbsnoop -recipes/ucsc-dbtrash -recipes/ucsc-endsinlf -recipes/ucsc-estorient -recipes/ucsc-expmatrixtobarchartbed -recipes/ucsc-faalign -recipes/ucsc-facmp -recipes/ucsc-facount -recipes/ucsc-fafilter -recipes/ucsc-fafiltern -recipes/ucsc-fafrag -recipes/ucsc-fanoise -recipes/ucsc-faonerecord -recipes/ucsc-fapolyasizes -recipes/ucsc-farandomize -recipes/ucsc-farc -recipes/ucsc-fasize -recipes/ucsc-fasplit -recipes/ucsc-fastqstatsandsubsample -recipes/ucsc-fastqtofa -recipes/ucsc-fatofastq -recipes/ucsc-fatotab -recipes/ucsc-fatrans -recipes/ucsc-featurebits -recipes/ucsc-findmotif -recipes/ucsc-gaptolift -recipes/ucsc-genepredfilter -recipes/ucsc-genepredhisto -recipes/ucsc-genepredsinglecover -recipes/ucsc-genepredtofakepsl -recipes/ucsc-genepredtomafframes -recipes/ucsc-genepredtoprot -recipes/ucsc-gensub2 -recipes/ucsc-getrna -recipes/ucsc-getrnapred -recipes/ucsc-gff3topsl -recipes/ucsc-gmtime -recipes/ucsc-headrest -recipes/ucsc-hgbbidblink -recipes/ucsc-hgfakeagp -recipes/ucsc-hgfindspec -recipes/ucsc-hggoldgapgl -recipes/ucsc-hgloadbed -recipes/ucsc-hgloadchain -recipes/ucsc-hgloadmaf -recipes/ucsc-hgloadnet -recipes/ucsc-hgloadout -recipes/ucsc-hgloadoutjoined -recipes/ucsc-hgloadsqltab -recipes/ucsc-hgloadwiggle -recipes/ucsc-hgspeciesrna -recipes/ucsc-hgsqldump -recipes/ucsc-hgtrackdb -recipes/ucsc-hgvstovcf -recipes/ucsc-htmlcheck -recipes/ucsc-hubcheck -recipes/ucsc-hubpubliccheck -recipes/ucsc-lavtoaxt -recipes/ucsc-lavtopsl -recipes/ucsc-ldhggene -recipes/ucsc-liftup -recipes/ucsc-linestora -recipes/ucsc-localtime -recipes/ucsc-mafaddirows -recipes/ucsc-mafaddqrows -recipes/ucsc-mafcoverage -recipes/ucsc-maffetch -recipes/ucsc-maffilter -recipes/ucsc-maffrag -recipes/ucsc-maffrags -recipes/ucsc-mafgene -recipes/ucsc-mafmefirst -recipes/ucsc-maforder -recipes/ucsc-mafranges -recipes/ucsc-mafsinregion -recipes/ucsc-mafspecieslist -recipes/ucsc-mafspeciessubset -recipes/ucsc-mafsplit -recipes/ucsc-mafsplitpos -recipes/ucsc-maftoaxt -recipes/ucsc-maftobigmaf -recipes/ucsc-maftopsl -recipes/ucsc-maftosnpbed -recipes/ucsc-maketablelist -recipes/ucsc-maskoutfa -recipes/ucsc-mktime -recipes/ucsc-mrnatogene -recipes/ucsc-netchainsubset -recipes/ucsc-netclass -recipes/ucsc-netfilter -recipes/ucsc-netsplit -recipes/ucsc-netsyntenic -recipes/ucsc-nettoaxt -recipes/ucsc-nettobed -recipes/ucsc-newprog -recipes/ucsc-newpythonprog -recipes/ucsc-nibsize -recipes/ucsc-overlapselect -recipes/ucsc-para -recipes/ucsc-parafetch -recipes/ucsc-parahub -recipes/ucsc-parahubstop -recipes/ucsc-paranode -recipes/ucsc-paranodestart -recipes/ucsc-paranodestatus -recipes/ucsc-paranodestop -recipes/ucsc-parasol -recipes/ucsc-parasync -recipes/ucsc-paratestjob -recipes/ucsc-positionaltblcheck -recipes/ucsc-pslcat -recipes/ucsc-pslcheck -recipes/ucsc-psldropoverlap -recipes/ucsc-pslfilter -recipes/ucsc-pslliftsubrangeblat -recipes/ucsc-pslmap -recipes/ucsc-pslmappostchain -recipes/ucsc-pslpartition -recipes/ucsc-pslpretty -recipes/ucsc-pslrc -recipes/ucsc-pslreps -recipes/ucsc-pslscore -recipes/ucsc-pslselect -recipes/ucsc-pslsomerecords -recipes/ucsc-pslstats -recipes/ucsc-pslswap -recipes/ucsc-psltobigpsl -recipes/ucsc-psltopslx -recipes/ucsc-pslxtofa -recipes/ucsc-qacagplift -recipes/ucsc-qactoqa -recipes/ucsc-qatoqac -recipes/ucsc-randomlines -recipes/ucsc-rasqlquery -recipes/ucsc-ratolines -recipes/ucsc-ratotab -recipes/ucsc-rmfadups -recipes/ucsc-rowstocols -recipes/ucsc-spacedtotab -recipes/ucsc-splitfile -recipes/ucsc-splitfilebycolumn -recipes/ucsc-sqltoxml -recipes/ucsc-subcolumn -recipes/ucsc-taillines -recipes/ucsc-tdbquery -recipes/ucsc-texthistogram -recipes/ucsc-ticktodate -recipes/ucsc-toupper -recipes/ucsc-transmappsltogenepred -recipes/ucsc-trfbig -recipes/ucsc-twobitdup -recipes/ucsc-twobitmask -recipes/ucsc-validatefiles -recipes/ucsc-validatemanifest -recipes/ucsc-websync -recipes/ucsc-wigcorrelate -recipes/ucsc-wordline -recipes/ucsc-xmltosql - # Above v1.0.5 there are licensing restrictions and it cannot be distributed # via bioconda. See https://github.com/bioconda/bioconda-recipes/pull/23476. recipes/fishtaco diff --git a/recipes/flye/build_failure.osx-arm64.yaml b/recipes/flye/build_failure.osx-arm64.yaml new file mode 100644 index 0000000000000..53425473597e7 --- /dev/null +++ b/recipes/flye/build_failure.osx-arm64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 172c692d9e3bfbb5893c55d2f193b4bf7850c328e906cbd3c7b3328854b86677 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + + changing mode of $PREFIX/bin/flye to 755 + Successfully installed flye-2.9.5 + Removed build tracker: '/private/tmp/pip-build-tracker-h4l5mldh' + + Resource usage statistics from building flye: + Process count: 12 + CPU time: Sys=0:00:02.8, User=0:00:52.1 + Memory: 1008.4M + Disk usage: 371.8K + Time elapsed: 0:00:44.4 + + + Packaging flye + Packaging flye-2.9.5-py312h321ceac_0 + /opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_build_env/bin/arm64-apple-darwin20.0.0-install_name_tool: warning: changes being made to the file will invalidate the code signature in: /opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/flye-samtools + [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/flye-samtools' + + /opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_build_env/bin/arm64-apple-darwin20.0.0-install_name_tool: warning: changes being made to the file will invalidate the code signature in: /opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/flye-samtools + [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/flye-samtools' + + /opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_build_env/bin/arm64-apple-darwin20.0.0-install_name_tool: warning: changes being made to the file will invalidate the code signature in: /opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/flye-samtools + [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/flye-samtools' + + /opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_build_env/bin/arm64-apple-darwin20.0.0-install_name_tool: warning: changes being made to the file will invalidate the code signature in: /opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/flye-minimap2 + [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/flye-minimap2' + + /opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_build_env/bin/arm64-apple-darwin20.0.0-install_name_tool: warning: changes being made to the file will invalidate the code signature in: /opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/flye-modules + [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/flye-modules' + + /opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_build_env/bin/arm64-apple-darwin20.0.0-install_name_tool: warning: changes being made to the file will invalidate the code signature in: /opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/flye-modules + [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/flye-modules' + + WARNING: Importing conda-verify failed. Please be sure to test your packages. conda install conda-verify to make this message go away. + compiling .pyc files... + number of files: 104 + INFO: sysroot: '/System/Library/Frameworks/' files: '['vmnet.framework/Versions/Current', 'vmnet.framework/Versions/A/_CodeSignature/CodeResources', 'vmnet.framework/Versions/A/Resources/version.plist', 'vmnet.framework/Versions/A/Resources/InfoPlist.loctable']' + INFO: sysroot: '/usr/lib/' files: '['zsh/5.9/zsh/zselect.so', 'zsh/5.9/zsh/zpty.so', 'zsh/5.9/zsh/zprof.so', 'zsh/5.9/zsh/zleparameter.so']' + INFO: sysroot: '/opt/X11/' files: '[]' + INFO (flye,bin/flye-samtools): Needed DSO lib/libz.1.dylib found in conda-forge/osx-arm64::libzlib==1.2.13=hfb2fe0b_6 + INFO (flye,bin/flye-samtools): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT + INFO (flye,bin/flye-minimap2): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT + INFO (flye,bin/flye-minimap2): Needed DSO lib/libz.1.dylib found in conda-forge/osx-arm64::libzlib==1.2.13=hfb2fe0b_6 + INFO (flye,bin/flye-modules): Needed DSO lib/libz.1.dylib found in conda-forge/osx-arm64::libzlib==1.2.13=hfb2fe0b_6 + INFO (flye,bin/flye-modules): Needed DSO lib/libc.1.dylib found in conda-forge/osx-arm64::libcxx==18.1.8=h3ed4263_6 + INFO (flye,bin/flye-modules): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT + INFO (flye): Interpreted package 'flye' is interpreted by 'python' + Fixing permissions + Packaged license file/s. + INFO :: Time taken to mark (prefix) + 0 replacements in 0 files was 0.07 seconds + Files containing CONDA_PREFIX + ----------------------------- + bin/flye (text): Patching + TEST START: /opt/mambaforge/envs/bioconda/conda-bld/osx-arm64/flye-2.9.5-py312h321ceac_0.tar.bz2 + Renaming work directory '/opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/work' to '/opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/work_moved_flye-2.9.5-py312h321ceac_0_osx-arm64' + shutil.move(work)=/opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/work, dest=/opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/work_moved_flye-2.9.5-py312h321ceac_0_osx-arm64) + Reloading output folder (local): ...working... done + Solving environment (_test_env): ...working... done + + ## Package Plan ## + + environment location: /opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac + + + The following NEW packages will be INSTALLED: + + bzip2: 1.0.8-h99b78c6_7 conda-forge + ca-certificates: 2024.7.4-hf0a4a13_0 conda-forge + flye: 2.9.5-py312h321ceac_0 local + libcxx: 18.1.8-h3ed4263_6 conda-forge + libexpat: 2.6.2-hebf3989_0 conda-forge + libffi: 3.4.2-h3422bc3_5 conda-forge + libsqlite: 3.46.0-hfb93653_0 conda-forge + libzlib: 1.3.1-hfb2fe0b_1 conda-forge + ncurses: 6.5-h7bae524_1 conda-forge + openssl: 3.3.1-h8359307_3 conda-forge + python: 3.12.5-h30c5eda_0_cpython conda-forge + python_abi: 3.12-5_cp312 conda-forge + readline: 8.2-h92ec313_1 conda-forge + tk: 8.6.13-h5083fa2_1 conda-forge + tzdata: 2024a-h8827d51_1 conda-forge + xz: 5.2.6-h57fd34a_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + grep Assembly + flye -h + python -c 'import flye.tests.test_toy as t; t.main()' + Traceback (most recent call last): + File "", line 1, in + File "/opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.12/site-packages/flye/tests/test_toy.py", line 18, in + from distutils.spawn import find_executable + ModuleNotFoundError: No module named 'distutils' + WARNING: Tests failed for flye-2.9.5-py312h321ceac_0.tar.bz2 - moving package to /opt/mambaforge/envs/bioconda/conda-bld/broken + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/test_tmp + Assembly of long reads with repeat graphs + TESTS FAILED: flye-2.9.5-py312h321ceac_0.tar.bz2 +# Last 100 lines of the build log. diff --git a/recipes/sorted_nearest/build_failure.osx-arm64.yaml b/recipes/sorted_nearest/build_failure.osx-arm64.yaml new file mode 100644 index 0000000000000..ee67068410442 --- /dev/null +++ b/recipes/sorted_nearest/build_failure.osx-arm64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 1c3cf3d76817af6019b65afe6c9e4eb74405f2c9c39c587fe2eef782febddabc # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/sorted_nearest.cpython-38-darwin.so' + + /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_build_env/bin/arm64-apple-darwin20.0.0-install_name_tool: warning: changes being made to the file will invalidate the code signature in: /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/max_disjoint_intervals.cpython-38-darwin.so + [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/max_disjoint_intervals.cpython-38-darwin.so' + + /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_build_env/bin/arm64-apple-darwin20.0.0-install_name_tool: warning: changes being made to the file will invalidate the code signature in: /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/max_disjoint_intervals.cpython-38-darwin.so + [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/max_disjoint_intervals.cpython-38-darwin.so' + + /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_build_env/bin/arm64-apple-darwin20.0.0-install_name_tool: warning: changes being made to the file will invalidate the code signature in: /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/max_disjoint_intervals.cpython-38-darwin.so + [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/max_disjoint_intervals.cpython-38-darwin.so' + + /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_build_env/bin/arm64-apple-darwin20.0.0-install_name_tool: warning: changes being made to the file will invalidate the code signature in: /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/max_disjoint_intervals.cpython-38-darwin.so + [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/max_disjoint_intervals.cpython-38-darwin.so' + + /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_build_env/bin/arm64-apple-darwin20.0.0-install_name_tool: warning: changes being made to the file will invalidate the code signature in: /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/merge_by.cpython-38-darwin.so + [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/merge_by.cpython-38-darwin.so' + + /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_build_env/bin/arm64-apple-darwin20.0.0-install_name_tool: warning: changes being made to the file will invalidate the code signature in: /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/merge_by.cpython-38-darwin.so + [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/merge_by.cpython-38-darwin.so' + + /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_build_env/bin/arm64-apple-darwin20.0.0-install_name_tool: warning: changes being made to the file will invalidate the code signature in: /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/merge_by.cpython-38-darwin.so + [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/merge_by.cpython-38-darwin.so' + + /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_build_env/bin/arm64-apple-darwin20.0.0-install_name_tool: warning: changes being made to the file will invalidate the code signature in: /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/merge_by.cpython-38-darwin.so + [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/merge_by.cpython-38-darwin.so' + + WARNING: Importing conda-verify failed. Please be sure to test your packages. conda install conda-verify to make this message go away. + compiling .pyc files... + number of files: 57 + INFO: sysroot: '/System/Library/Frameworks/' files: '['vmnet.framework/Versions/Current', 'vmnet.framework/Versions/A/_CodeSignature/CodeResources', 'vmnet.framework/Versions/A/Resources/version.plist', 'vmnet.framework/Versions/A/Resources/InfoPlist.loctable']' + INFO: sysroot: '/usr/lib/' files: '['zsh/5.9/zsh/zselect.so', 'zsh/5.9/zsh/zpty.so', 'zsh/5.9/zsh/zprof.so', 'zsh/5.9/zsh/zleparameter.so']' + INFO: sysroot: '/opt/X11/' files: '[]' + INFO (sorted_nearest,lib/python3.8/site-packages/sorted_nearest/src/cluster_by.cpython-38-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT + INFO (sorted_nearest,lib/python3.8/site-packages/sorted_nearest/src/annotate_clusters.cpython-38-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT + INFO (sorted_nearest,lib/python3.8/site-packages/sorted_nearest/src/k_nearest.cpython-38-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT + INFO (sorted_nearest,lib/python3.8/site-packages/sorted_nearest/src/clusters.cpython-38-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT + INFO (sorted_nearest,lib/python3.8/site-packages/sorted_nearest/src/tiles.cpython-38-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT + INFO (sorted_nearest,lib/python3.8/site-packages/sorted_nearest/src/k_nearest_ties.cpython-38-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT + INFO (sorted_nearest,lib/python3.8/site-packages/sorted_nearest/src/windows.cpython-38-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT + INFO (sorted_nearest,lib/python3.8/site-packages/sorted_nearest/src/introns.cpython-38-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT + INFO (sorted_nearest,lib/python3.8/site-packages/sorted_nearest/src/sorted_nearest.cpython-38-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT + INFO (sorted_nearest,lib/python3.8/site-packages/sorted_nearest/src/max_disjoint_intervals.cpython-38-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT + INFO (sorted_nearest,lib/python3.8/site-packages/sorted_nearest/src/merge_by.cpython-38-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT + WARNING (sorted_nearest): interpreter (Python) package conda-forge/osx-arm64::python==3.8.19=h2469fbe_0_cpython in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) + Fixing permissions + Packaged license file/s. + INFO :: Time taken to mark (prefix) + 0 replacements in 0 files was 0.05 seconds + TEST START: /opt/mambaforge/envs/bioconda/conda-bld/osx-arm64/sorted_nearest-0.0.39-py38h24147e2_3.tar.bz2 + Renaming work directory '/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/work' to '/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/work_moved_sorted_nearest-0.0.39-py38h24147e2_3_osx-arm64' + shutil.move(work)=/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/work, dest=/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/work_moved_sorted_nearest-0.0.39-py38h24147e2_3_osx-arm64) + Reloading output folder (local): ...working... done + Solving environment (_test_env): ...working... done + + ## Package Plan ## + + environment location: /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac + + + The following NEW packages will be INSTALLED: + + bzip2: 1.0.8-h99b78c6_7 conda-forge + ca-certificates: 2024.7.4-hf0a4a13_0 conda-forge + libblas: 3.9.0-23_osxarm64_openblas conda-forge + libcblas: 3.9.0-23_osxarm64_openblas conda-forge + libcxx: 18.1.8-h3ed4263_6 conda-forge + libffi: 3.4.2-h3422bc3_5 conda-forge + libgfortran: 5.0.0-13_2_0_hd922786_3 conda-forge + libgfortran5: 13.2.0-hf226fd6_3 conda-forge + liblapack: 3.9.0-23_osxarm64_openblas conda-forge + libopenblas: 0.3.27-openmp_h517c56d_1 conda-forge + libsqlite: 3.46.0-hfb93653_0 conda-forge + libzlib: 1.3.1-hfb2fe0b_1 conda-forge + llvm-openmp: 18.1.8-hde57baf_1 conda-forge + ncurses: 6.5-h7bae524_1 conda-forge + numpy: 1.24.4-py38ha84db1f_0 conda-forge + openssl: 3.3.1-h8359307_3 conda-forge + python: 3.8.19-h2469fbe_0_cpython conda-forge + python_abi: 3.8-5_cp38 conda-forge + readline: 8.2-h92ec313_1 conda-forge + sorted_nearest: 0.0.39-py38h24147e2_3 local + tk: 8.6.13-h5083fa2_1 conda-forge + xz: 5.2.6-h57fd34a_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + /opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py:544: UserWarning: The environment variable 'SETUPTOOLS_SCM_PRETEND_VERSION' is being passed through with value '0.0.39'. If you are splitting build and test phases with --no-test, please ensure that this value is also set similarly at test time. + warnings.warn( + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/test_tmp/run_test.py", line 2, in + import sorted_nearest + File "/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.8/site-packages/sorted_nearest/__init__.py", line 1, in + import pkg_resources + ModuleNotFoundError: No module named 'pkg_resources' + WARNING: Tests failed for sorted_nearest-0.0.39-py38h24147e2_3.tar.bz2 - moving package to /opt/mambaforge/envs/bioconda/conda-bld/broken + TESTS FAILED: sorted_nearest-0.0.39-py38h24147e2_3.tar.bz2 + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/test_tmp + import: 'sorted_nearest' +# Last 100 lines of the build log. diff --git a/recipes/ucsc-addcols/build.sh b/recipes/ucsc-addcols/build.sh index 1acf16c4e77af..880241ad96660 100644 --- a/recipes/ucsc-addcols/build.sh +++ b/recipes/ucsc-addcols/build.sh @@ -17,5 +17,5 @@ mkdir -p "${BINDIR}" (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/utils/addCols && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/addCols "${PREFIX}/bin" +cp bin/addCols "${PREFIX}/bin" chmod 0755 "${PREFIX}/bin/addCols" diff --git a/recipes/ucsc-addcols/meta.yaml b/recipes/ucsc-addcols/meta.yaml index b192a7574045a..63fadaf3b0f19 100644 --- a/recipes/ucsc-addcols/meta.yaml +++ b/recipes/ucsc-addcols/meta.yaml @@ -50,5 +50,8 @@ about: doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-ameme/build.sh b/recipes/ucsc-ameme/build.sh index 85f44dbbbfe3c..9d9cf92f41ee3 100644 --- a/recipes/ucsc-ameme/build.sh +++ b/recipes/ucsc-ameme/build.sh @@ -1,5 +1,8 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" + +set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" @@ -8,11 +11,11 @@ export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/ameme && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/ameme "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/ameme" +cp bin/ameme "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/ameme" diff --git a/recipes/ucsc-ameme/meta.yaml b/recipes/ucsc-ameme/meta.yaml index 55193a0bb388c..7b92909aa8ed1 100644 --- a/recipes/ucsc-ameme/meta.yaml +++ b/recipes/ucsc-ameme/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-ameme" %} {% set program = "ameme" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -50,5 +50,8 @@ about: doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - linux-aarch64 diff --git a/recipes/ucsc-autodtd/build.sh b/recipes/ucsc-autodtd/build.sh index 1f36af8025753..ebab5b497694d 100644 --- a/recipes/ucsc-autodtd/build.sh +++ b/recipes/ucsc-autodtd/build.sh @@ -1,5 +1,8 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" + +set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" @@ -8,11 +11,11 @@ export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/autoDtd && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/autoDtd "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/autoDtd" +cp bin/autoDtd "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/autoDtd" diff --git a/recipes/ucsc-autodtd/meta.yaml b/recipes/ucsc-autodtd/meta.yaml index e68e033f37830..597fe094769b6 100644 --- a/recipes/ucsc-autodtd/meta.yaml +++ b/recipes/ucsc-autodtd/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-autodtd" %} {% set program = "autoDtd" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -50,5 +50,8 @@ about: doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-autosql/build.sh b/recipes/ucsc-autosql/build.sh index 9b7d4357f7341..ee0b575e35b97 100644 --- a/recipes/ucsc-autosql/build.sh +++ b/recipes/ucsc-autosql/build.sh @@ -1,5 +1,8 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" + +set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" @@ -8,11 +11,11 @@ export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/autoSql && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/autoSql "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/autoSql" +cp bin/autoSql "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/autoSql" diff --git a/recipes/ucsc-autosql/meta.yaml b/recipes/ucsc-autosql/meta.yaml index 87e2d555f0df2..b2a651b3b5a58 100644 --- a/recipes/ucsc-autosql/meta.yaml +++ b/recipes/ucsc-autosql/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-autosql" %} {% set program = "autoSql" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -50,5 +50,8 @@ about: doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - linux-aarch64 diff --git a/recipes/ucsc-autoxml/build.sh b/recipes/ucsc-autoxml/build.sh index 5476f6f1d0a83..73dfe37c83820 100644 --- a/recipes/ucsc-autoxml/build.sh +++ b/recipes/ucsc-autoxml/build.sh @@ -1,5 +1,8 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" + +set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" @@ -8,11 +11,11 @@ export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/autoXml && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/autoXml "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/autoXml" +cp bin/autoXml "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/autoXml" diff --git a/recipes/ucsc-autoxml/meta.yaml b/recipes/ucsc-autoxml/meta.yaml index 9c3792b8558d4..c5328653b9315 100644 --- a/recipes/ucsc-autoxml/meta.yaml +++ b/recipes/ucsc-autoxml/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-autoxml" %} {% set program = "autoXml" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -50,5 +50,8 @@ about: doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-avecols/build.sh b/recipes/ucsc-avecols/build.sh index b9727be3692ee..eb3ce0613441f 100644 --- a/recipes/ucsc-avecols/build.sh +++ b/recipes/ucsc-avecols/build.sh @@ -1,5 +1,8 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" + +set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" @@ -8,11 +11,11 @@ export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/utils/aveCols && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/aveCols "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/aveCols" +cp bin/aveCols "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/aveCols" diff --git a/recipes/ucsc-avecols/meta.yaml b/recipes/ucsc-avecols/meta.yaml index 0d1e71052c40e..1845792fc30ac 100644 --- a/recipes/ucsc-avecols/meta.yaml +++ b/recipes/ucsc-avecols/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-avecols" %} {% set program = "aveCols" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -50,5 +50,8 @@ about: doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - linux-aarch64 diff --git a/recipes/ucsc-axtchain/build.sh b/recipes/ucsc-axtchain/build.sh index 0cf99f309dc17..1765bb92a55e3 100644 --- a/recipes/ucsc-axtchain/build.sh +++ b/recipes/ucsc-axtchain/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/axtChain && make) -cp bin/axtChain "$PREFIX/bin" -chmod +x "$PREFIX/bin/axtChain" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/axtChain && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/axtChain "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/axtChain" diff --git a/recipes/ucsc-axtchain/include.patch b/recipes/ucsc-axtchain/include.patch index e4831ef2dea13..edc04d0dc2f64 100644 --- a/recipes/ucsc-axtchain/include.patch +++ b/recipes/ucsc-axtchain/include.patch @@ -1,22 +1,22 @@ --- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 ++++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -+++ kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -@@ -147,4 +147,4 @@ -- L+=${PREFIX}/lib/libssl.a ${PREFIX}/lib/libcrypto.a -ldl -+ L+=${PREFIX}/lib/libssl.so ${PREFIX}/lib/libcrypto.so -ldl - else - ifneq ($(wildcard /opt/local/lib/libssl.a),) - L+=/opt/local/lib/libssl.a +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python2.7 ++#!/usr/bin/env python + + import logging, sys, optparse, string + from collections import defaultdict --- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ @@ -25,16 +25,3 @@ # expMatrixToBarchartBed """ Generate a barChart bed6+5 file from a matrix, meta data, and coordinates. ---- kent/src/hg/lib/straw/makefile -+++ kent/src/hg/lib/straw/makefile -@@ -3,8 +3,8 @@ - straw: straw.o cStraw.o - ld -r -o ../straw.o straw.o cStraw.o - straw.o: straw.cpp straw.h -- ${CXX} straw.cpp ${KENT_INC} -g -c -lz -std=c++11 -lcurl -o straw.o -+ ${CXX} straw.cpp ${KENT_INC} -g -c -lz -std=c++11 -lcurl -o straw.o -I ${PREFIX}/include - cStraw.o: cStraw.cpp straw.h -- ${CXX} cStraw.cpp ${KENT_INC} -g -c -lz -std=c++11 -lcurl -o cStraw.o -+ ${CXX} cStraw.cpp ${KENT_INC} -g -c -lz -std=c++11 -lcurl -o cStraw.o -I ${PREFIX}/include - clean: - rm -f straw.o cStraw.o ../straw.o diff --git a/recipes/ucsc-axtchain/meta.yaml b/recipes/ucsc-axtchain/meta.yaml index 72064fd875b92..8bdb49a164a0d 100644 --- a/recipes/ucsc-axtchain/meta.yaml +++ b/recipes/ucsc-axtchain/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-axtchain" %} {% set program = "axtChain" %} -{% set version = "455" %} -{% set sha256 = "e458cadad7c4a5c1b8385edafffa1b29380ac725a0c20535bf5a3bab99fe80db" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -23,27 +23,35 @@ requirements: build: - make - {{ compiler('c') }} - - binutils >=2.32 # https://wiki.gentoo.org/wiki/Project:Toolchain/Binutils_2.32_upgrade_notes/elfutils_0.175:_unable_to_initialize_decompress_status_for_section_.debug_info - - {{ compiler('cxx') }} host: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib + run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Chain together axt alignments." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-axtsort/build.sh b/recipes/ucsc-axtsort/build.sh index 496cf5dcb35d8..f8296a72424f0 100644 --- a/recipes/ucsc-axtsort/build.sh +++ b/recipes/ucsc-axtsort/build.sh @@ -1,5 +1,8 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" + +set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" @@ -8,11 +11,11 @@ export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/mouseStuff/axtSort && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/axtSort "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/axtSort" +cp bin/axtSort "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/axtSort" diff --git a/recipes/ucsc-axtsort/meta.yaml b/recipes/ucsc-axtsort/meta.yaml index 4c4b3f7e611c5..41b575334e20f 100644 --- a/recipes/ucsc-axtsort/meta.yaml +++ b/recipes/ucsc-axtsort/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-axtsort" %} {% set program = "axtSort" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -50,5 +50,8 @@ about: doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-axtswap/build.sh b/recipes/ucsc-axtswap/build.sh index c15f336ce33a1..002d003249880 100644 --- a/recipes/ucsc-axtswap/build.sh +++ b/recipes/ucsc-axtswap/build.sh @@ -2,7 +2,7 @@ set -xe -mkdir -p "$PREFIX/bin" +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" @@ -11,11 +11,11 @@ export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/mouseStuff/axtSwap && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/axtSwap "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/axtSwap" +cp bin/axtSwap "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/axtSwap" diff --git a/recipes/ucsc-axtswap/meta.yaml b/recipes/ucsc-axtswap/meta.yaml index a432cdd091d15..af74691f328d2 100644 --- a/recipes/ucsc-axtswap/meta.yaml +++ b/recipes/ucsc-axtswap/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-axtswap" %} {% set program = "axtSwap" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -50,5 +50,8 @@ about: doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-axttomaf/build.sh b/recipes/ucsc-axttomaf/build.sh index 9b86c892dc16a..8aff3ba3ee73e 100644 --- a/recipes/ucsc-axttomaf/build.sh +++ b/recipes/ucsc-axttomaf/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/axtToMaf && make) -cp bin/axtToMaf "$PREFIX/bin" -chmod +x "$PREFIX/bin/axtToMaf" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/axtToMaf && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/axtToMaf "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/axtToMaf" diff --git a/recipes/ucsc-axttomaf/include.patch b/recipes/ucsc-axttomaf/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-axttomaf/include.patch +++ b/recipes/ucsc-axttomaf/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-axttomaf/meta.yaml b/recipes/ucsc-axttomaf/meta.yaml index c4c3506781e5f..9fad27f9b6c48 100644 --- a/recipes/ucsc-axttomaf/meta.yaml +++ b/recipes/ucsc-axttomaf/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-axttomaf" %} {% set program = "axtToMaf" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 2 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert from axt to maf format" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-axttopsl/build.sh b/recipes/ucsc-axttopsl/build.sh index d34c31e9c40dd..53d90bfeef68a 100644 --- a/recipes/ucsc-axttopsl/build.sh +++ b/recipes/ucsc-axttopsl/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/axtToPsl && make) -cp bin/axtToPsl "$PREFIX/bin" -chmod +x "$PREFIX/bin/axtToPsl" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/axtToPsl && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/axtToPsl "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/axtToPsl" diff --git a/recipes/ucsc-axttopsl/include.patch b/recipes/ucsc-axttopsl/include.patch index 5404b18b5467a..edc04d0dc2f64 100644 --- a/recipes/ucsc-axttopsl/include.patch +++ b/recipes/ucsc-axttopsl/include.patch @@ -1,22 +1,22 @@ --- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 ++++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif - + HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include - ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include + # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -+++ kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -@@ -147,4 +147,4 @@ -- L+=${PREFIX}/lib/libssl.a ${PREFIX}/lib/libcrypto.a -ldl -+ L+=${PREFIX}/lib/libssl.so ${PREFIX}/lib/libcrypto.so -ldl - else - ifneq ($(wildcard /opt/local/lib/libssl.a),) - L+=/opt/local/lib/libssl.a +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python2.7 ++#!/usr/bin/env python + + import logging, sys, optparse, string + from collections import defaultdict --- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ @@ -25,16 +25,3 @@ # expMatrixToBarchartBed """ Generate a barChart bed6+5 file from a matrix, meta data, and coordinates. ---- kent/src/hg/lib/straw/makefile -+++ kent/src/hg/lib/straw/makefile -@@ -3,8 +3,8 @@ - straw: straw.o cStraw.o - ld -r -o ../straw.o straw.o cStraw.o - straw.o: straw.cpp straw.h -- ${CXX} straw.cpp ${KENT_INC} -g -c -lz -std=c++11 -lcurl -o straw.o -+ ${CXX} straw.cpp ${KENT_INC} -g -c -lz -std=c++11 -lcurl -o straw.o -I ${PREFIX}/include - cStraw.o: cStraw.cpp straw.h -- ${CXX} cStraw.cpp ${KENT_INC} -g -c -lz -std=c++11 -lcurl -o cStraw.o -+ ${CXX} cStraw.cpp ${KENT_INC} -g -c -lz -std=c++11 -lcurl -o cStraw.o -I ${PREFIX}/include - clean: - rm -f straw.o cStraw.o ../straw.o diff --git a/recipes/ucsc-axttopsl/meta.yaml b/recipes/ucsc-axttopsl/meta.yaml index d3c5108e5d1c7..b6873169ffcc3 100644 --- a/recipes/ucsc-axttopsl/meta.yaml +++ b/recipes/ucsc-axttopsl/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-axttopsl" %} {% set program = "axtToPsl" %} -{% set version = "455" %} -{% set sha256 = "e458cadad7c4a5c1b8385edafffa1b29380ac725a0c20535bf5a3bab99fe80db" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -23,27 +23,35 @@ requirements: build: - make - {{ compiler('c') }} - - binutils >=2.32 # https://wiki.gentoo.org/wiki/Project:Toolchain/Binutils_2.32_upgrade_notes/elfutils_0.175:_unable_to_initialize_decompress_status_for_section_.debug_info - - {{ compiler('cxx') }} host: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib + run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert axt to psl format" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-bamtopsl/build.sh b/recipes/ucsc-bamtopsl/build.sh index ce701d375c18f..c68078409abcb 100644 --- a/recipes/ucsc-bamtopsl/build.sh +++ b/recipes/ucsc-bamtopsl/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/bamToPsl && make) -cp bin/bamToPsl "$PREFIX/bin" -chmod +x "$PREFIX/bin/bamToPsl" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/bamToPsl && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/bamToPsl "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bamToPsl" diff --git a/recipes/ucsc-bamtopsl/build_failure.linux-aarch64.yaml b/recipes/ucsc-bamtopsl/build_failure.linux-aarch64.yaml new file mode 100644 index 0000000000000..94614dba9e19b --- /dev/null +++ b/recipes/ucsc-bamtopsl/build_failure.linux-aarch64.yaml @@ -0,0 +1,104 @@ +recipe_sha: cabd65b4a582750389dddd801a4cb10eeace0ae27e187a087c070a8ab41e7a12 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rmskOut.o -c rmskOut.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rmskOut2.o -c rmskOut2.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rnaGene.o -c rnaGene.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sage.o -c sage.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sageCounts.o -c sageCounts.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o samAlignment.o -c samAlignment.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sample.o -c sample.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sanger22extra.o -c sanger22extra.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o scoredRef.o -c scoredRef.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o seqWindow.o -c seqWindow.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o snakeUi.o -c snakeUi.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o snp.o -c snp.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o snpExceptions.o -c snpExceptions.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o soTerm.o -c soTerm.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o spDb.o -c spDb.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sqlProg.o -c sqlProg.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sqlSanity.o -c sqlSanity.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o stanMad.o -c stanMad.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o stsAlias.o -c stsAlias.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o stsInfo2.o -c stsInfo2.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o stsMap.o -c stsMap.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o stsMarker.o -c stsMarker.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o tableStatus.o -c tableStatus.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o tablesTables.o -c tablesTables.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o tagRepo.o -c tagRepo.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o tfbsCons.o -c tfbsCons.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o tigrCmrGene.o -c tigrCmrGene.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o traceInfo.o -c traceInfo.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackDb.o -c trackDb.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackDbCache.o -c trackDbCache.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackDbCustom.o -c trackDbCustom.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackHub.o -c trackHub.c + trackDbCustom.c: In function 'trackDbInclude': + trackDbCustom.c:294:5: warning: 'splitPath' accessing 512 bytes in a region of size 256 [-Wstringop-overflow=] + 294 | splitPath(raFile, incFile, NULL, NULL); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + trackDbCustom.c:294:5: note: referencing argument 2 of type 'char[512]' + trackDbCustom.c:294:5: note: referencing argument 3 of type 'char[128]' + trackDbCustom.c:294:5: note: referencing argument 4 of type 'char[64]' + In file included from trackDbCustom.c:9: + ../../inc/common.h:1139:6: note: in a call to function 'splitPath' + 1139 | void splitPath(char *path, char dir[PATH_LEN], char name[FILENAME_LEN], + | ^~~~~~~~~ + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackVersion.o -c trackVersion.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trashDir.o -c trashDir.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txAliDiff.o -c txAliDiff.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txCluster.o -c txCluster.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txCommon.o -c txCommon.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txEdgeBed.o -c txEdgeBed.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txGraph.o -c txGraph.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txInfo.o -c txInfo.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txRnaAccs.o -c txRnaAccs.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o variantProjector.o -c variantProjector.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o vcfUi.o -c vcfUi.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o vegaInfo.o -c vegaInfo.c + sed -e 's/\\/\\\\/g; s/"/\\"/g; s/^/"/; s/$/\\n"/;' jWestHeader.html > jWestHeader.h + sed -e 's/\\/\\\\/g; s/"/\\"/g; s/^/"/; s/$/\\n"/;' jWestBanner.html > jWestBanner.h + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wigAsciiToBinary.o -c wigAsciiToBinary.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wigDataStream.o -c wigDataStream.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wiggle.o -c wiggle.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wiggleCart.o -c wiggleCart.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wiggleUtils.o -c wiggleUtils.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wikiLink.o -c wikiLink.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o bigRmskAlignBed.o -c bigRmskAlignBed.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o bigRmskBed.o -c bigRmskBed.c + mkdir -p ../../lib/aarch64 + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o web.o -c web.c + ar rcus ../../lib/aarch64/jkhgap.a adjacency.o affyPairs.o agpFrag.o agpGap.o alignSeqSizes.o altGraphX.o asmAlias.o asmEquivalent.o asmSummary.o autoUpgrade.o axtInfo.o barChartBed.o barChartCategory.o barChartUi.o bed.o bed12Source.o bedDetail.o bigBedFind.o bigBedLabel.o bigChain.o bigDbSnp.o bigGenePred.o bigLink.o bigPsl.o blastTab.o borf.o botDelay.o cart.o cartDb.o cdsEvidence.o cdsOrtho.o cdsPick.o cgapSage/cgapSage.o cgapSage/cgapSageLib.o cgiApoptosis.o chainCart.o chainDb.o chainLink.o chainNet.o chainNetDbLoad.o chromAlias.o chromBins.o chromGraph.o chromGraphFactory.o chromInfo.o chromInserts.o chromKeeper.o clonePos.o cpgIsland.o ctgPos.o customAdjacency.o customComposite.o customFactory.o customPp.o customTrack.o cv.o cytoBand.o dbDb.o decoration.o decoratorUi.o defaultDb.o dnaMotifSql.o dupTrack.o encode/encodeErge.o encode/encodeErgeHssCellLines.o encode/encodeExp.o encode/encodeHapMapAlleleFreq.o encode/encodeIndels.o encode/encodePeak.o encode/encodeRegionInfoCustom.o encode/encodeRna.o encode/encodeStanfordPromoters.o encode/encodeStanfordPromotersAverage.o encode/peptideMapping.o encode/wgEncodeGencodeAnnotationRemark.o encode/wgEncodeGencodeAttrs.o encode/wgEncodeGencodeEntrezGene.o encode/wgEncodeGencodeExonSupport.o encode/wgEncodeGencodeGeneSource.o encode/wgEncodeGencodeGeneSymbol.o encode/wgEncodeGencodePdb.o encode/wgEncodeGencodePubMed.o encode/wgEncodeGencodeRefSeq.o encode/wgEncodeGencodeTag.o encode/wgEncodeGencodeTranscriptSource.o encode/wgEncodeGencodeTranscriptSupport.o encode/wgEncodeGencodeTranscriptionSupportLevel.o encode/wgEncodeGencodeUniProt.o encode3/encode3Valid.o estOrientInfo.o expData.o exportedDataHubs.o expRecord.o facetField.o facetedTable.o featureBits.o findKGAlias.o fakeCurl.o findKGProtAlias.o gbSeq.o gbExtFile.o gcPercent.o genark.o genbank.o genbankBlackList.o gencodeTracksCommon.o gencodeAttrs.o gencodeToRefSeq.o geneGraph.o genePred.o genePredReader.o geoMirror.o ggCluster.o ggDump.o ggGraph.o ggMrnaAli.o ggTypes.o glDbRep.o googleAnalytics.o gpFx.o grp.o gtexAse.o gtexDonor.o gtexGeneBed.o gtexInfo.o gtexSample.o gtexSampleData.o gtexTissue.o gtexTissueMedian.o gtexUi.o hCommon.o hPrint.o hVarSubst.o hapmapAllelesOrtho.o hapmapPhaseIIISummary.o hapmapSnps.o hdb.o hgColors.o hgConfig.o hgFind.o hgFindSpec.o hgFindSpecCustom.o hgHgvs.o hgHgvsParse.o hgMaf.o hgRelate.o hic.o hicUi.o hubConnect.o hubPublic.o hubSearchText.o hui.o imageClone.o indelShift.o interact.o interactUi.o itemAttr.o jksql.o joiner.o jsHelper.o kgAlias.o kgProtAlias.o kgXref.o knownInfo.o knownMore.o lav.o lfs.o liftOver.o liftOverChain.o liftUp.o longRange.o lrg.o lsSnpPdb.o mafFrames.o mafGene.o mafSummary.o makeItemsItem.o mdb.o microarray.o minChromSize.o namedSessionDb.o netAlign.o netCart.o pepPred.o pgPhenoAssoc.o pgSnp.o pslReader.o qaSeq.o quickLift.o quickLiftChain.o rankProp.o refLink.o refSeqStatus.o rikenCluster.o rmskAlign.o rmskJoined.o rmskOut.o rmskOut2.o rnaGene.o sage.o sageCounts.o samAlignment.o sample.o sanger22extra.o scoredRef.o seqWindow.o snakeUi.o snp.o snpExceptions.o soTerm.o spDb.o sqlProg.o sqlSanity.o stanMad.o stsAlias.o stsInfo2.o stsMap.o stsMarker.o tableStatus.o tablesTables.o tagRepo.o tfbsCons.o tigrCmrGene.o traceInfo.o trackDb.o trackDbCache.o trackDbCustom.o trackHub.o trackVersion.o trashDir.o txAliDiff.o txCluster.o txCommon.o txEdgeBed.o txGraph.o txInfo.o txRnaAccs.o variantProjector.o vcfUi.o vegaInfo.o web.o wigAsciiToBinary.o wigDataStream.o wiggle.o wiggleCart.o wiggleUtils.o wikiLink.o bigRmskAlignBed.o bigRmskBed.o + cd kent/src/utils/bamToPsl + make CC=/opt/conda/conda-bld/ucsc-bamtopsl_1724787806460/_build_env/bin/aarch64-conda-linux-gnu-cc CXX= 'CFLAGS=-ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem /opt/conda/conda-bld/ucsc-bamtopsl_1724787806460/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include -fdebug-prefix-map=/opt/conda/conda-bld/ucsc-bamtopsl_1724787806460/work=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=/opt/conda/conda-bld/ucsc-bamtopsl_1724787806460/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,/opt/conda/conda-bld/ucsc-bamtopsl_1724787806460/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib -Wl,-rpath-link,/opt/conda/conda-bld/ucsc-bamtopsl_1724787806460/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib -L/opt/conda/conda-bld/ucsc-bamtopsl_1724787806460/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib -L/opt/conda/conda-bld/ucsc-bamtopsl_1724787806460/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib' 'CXXFLAGS= -I/opt/conda/conda-bld/ucsc-bamtopsl_1724787806460/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,/opt/conda/conda-bld/ucsc-bamtopsl_1724787806460/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib -Wl,-rpath-link,/opt/conda/conda-bld/ucsc-bamtopsl_1724787806460/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib -L/opt/conda/conda-bld/ucsc-bamtopsl_1724787806460/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib -L/opt/conda/conda-bld/ucsc-bamtopsl_1724787806460/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib' -j 4 + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bamtopsl-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -DUSE_HIC -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -o bamToPsl.o -c bamToPsl.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -o $SRC_DIR/bin/bamToPsl bamToPsl.o ../../lib/aarch64/jkweb.a -L$PREFIX/lib -lmysqlclient -lstdc -lrt -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -lpthread $PREFIX/lib/libssl.a $PREFIX/lib/libcrypto.a -ldl ../../htslib/libhts.a -L$PREFIX/lib -lpng16 -lm -lz + /opt/conda/conda-bld/ucsc-bamtopsl_1724787806460/_build_env/bin/../lib/gcc/aarch64-conda-linux-gnu/12.4.0/../../../../aarch64-conda-linux-gnu/bin/ld: ../../lib/aarch64/jkweb.a(bamFile.o): in function bamFetchAlreadyOpen': + /usr/local/src/conda/ucsc-bamtopsl-469/kent/src/lib/bamFile.c:207: undefined reference to cram_get_Md5' + /opt/conda/conda-bld/ucsc-bamtopsl_1724787806460/_build_env/bin/../lib/gcc/aarch64-conda-linux-gnu/12.4.0/../../../../aarch64-conda-linux-gnu/bin/ld: /usr/local/src/conda/ucsc-bamtopsl-469/kent/src/lib/bamFile.c:207: undefined reference to cram_get_Md5' + /opt/conda/conda-bld/ucsc-bamtopsl_1724787806460/_build_env/bin/../lib/gcc/aarch64-conda-linux-gnu/12.4.0/../../../../aarch64-conda-linux-gnu/bin/ld: /usr/local/src/conda/ucsc-bamtopsl-469/kent/src/lib/bamFile.c:214: undefined reference to cram_get_ref_url' + /opt/conda/conda-bld/ucsc-bamtopsl_1724787806460/_build_env/bin/../lib/gcc/aarch64-conda-linux-gnu/12.4.0/../../../../aarch64-conda-linux-gnu/bin/ld: /usr/local/src/conda/ucsc-bamtopsl-469/kent/src/lib/bamFile.c:214: undefined reference to cram_get_ref_url' + /opt/conda/conda-bld/ucsc-bamtopsl_1724787806460/_build_env/bin/../lib/gcc/aarch64-conda-linux-gnu/12.4.0/../../../../aarch64-conda-linux-gnu/bin/ld: /usr/local/src/conda/ucsc-bamtopsl-469/kent/src/lib/bamFile.c:215: undefined reference to cram_get_cache_dir' + /opt/conda/conda-bld/ucsc-bamtopsl_1724787806460/_build_env/bin/../lib/gcc/aarch64-conda-linux-gnu/12.4.0/../../../../aarch64-conda-linux-gnu/bin/ld: /usr/local/src/conda/ucsc-bamtopsl-469/kent/src/lib/bamFile.c:215: undefined reference to cram_get_cache_dir' + /opt/conda/conda-bld/ucsc-bamtopsl_1724787806460/_build_env/bin/../lib/gcc/aarch64-conda-linux-gnu/12.4.0/../../../../aarch64-conda-linux-gnu/bin/ld: ../../lib/aarch64/jkweb.a(bamFile.o): in function bamAndIndexFetchPlus': + /usr/local/src/conda/ucsc-bamtopsl-469/kent/src/lib/bamFile.c:257: undefined reference to cram_set_cache_url' + /opt/conda/conda-bld/ucsc-bamtopsl_1724787806460/_build_env/bin/../lib/gcc/aarch64-conda-linux-gnu/12.4.0/../../../../aarch64-conda-linux-gnu/bin/ld: /usr/local/src/conda/ucsc-bamtopsl-469/kent/src/lib/bamFile.c:257: undefined reference to cram_set_cache_url' + collect2: error: ld returned 1 exit status + make: *** [../../inc/userApp.mk:32: /opt/conda/conda-bld/ucsc-bamtopsl_1724787806460/work/bin/bamToPsl] Error 1 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/ucsc-bamtopsl_1724787806460/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/ucsc-bamtopsl/include.patch b/recipes/ucsc-bamtopsl/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-bamtopsl/include.patch +++ b/recipes/ucsc-bamtopsl/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-bamtopsl/meta.yaml b/recipes/ucsc-bamtopsl/meta.yaml index 3ab6ea6912eda..24249d39cd741 100644 --- a/recipes/ucsc-bamtopsl/meta.yaml +++ b/recipes/ucsc-bamtopsl/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bamtopsl" %} {% set program = "bamToPsl" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 3 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert a bam file to a psl and optionally also a fasta file that contains the reads." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-bedclip/build.sh b/recipes/ucsc-bedclip/build.sh index a0d9457e75286..7899ca0c8a07a 100644 --- a/recipes/ucsc-bedclip/build.sh +++ b/recipes/ucsc-bedclip/build.sh @@ -1,22 +1,21 @@ #!/bin/bash -if [ $(arch) = "aarch64" ] -then - export CFLAGS+=" -O3 " - export CPPFLAGS+=" -O3 " -else - export MACHTYPE=x86_64 -fi +set -xe +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" - -mkdir -p "$PREFIX/bin" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/bedClip && make) -cp bin/bedClip "$PREFIX/bin" -chmod +x "$PREFIX/bin/bedClip" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/bedClip && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/bedClip "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bedClip" diff --git a/recipes/ucsc-bedclip/include.patch b/recipes/ucsc-bedclip/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-bedclip/include.patch +++ b/recipes/ucsc-bedclip/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-bedclip/meta.yaml b/recipes/ucsc-bedclip/meta.yaml index b985207becc8a..3dcd15559784f 100644 --- a/recipes/ucsc-bedclip/meta.yaml +++ b/recipes/ucsc-bedclip/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bedclip" %} {% set program = "bedClip" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -12,13 +12,12 @@ source: sha256: "{{ sha256 }}" patches: - "include.patch" - - "patch1.patch" build: skip: True # [osx] - number: 4 + number: 0 run_exports: - - {{ pin_subpackage("ucsc-bedclip", max_pin=None) }} + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -28,25 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib + run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} + +about: + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" + summary: "Remove lines from bed file that refer to off-chromosome locations." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - linux-aarch64 - -about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" - summary: "Remove lines from bed file that refer to off-chromosome locations." diff --git a/recipes/ucsc-bedcommonregions/build.sh b/recipes/ucsc-bedcommonregions/build.sh index 2ec002da3d943..8184ab80f550d 100644 --- a/recipes/ucsc-bedcommonregions/build.sh +++ b/recipes/ucsc-bedcommonregions/build.sh @@ -1,5 +1,8 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" + +set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" @@ -8,11 +11,11 @@ export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/utils/bedCommonRegions && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/bedCommonRegions "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/bedCommonRegions" +cp bin/bedCommonRegions "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bedCommonRegions" diff --git a/recipes/ucsc-bedcommonregions/meta.yaml b/recipes/ucsc-bedcommonregions/meta.yaml index 78698cd3f1e32..7e61e49095f09 100644 --- a/recipes/ucsc-bedcommonregions/meta.yaml +++ b/recipes/ucsc-bedcommonregions/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bedcommonregions" %} {% set program = "bedCommonRegions" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -50,5 +50,8 @@ about: doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-bedcoverage/build.sh b/recipes/ucsc-bedcoverage/build.sh index e7cb194b48474..d9dd530db9deb 100644 --- a/recipes/ucsc-bedcoverage/build.sh +++ b/recipes/ucsc-bedcoverage/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/bedCoverage && make) -cp bin/bedCoverage "$PREFIX/bin" -chmod +x "$PREFIX/bin/bedCoverage" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/bedCoverage && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/bedCoverage "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bedCoverage" diff --git a/recipes/ucsc-bedcoverage/include.patch b/recipes/ucsc-bedcoverage/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-bedcoverage/include.patch +++ b/recipes/ucsc-bedcoverage/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-bedcoverage/meta.yaml b/recipes/ucsc-bedcoverage/meta.yaml index ec874780ff0ec..237bcd0ba115c 100644 --- a/recipes/ucsc-bedcoverage/meta.yaml +++ b/recipes/ucsc-bedcoverage/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bedcoverage" %} {% set program = "bedCoverage" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Analyse coverage by bed files - chromosome by " + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-bedextendranges/build.sh b/recipes/ucsc-bedextendranges/build.sh index f136ad15518a5..7027ce1284eba 100644 --- a/recipes/ucsc-bedextendranges/build.sh +++ b/recipes/ucsc-bedextendranges/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/utils/bedExtendRanges && make) -cp bin/bedExtendRanges "$PREFIX/bin" -chmod +x "$PREFIX/bin/bedExtendRanges" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/bedExtendRanges && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/bedExtendRanges "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bedExtendRanges" diff --git a/recipes/ucsc-bedextendranges/include.patch b/recipes/ucsc-bedextendranges/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-bedextendranges/include.patch +++ b/recipes/ucsc-bedextendranges/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-bedextendranges/meta.yaml b/recipes/ucsc-bedextendranges/meta.yaml index 8b388ba115445..b0278a6067f83 100644 --- a/recipes/ucsc-bedextendranges/meta.yaml +++ b/recipes/ucsc-bedextendranges/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bedextendranges" %} {% set program = "bedExtendRanges" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "extend length of entries in bed 6+ data to be at least the given length," + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-bedgeneparts/build.sh b/recipes/ucsc-bedgeneparts/build.sh index f1399eb250589..c1d170f184800 100644 --- a/recipes/ucsc-bedgeneparts/build.sh +++ b/recipes/ucsc-bedgeneparts/build.sh @@ -1,5 +1,8 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" + +set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" @@ -8,11 +11,11 @@ export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/utils/bedGeneParts && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/bedGeneParts "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/bedGeneParts" +cp bin/bedGeneParts "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bedGeneParts" diff --git a/recipes/ucsc-bedgeneparts/meta.yaml b/recipes/ucsc-bedgeneparts/meta.yaml index 8685b3fe9e52b..de9f72681bcd3 100644 --- a/recipes/ucsc-bedgeneparts/meta.yaml +++ b/recipes/ucsc-bedgeneparts/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bedgeneparts" %} {% set program = "bedGeneParts" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -50,5 +50,8 @@ about: doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-bedgraphpack/build.sh b/recipes/ucsc-bedgraphpack/build.sh index 35f9f4a4071a5..3600d25ac86be 100644 --- a/recipes/ucsc-bedgraphpack/build.sh +++ b/recipes/ucsc-bedgraphpack/build.sh @@ -2,20 +2,20 @@ set -xe -mkdir -p "$PREFIX/bin" +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) +export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" -export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/utils/bedGraphPack && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/bedGraphPack "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/bedGraphPack" +cp bin/bedGraphPack "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bedGraphPack" diff --git a/recipes/ucsc-bedgraphpack/meta.yaml b/recipes/ucsc-bedgraphpack/meta.yaml index 81da67b2ef311..d950f7ed9e88e 100644 --- a/recipes/ucsc-bedgraphpack/meta.yaml +++ b/recipes/ucsc-bedgraphpack/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bedgraphpack" %} {% set program = "bedGraphPack" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -50,5 +50,8 @@ about: doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-bedgraphtobigwig/build.sh b/recipes/ucsc-bedgraphtobigwig/build.sh index a41225d70c23a..5d7368f71bdd2 100644 --- a/recipes/ucsc-bedgraphtobigwig/build.sh +++ b/recipes/ucsc-bedgraphtobigwig/build.sh @@ -1,17 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "${PREFIX}/bin" -export MACHTYPE=x86_64 -export BINDIR=`pwd`/bin +export MACHTYPE=$(uname -m) +export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" -export LD_LIBRARY_PATH="${PREFIX}/lib" -export LDFLAGS="-L${PREFIX}/lib" -export CFLAGS="-I${PREFIX}/include ${LDFLAGS}" -export CXXFLAGS="-I${PREFIX}/include ${LDFLAGS}" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" mkdir -p "${BINDIR}" -cd ${SRC_DIR}/kent/src/lib && make CC=${CC} CXX=${CXX} CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -cd ${SRC_DIR}/kent/src/htslib && make CC=${CC} CXX=${CXX} CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -cd ${SRC_DIR}/kent/src/jkOwnLib && make CC=${CC} CXX=${CXX} CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -cd ${SRC_DIR}/kent/src/utils/bedGraphToBigWig && make CC=${CC} CXX=${CXX} CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -cp ${SRC_DIR}/bin/bedGraphToBigWig "${PREFIX}/bin" -chmod +x "${PREFIX}/bin/bedGraphToBigWig" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/bedGraphToBigWig && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/bedGraphToBigWig "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bedGraphToBigWig" diff --git a/recipes/ucsc-bedgraphtobigwig/include.patch b/recipes/ucsc-bedgraphtobigwig/include.patch index b4b153480032c..edc04d0dc2f64 100644 --- a/recipes/ucsc-bedgraphtobigwig/include.patch +++ b/recipes/ucsc-bedgraphtobigwig/include.patch @@ -1,24 +1,24 @@ ---- a/kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ b/kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 +--- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 ++++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- a/kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 -+++ b/kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python import logging, sys, optparse, string from collections import defaultdict ---- a/kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 -+++ b/kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-bedgraphtobigwig/meta.yaml b/recipes/ucsc-bedgraphtobigwig/meta.yaml index 9aec6cf66f7a4..ea2f56db02e67 100644 --- a/recipes/ucsc-bedgraphtobigwig/meta.yaml +++ b/recipes/ucsc-bedgraphtobigwig/meta.yaml @@ -1,21 +1,21 @@ {% set package = "ucsc-bedgraphtobigwig" %} {% set program = "bedGraphToBigWig" %} -{% set version = "455" %} -{% set sha256 = "e458cadad7c4a5c1b8385edafffa1b29380ac725a0c20535bf5a3bab99fe80db" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" version: "{{ version }}" source: - url: "https://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{{ version }}.src.tgz" + url: "http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{{ version }}.src.tgz" sha256: "{{ sha256 }}" patches: - "include.patch" - - "patch1.patch" build: - number: 1 + skip: True # [osx] + number: 0 run_exports: - {{ pin_subpackage(package, max_pin=None) }} @@ -23,29 +23,35 @@ requirements: build: - make - {{ compiler('c') }} - - {{ compiler('cxx') }} host: - libpng - libuuid - mysql-connector-c - libopenssl-static - - openssl - zlib + run: - libpng - libuuid - - openssl + - mysql-connector-c + - libopenssl-static + - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} + +about: + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" + summary: "Convert a bedGraph file to bigWig format." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - linux-aarch64 - -about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" - summary: "Convert a bedGraph file to bigWig format." diff --git a/recipes/ucsc-bedintersect/build.sh b/recipes/ucsc-bedintersect/build.sh index 463e5ef29d12d..e8735ba8125e6 100644 --- a/recipes/ucsc-bedintersect/build.sh +++ b/recipes/ucsc-bedintersect/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/bedIntersect && make) -cp bin/bedIntersect "$PREFIX/bin" -chmod +x "$PREFIX/bin/bedIntersect" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/bedIntersect && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/bedIntersect "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bedIntersect" diff --git a/recipes/ucsc-bedintersect/include.patch b/recipes/ucsc-bedintersect/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-bedintersect/include.patch +++ b/recipes/ucsc-bedintersect/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-bedintersect/meta.yaml b/recipes/ucsc-bedintersect/meta.yaml index 8f70102146641..5ed61c6ad927f 100644 --- a/recipes/ucsc-bedintersect/meta.yaml +++ b/recipes/ucsc-bedintersect/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bedintersect" %} {% set program = "bedIntersect" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Intersect two bed files" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-beditemoverlapcount/build.sh b/recipes/ucsc-beditemoverlapcount/build.sh index bfb85d4baf7e3..9e731e0e7b060 100644 --- a/recipes/ucsc-beditemoverlapcount/build.sh +++ b/recipes/ucsc-beditemoverlapcount/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/bedItemOverlapCount && make) -cp bin/bedItemOverlapCount "$PREFIX/bin" -chmod +x "$PREFIX/bin/bedItemOverlapCount" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/bedItemOverlapCount && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/bedItemOverlapCount "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bedItemOverlapCount" diff --git a/recipes/ucsc-beditemoverlapcount/include.patch b/recipes/ucsc-beditemoverlapcount/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-beditemoverlapcount/include.patch +++ b/recipes/ucsc-beditemoverlapcount/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-beditemoverlapcount/meta.yaml b/recipes/ucsc-beditemoverlapcount/meta.yaml index 5fa66226d97c3..bdb5fb822e3a5 100644 --- a/recipes/ucsc-beditemoverlapcount/meta.yaml +++ b/recipes/ucsc-beditemoverlapcount/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-beditemoverlapcount" %} {% set program = "bedItemOverlapCount" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "count number of times a base is overlapped by the" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-bedjointaboffset/build.sh b/recipes/ucsc-bedjointaboffset/build.sh index b0fa55386a339..66c35a7548a83 100644 --- a/recipes/ucsc-bedjointaboffset/build.sh +++ b/recipes/ucsc-bedjointaboffset/build.sh @@ -1,4 +1,7 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -cp kent/src/utils/bedJoinTabOffset "$PREFIX/bin" -chmod +x "$PREFIX/bin/bedJoinTabOffset" + +set -xe + +mkdir -p "${PREFIX}/bin" +cp kent/src/utils/bedJoinTabOffset "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bedJoinTabOffset" diff --git a/recipes/ucsc-bedjointaboffset/build_failure.linux-64.yaml b/recipes/ucsc-bedjointaboffset/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..a7938f2cf850d --- /dev/null +++ b/recipes/ucsc-bedjointaboffset/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: e012ba21d33790d74fa3bd1b6883d0278e83a96dc5f265d468abf3d43927b632 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + sysroot_linux-64: 2.17-h4a8ded7_16 conda-forge + tzdata: 2024a-h8827d51_1 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Source cache directory is: /opt/conda/conda-bld/src_cache + Downloading source to cache: userApps.v469.src_3f95b26ccc.tgz + Downloading http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v469.src.tgz + Success + Extracting download + Applying patch: /opt/recipe/include.patch + Applying patch: /opt/recipe/include.patch with args: + ['-Np0', '-i', '/tmp/tmpj88djt1f/include.patch.native', '--binary'] + checking file kent/src/inc/common.mk + Hunk #1 succeeded at 21 (offset 4 lines). + checking file kent/src/utils/bedJoinTabOffset.py + checking file kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed + patching file kent/src/inc/common.mk + Hunk #1 succeeded at 21 (offset 4 lines). + patching file kent/src/utils/bedJoinTabOffset.py + patching file kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed + Patch analysis gives: + [[ RA--D0L-VE ]] - [[ include.patch ]] + + Key: + + R :: Reversible A :: Applicable + Y :: Build-prefix patch in use M :: Minimal, non-amalgamated + D :: Dry-runnable N :: Patch level (1 is preferred) + L :: Patch level not-ambiguous O :: Patch applies without offsets + V :: Patch applies without fuzz E :: Patch applies without emitting to stderr + + source tree in: /opt/conda/conda-bld/ucsc-bedjointaboffset_1724792239783/work + export PREFIX=/opt/conda/conda-bld/ucsc-bedjointaboffset_1724792239783/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p + export BUILD_PREFIX=/opt/conda/conda-bld/ucsc-bedjointaboffset_1724792239783/_build_env + export SRC_DIR=/opt/conda/conda-bld/ucsc-bedjointaboffset_1724792239783/work + INFO: activate-binutils_linux-64.sh made the following environmental changes: + ADDR2LINE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-addr2line + AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar + AS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-as + CXXFILT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cfilt + DWP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-dwp + ELFEDIT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-elfedit + GPROF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gprof + LD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld + LD_GOLD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld.gold + NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-nm + OBJCOPY=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objcopy + OBJDUMP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objdump + RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib + READELF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-readelf + SIZE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-size + STRINGS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strings + STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip + INFO: activate-gcc_linux-64.sh made the following environmental changes: + BUILD=x86_64-conda-linux-gnu + CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bedjointaboffset-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr + CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot + CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu + CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu + CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp + CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include + DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bedjointaboffset-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include + GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc + GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar + GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm + GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib + HOST=x86_64-conda-linux-gnu + LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + MESON_ARGS=-Dbuildtype=release --prefix=$PREFIX -Dlibdir=lib + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu + build_alias=x86_64-conda-linux-gnu + host_alias=x86_64-conda-linux-gnu + -BUILD=x86_64-conda_cos6-linux-gnu + -CONDA_BUILD_SYSROOT= + mkdir -p /opt/conda/conda-bld/ucsc-bedjointaboffset_1724792239783/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/bin + cp kent/src/utils/bedJoinTabOffset /opt/conda/conda-bld/ucsc-bedjointaboffset_1724792239783/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/bin + cp: omitting directory 'kent/src/utils/bedJoinTabOffset' + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/ucsc-bedjointaboffset_1724792239783/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/ucsc-bedjointaboffset/build_failure.linux-aarch64.yaml b/recipes/ucsc-bedjointaboffset/build_failure.linux-aarch64.yaml new file mode 100644 index 0000000000000..e9b919aba5c68 --- /dev/null +++ b/recipes/ucsc-bedjointaboffset/build_failure.linux-aarch64.yaml @@ -0,0 +1,104 @@ +recipe_sha: e012ba21d33790d74fa3bd1b6883d0278e83a96dc5f265d468abf3d43927b632 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + sysroot_linux-aarch64: 2.17-h5b4a56d_16 conda-forge + tzdata: 2024a-h8827d51_1 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Source cache directory is: /opt/conda/conda-bld/src_cache + Downloading source to cache: userApps.v469.src_3f95b26ccc.tgz + Downloading http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v469.src.tgz + Success + Extracting download + Applying patch: /opt/recipe/include.patch + Applying patch: /opt/recipe/include.patch with args: + ['-Np0', '-i', '/tmp/tmp7zu2_wri/include.patch.native', '--binary'] + checking file kent/src/inc/common.mk + Hunk #1 succeeded at 21 (offset 4 lines). + checking file kent/src/utils/bedJoinTabOffset.py + checking file kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed + patching file kent/src/inc/common.mk + Hunk #1 succeeded at 21 (offset 4 lines). + patching file kent/src/utils/bedJoinTabOffset.py + patching file kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed + Patch analysis gives: + [[ RA--D0L-VE ]] - [[ include.patch ]] + + Key: + + R :: Reversible A :: Applicable + Y :: Build-prefix patch in use M :: Minimal, non-amalgamated + D :: Dry-runnable N :: Patch level (1 is preferred) + L :: Patch level not-ambiguous O :: Patch applies without offsets + V :: Patch applies without fuzz E :: Patch applies without emitting to stderr + + source tree in: /opt/conda/conda-bld/ucsc-bedjointaboffset_1724792053044/work + export PREFIX=/opt/conda/conda-bld/ucsc-bedjointaboffset_1724792053044/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p + export BUILD_PREFIX=/opt/conda/conda-bld/ucsc-bedjointaboffset_1724792053044/_build_env + export SRC_DIR=/opt/conda/conda-bld/ucsc-bedjointaboffset_1724792053044/work + INFO: activate-binutils_linux-aarch64.sh made the following environmental changes: + ADDR2LINE=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-addr2line + AR=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-ar + AS=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-as + CXXFILT=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cfilt + DWP=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-dwp + ELFEDIT=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-elfedit + GPROF=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-gprof + LD=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-ld + LD_GOLD=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-ld.gold + NM=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-nm + OBJCOPY=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-objcopy + OBJDUMP=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-objdump + RANLIB=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-ranlib + READELF=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-readelf + SIZE=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-size + STRINGS=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-strings + STRIP=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-strip + INFO: activate-gcc_linux-aarch64.sh made the following environmental changes: + BUILD=aarch64-conda-linux-gnu + CC=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc + CC_FOR_BUILD=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc + CFLAGS=-ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bedjointaboffset-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/aarch64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/aarch64-conda-linux-gnu/sysroot/usr + CONDA_BUILD_SYSROOT=$BUILD_PREFIX/aarch64-conda-linux-gnu/sysroot + CONDA_TOOLCHAIN_BUILD=aarch64-conda-linux-gnu + CONDA_TOOLCHAIN_HOST=aarch64-conda-linux-gnu + CPP=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cpp + CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include + DEBUG_CFLAGS=-ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-bedjointaboffset-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include + GCC=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-gcc + GCC_AR=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-gcc-ar + GCC_NM=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-gcc-nm + GCC_RANLIB=$BUILD_PREFIX/bin/aarch64-conda-linux-gnu-gcc-ranlib + HOST=aarch64-conda-linux-gnu + LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + MESON_ARGS=-Dbuildtype=release --prefix=$PREFIX -Dlibdir=lib + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_aarch64_conda_cos7_linux_gnu + build_alias=aarch64-conda-linux-gnu + host_alias=aarch64-conda-linux-gnu + -BUILD=aarch64-conda_cos7-linux-gnu + -CONDA_BUILD_SYSROOT= + mkdir -p /opt/conda/conda-bld/ucsc-bedjointaboffset_1724792053044/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/bin + cp kent/src/utils/bedJoinTabOffset /opt/conda/conda-bld/ucsc-bedjointaboffset_1724792053044/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/bin + cp: omitting directory 'kent/src/utils/bedJoinTabOffset' + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/ucsc-bedjointaboffset_1724792053044/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/ucsc-bedjointaboffset/include.patch b/recipes/ucsc-bedjointaboffset/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-bedjointaboffset/include.patch +++ b/recipes/ucsc-bedjointaboffset/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-bedjointaboffset/meta.yaml b/recipes/ucsc-bedjointaboffset/meta.yaml index 5fb1d736c7504..850769f638b08 100644 --- a/recipes/ucsc-bedjointaboffset/meta.yaml +++ b/recipes/ucsc-bedjointaboffset/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bedjointaboffset" %} {% set program = "bedJoinTabOffset" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,16 +15,25 @@ source: build: skip: True # [osx] - number: 2 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: + - {{ compiler('c') }} host: + - libpng + - libuuid + - mysql-connector-c + - libopenssl-static + - zlib + run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - python - zlib @@ -37,3 +46,12 @@ about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "given a bed file and tab file where each have a column with matching values: first get the value of column0, the offset and line length from inTabFile. Then go over the bed file, use the name field and append its offset and length to the bed file as two separate fields. Write the new bed file to outBed." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-bedpileups/build.sh b/recipes/ucsc-bedpileups/build.sh index f1aa76b9a3b4c..d49b45360aa4d 100644 --- a/recipes/ucsc-bedpileups/build.sh +++ b/recipes/ucsc-bedpileups/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/bedPileUps && make) -cp bin/bedPileUps "$PREFIX/bin" -chmod +x "$PREFIX/bin/bedPileUps" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/bedPileUps && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/bedPileUps "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bedPileUps" diff --git a/recipes/ucsc-bedpileups/include.patch b/recipes/ucsc-bedpileups/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-bedpileups/include.patch +++ b/recipes/ucsc-bedpileups/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-bedpileups/meta.yaml b/recipes/ucsc-bedpileups/meta.yaml index b3e70a97e2c18..f75c721a2889f 100644 --- a/recipes/ucsc-bedpileups/meta.yaml +++ b/recipes/ucsc-bedpileups/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bedpileups" %} {% set program = "bedPileUps" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Find (exact) overlaps if any in bed input" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-bedremoveoverlap/build.sh b/recipes/ucsc-bedremoveoverlap/build.sh index 971f4a5ace1d1..ee59fd0ba4298 100644 --- a/recipes/ucsc-bedremoveoverlap/build.sh +++ b/recipes/ucsc-bedremoveoverlap/build.sh @@ -2,20 +2,20 @@ set -xe -mkdir -p "$PREFIX/bin" +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) +export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" -export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/utils/bedRemoveOverlap && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/bedRemoveOverlap "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/bedRemoveOverlap" +cp bin/bedRemoveOverlap "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bedRemoveOverlap" diff --git a/recipes/ucsc-bedremoveoverlap/meta.yaml b/recipes/ucsc-bedremoveoverlap/meta.yaml index a35d8341dbdbd..40e11ffca0e67 100644 --- a/recipes/ucsc-bedremoveoverlap/meta.yaml +++ b/recipes/ucsc-bedremoveoverlap/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bedremoveoverlap" %} {% set program = "bedRemoveOverlap" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -50,5 +50,8 @@ about: doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-bedrestricttopositions/build.sh b/recipes/ucsc-bedrestricttopositions/build.sh index e27e6ecc54f19..82f7323e39f3d 100644 --- a/recipes/ucsc-bedrestricttopositions/build.sh +++ b/recipes/ucsc-bedrestricttopositions/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/bedRestrictToPositions && make) -cp bin/bedRestrictToPositions "$PREFIX/bin" -chmod +x "$PREFIX/bin/bedRestrictToPositions" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/bedRestrictToPositions && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/bedRestrictToPositions "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bedRestrictToPositions" diff --git a/recipes/ucsc-bedrestricttopositions/include.patch b/recipes/ucsc-bedrestricttopositions/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-bedrestricttopositions/include.patch +++ b/recipes/ucsc-bedrestricttopositions/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-bedrestricttopositions/meta.yaml b/recipes/ucsc-bedrestricttopositions/meta.yaml index 1c9117bdb25e3..ab068a46f57fb 100644 --- a/recipes/ucsc-bedrestricttopositions/meta.yaml +++ b/recipes/ucsc-bedrestricttopositions/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bedrestricttopositions" %} {% set program = "bedRestrictToPositions" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Filter bed file, restricting to only ones that match chrom/start/ends specified in restrict.bed file." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-bedsort/build.sh b/recipes/ucsc-bedsort/build.sh index 7a161baafe158..308bd9a232ed2 100644 --- a/recipes/ucsc-bedsort/build.sh +++ b/recipes/ucsc-bedsort/build.sh @@ -1,5 +1,8 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" + +set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" @@ -8,11 +11,11 @@ export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -(cd kent/src/hg/lib && USE_HIC=0 make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/bedSort && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/bedSort "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/bedSort" +cp bin/bedSort "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bedSort" diff --git a/recipes/ucsc-bedsort/include.patch b/recipes/ucsc-bedsort/include.patch index 1646de15a38f7..edc04d0dc2f64 100644 --- a/recipes/ucsc-bedsort/include.patch +++ b/recipes/ucsc-bedsort/include.patch @@ -1,5 +1,5 @@ ---- a/kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ b/kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 +--- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 ++++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif @@ -9,16 +9,16 @@ # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- a/kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 -+++ b/kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python import logging, sys, optparse, string from collections import defaultdict ---- a/kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 -+++ b/kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-bedsort/meta.yaml b/recipes/ucsc-bedsort/meta.yaml index 832d257a70c12..416d0f783723e 100644 --- a/recipes/ucsc-bedsort/meta.yaml +++ b/recipes/ucsc-bedsort/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bedsort" %} {% set program = "bedSort" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -14,9 +14,10 @@ source: - "include.patch" build: + skip: True # [osx] number: 0 run_exports: - - {{ pin_subpackage('ucsc-bedsort', max_pin=None) }} + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -28,11 +29,13 @@ requirements: - mysql-connector-c - libopenssl-static - zlib + run: - libpng - libuuid - mysql-connector-c - libopenssl-static + - zlib test: commands: @@ -41,11 +44,14 @@ test: about: home: "https://hgdownload.cse.ucsc.edu/admin/exe/" - license: "Varies; see https://genome.ucsc.edu/license" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Sort a .bed file by chrom,chromStart" dev_url: "https://github.com/ucscGenomeBrowser/kent" doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - linux-aarch64 diff --git a/recipes/ucsc-bedtobigbed/build.sh b/recipes/ucsc-bedtobigbed/build.sh index fb722163f7ad1..2b2c5a16aad45 100644 --- a/recipes/ucsc-bedtobigbed/build.sh +++ b/recipes/ucsc-bedtobigbed/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/bedToBigBed && make) -cp bin/bedToBigBed "$PREFIX/bin" -chmod +x "$PREFIX/bin/bedToBigBed" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/bedToBigBed && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/bedToBigBed "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bedToBigBed" diff --git a/recipes/ucsc-bedtobigbed/include.patch b/recipes/ucsc-bedtobigbed/include.patch index e9c8621194325..edc04d0dc2f64 100644 --- a/recipes/ucsc-bedtobigbed/include.patch +++ b/recipes/ucsc-bedtobigbed/include.patch @@ -1,30 +1,22 @@ --- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 ++++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -+++ kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -@@ -147,4 +147,4 @@ -- L+=${PREFIX}/lib/libssl.a ${PREFIX}/lib/libcrypto.a -ldl -+ L+=${PREFIX}/lib/libssl.so ${PREFIX}/lib/libcrypto.so -ldl - else - ifneq ($(wildcard /opt/local/lib/libssl.a),) - L+=/opt/local/lib/libssl.a ---- kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 -+++ kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ --KENT_INC=-I../../../inc -+KENT_INC=-I../../../inc -I${PREFIX}/include - - straw: straw.o cStraw.o - ld -r -o ../straw.o straw.o cStraw.o +-#!/usr/bin/env python2.7 ++#!/usr/bin/env python + + import logging, sys, optparse, string + from collections import defaultdict --- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ diff --git a/recipes/ucsc-bedtobigbed/meta.yaml b/recipes/ucsc-bedtobigbed/meta.yaml index dc6ece24ed64b..156f4100092c2 100644 --- a/recipes/ucsc-bedtobigbed/meta.yaml +++ b/recipes/ucsc-bedtobigbed/meta.yaml @@ -1,25 +1,21 @@ {% set package = "ucsc-bedtobigbed" %} {% set program = "bedToBigBed" %} -{% set version = "447" %} -{% set sha256 = "747a48486f7481d891e297baf63623b15d699265ede7339f654bcbc42481ac81" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: - name: {{ package }} - version: {{ version }} + name: "{{ package }}" + version: "{{ version }}" source: url: "http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{{ version }}.src.tgz" - sha256: {{ sha256 }} + sha256: "{{ sha256 }}" patches: - - include.patch - - htmshell.patch + - "include.patch" build: - number: 1 - skip: True # [osx] - ignore_run_exports: - - libpng - - libuuid + skip: True # [osx] + number: 0 run_exports: - {{ pin_subpackage(package, max_pin=None) }} @@ -27,31 +23,35 @@ requirements: build: - make - {{ compiler('c') }} - - {{ compiler('cxx') }} - - binutils # [linux] host: - libpng - libuuid - mysql-connector-c - - openssl - libopenssl-static - zlib + run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static + - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" - summary: "Convert bed file to bigBed. (bbi version: 4)" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" + summary: "Convert bed file to bigBed. (BigBed version: 4)" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-bedtogenepred/build.sh b/recipes/ucsc-bedtogenepred/build.sh index aa966fdb34201..163f8a5c60726 100644 --- a/recipes/ucsc-bedtogenepred/build.sh +++ b/recipes/ucsc-bedtogenepred/build.sh @@ -1,21 +1,21 @@ #!/bin/bash -set -xe +set -xe -mkdir -p "$PREFIX/bin" +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) +export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" -export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p $BINDIR +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/bedToGenePred && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/bedToGenePred "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/bedToGenePred" +cp bin/bedToGenePred "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bedToGenePred" diff --git a/recipes/ucsc-bedtogenepred/meta.yaml b/recipes/ucsc-bedtogenepred/meta.yaml index 0e5ba571827a5..1fc76c92ba6db 100644 --- a/recipes/ucsc-bedtogenepred/meta.yaml +++ b/recipes/ucsc-bedtogenepred/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bedtogenepred" %} {% set program = "bedToGenePred" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -50,5 +50,7 @@ about: doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: - additional-platforms: -# - linux-aarch64 # linking fails with `undefined reference to `cram_get_Md5'` and few more functions \ No newline at end of file + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-bedtopsl/build.sh b/recipes/ucsc-bedtopsl/build.sh index dcab9d7776a97..27fed78f2e79a 100644 --- a/recipes/ucsc-bedtopsl/build.sh +++ b/recipes/ucsc-bedtopsl/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/utils/bedToPsl && make) -cp bin/bedToPsl "$PREFIX/bin" -chmod +x "$PREFIX/bin/bedToPsl" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/bedToPsl && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/bedToPsl "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bedToPsl" diff --git a/recipes/ucsc-bedtopsl/include.patch b/recipes/ucsc-bedtopsl/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-bedtopsl/include.patch +++ b/recipes/ucsc-bedtopsl/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-bedtopsl/meta.yaml b/recipes/ucsc-bedtopsl/meta.yaml index 07b6858631fe6..bf6d5446c806b 100644 --- a/recipes/ucsc-bedtopsl/meta.yaml +++ b/recipes/ucsc-bedtopsl/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bedtopsl" %} {% set program = "bedToPsl" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "convert bed format files to psl format" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-bedweedoverlapping/build.sh b/recipes/ucsc-bedweedoverlapping/build.sh index 002beb540c1dd..08ebc84a92e93 100644 --- a/recipes/ucsc-bedweedoverlapping/build.sh +++ b/recipes/ucsc-bedweedoverlapping/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/utils/bedWeedOverlapping && make) -cp bin/bedWeedOverlapping "$PREFIX/bin" -chmod +x "$PREFIX/bin/bedWeedOverlapping" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/bedWeedOverlapping && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/bedWeedOverlapping "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bedWeedOverlapping" diff --git a/recipes/ucsc-bedweedoverlapping/include.patch b/recipes/ucsc-bedweedoverlapping/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-bedweedoverlapping/include.patch +++ b/recipes/ucsc-bedweedoverlapping/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-bedweedoverlapping/meta.yaml b/recipes/ucsc-bedweedoverlapping/meta.yaml index bc6676b987bb3..e372114ed5e4b 100644 --- a/recipes/ucsc-bedweedoverlapping/meta.yaml +++ b/recipes/ucsc-bedweedoverlapping/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bedweedoverlapping" %} {% set program = "bedWeedOverlapping" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Filter out beds that overlap a 'weed.bed' file." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-bigbedinfo/build.sh b/recipes/ucsc-bigbedinfo/build.sh index 15cf1c6b82b8a..420bee013e254 100644 --- a/recipes/ucsc-bigbedinfo/build.sh +++ b/recipes/ucsc-bigbedinfo/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" + +set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make -j ${CPU_COUNT}) -(cd kent/src/htslib && make -j ${CPU_COUNT}) -(cd kent/src/jkOwnLib && make -j ${CPU_COUNT}) -(cd kent/src/hg/lib && USE_HIC=0 make -j ${CPU_COUNT}) -(cd kent/src/utils/bigBedInfo && make -j ${CPU_COUNT}) -cp bin/bigBedInfo "$PREFIX/bin" -chmod +x "$PREFIX/bin/bigBedInfo" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/bigBedInfo && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/bigBedInfo "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bigBedInfo" diff --git a/recipes/ucsc-bigbedinfo/include.patch b/recipes/ucsc-bigbedinfo/include.patch index e2c7f6e6cb70a..edc04d0dc2f64 100644 --- a/recipes/ucsc-bigbedinfo/include.patch +++ b/recipes/ucsc-bigbedinfo/include.patch @@ -5,7 +5,7 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) diff --git a/recipes/ucsc-bigbedinfo/meta.yaml b/recipes/ucsc-bigbedinfo/meta.yaml index 93110c41fe8eb..964aa7c634c8e 100644 --- a/recipes/ucsc-bigbedinfo/meta.yaml +++ b/recipes/ucsc-bigbedinfo/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bigbedinfo" %} {% set program = "bigBedInfo" %} -{% set version = "465" %} -{% set sha256 = "eef17b1f3182d1d9dc99b5c73a6b0468d5d3bd80470f25d3f7706cc1372e04b0" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -43,10 +43,15 @@ test: - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Show information about a bigBed file." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-bigbednameditems/build.sh b/recipes/ucsc-bigbednameditems/build.sh index 3d04dd5bf568e..777c54b464f56 100644 --- a/recipes/ucsc-bigbednameditems/build.sh +++ b/recipes/ucsc-bigbednameditems/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" + +set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make -j ${CPU_COUNT}) -(cd kent/src/htslib && make -j ${CPU_COUNT}) -(cd kent/src/jkOwnLib && make -j ${CPU_COUNT}) -(cd kent/src/hg/lib && USE_HIC=0 make -j ${CPU_COUNT}) -(cd kent/src/utils/bigBedNamedItems && make -j ${CPU_COUNT}) -cp bin/bigBedNamedItems "$PREFIX/bin" -chmod +x "$PREFIX/bin/bigBedNamedItems" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/bigBedNamedItems && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/bigBedNamedItems "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bigBedNamedItems" diff --git a/recipes/ucsc-bigbednameditems/include.patch b/recipes/ucsc-bigbednameditems/include.patch index e2c7f6e6cb70a..edc04d0dc2f64 100644 --- a/recipes/ucsc-bigbednameditems/include.patch +++ b/recipes/ucsc-bigbednameditems/include.patch @@ -5,7 +5,7 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) diff --git a/recipes/ucsc-bigbednameditems/meta.yaml b/recipes/ucsc-bigbednameditems/meta.yaml index c3514f0bfc7ae..eb9e9631ab382 100644 --- a/recipes/ucsc-bigbednameditems/meta.yaml +++ b/recipes/ucsc-bigbednameditems/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bigbednameditems" %} {% set program = "bigBedNamedItems" %} -{% set version = "465" %} -{% set sha256 = "eef17b1f3182d1d9dc99b5c73a6b0468d5d3bd80470f25d3f7706cc1372e04b0" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -43,10 +43,15 @@ test: - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Extract item of given name from bigBed" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-bigbedsummary/build.sh b/recipes/ucsc-bigbedsummary/build.sh index cfb822b0daef1..89e7a9c76ffeb 100644 --- a/recipes/ucsc-bigbedsummary/build.sh +++ b/recipes/ucsc-bigbedsummary/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" + +set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make -j ${CPU_COUNT}) -(cd kent/src/htslib && make -j ${CPU_COUNT}) -(cd kent/src/jkOwnLib && make -j ${CPU_COUNT}) -(cd kent/src/hg/lib && USE_HIC=0 make -j ${CPU_COUNT}) -(cd kent/src/utils/bigBedSummary && make -j ${CPU_COUNT}) -cp bin/bigBedSummary "$PREFIX/bin" -chmod +x "$PREFIX/bin/bigBedSummary" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/bigBedSummary && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/bigBedSummary "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bigBedSummary" diff --git a/recipes/ucsc-bigbedsummary/include.patch b/recipes/ucsc-bigbedsummary/include.patch index e2c7f6e6cb70a..edc04d0dc2f64 100644 --- a/recipes/ucsc-bigbedsummary/include.patch +++ b/recipes/ucsc-bigbedsummary/include.patch @@ -5,7 +5,7 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) diff --git a/recipes/ucsc-bigbedsummary/meta.yaml b/recipes/ucsc-bigbedsummary/meta.yaml index 5a3a07fb3aa8c..528d9716a3817 100644 --- a/recipes/ucsc-bigbedsummary/meta.yaml +++ b/recipes/ucsc-bigbedsummary/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bigbedsummary" %} {% set program = "bigBedSummary" %} -{% set version = "465" %} -{% set sha256 = "eef17b1f3182d1d9dc99b5c73a6b0468d5d3bd80470f25d3f7706cc1372e04b0" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -43,10 +43,15 @@ test: - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Extract summary information from a bigBed file." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-bigbedtobed/build.sh b/recipes/ucsc-bigbedtobed/build.sh index 557d263987d51..dea44fa59530b 100644 --- a/recipes/ucsc-bigbedtobed/build.sh +++ b/recipes/ucsc-bigbedtobed/build.sh @@ -2,15 +2,20 @@ set -xe -mkdir -p "$PREFIX/bin" +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make -j ${CPU_COUNT}) -(cd kent/src/htslib && make -j ${CPU_COUNT}) -(cd kent/src/jkOwnLib && make -j ${CPU_COUNT}) -(cd kent/src/hg/lib && USE_HIC=0 make -j ${CPU_COUNT}) -(cd kent/src/utils/bigBedToBed && make -j ${CPU_COUNT}) -cp bin/bigBedToBed "$PREFIX/bin" -chmod +x "$PREFIX/bin/bigBedToBed" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/bigBedToBed && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/bigBedToBed "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bigBedToBed" diff --git a/recipes/ucsc-bigbedtobed/include.patch b/recipes/ucsc-bigbedtobed/include.patch index e2c7f6e6cb70a..edc04d0dc2f64 100644 --- a/recipes/ucsc-bigbedtobed/include.patch +++ b/recipes/ucsc-bigbedtobed/include.patch @@ -5,7 +5,7 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) diff --git a/recipes/ucsc-bigbedtobed/meta.yaml b/recipes/ucsc-bigbedtobed/meta.yaml index 2572fb5c4f7a8..708bb43118bd2 100644 --- a/recipes/ucsc-bigbedtobed/meta.yaml +++ b/recipes/ucsc-bigbedtobed/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bigbedtobed" %} {% set program = "bigBedToBed" %} -{% set version = "465" %} -{% set sha256 = "eef17b1f3182d1d9dc99b5c73a6b0468d5d3bd80470f25d3f7706cc1372e04b0" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -23,7 +23,6 @@ requirements: build: - make - {{ compiler('c') }} - - {{ compiler('cxx') }} host: - libpng - libuuid @@ -44,10 +43,15 @@ test: - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert from bigBed to ascii bed format." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-bigmaftomaf/build.sh b/recipes/ucsc-bigmaftomaf/build.sh index 291b1bb07748e..fbed7ad379763 100644 --- a/recipes/ucsc-bigmaftomaf/build.sh +++ b/recipes/ucsc-bigmaftomaf/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" + +set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make -j ${CPU_COUNT}) -(cd kent/src/htslib && make -j ${CPU_COUNT}) -(cd kent/src/jkOwnLib && make -j ${CPU_COUNT}) -(cd kent/src/hg/lib && USE_HIC=0 make -j ${CPU_COUNT}) -(cd kent/src/hg/utils/bigMafToMaf && make -j ${CPU_COUNT}) -cp bin/bigMafToMaf "$PREFIX/bin" -chmod +x "$PREFIX/bin/bigMafToMaf" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/bigMafToMaf && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/bigMafToMaf "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bigMafToMaf" diff --git a/recipes/ucsc-bigmaftomaf/include.patch b/recipes/ucsc-bigmaftomaf/include.patch index e2c7f6e6cb70a..edc04d0dc2f64 100644 --- a/recipes/ucsc-bigmaftomaf/include.patch +++ b/recipes/ucsc-bigmaftomaf/include.patch @@ -5,7 +5,7 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) diff --git a/recipes/ucsc-bigmaftomaf/meta.yaml b/recipes/ucsc-bigmaftomaf/meta.yaml index 08fb94982d426..f59a7e70f7d81 100644 --- a/recipes/ucsc-bigmaftomaf/meta.yaml +++ b/recipes/ucsc-bigmaftomaf/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bigmaftomaf" %} {% set program = "bigMafToMaf" %} -{% set version = "465" %} -{% set sha256 = "eef17b1f3182d1d9dc99b5c73a6b0468d5d3bd80470f25d3f7706cc1372e04b0" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -43,10 +43,15 @@ test: - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "convert bigMaf to maf file" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-bigpsltopsl/build.sh b/recipes/ucsc-bigpsltopsl/build.sh index f6e9e3b240bef..ea6e4221c1466 100644 --- a/recipes/ucsc-bigpsltopsl/build.sh +++ b/recipes/ucsc-bigpsltopsl/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" + +set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make -j ${CPU_COUNT}) -(cd kent/src/htslib && make -j ${CPU_COUNT}) -(cd kent/src/jkOwnLib && make -j ${CPU_COUNT}) -(cd kent/src/hg/lib && USE_HIC=0 make -j ${CPU_COUNT}) -(cd kent/src/hg/utils/bigPslToPsl && make -j ${CPU_COUNT}) -cp bin/bigPslToPsl "$PREFIX/bin" -chmod +x "$PREFIX/bin/bigPslToPsl" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/bigPslToPsl && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/bigPslToPsl "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bigPslToPsl" diff --git a/recipes/ucsc-bigpsltopsl/include.patch b/recipes/ucsc-bigpsltopsl/include.patch index e2c7f6e6cb70a..edc04d0dc2f64 100644 --- a/recipes/ucsc-bigpsltopsl/include.patch +++ b/recipes/ucsc-bigpsltopsl/include.patch @@ -5,7 +5,7 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) diff --git a/recipes/ucsc-bigpsltopsl/meta.yaml b/recipes/ucsc-bigpsltopsl/meta.yaml index d8b8df1c6ec46..515aa553be985 100644 --- a/recipes/ucsc-bigpsltopsl/meta.yaml +++ b/recipes/ucsc-bigpsltopsl/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bigpsltopsl" %} {% set program = "bigPslToPsl" %} -{% set version = "465" %} -{% set sha256 = "eef17b1f3182d1d9dc99b5c73a6b0468d5d3bd80470f25d3f7706cc1372e04b0" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -43,10 +43,15 @@ test: - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "convert bigPsl file to psl" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-bigwigaverageoverbed/build.sh b/recipes/ucsc-bigwigaverageoverbed/build.sh index 36ed74547fa9e..9044dbe5feb95 100644 --- a/recipes/ucsc-bigwigaverageoverbed/build.sh +++ b/recipes/ucsc-bigwigaverageoverbed/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" + +set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make -j ${CPU_COUNT}) -(cd kent/src/htslib && make -j ${CPU_COUNT}) -(cd kent/src/jkOwnLib && make -j ${CPU_COUNT}) -(cd kent/src/hg/lib && USE_HIC=0 make -j ${CPU_COUNT}) -(cd kent/src/utils/bigWigAverageOverBed && make -j ${CPU_COUNT}) -cp bin/bigWigAverageOverBed "$PREFIX/bin" -chmod +x "$PREFIX/bin/bigWigAverageOverBed" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/bigWigAverageOverBed && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/bigWigAverageOverBed "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bigWigAverageOverBed" diff --git a/recipes/ucsc-bigwigaverageoverbed/include.patch b/recipes/ucsc-bigwigaverageoverbed/include.patch index e2c7f6e6cb70a..edc04d0dc2f64 100644 --- a/recipes/ucsc-bigwigaverageoverbed/include.patch +++ b/recipes/ucsc-bigwigaverageoverbed/include.patch @@ -5,7 +5,7 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) diff --git a/recipes/ucsc-bigwigaverageoverbed/meta.yaml b/recipes/ucsc-bigwigaverageoverbed/meta.yaml index a3d7862dd2f63..e2e1bb8da3cce 100644 --- a/recipes/ucsc-bigwigaverageoverbed/meta.yaml +++ b/recipes/ucsc-bigwigaverageoverbed/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bigwigaverageoverbed" %} {% set program = "bigWigAverageOverBed" %} -{% set version = "465" %} -{% set sha256 = "eef17b1f3182d1d9dc99b5c73a6b0468d5d3bd80470f25d3f7706cc1372e04b0" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -43,10 +43,15 @@ test: - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Compute average score of big wig over each bed, which may have introns." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-bigwigcat/build.sh b/recipes/ucsc-bigwigcat/build.sh index de0b41cfd02d2..c76176d286e9f 100644 --- a/recipes/ucsc-bigwigcat/build.sh +++ b/recipes/ucsc-bigwigcat/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" + +set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make -j ${CPU_COUNT}) -(cd kent/src/htslib && make -j ${CPU_COUNT}) -(cd kent/src/jkOwnLib && make -j ${CPU_COUNT}) -(cd kent/src/hg/lib && USE_HIC=0 make -j ${CPU_COUNT}) -(cd kent/src/utils/bigWigCat && make -j ${CPU_COUNT}) -cp bin/bigWigCat "$PREFIX/bin" -chmod +x "$PREFIX/bin/bigWigCat" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/bigWigCat && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/bigWigCat "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bigWigCat" diff --git a/recipes/ucsc-bigwigcat/include.patch b/recipes/ucsc-bigwigcat/include.patch index e2c7f6e6cb70a..edc04d0dc2f64 100644 --- a/recipes/ucsc-bigwigcat/include.patch +++ b/recipes/ucsc-bigwigcat/include.patch @@ -5,7 +5,7 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) diff --git a/recipes/ucsc-bigwigcat/meta.yaml b/recipes/ucsc-bigwigcat/meta.yaml index 17562ee0872e2..f314a3ed65b9a 100644 --- a/recipes/ucsc-bigwigcat/meta.yaml +++ b/recipes/ucsc-bigwigcat/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bigwigcat" %} {% set program = "bigWigCat" %} -{% set version = "465" %} -{% set sha256 = "eef17b1f3182d1d9dc99b5c73a6b0468d5d3bd80470f25d3f7706cc1372e04b0" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -43,10 +43,15 @@ test: - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "merge non-overlapping bigWig files" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-bigwigcluster/build.sh b/recipes/ucsc-bigwigcluster/build.sh index 765d6480a8b74..dfff70dd0b0a7 100644 --- a/recipes/ucsc-bigwigcluster/build.sh +++ b/recipes/ucsc-bigwigcluster/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" + +set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make -j ${CPU_COUNT}) -(cd kent/src/htslib && make -j ${CPU_COUNT}) -(cd kent/src/jkOwnLib && make -j ${CPU_COUNT}) -(cd kent/src/hg/lib && USE_HIC=0 make -j ${CPU_COUNT}) -(cd kent/src/utils/bigWigCluster && make -j ${CPU_COUNT}) -cp bin/bigWigCluster "$PREFIX/bin" -chmod +x "$PREFIX/bin/bigWigCluster" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/bigWigCluster && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/bigWigCluster "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bigWigCluster" diff --git a/recipes/ucsc-bigwigcluster/include.patch b/recipes/ucsc-bigwigcluster/include.patch index e2c7f6e6cb70a..edc04d0dc2f64 100644 --- a/recipes/ucsc-bigwigcluster/include.patch +++ b/recipes/ucsc-bigwigcluster/include.patch @@ -5,7 +5,7 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) diff --git a/recipes/ucsc-bigwigcluster/meta.yaml b/recipes/ucsc-bigwigcluster/meta.yaml index 850d0384ba104..b385ad7c28da7 100644 --- a/recipes/ucsc-bigwigcluster/meta.yaml +++ b/recipes/ucsc-bigwigcluster/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bigwigcluster" %} {% set program = "bigWigCluster" %} -{% set version = "465" %} -{% set sha256 = "eef17b1f3182d1d9dc99b5c73a6b0468d5d3bd80470f25d3f7706cc1372e04b0" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -43,10 +43,15 @@ test: - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Cluster bigWigs using a hacTree" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-bigwigcorrelate/build.sh b/recipes/ucsc-bigwigcorrelate/build.sh index 0d57ea8b1e3de..f4b5ede22c371 100644 --- a/recipes/ucsc-bigwigcorrelate/build.sh +++ b/recipes/ucsc-bigwigcorrelate/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" + +set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make -j ${CPU_COUNT}) -(cd kent/src/htslib && make -j ${CPU_COUNT}) -(cd kent/src/jkOwnLib && make -j ${CPU_COUNT}) -(cd kent/src/hg/lib && USE_HIC=0 make -j ${CPU_COUNT}) -(cd kent/src/utils/bigWigCorrelate && make -j ${CPU_COUNT}) -cp bin/bigWigCorrelate "$PREFIX/bin" -chmod +x "$PREFIX/bin/bigWigCorrelate" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/bigWigCorrelate && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/bigWigCorrelate "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bigWigCorrelate" diff --git a/recipes/ucsc-bigwigcorrelate/include.patch b/recipes/ucsc-bigwigcorrelate/include.patch index e2c7f6e6cb70a..edc04d0dc2f64 100644 --- a/recipes/ucsc-bigwigcorrelate/include.patch +++ b/recipes/ucsc-bigwigcorrelate/include.patch @@ -5,7 +5,7 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) diff --git a/recipes/ucsc-bigwigcorrelate/meta.yaml b/recipes/ucsc-bigwigcorrelate/meta.yaml index 069403ca75dcb..0b51d8e1375da 100644 --- a/recipes/ucsc-bigwigcorrelate/meta.yaml +++ b/recipes/ucsc-bigwigcorrelate/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bigwigcorrelate" %} {% set program = "bigWigCorrelate" %} -{% set version = "465" %} -{% set sha256 = "eef17b1f3182d1d9dc99b5c73a6b0468d5d3bd80470f25d3f7706cc1372e04b0" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -43,10 +43,15 @@ test: - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Correlate bigWig files, optionally only on target regions." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-bigwiginfo/build.sh b/recipes/ucsc-bigwiginfo/build.sh index 70406d184f47e..6a25548f42c46 100644 --- a/recipes/ucsc-bigwiginfo/build.sh +++ b/recipes/ucsc-bigwiginfo/build.sh @@ -1,5 +1,8 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" + +set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" @@ -8,11 +11,11 @@ export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -(cd kent/src/hg/lib && USE_HIC=0 make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/utils/bigWigInfo && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/bigWigInfo "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/bigWigInfo" +cp bin/bigWigInfo "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bigWigInfo" diff --git a/recipes/ucsc-bigwiginfo/include.patch b/recipes/ucsc-bigwiginfo/include.patch index 1646de15a38f7..edc04d0dc2f64 100644 --- a/recipes/ucsc-bigwiginfo/include.patch +++ b/recipes/ucsc-bigwiginfo/include.patch @@ -1,5 +1,5 @@ ---- a/kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ b/kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 +--- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 ++++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif @@ -9,16 +9,16 @@ # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- a/kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 -+++ b/kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python import logging, sys, optparse, string from collections import defaultdict ---- a/kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 -+++ b/kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-bigwiginfo/meta.yaml b/recipes/ucsc-bigwiginfo/meta.yaml index e338cf6643131..844216cdcde7e 100644 --- a/recipes/ucsc-bigwiginfo/meta.yaml +++ b/recipes/ucsc-bigwiginfo/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bigwiginfo" %} {% set program = "bigWigInfo" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -14,6 +14,7 @@ source: - "include.patch" build: + skip: True # [osx] number: 0 run_exports: - {{ pin_subpackage(package, max_pin=None) }} @@ -28,11 +29,13 @@ requirements: - mysql-connector-c - libopenssl-static - zlib + run: - libpng - libuuid - mysql-connector-c - libopenssl-static + - zlib test: commands: @@ -41,11 +44,14 @@ test: about: home: "https://hgdownload.cse.ucsc.edu/admin/exe/" - license: "Varies; see https://genome.ucsc.edu/license" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Print out information about bigWig file." dev_url: "https://github.com/ucscGenomeBrowser/kent" doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - linux-aarch64 diff --git a/recipes/ucsc-bigwigmerge/build.sh b/recipes/ucsc-bigwigmerge/build.sh index 370567ebeae32..c2f18065057b5 100644 --- a/recipes/ucsc-bigwigmerge/build.sh +++ b/recipes/ucsc-bigwigmerge/build.sh @@ -2,20 +2,20 @@ set -xe -mkdir -p "$PREFIX/bin" +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) +export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" -export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/utils/bigWigMerge && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/bigWigMerge "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/bigWigMerge" +cp bin/bigWigMerge "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bigWigMerge" diff --git a/recipes/ucsc-bigwigmerge/meta.yaml b/recipes/ucsc-bigwigmerge/meta.yaml index f640285ef59b8..96f88d832b3ee 100644 --- a/recipes/ucsc-bigwigmerge/meta.yaml +++ b/recipes/ucsc-bigwigmerge/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bigwigmerge" %} {% set program = "bigWigMerge" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -19,7 +19,6 @@ build: run_exports: - {{ pin_subpackage(package, max_pin=None) }} - requirements: build: - make @@ -44,12 +43,15 @@ test: - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Merge together multiple bigWigs into a single output bedGraph." dev_url: "https://github.com/ucscGenomeBrowser/kent" doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-bigwigsummary/build.sh b/recipes/ucsc-bigwigsummary/build.sh index 603cc567834b8..522db94f18c2b 100644 --- a/recipes/ucsc-bigwigsummary/build.sh +++ b/recipes/ucsc-bigwigsummary/build.sh @@ -1,26 +1,28 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" +set -xe +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) -export BINDIR="$(pwd)/bin" +export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" if [[ "$(uname)" == Darwin ]]; then export LDFLAGS="${LDFLAGS} -Wl,-rpath,${PREFIX}/lib" export CFLAGS="${CFLAGS} -Wno-unused-command-line-argument" fi -(cd kent/src/lib && make CC="${CC}" CFLAGS="${CFLAGS}" -j ${CPU_COUNT}) -(cd kent/src/htslib && make CC="${CC}" CFLAGS="${CFLAGS}" -j ${CPU_COUNT}) -(cd kent/src/jkOwnLib && make CC="${CC}" CFLAGS="${CFLAGS}" -j ${CPU_COUNT}) -(cd kent/src/hg/lib && make CC="${CC}" CFLAGS="${CFLAGS}" -j ${CPU_COUNT}) -(cd kent/src/utils/bigWigSummary && make CC="${CC}" CFLAGS="${CFLAGS}" -j ${CPU_COUNT}) -cp -rf bin/bigWigSummary "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/bigWigSummary" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/bigWigSummary && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/bigWigSummary "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bigWigSummary" diff --git a/recipes/ucsc-bigwigsummary/include.patch b/recipes/ucsc-bigwigsummary/include.patch index e9c8621194325..edc04d0dc2f64 100644 --- a/recipes/ucsc-bigwigsummary/include.patch +++ b/recipes/ucsc-bigwigsummary/include.patch @@ -1,30 +1,22 @@ --- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 ++++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -+++ kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -@@ -147,4 +147,4 @@ -- L+=${PREFIX}/lib/libssl.a ${PREFIX}/lib/libcrypto.a -ldl -+ L+=${PREFIX}/lib/libssl.so ${PREFIX}/lib/libcrypto.so -ldl - else - ifneq ($(wildcard /opt/local/lib/libssl.a),) - L+=/opt/local/lib/libssl.a ---- kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 -+++ kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ --KENT_INC=-I../../../inc -+KENT_INC=-I../../../inc -I${PREFIX}/include - - straw: straw.o cStraw.o - ld -r -o ../straw.o straw.o cStraw.o +-#!/usr/bin/env python2.7 ++#!/usr/bin/env python + + import logging, sys, optparse, string + from collections import defaultdict --- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ diff --git a/recipes/ucsc-bigwigsummary/meta.yaml b/recipes/ucsc-bigwigsummary/meta.yaml index 76a38a7d908f4..390d49e449180 100644 --- a/recipes/ucsc-bigwigsummary/meta.yaml +++ b/recipes/ucsc-bigwigsummary/meta.yaml @@ -4,20 +4,20 @@ {% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: - name: {{ package }} - version: {{ version }} + name: "{{ package }}" + version: "{{ version }}" source: - url: http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{{ version }}.src.tgz - sha256: {{ sha256 }} + url: "http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{{ version }}.src.tgz" + sha256: "{{ sha256 }}" patches: - include.patch # [linux] - include.macos.patch # [osx] build: - number: 1 + number: 2 run_exports: - - {{ pin_subpackage(package|lower, max_pin=None) }} + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -33,12 +33,14 @@ requirements: - libopenssl-static - clangdev # [osx] - zlib + run: - libpng - libuuid - mysql-connector-c - mariadb-connector-c - libopenssl-static + - zlib test: commands: @@ -46,12 +48,15 @@ test: - test -x ${PREFIX}/bin/{{ program }} about: - home: "https://hgdownload.cse.ucsc.edu/admin/exe" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" license: "Varies; see http://genome.ucsc.edu/license" summary: "Extract summary information from a bigWig file." dev_url: "https://github.com/ucscGenomeBrowser/kent" - doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/v{{ version }}_base/README" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - linux-aarch64 diff --git a/recipes/ucsc-bigwigtobedgraph/build.sh b/recipes/ucsc-bigwigtobedgraph/build.sh index 4d79a8a8afcb7..d9ee8a1c48c9c 100644 --- a/recipes/ucsc-bigwigtobedgraph/build.sh +++ b/recipes/ucsc-bigwigtobedgraph/build.sh @@ -2,15 +2,20 @@ set -xe -mkdir -p "$PREFIX/bin" +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make -j ${CPU_COUNT}) -(cd kent/src/htslib && make -j ${CPU_COUNT}) -(cd kent/src/jkOwnLib && make -j ${CPU_COUNT}) -(cd kent/src/hg/lib && make -j ${CPU_COUNT}) -(cd kent/src/utils/bigWigToBedGraph && make -j ${CPU_COUNT}) -cp bin/bigWigToBedGraph "$PREFIX/bin" -chmod +x "$PREFIX/bin/bigWigToBedGraph" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/bigWigToBedGraph && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/bigWigToBedGraph "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bigWigToBedGraph" diff --git a/recipes/ucsc-bigwigtobedgraph/include.patch b/recipes/ucsc-bigwigtobedgraph/include.patch index e9c8621194325..edc04d0dc2f64 100644 --- a/recipes/ucsc-bigwigtobedgraph/include.patch +++ b/recipes/ucsc-bigwigtobedgraph/include.patch @@ -1,30 +1,22 @@ --- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 ++++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -+++ kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -@@ -147,4 +147,4 @@ -- L+=${PREFIX}/lib/libssl.a ${PREFIX}/lib/libcrypto.a -ldl -+ L+=${PREFIX}/lib/libssl.so ${PREFIX}/lib/libcrypto.so -ldl - else - ifneq ($(wildcard /opt/local/lib/libssl.a),) - L+=/opt/local/lib/libssl.a ---- kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 -+++ kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ --KENT_INC=-I../../../inc -+KENT_INC=-I../../../inc -I${PREFIX}/include - - straw: straw.o cStraw.o - ld -r -o ../straw.o straw.o cStraw.o +-#!/usr/bin/env python2.7 ++#!/usr/bin/env python + + import logging, sys, optparse, string + from collections import defaultdict --- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ diff --git a/recipes/ucsc-bigwigtobedgraph/meta.yaml b/recipes/ucsc-bigwigtobedgraph/meta.yaml index 03565119fb3c5..3cc5185b0c350 100644 --- a/recipes/ucsc-bigwigtobedgraph/meta.yaml +++ b/recipes/ucsc-bigwigtobedgraph/meta.yaml @@ -1,22 +1,21 @@ {% set package = "ucsc-bigwigtobedgraph" %} {% set program = "bigWigToBedGraph" %} -{% set version = "448" %} -{% set sha256 = "90c28f06f3f5b6d79ff141cbf745e6a0c1b289a2ce640bbd1b0a14c826f08a85" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: - name: {{ package }} - version: {{ version }} + name: "{{ package }}" + version: "{{ version }}" source: - url: http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{{ version }}.src.tgz - sha256: {{ sha256 }} + url: "http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{{ version }}.src.tgz" + sha256: "{{ sha256 }}" patches: - - include.patch - - htmshell.patch + - "include.patch" build: - number: 1 skip: True # [osx] + number: 0 run_exports: - {{ pin_subpackage(package, max_pin=None) }} @@ -24,31 +23,35 @@ requirements: build: - make - {{ compiler('c') }} - - {{ compiler('cxx') }} - - binutils # [linux] host: - libpng - libuuid - mysql-connector-c - - openssl - libopenssl-static - zlib + run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static + - zlib test: commands: - # just check for existence + exec bit, because the individual packages have no unified behavior - - test -x $PREFIX/bin/{{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert from bigWig to bedGraph format." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-bigwigtowig/build.sh b/recipes/ucsc-bigwigtowig/build.sh index a437ceb086a47..a1977c231e86f 100644 --- a/recipes/ucsc-bigwigtowig/build.sh +++ b/recipes/ucsc-bigwigtowig/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" + +set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make -j ${CPU_COUNT}) -(cd kent/src/htslib && make -j ${CPU_COUNT}) -(cd kent/src/jkOwnLib && make -j ${CPU_COUNT}) -(cd kent/src/hg/lib && make -j ${CPU_COUNT}) -(cd kent/src/utils/bigWigToWig && make -j ${CPU_COUNT}) -cp bin/bigWigToWig "$PREFIX/bin" -chmod +x "$PREFIX/bin/bigWigToWig" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/bigWigToWig && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/bigWigToWig "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/bigWigToWig" diff --git a/recipes/ucsc-bigwigtowig/include.patch b/recipes/ucsc-bigwigtowig/include.patch index e9c8621194325..edc04d0dc2f64 100644 --- a/recipes/ucsc-bigwigtowig/include.patch +++ b/recipes/ucsc-bigwigtowig/include.patch @@ -1,30 +1,22 @@ --- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 ++++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -+++ kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -@@ -147,4 +147,4 @@ -- L+=${PREFIX}/lib/libssl.a ${PREFIX}/lib/libcrypto.a -ldl -+ L+=${PREFIX}/lib/libssl.so ${PREFIX}/lib/libcrypto.so -ldl - else - ifneq ($(wildcard /opt/local/lib/libssl.a),) - L+=/opt/local/lib/libssl.a ---- kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 -+++ kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ --KENT_INC=-I../../../inc -+KENT_INC=-I../../../inc -I${PREFIX}/include - - straw: straw.o cStraw.o - ld -r -o ../straw.o straw.o cStraw.o +-#!/usr/bin/env python2.7 ++#!/usr/bin/env python + + import logging, sys, optparse, string + from collections import defaultdict --- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ diff --git a/recipes/ucsc-bigwigtowig/meta.yaml b/recipes/ucsc-bigwigtowig/meta.yaml index 31e4bcee47493..af93e4083efd4 100644 --- a/recipes/ucsc-bigwigtowig/meta.yaml +++ b/recipes/ucsc-bigwigtowig/meta.yaml @@ -1,54 +1,57 @@ {% set package = "ucsc-bigwigtowig" %} {% set program = "bigWigToWig" %} -{% set version = "448" %} -{% set sha256 = "90c28f06f3f5b6d79ff141cbf745e6a0c1b289a2ce640bbd1b0a14c826f08a85" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: - name: {{ package }} - version: {{ version }} + name: "{{ package }}" + version: "{{ version }}" source: - url: http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{{ version }}.src.tgz - sha256: {{ sha256 }} + url: "http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{{ version }}.src.tgz" + sha256: "{{ sha256 }}" patches: - - include.patch - - htmshell.patch + - "include.patch" build: - number: 1 skip: True # [osx] + number: 0 run_exports: - - {{ pin_subpackage(package, max_pin="x") }} + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: - make - {{ compiler('c') }} - - {{ compiler('cxx') }} - - binutils # [linux] host: - libpng - libuuid - mysql-connector-c - - openssl - libopenssl-static - zlib + run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static + - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" - summary: "Convert bigWig to wig. This will keep more of the same structure of the original wig than bigWigToBedGraph does, but still will break up large stepped sections into smaller ones." + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" + summary: "Convert bigWig to wig. This will keep more of the same structure of the" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-blasttopsl/build.sh b/recipes/ucsc-blasttopsl/build.sh index 529365f0499e5..4e504991b1d17 100644 --- a/recipes/ucsc-blasttopsl/build.sh +++ b/recipes/ucsc-blasttopsl/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/blastToPsl && make) -cp bin/blastToPsl "$PREFIX/bin" -chmod +x "$PREFIX/bin/blastToPsl" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/blastToPsl && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/blastToPsl "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/blastToPsl" diff --git a/recipes/ucsc-blasttopsl/include.patch b/recipes/ucsc-blasttopsl/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-blasttopsl/include.patch +++ b/recipes/ucsc-blasttopsl/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-blasttopsl/meta.yaml b/recipes/ucsc-blasttopsl/meta.yaml index c50f577a4a6af..905368c1cacaa 100644 --- a/recipes/ucsc-blasttopsl/meta.yaml +++ b/recipes/ucsc-blasttopsl/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-blasttopsl" %} {% set program = "blastToPsl" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert blast alignments to PSLs." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-blat/build.sh b/recipes/ucsc-blat/build.sh index 90db359833d44..abeab8ea7afd6 100644 --- a/recipes/ucsc-blat/build.sh +++ b/recipes/ucsc-blat/build.sh @@ -1,18 +1,21 @@ #!/bin/bash -export USE_HIC=0 + +set -xe + mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) -export BINDIR=`pwd`/bin +export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p ${BINDIR} -(cd ${SRC_DIR}/kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -(cd ${SRC_DIR}/kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -(cd ${SRC_DIR}/kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -(cd ${SRC_DIR}/kent/src/blat && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f ${SRC_DIR}/bin/blat "${PREFIX}/bin" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/blat && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/blat "${PREFIX}/bin" chmod 0755 "${PREFIX}/bin/blat" diff --git a/recipes/ucsc-blat/include.patch b/recipes/ucsc-blat/include.patch index 1646de15a38f7..edc04d0dc2f64 100644 --- a/recipes/ucsc-blat/include.patch +++ b/recipes/ucsc-blat/include.patch @@ -1,5 +1,5 @@ ---- a/kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ b/kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 +--- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 ++++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif @@ -9,16 +9,16 @@ # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- a/kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 -+++ b/kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python import logging, sys, optparse, string from collections import defaultdict ---- a/kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 -+++ b/kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-blat/meta.yaml b/recipes/ucsc-blat/meta.yaml index 089b3c02933a3..3a050f884b74b 100644 --- a/recipes/ucsc-blat/meta.yaml +++ b/recipes/ucsc-blat/meta.yaml @@ -1,38 +1,41 @@ {% set package = "ucsc-blat" %} {% set program = "blat" %} -{% set version = "468" %} -{% set sha256 = "f57b49be7e4eeb0719ac9414ca8878f93916fc3eb8dd408c8f7e076a999d1ca8" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: - name: {{ package }} - version: {{ version }} + name: "{{ package }}" + version: "{{ version }}" source: - url: https://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{{ version }}.src.tgz - sha256: {{ sha256 }} + url: "http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{{ version }}.src.tgz" + sha256: "{{ sha256 }}" patches: - - include.patch + - "include.patch" build: + skip: True # [osx] number: 0 run_exports: - - {{ pin_subpackage('ucsc-blat', max_pin=None) }} + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: - make - {{ compiler('c') }} - - {{ compiler('cxx') }} host: - libpng - libuuid - mysql-connector-c - libopenssl-static - zlib + run: - libpng - libuuid + - mysql-connector-c - libopenssl-static + - zlib test: commands: @@ -41,11 +44,14 @@ test: about: home: "https://hgdownload.cse.ucsc.edu/admin/exe/" - license: "Varies; see https://genome.ucsc.edu/license" - summary: "Standalone BLAT v. 39x1 fast sequence search command line tool" + license: "Varies; see http://genome.ucsc.edu/license" + summary: "Standalone BLAT v. 36x2 fast sequence search command line tool" dev_url: "https://github.com/ucscGenomeBrowser/kent" - doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/v{{ version }}_base/README" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - linux-aarch64 diff --git a/recipes/ucsc-catdir/build.sh b/recipes/ucsc-catdir/build.sh index 615f2c28219a0..59b45dc68486c 100644 --- a/recipes/ucsc-catdir/build.sh +++ b/recipes/ucsc-catdir/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/catDir && make) -cp bin/catDir "$PREFIX/bin" -chmod +x "$PREFIX/bin/catDir" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/catDir && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/catDir "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/catDir" diff --git a/recipes/ucsc-catdir/include.patch b/recipes/ucsc-catdir/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-catdir/include.patch +++ b/recipes/ucsc-catdir/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-catdir/meta.yaml b/recipes/ucsc-catdir/meta.yaml index ec99f3e160dc9..9443ff4922d67 100644 --- a/recipes/ucsc-catdir/meta.yaml +++ b/recipes/ucsc-catdir/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-catdir" %} {% set program = "catDir" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "concatenate files in directory to stdout." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-catuncomment/build.sh b/recipes/ucsc-catuncomment/build.sh index e633331bb5d99..a6488e4ee3858 100644 --- a/recipes/ucsc-catuncomment/build.sh +++ b/recipes/ucsc-catuncomment/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/catUncomment && make) -cp bin/catUncomment "$PREFIX/bin" -chmod +x "$PREFIX/bin/catUncomment" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/catUncomment && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/catUncomment "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/catUncomment" diff --git a/recipes/ucsc-catuncomment/include.patch b/recipes/ucsc-catuncomment/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-catuncomment/include.patch +++ b/recipes/ucsc-catuncomment/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-catuncomment/meta.yaml b/recipes/ucsc-catuncomment/meta.yaml index 0eb80f7890c09..4e34d400fbd36 100644 --- a/recipes/ucsc-catuncomment/meta.yaml +++ b/recipes/ucsc-catuncomment/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-catuncomment" %} {% set program = "catUncomment" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Concatenate input removing lines that start with '#'" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-chainantirepeat/build.sh b/recipes/ucsc-chainantirepeat/build.sh index 4b96355a7cca0..42129d7ba0d38 100644 --- a/recipes/ucsc-chainantirepeat/build.sh +++ b/recipes/ucsc-chainantirepeat/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/chainAntiRepeat && make) -cp bin/chainAntiRepeat "$PREFIX/bin" -chmod +x "$PREFIX/bin/chainAntiRepeat" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/chainAntiRepeat && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/chainAntiRepeat "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/chainAntiRepeat" diff --git a/recipes/ucsc-chainantirepeat/include.patch b/recipes/ucsc-chainantirepeat/include.patch index 5404b18b5467a..edc04d0dc2f64 100644 --- a/recipes/ucsc-chainantirepeat/include.patch +++ b/recipes/ucsc-chainantirepeat/include.patch @@ -1,22 +1,22 @@ --- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 ++++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif - + HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include - ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include + # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -+++ kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -@@ -147,4 +147,4 @@ -- L+=${PREFIX}/lib/libssl.a ${PREFIX}/lib/libcrypto.a -ldl -+ L+=${PREFIX}/lib/libssl.so ${PREFIX}/lib/libcrypto.so -ldl - else - ifneq ($(wildcard /opt/local/lib/libssl.a),) - L+=/opt/local/lib/libssl.a +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python2.7 ++#!/usr/bin/env python + + import logging, sys, optparse, string + from collections import defaultdict --- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ @@ -25,16 +25,3 @@ # expMatrixToBarchartBed """ Generate a barChart bed6+5 file from a matrix, meta data, and coordinates. ---- kent/src/hg/lib/straw/makefile -+++ kent/src/hg/lib/straw/makefile -@@ -3,8 +3,8 @@ - straw: straw.o cStraw.o - ld -r -o ../straw.o straw.o cStraw.o - straw.o: straw.cpp straw.h -- ${CXX} straw.cpp ${KENT_INC} -g -c -lz -std=c++11 -lcurl -o straw.o -+ ${CXX} straw.cpp ${KENT_INC} -g -c -lz -std=c++11 -lcurl -o straw.o -I ${PREFIX}/include - cStraw.o: cStraw.cpp straw.h -- ${CXX} cStraw.cpp ${KENT_INC} -g -c -lz -std=c++11 -lcurl -o cStraw.o -+ ${CXX} cStraw.cpp ${KENT_INC} -g -c -lz -std=c++11 -lcurl -o cStraw.o -I ${PREFIX}/include - clean: - rm -f straw.o cStraw.o ../straw.o diff --git a/recipes/ucsc-chainantirepeat/meta.yaml b/recipes/ucsc-chainantirepeat/meta.yaml index c08a1b271ba4a..0ecd147dd4112 100644 --- a/recipes/ucsc-chainantirepeat/meta.yaml +++ b/recipes/ucsc-chainantirepeat/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-chainantirepeat" %} {% set program = "chainAntiRepeat" %} -{% set version = "455" %} -{% set sha256 = "e458cadad7c4a5c1b8385edafffa1b29380ac725a0c20535bf5a3bab99fe80db" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -23,28 +23,35 @@ requirements: build: - make - {{ compiler('c') }} - - binutils >=2.32 # https://wiki.gentoo.org/wiki/Project:Toolchain/Binutils_2.32_upgrade_notes/elfutils_0.175:_unable_to_initialize_decompress_status_for_section_.debug_info - - {{ compiler('cxx') }} host: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Get rid of chains that are primarily the results of repeats and degenerate DNA" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-chainbridge/build_failure.linux-64.yaml b/recipes/ucsc-chainbridge/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..1f1c6c15a3d8c --- /dev/null +++ b/recipes/ucsc-chainbridge/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: bc36f2b7ef37442f8cc79f3a7908cc9386a0df209151113d2954fe44e791a92e # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o tigrOperon.o -c tigrOperon.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o tilingPath.o -c tilingPath.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o traceInfo.o -c traceInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackDb.o -c trackDb.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackDbCustom.o -c trackDbCustom.c + trackDbCustom.c: In function 'trackDbInclude': + trackDbCustom.c:294:5: warning: 'splitPath' accessing 512 bytes in a region of size 256 [-Wstringop-overflow=] + 294 | splitPath(raFile, incFile, NULL, NULL); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + trackDbCustom.c:294:5: note: referencing argument 2 of type 'char[512]' + trackDbCustom.c:294:5: note: referencing argument 3 of type 'char[128]' + trackDbCustom.c:294:5: note: referencing argument 4 of type 'char[64]' + In file included from trackDbCustom.c:8: + ../../inc/common.h:1104:6: note: in a call to function 'splitPath' + 1104 | void splitPath(char *path, char dir[PATH_LEN], char name[FILENAME_LEN], + | ^~~~~~~~~ + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackHub.o -c trackHub.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackLayout.o -c trackLayout.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackTable.o -c trackTable.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackVersion.o -c trackVersion.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trashDir.o -c trashDir.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o transRegCode.o -c transRegCode.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o transRegCodeCondition.o -c transRegCodeCondition.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o transRegCodeProbe.o -c transRegCodeProbe.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txAliDiff.o -c txAliDiff.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txCluster.o -c txCluster.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txCommon.o -c txCommon.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txEdgeBed.o -c txEdgeBed.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txEdgeOrtho.o -c txEdgeOrtho.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txGraph.o -c txGraph.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txInfo.o -c txInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txRnaAccs.o -c txRnaAccs.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o ucscRetroInfo.o -c ucscRetroInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o ucscRetroOrtho.o -c ucscRetroOrtho.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o validateGisaid.o -c validateGisaid.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o variant.o -c variant.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o variantProjector.o -c variantProjector.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o vcfUi.o -c vcfUi.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o vegaInfo.o -c vegaInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o vegaInfoZfish.o -c vegaInfoZfish.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o visiGene.o -c visiGene.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o vntr.o -c vntr.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wabAli.o -c wabAli.c + sed -e 's/\\/\\\\/g; s/"/\\"/g; s/^/"/; s/$/\\n"/;' jWestHeader.html > jWestHeader.h + sed -e 's/\\/\\\\/g; s/"/\\"/g; s/^/"/; s/$/\\n"/;' jWestBanner.html > jWestBanner.h + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o web.o -c web.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o ncRna.o -c ncRna.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wgRna.o -c wgRna.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wigAsciiToBinary.o -c wigAsciiToBinary.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wigDataStream.o -c wigDataStream.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wiggle.o -c wiggle.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wiggleCart.o -c wiggleCart.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wiggleUtils.o -c wiggleUtils.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wikiLink.o -c wikiLink.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wikiTrack.o -c wikiTrack.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o yaleGencodeAssoc.o -c yaleGencodeAssoc.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o zdobnovSynt.o -c zdobnovSynt.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o oreganno.o -c oreganno.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o oregannoUi.o -c oregannoUi.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o gvUi.o -c gvUi.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o gv.o -c gv.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o omicia.o -c omicia.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o protVar.o -c protVar.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o pgSnp.o -c pgSnp.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o alignInfo.o -c alignInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o cddInfo.o -c cddInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o loweutils.o -c loweutils.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o cddDesc.o -c cddDesc.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o arCOGs.o -c arCOGs.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o arcogdesc.o -c arcogdesc.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o geneTree.o -c geneTree.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o megablastInfo.o -c megablastInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o pgPhenoAssoc.o -c pgPhenoAssoc.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o pgSiftPred.o -c pgSiftPred.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o pgPolyphenPred.o -c pgPolyphenPred.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o userRegions.o -c userRegions.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o variome.o -c variome.c + ar rcus ../../lib/x86_64/jkhgap.a acemblyClass.o adjacency.o affyAllExonProbe.o affyAtlas.o affy10KDetails.o affy120KDetails.o affyOffset.o affyPairs.o agp.o agpFrag.o agpGap.o alignSeqSizes.o altGraph.o altGraphX.o ancientRref.o annoFormatVep.o annoGratorGpVar.o annoGrateWigDb.o annoStreamDb.o annoStreamDbFactorSource.o annoStreamDbPslPlus.o annoStreamWig.o api.o atomDb.o autoUpgrade.o axtInfo.o axtLib.o bactigPos.o hgBam.o barChartBed.o barChartCategory.o barChartUi.o barChartData.o barChartSample.o baseMaskCommon.o bdgpExprLink.o bdgpGeneInfo.o bed.o bed5FloatScore.o bed5Pval.o bed6FloatScore.o bed8Attrs.o bed12Source.o bed12wSeq.o bedCart.o bgiGeneInfo.o bgiGeneSnp.o bgiSnp.o bigBedFind.o bigBedLabel.o bigGenePred.o bigPsl.o bigTransMap.o bioImage.o blastTab.o blastzNet.o blatServers.o borf.o borkPseudoHom.o botDelay.o cart.o cartDb.o cartJson.o cartTrackDb.o cdsEvidence.o cdsOrtho.o cdsPick.o cdsSpec.o ccdsInfo.o ccdsNotes.o ccdsGeneMap.o celeraCoverage.o celeraDupPositive.o cgapSage/cgapSage.o cgapSage/cgapSageLib.o cgh.o chainCart.o chainDb.o chainLink.o chainNet.o chainNetDbLoad.o chicken13kInfo.o chromBins.o chromAlias.o chr18deletions.o chromGraph.o chromGraphFactory.o chromInfo.o chromInserts.o chromKeeper.o clonePos.o codeBlast.o codeBlastScore.o cogs.o cogsxra.o columnInfo.o contigAcc.o coordConv.o cnpIafrate.o cnpIafrate2.o cnpLocke.o cnpRedon.o cnpSebat.o cnpSebat2.o cnpSharp2.o cnpSharpCutoff.o cnpSharpSample.o cnpSharp.o cpgIsland.o cpgIslandExt.o ctgPos.o ctgPos2.o customComposite.o bedDetail.o cgiApoptosis.o customAdjacency.o customFactory.o customPp.o customTrack.o cutter.o cv.o cytoBand.o dbDb.o dbRIP.o dbSnpRs.o defaultDb.o delConrad2.o delHinds2.o dgv.o dgvPlus.o dless.o dnaMotifSql.o dnaMarkovSql.o dnaProbe.o dv.o dvBed.o dvXref2.o easyGene.o ec.o ecCode.o ecAttribute.o ecAttributeCode.o encode/encodeErge.o encode/encodeErgeHssCellLines.o encode/encodeHapMapAlleleFreq.o encode/encodeIndels.o encode/encodePeak.o encode/encodeRegionInfo.o encode/encodeRegionInfoCustom.o encode/encodeRna.o encode/encodeStanfordPromoters.o encode/encodeStanfordPromotersAverage.o encode/pairedTagAlign.o encode/peptideMapping.o encode/tagAlign.o encode/wgEncodeGencodeAttrs.o encode/wgEncodeGencodeExonSupport.o encode/wgEncodeGencodeEntrezGene.o encode/wgEncodeGencodeTag.o encode/wgEncodeGencodeGeneSymbol.o encode/wgEncodeGencodePdb.o encode/wgEncodeGencodePubMed.o encode/wgEncodeGencodeRefSeq.o encode/wgEncodeGencodeGeneSource.o encode/wgEncodeGencodeTranscriptSource.o encode/wgEncodeGencodeTranscriptSupport.o encode/wgEncodeGencodeTranscriptionSupportLevel.o encode/wgEncodeGencodeUniProt.o encode/wgEncodeGencodePolyAFeature.o encode/wgEncodeGencodeAnnotationRemark.o encode/wgEncodeCell.o encode/encodeExp.o encode3/encode2Manifest.o encode3/encode3Valid.o ensFace.o ensInfo.o ensPhusionBlast.o ensXRefZfish.o est3.o estOrientInfo.o estPair.o exoFish.o expData.o expRecord.o exprBed.o facetField.o factorSource.o fbTables.o featureBits.o fileUi.o findKGAlias.o findKGProtAlias.o fishClones.o flyBase2004Xref.o flyBaseSwissProt.o flyreg.o flyreg2.o gbExtFile.o gbWarn.o gbMiscDiff.o gbProtAnn.o gcPercent.o gbSeq.o genbank.o genbankBlackList.o gencodeGeneClass.o gencodeIntron.o genMapDb.o geneBands.o geneCheck.o geneCheckDetails.o geneCheckWidget.o geneGraph.o genePred.o genePredReader.o geneSimilarities.o genoLay.o genomeRangeTreeFile.o genomicDups.o genomicSuperDups.o geoMirror.o ggCluster.o ggDbIo.o ggDump.o ggGraph.o ggMrnaAli.o ggTypes.o glDbRep.o goa.o goaPart.o googleAnalytics.o gpFx.o growthCondition.o grp.o gtexAse.o gtexBoxplot.o gtexEqtlCluster.o gtexInfo.o gtexDonor.o gtexGeneBed.o gtexSample.o gtexSampleData.o gtexTissue.o gtexTissueData.o gtexTissueMedian.o gtexUi.o gwasCatalog.o hAnno.o haplotypes.o hapmapAllelesOrtho.o hapmapAllelesSummary.o hapmapPhaseIIISummary.o hapmapSnps.o hapmapSnpsCombined.o hashJoin.o hCommon.o hCytoBand.o hdb.o hgColors.o hgConfig.o hgExp.o hgFind.o hgFindSpec.o hgFindSpecCustom.o hgHgvs.o hgHgvsParse.o hgGene.o hgMaf.o hgRelate.o hgSeq.o hgdpGeo.o hPrint.o hVarSubst.o hvGfx.o HInv.o hubConnect.o hubSearchText.o hui.o humanParalog.o imageClone.o indelShift.o interact.o interactUi.o isochores.o ispyTables.o itemAttr.o itemConf.o itemDetailsHtml.o jalview.o jaxOrtholog.o jaxQTL.o jaxQTL3.o jksql.o joiner.o jsHelper.o kg1ToKg2.o jgiGene.o joinMixer.o kgAlias.o kgColor.o kgProtAlias.o kgXref.o knownInfo.o knownMore.o knownToSuper.o lav.o ld.o ld2.o lfs.o liftOver.o liftOverChain.o liftUp.o llaInfo.o longRange.o lrg.o lsSnpPdb.o lsSnpPdbChimera.o mafFrames.o mafGene.o mafSummary.o makeItemsItem.o mammalPsg.o mapSts.o mathWig.o mcnBreakpoints.o mdb.o metaChromGraph.o microarray.o minChromSize.o minGeneInfo.o mrnaMisMatch.o mouseOrtho.o mouseSyn.o mouseSynWhd.o mysqlTableStatus.o ncbiRefLink.o ncbiRefSeqLink.o netAlign.o netCart.o nonCodingUi.o omimTitle.o ooUtils.o orthoAlleles.o pal.o pbStamp.o pcrResult.o pepPred.o peptideAtlasPeptide.o plasEndPairs.o polyGenotype.o protFeat.o pscreen.o pseudoGeneLink.o pslReader.o pslWScore.o putaInfo.o qaSeq.o rangeTreeFile.o rankProp.o recombRate.o recombRateRat.o recombRateMouse.o refLink.o refSeqStatus.o rgdQtl.o riken.o rhMapZfishInfo.o rikenBest.o rikenCluster.o rmskOut.o rmskAlign.o rmskJoined.o rmskOut2.o rnaFold.o rnaGene.o rnaGroup.o rnaHybridization.o rnaPLFold.o tRNAs.o gbRNAs.o snoRNAs.o lowelabPfamHit.o lowelabArkinOperonScore.o lowelabTIGROperonScore.o rnaSecStr.o tfbsConsFactors.o roughAli.o transMapStuff.o transMapInfo.o transMapGene.o transMapSrc.o sage.o sageCounts.o sageExp.o samAlignment.o sample.o sanger22extra.o sangerGene.o sangerGeneToWBGeneID.o sargassoSeaXra.o scopDes.o scoredRef.o search.o seqWindow.o sessionThumbnail.o sgdAbundance.o sgdClone.o sgdDescription.o sgdOther.o simpleNucDiff.o simpleRepeat.o snakeUi.o snp.o snp125.o snp125CodingCoordless.o snp132Ext.o snpExceptions.o snpFasta.o snpMap.o snpTmp.o snpUi.o snp125Exceptions.o snp125Ui.o softPromoter.o softberryHom.o soTerm.o spDb.o splignAlign.o sqlSanity.o stanMad.o stsAlias.o stsInfo.o stsInfo2.o stsInfoMouse.o stsInfoMouseNew.o stsInfoRat.o stsMap.o stsMapMouse.o stsMapMouseNew.o stsMapRat.o stsMarker.o suggest.o switchDbTss.o synMap.o synteny100000.o syntenyBerk.o syntenySanger.o sqlProg.o tfbsCons.o tfbsConsSites.o tablesTables.o tableDescriptions.o tableStatus.o targetDb.o tfbsConsMap.o tagRepo.o taxonDivision.o taxonGeneticCode.o taxonName.o taxonNode.o taxonXref.o tigrCmrGene.o tigrOperon.o tilingPath.o traceInfo.o trackDb.o trackDbCustom.o trackHub.o trackLayout.o trackTable.o trackVersion.o trashDir.o transRegCode.o transRegCodeCondition.o transRegCodeProbe.o txAliDiff.o txCluster.o txCommon.o txEdgeBed.o txEdgeOrtho.o txGraph.o txInfo.o txRnaAccs.o ucscRetroInfo.o ucscRetroOrtho.o validateGisaid.o variant.o variantProjector.o vcfUi.o vegaInfo.o vegaInfoZfish.o visiGene.o vntr.o wabAli.o web.o ncRna.o wgRna.o wigAsciiToBinary.o wigDataStream.o wiggle.o wiggleCart.o wiggleUtils.o wikiLink.o wikiTrack.o yaleGencodeAssoc.o zdobnovSynt.o oreganno.o oregannoUi.o gvUi.o gv.o omicia.o protVar.o pgSnp.o alignInfo.o cddInfo.o loweutils.o cddDesc.o arCOGs.o arcogdesc.o geneTree.o megablastInfo.o pgPhenoAssoc.o pgSiftPred.o pgPolyphenPred.o userRegions.o variome.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-chainbridge-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -o chainBridge.o -c chainBridge.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -o $SRC_DIR/bin/chainBridge chainBridge.o ../../../lib/x86_64/jkOwnLib.a ../../../lib/x86_64/jkhgap.a ../../../lib/x86_64/jkweb.a -L$PREFIX/lib -lmysqlclient -lstdc -lrt -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -lpthread -lssl -lcrypto ../../../htslib/libhts.a -L$PREFIX/lib -lpng16 -lm -lz + /opt/conda/conda-bld/ucsc-chainbridge_1724782613970/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkweb.a(htmshell.o):/usr/local/src/conda/ucsc-chainbridge-377/kent/src/lib/../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkweb.a(cheapcgi.o):/usr/local/src/conda/ucsc-chainbridge-377/kent/src/lib/../inc/htmshell.h:163: first defined here + /opt/conda/conda-bld/ucsc-chainbridge_1724782613970/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkweb.a(portimpl.o):/usr/local/src/conda/ucsc-chainbridge-377/kent/src/lib/../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkweb.a(cheapcgi.o):/usr/local/src/conda/ucsc-chainbridge-377/kent/src/lib/../inc/htmshell.h:163: first defined here + collect2: error: ld returned 1 exit status + make: *** [../../../inc/userApp.mk:31: /opt/conda/conda-bld/ucsc-chainbridge_1724782613970/work/bin/chainBridge] Error 1 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/ucsc-chainbridge_1724782613970/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/ucsc-chainfilter/build.sh b/recipes/ucsc-chainfilter/build.sh index 6ed9ac45b5549..10d08403f1c62 100644 --- a/recipes/ucsc-chainfilter/build.sh +++ b/recipes/ucsc-chainfilter/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/chainFilter && make) -cp bin/chainFilter "$PREFIX/bin" -chmod +x "$PREFIX/bin/chainFilter" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/chainFilter && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/chainFilter "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/chainFilter" diff --git a/recipes/ucsc-chainfilter/include.patch b/recipes/ucsc-chainfilter/include.patch index 5404b18b5467a..edc04d0dc2f64 100644 --- a/recipes/ucsc-chainfilter/include.patch +++ b/recipes/ucsc-chainfilter/include.patch @@ -1,22 +1,22 @@ --- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 ++++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif - + HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include - ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include + # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -+++ kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -@@ -147,4 +147,4 @@ -- L+=${PREFIX}/lib/libssl.a ${PREFIX}/lib/libcrypto.a -ldl -+ L+=${PREFIX}/lib/libssl.so ${PREFIX}/lib/libcrypto.so -ldl - else - ifneq ($(wildcard /opt/local/lib/libssl.a),) - L+=/opt/local/lib/libssl.a +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python2.7 ++#!/usr/bin/env python + + import logging, sys, optparse, string + from collections import defaultdict --- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ @@ -25,16 +25,3 @@ # expMatrixToBarchartBed """ Generate a barChart bed6+5 file from a matrix, meta data, and coordinates. ---- kent/src/hg/lib/straw/makefile -+++ kent/src/hg/lib/straw/makefile -@@ -3,8 +3,8 @@ - straw: straw.o cStraw.o - ld -r -o ../straw.o straw.o cStraw.o - straw.o: straw.cpp straw.h -- ${CXX} straw.cpp ${KENT_INC} -g -c -lz -std=c++11 -lcurl -o straw.o -+ ${CXX} straw.cpp ${KENT_INC} -g -c -lz -std=c++11 -lcurl -o straw.o -I ${PREFIX}/include - cStraw.o: cStraw.cpp straw.h -- ${CXX} cStraw.cpp ${KENT_INC} -g -c -lz -std=c++11 -lcurl -o cStraw.o -+ ${CXX} cStraw.cpp ${KENT_INC} -g -c -lz -std=c++11 -lcurl -o cStraw.o -I ${PREFIX}/include - clean: - rm -f straw.o cStraw.o ../straw.o diff --git a/recipes/ucsc-chainfilter/meta.yaml b/recipes/ucsc-chainfilter/meta.yaml index eb41f55eb619f..950b6e95f0bba 100644 --- a/recipes/ucsc-chainfilter/meta.yaml +++ b/recipes/ucsc-chainfilter/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-chainfilter" %} {% set program = "chainFilter" %} -{% set version = "455" %} -{% set sha256 = "e458cadad7c4a5c1b8385edafffa1b29380ac725a0c20535bf5a3bab99fe80db" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -23,28 +23,35 @@ requirements: build: - make - {{ compiler('c') }} - - binutils >=2.32 # https://wiki.gentoo.org/wiki/Project:Toolchain/Binutils_2.32_upgrade_notes/elfutils_0.175:_unable_to_initialize_decompress_status_for_section_.debug_info - - {{ compiler('cxx') }} host: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Filter chain files. Output goes to standard out." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-chainmergesort/build.sh b/recipes/ucsc-chainmergesort/build.sh index afd3f10975fbc..d6577def526dc 100644 --- a/recipes/ucsc-chainmergesort/build.sh +++ b/recipes/ucsc-chainmergesort/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/chainMergeSort && make) -cp bin/chainMergeSort "$PREFIX/bin" -chmod +x "$PREFIX/bin/chainMergeSort" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/chainMergeSort && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/chainMergeSort "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/chainMergeSort" diff --git a/recipes/ucsc-chainmergesort/include.patch b/recipes/ucsc-chainmergesort/include.patch index 5404b18b5467a..edc04d0dc2f64 100644 --- a/recipes/ucsc-chainmergesort/include.patch +++ b/recipes/ucsc-chainmergesort/include.patch @@ -1,22 +1,22 @@ --- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 ++++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif - + HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include - ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include + # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -+++ kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -@@ -147,4 +147,4 @@ -- L+=${PREFIX}/lib/libssl.a ${PREFIX}/lib/libcrypto.a -ldl -+ L+=${PREFIX}/lib/libssl.so ${PREFIX}/lib/libcrypto.so -ldl - else - ifneq ($(wildcard /opt/local/lib/libssl.a),) - L+=/opt/local/lib/libssl.a +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python2.7 ++#!/usr/bin/env python + + import logging, sys, optparse, string + from collections import defaultdict --- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ @@ -25,16 +25,3 @@ # expMatrixToBarchartBed """ Generate a barChart bed6+5 file from a matrix, meta data, and coordinates. ---- kent/src/hg/lib/straw/makefile -+++ kent/src/hg/lib/straw/makefile -@@ -3,8 +3,8 @@ - straw: straw.o cStraw.o - ld -r -o ../straw.o straw.o cStraw.o - straw.o: straw.cpp straw.h -- ${CXX} straw.cpp ${KENT_INC} -g -c -lz -std=c++11 -lcurl -o straw.o -+ ${CXX} straw.cpp ${KENT_INC} -g -c -lz -std=c++11 -lcurl -o straw.o -I ${PREFIX}/include - cStraw.o: cStraw.cpp straw.h -- ${CXX} cStraw.cpp ${KENT_INC} -g -c -lz -std=c++11 -lcurl -o cStraw.o -+ ${CXX} cStraw.cpp ${KENT_INC} -g -c -lz -std=c++11 -lcurl -o cStraw.o -I ${PREFIX}/include - clean: - rm -f straw.o cStraw.o ../straw.o diff --git a/recipes/ucsc-chainmergesort/meta.yaml b/recipes/ucsc-chainmergesort/meta.yaml index a8116c2079423..ae45368e76907 100644 --- a/recipes/ucsc-chainmergesort/meta.yaml +++ b/recipes/ucsc-chainmergesort/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-chainmergesort" %} {% set program = "chainMergeSort" %} -{% set version = "455" %} -{% set sha256 = "e458cadad7c4a5c1b8385edafffa1b29380ac725a0c20535bf5a3bab99fe80db" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -23,28 +23,35 @@ requirements: build: - make - {{ compiler('c') }} - - binutils >=2.32 # https://wiki.gentoo.org/wiki/Project:Toolchain/Binutils_2.32_upgrade_notes/elfutils_0.175:_unable_to_initialize_decompress_status_for_section_.debug_info - - {{ compiler('cxx') }} host: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Combine sorted files into larger sorted file" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-chainnet/build.sh b/recipes/ucsc-chainnet/build.sh index d374b876a973a..f90815a193a1d 100644 --- a/recipes/ucsc-chainnet/build.sh +++ b/recipes/ucsc-chainnet/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/chainNet && make) -cp bin/chainNet "$PREFIX/bin" -chmod +x "$PREFIX/bin/chainNet" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/chainNet && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/chainNet "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/chainNet" diff --git a/recipes/ucsc-chainnet/include.patch b/recipes/ucsc-chainnet/include.patch index 5404b18b5467a..edc04d0dc2f64 100644 --- a/recipes/ucsc-chainnet/include.patch +++ b/recipes/ucsc-chainnet/include.patch @@ -1,22 +1,22 @@ --- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 ++++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif - + HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include - ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include + # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -+++ kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -@@ -147,4 +147,4 @@ -- L+=${PREFIX}/lib/libssl.a ${PREFIX}/lib/libcrypto.a -ldl -+ L+=${PREFIX}/lib/libssl.so ${PREFIX}/lib/libcrypto.so -ldl - else - ifneq ($(wildcard /opt/local/lib/libssl.a),) - L+=/opt/local/lib/libssl.a +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python2.7 ++#!/usr/bin/env python + + import logging, sys, optparse, string + from collections import defaultdict --- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ @@ -25,16 +25,3 @@ # expMatrixToBarchartBed """ Generate a barChart bed6+5 file from a matrix, meta data, and coordinates. ---- kent/src/hg/lib/straw/makefile -+++ kent/src/hg/lib/straw/makefile -@@ -3,8 +3,8 @@ - straw: straw.o cStraw.o - ld -r -o ../straw.o straw.o cStraw.o - straw.o: straw.cpp straw.h -- ${CXX} straw.cpp ${KENT_INC} -g -c -lz -std=c++11 -lcurl -o straw.o -+ ${CXX} straw.cpp ${KENT_INC} -g -c -lz -std=c++11 -lcurl -o straw.o -I ${PREFIX}/include - cStraw.o: cStraw.cpp straw.h -- ${CXX} cStraw.cpp ${KENT_INC} -g -c -lz -std=c++11 -lcurl -o cStraw.o -+ ${CXX} cStraw.cpp ${KENT_INC} -g -c -lz -std=c++11 -lcurl -o cStraw.o -I ${PREFIX}/include - clean: - rm -f straw.o cStraw.o ../straw.o diff --git a/recipes/ucsc-chainnet/meta.yaml b/recipes/ucsc-chainnet/meta.yaml index 070f24c45a620..55b46b9d727b0 100644 --- a/recipes/ucsc-chainnet/meta.yaml +++ b/recipes/ucsc-chainnet/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-chainnet" %} {% set program = "chainNet" %} -{% set version = "455" %} -{% set sha256 = "e458cadad7c4a5c1b8385edafffa1b29380ac725a0c20535bf5a3bab99fe80db" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -23,27 +23,35 @@ requirements: build: - make - {{ compiler('c') }} - - binutils >=2.32 # https://wiki.gentoo.org/wiki/Project:Toolchain/Binutils_2.32_upgrade_notes/elfutils_0.175:_unable_to_initialize_decompress_status_for_section_.debug_info - - {{ compiler('cxx') }} host: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib + run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Make alignment nets out of chains" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-chainprenet/build.sh b/recipes/ucsc-chainprenet/build.sh index 63ca58dde82ac..30c78ac9541a4 100644 --- a/recipes/ucsc-chainprenet/build.sh +++ b/recipes/ucsc-chainprenet/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/chainPreNet && make) -cp bin/chainPreNet "$PREFIX/bin" -chmod +x "$PREFIX/bin/chainPreNet" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/chainPreNet && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/chainPreNet "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/chainPreNet" diff --git a/recipes/ucsc-chainprenet/include.patch b/recipes/ucsc-chainprenet/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-chainprenet/include.patch +++ b/recipes/ucsc-chainprenet/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-chainprenet/meta.yaml b/recipes/ucsc-chainprenet/meta.yaml index 748d450bbaa02..02c19c160aef0 100644 --- a/recipes/ucsc-chainprenet/meta.yaml +++ b/recipes/ucsc-chainprenet/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-chainprenet" %} {% set program = "chainPreNet" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Remove chains that don't have a chance of being netted" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-chainsort/build.sh b/recipes/ucsc-chainsort/build.sh index aa1b99bc6019b..2ebbff9ed471a 100644 --- a/recipes/ucsc-chainsort/build.sh +++ b/recipes/ucsc-chainsort/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/chainSort && make) -cp bin/chainSort "$PREFIX/bin" -chmod +x "$PREFIX/bin/chainSort" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/chainSort && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/chainSort "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/chainSort" diff --git a/recipes/ucsc-chainsort/include.patch b/recipes/ucsc-chainsort/include.patch index e9c8621194325..edc04d0dc2f64 100644 --- a/recipes/ucsc-chainsort/include.patch +++ b/recipes/ucsc-chainsort/include.patch @@ -1,30 +1,22 @@ --- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 ++++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -+++ kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -@@ -147,4 +147,4 @@ -- L+=${PREFIX}/lib/libssl.a ${PREFIX}/lib/libcrypto.a -ldl -+ L+=${PREFIX}/lib/libssl.so ${PREFIX}/lib/libcrypto.so -ldl - else - ifneq ($(wildcard /opt/local/lib/libssl.a),) - L+=/opt/local/lib/libssl.a ---- kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 -+++ kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ --KENT_INC=-I../../../inc -+KENT_INC=-I../../../inc -I${PREFIX}/include - - straw: straw.o cStraw.o - ld -r -o ../straw.o straw.o cStraw.o +-#!/usr/bin/env python2.7 ++#!/usr/bin/env python + + import logging, sys, optparse, string + from collections import defaultdict --- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ diff --git a/recipes/ucsc-chainsort/meta.yaml b/recipes/ucsc-chainsort/meta.yaml index 3864af0708530..93c9d98b79b37 100644 --- a/recipes/ucsc-chainsort/meta.yaml +++ b/recipes/ucsc-chainsort/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-chainsort" %} {% set program = "chainSort" %} -{% set version = "455" %} -{% set sha256 = "e458cadad7c4a5c1b8385edafffa1b29380ac725a0c20535bf5a3bab99fe80db" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -17,34 +17,41 @@ build: skip: True # [osx] number: 0 run_exports: - - {{ pin_subpackage("ucsc-chainsort", max_pin=None) }} + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: - make - {{ compiler('c') }} - - {{ compiler('cxx') }} - - binutils # [linux] host: - libpng - libuuid - mysql-connector-c - - openssl - libopenssl-static - zlib + run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Sort chains. By default sorts by score." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-chainsplit/build.sh b/recipes/ucsc-chainsplit/build.sh index 904b5af20b961..86485b0bf816f 100644 --- a/recipes/ucsc-chainsplit/build.sh +++ b/recipes/ucsc-chainsplit/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/chainSplit && make) -cp bin/chainSplit "$PREFIX/bin" -chmod +x "$PREFIX/bin/chainSplit" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/chainSplit && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/chainSplit "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/chainSplit" diff --git a/recipes/ucsc-chainsplit/include.patch b/recipes/ucsc-chainsplit/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-chainsplit/include.patch +++ b/recipes/ucsc-chainsplit/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-chainsplit/meta.yaml b/recipes/ucsc-chainsplit/meta.yaml index 879198f6e1dc9..8904f36ce5819 100644 --- a/recipes/ucsc-chainsplit/meta.yaml +++ b/recipes/ucsc-chainsplit/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-chainsplit" %} {% set program = "chainSplit" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Split chains up by target or query sequence" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-chainstitchid/build.sh b/recipes/ucsc-chainstitchid/build.sh index 5a737a5c85003..10dfddf7ed04e 100644 --- a/recipes/ucsc-chainstitchid/build.sh +++ b/recipes/ucsc-chainstitchid/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/chainStitchId && make) -cp bin/chainStitchId "$PREFIX/bin" -chmod +x "$PREFIX/bin/chainStitchId" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/chainStitchId && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/chainStitchId "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/chainStitchId" diff --git a/recipes/ucsc-chainstitchid/include.patch b/recipes/ucsc-chainstitchid/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-chainstitchid/include.patch +++ b/recipes/ucsc-chainstitchid/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-chainstitchid/meta.yaml b/recipes/ucsc-chainstitchid/meta.yaml index 2001b5df994a4..ef2cfd4aeacd6 100644 --- a/recipes/ucsc-chainstitchid/meta.yaml +++ b/recipes/ucsc-chainstitchid/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-chainstitchid" %} {% set program = "chainStitchId" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Join chain fragments with the same chain ID into a single" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-chainswap/build.sh b/recipes/ucsc-chainswap/build.sh index 361d0fad14946..8eb218a29a95a 100644 --- a/recipes/ucsc-chainswap/build.sh +++ b/recipes/ucsc-chainswap/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/chainSwap && make) -cp bin/chainSwap "$PREFIX/bin" -chmod +x "$PREFIX/bin/chainSwap" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/chainSwap && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/chainSwap "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/chainSwap" diff --git a/recipes/ucsc-chainswap/include.patch b/recipes/ucsc-chainswap/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-chainswap/include.patch +++ b/recipes/ucsc-chainswap/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-chainswap/meta.yaml b/recipes/ucsc-chainswap/meta.yaml index a4781ec42be5d..4e91525fb6b79 100644 --- a/recipes/ucsc-chainswap/meta.yaml +++ b/recipes/ucsc-chainswap/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-chainswap" %} {% set program = "chainSwap" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Swap target and query in chain" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-chaintoaxt/build.sh b/recipes/ucsc-chaintoaxt/build.sh index 183b350517e6a..04441646d7916 100644 --- a/recipes/ucsc-chaintoaxt/build.sh +++ b/recipes/ucsc-chaintoaxt/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/chainToAxt && make) -cp bin/chainToAxt "$PREFIX/bin" -chmod +x "$PREFIX/bin/chainToAxt" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/chainToAxt && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/chainToAxt "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/chainToAxt" diff --git a/recipes/ucsc-chaintoaxt/include.patch b/recipes/ucsc-chaintoaxt/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-chaintoaxt/include.patch +++ b/recipes/ucsc-chaintoaxt/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-chaintoaxt/meta.yaml b/recipes/ucsc-chaintoaxt/meta.yaml index b9c5445fd18b2..77d4ae748c889 100644 --- a/recipes/ucsc-chaintoaxt/meta.yaml +++ b/recipes/ucsc-chaintoaxt/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-chaintoaxt" %} {% set program = "chainToAxt" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert from chain to axt file" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-chaintopsl/build.sh b/recipes/ucsc-chaintopsl/build.sh index 73cc58fd9a243..744cad97874af 100644 --- a/recipes/ucsc-chaintopsl/build.sh +++ b/recipes/ucsc-chaintopsl/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/chainToPsl && make) -cp bin/chainToPsl "$PREFIX/bin" -chmod +x "$PREFIX/bin/chainToPsl" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/chainToPsl && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/chainToPsl "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/chainToPsl" diff --git a/recipes/ucsc-chaintopsl/include.patch b/recipes/ucsc-chaintopsl/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-chaintopsl/include.patch +++ b/recipes/ucsc-chaintopsl/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-chaintopsl/meta.yaml b/recipes/ucsc-chaintopsl/meta.yaml index 0bc996af09ba1..ced6ca5ebea90 100644 --- a/recipes/ucsc-chaintopsl/meta.yaml +++ b/recipes/ucsc-chaintopsl/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-chaintopsl" %} {% set program = "chainToPsl" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert chain file to psl format" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-chaintopslbasic/build.sh b/recipes/ucsc-chaintopslbasic/build.sh index 0c1f25b1e30dc..4f3b66b44fedb 100644 --- a/recipes/ucsc-chaintopslbasic/build.sh +++ b/recipes/ucsc-chaintopslbasic/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/chainToPslBasic && make) -cp bin/chainToPslBasic "$PREFIX/bin" -chmod +x "$PREFIX/bin/chainToPslBasic" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/chainToPslBasic && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/chainToPslBasic "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/chainToPslBasic" diff --git a/recipes/ucsc-chaintopslbasic/include.patch b/recipes/ucsc-chaintopslbasic/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-chaintopslbasic/include.patch +++ b/recipes/ucsc-chaintopslbasic/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-chaintopslbasic/meta.yaml b/recipes/ucsc-chaintopslbasic/meta.yaml index fba9f93d81f94..9a9683eff74f7 100644 --- a/recipes/ucsc-chaintopslbasic/meta.yaml +++ b/recipes/ucsc-chaintopslbasic/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-chaintopslbasic" %} {% set program = "chainToPslBasic" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Basic conversion chain file to psl format" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-checkagpandfa/build.sh b/recipes/ucsc-checkagpandfa/build.sh index 73ca488d61f8f..ad3b4d10ece14 100644 --- a/recipes/ucsc-checkagpandfa/build.sh +++ b/recipes/ucsc-checkagpandfa/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/gigAssembler/checkAgpAndFa && make) -cp bin/checkAgpAndFa "$PREFIX/bin" -chmod +x "$PREFIX/bin/checkAgpAndFa" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/gigAssembler/checkAgpAndFa && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/checkAgpAndFa "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/checkAgpAndFa" diff --git a/recipes/ucsc-checkagpandfa/include.patch b/recipes/ucsc-checkagpandfa/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-checkagpandfa/include.patch +++ b/recipes/ucsc-checkagpandfa/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-checkagpandfa/meta.yaml b/recipes/ucsc-checkagpandfa/meta.yaml index 602c1b2589e17..5a739b8c2d0db 100644 --- a/recipes/ucsc-checkagpandfa/meta.yaml +++ b/recipes/ucsc-checkagpandfa/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-checkagpandfa" %} {% set program = "checkAgpAndFa" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "takes a .agp file and .fa file and ensures that they are in synch" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-checkcoveragegaps/build.sh b/recipes/ucsc-checkcoveragegaps/build.sh index ef5ebe0df0a02..eb941d1941048 100644 --- a/recipes/ucsc-checkcoveragegaps/build.sh +++ b/recipes/ucsc-checkcoveragegaps/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/checkCoverageGaps && make) -cp bin/checkCoverageGaps "$PREFIX/bin" -chmod +x "$PREFIX/bin/checkCoverageGaps" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/checkCoverageGaps && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/checkCoverageGaps "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/checkCoverageGaps" diff --git a/recipes/ucsc-checkcoveragegaps/include.patch b/recipes/ucsc-checkcoveragegaps/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-checkcoveragegaps/include.patch +++ b/recipes/ucsc-checkcoveragegaps/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-checkcoveragegaps/meta.yaml b/recipes/ucsc-checkcoveragegaps/meta.yaml index b3d0db6ae4843..cc86c26c9b7a9 100644 --- a/recipes/ucsc-checkcoveragegaps/meta.yaml +++ b/recipes/ucsc-checkcoveragegaps/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-checkcoveragegaps" %} {% set program = "checkCoverageGaps" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Check for biggest gap in coverage for a list of tracks." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-checkhgfindspec/build.sh b/recipes/ucsc-checkhgfindspec/build.sh index c89af8112bd23..a1d8fa895c2af 100644 --- a/recipes/ucsc-checkhgfindspec/build.sh +++ b/recipes/ucsc-checkhgfindspec/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/checkHgFindSpec && make) -cp bin/checkHgFindSpec "$PREFIX/bin" -chmod +x "$PREFIX/bin/checkHgFindSpec" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/checkHgFindSpec && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/checkHgFindSpec "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/checkHgFindSpec" diff --git a/recipes/ucsc-checkhgfindspec/build_failure.linux-64.yaml b/recipes/ucsc-checkhgfindspec/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..0d3815ba92acf --- /dev/null +++ b/recipes/ucsc-checkhgfindspec/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: df8d57e37d78b7409b8c609e4b204bd41d195d67802921500989e57e12b65d07 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + | ^~~~~~~~~ + qaSeq.c: In function 'qaFastReadNext': + qaSeq.c:195:1: warning: '__builtin_strncpy' specified bound 256 equals destination size [-Wstringop-truncation] + 195 | strncpy(name, s, sizeof(name)); + | ^~~~~~~ + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o quickLift.o -c quickLift.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o quickLiftChain.o -c quickLiftChain.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rankProp.o -c rankProp.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o refLink.o -c refLink.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o refSeqStatus.o -c refSeqStatus.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rikenCluster.o -c rikenCluster.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rmskAlign.o -c rmskAlign.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rmskJoined.o -c rmskJoined.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rmskOut.o -c rmskOut.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rmskOut2.o -c rmskOut2.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rnaGene.o -c rnaGene.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sage.o -c sage.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sageCounts.o -c sageCounts.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o samAlignment.o -c samAlignment.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sample.o -c sample.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sanger22extra.o -c sanger22extra.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o scoredRef.o -c scoredRef.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o seqWindow.o -c seqWindow.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o snakeUi.o -c snakeUi.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o snp.o -c snp.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o snpExceptions.o -c snpExceptions.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o soTerm.o -c soTerm.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o spDb.o -c spDb.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sqlProg.o -c sqlProg.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sqlSanity.o -c sqlSanity.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o stanMad.o -c stanMad.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o stsAlias.o -c stsAlias.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o stsInfo2.o -c stsInfo2.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o stsMap.o -c stsMap.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o stsMarker.o -c stsMarker.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o tableStatus.o -c tableStatus.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o tablesTables.o -c tablesTables.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o tagRepo.o -c tagRepo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o tfbsCons.o -c tfbsCons.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o tigrCmrGene.o -c tigrCmrGene.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o traceInfo.o -c traceInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackDb.o -c trackDb.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackDbCache.o -c trackDbCache.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackDbCustom.o -c trackDbCustom.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackHub.o -c trackHub.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackVersion.o -c trackVersion.c + trackDbCustom.c: In function 'trackDbInclude': + trackDbCustom.c:294:5: warning: 'splitPath' accessing 512 bytes in a region of size 256 [-Wstringop-overflow=] + 294 | splitPath(raFile, incFile, NULL, NULL); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + trackDbCustom.c:294:5: note: referencing argument 2 of type 'char[512]' + trackDbCustom.c:294:5: note: referencing argument 3 of type 'char[128]' + trackDbCustom.c:294:5: note: referencing argument 4 of type 'char[64]' + In file included from trackDbCustom.c:9: + ../../inc/common.h:1139:6: note: in a call to function 'splitPath' + 1139 | void splitPath(char *path, char dir[PATH_LEN], char name[FILENAME_LEN], + | ^~~~~~~~~ + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trashDir.o -c trashDir.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txAliDiff.o -c txAliDiff.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txCluster.o -c txCluster.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txCommon.o -c txCommon.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txEdgeBed.o -c txEdgeBed.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txGraph.o -c txGraph.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txInfo.o -c txInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txRnaAccs.o -c txRnaAccs.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o variantProjector.o -c variantProjector.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o vcfUi.o -c vcfUi.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o vegaInfo.o -c vegaInfo.c + sed -e 's/\\/\\\\/g; s/"/\\"/g; s/^/"/; s/$/\\n"/;' jWestHeader.html > jWestHeader.h + sed -e 's/\\/\\\\/g; s/"/\\"/g; s/^/"/; s/$/\\n"/;' jWestBanner.html > jWestBanner.h + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wigAsciiToBinary.o -c wigAsciiToBinary.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wigDataStream.o -c wigDataStream.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wiggle.o -c wiggle.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wiggleCart.o -c wiggleCart.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wiggleUtils.o -c wiggleUtils.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wikiLink.o -c wikiLink.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o bigRmskAlignBed.o -c bigRmskAlignBed.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o bigRmskBed.o -c bigRmskBed.c + mkdir -p ../../lib/x86_64 + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o web.o -c web.c + ar rcus ../../lib/x86_64/jkhgap.a adjacency.o affyPairs.o agpFrag.o agpGap.o alignSeqSizes.o altGraphX.o asmAlias.o asmEquivalent.o asmSummary.o autoUpgrade.o axtInfo.o barChartBed.o barChartCategory.o barChartUi.o bed.o bed12Source.o bedDetail.o bigBedFind.o bigBedLabel.o bigChain.o bigDbSnp.o bigGenePred.o bigLink.o bigPsl.o blastTab.o borf.o botDelay.o cart.o cartDb.o cdsEvidence.o cdsOrtho.o cdsPick.o cgapSage/cgapSage.o cgapSage/cgapSageLib.o cgiApoptosis.o chainCart.o chainDb.o chainLink.o chainNet.o chainNetDbLoad.o chromAlias.o chromBins.o chromGraph.o chromGraphFactory.o chromInfo.o chromInserts.o chromKeeper.o clonePos.o cpgIsland.o ctgPos.o customAdjacency.o customComposite.o customFactory.o customPp.o customTrack.o cv.o cytoBand.o dbDb.o decoration.o decoratorUi.o defaultDb.o dnaMotifSql.o dupTrack.o encode/encodeErge.o encode/encodeErgeHssCellLines.o encode/encodeExp.o encode/encodeHapMapAlleleFreq.o encode/encodeIndels.o encode/encodePeak.o encode/encodeRegionInfoCustom.o encode/encodeRna.o encode/encodeStanfordPromoters.o encode/encodeStanfordPromotersAverage.o encode/peptideMapping.o encode/wgEncodeGencodeAnnotationRemark.o encode/wgEncodeGencodeAttrs.o encode/wgEncodeGencodeEntrezGene.o encode/wgEncodeGencodeExonSupport.o encode/wgEncodeGencodeGeneSource.o encode/wgEncodeGencodeGeneSymbol.o encode/wgEncodeGencodePdb.o encode/wgEncodeGencodePubMed.o encode/wgEncodeGencodeRefSeq.o encode/wgEncodeGencodeTag.o encode/wgEncodeGencodeTranscriptSource.o encode/wgEncodeGencodeTranscriptSupport.o encode/wgEncodeGencodeTranscriptionSupportLevel.o encode/wgEncodeGencodeUniProt.o encode3/encode3Valid.o estOrientInfo.o expData.o exportedDataHubs.o expRecord.o facetField.o facetedTable.o featureBits.o findKGAlias.o fakeCurl.o findKGProtAlias.o gbSeq.o gbExtFile.o gcPercent.o genark.o genbank.o genbankBlackList.o gencodeTracksCommon.o gencodeAttrs.o gencodeToRefSeq.o geneGraph.o genePred.o genePredReader.o geoMirror.o ggCluster.o ggDump.o ggGraph.o ggMrnaAli.o ggTypes.o glDbRep.o googleAnalytics.o gpFx.o grp.o gtexAse.o gtexDonor.o gtexGeneBed.o gtexInfo.o gtexSample.o gtexSampleData.o gtexTissue.o gtexTissueMedian.o gtexUi.o hCommon.o hPrint.o hVarSubst.o hapmapAllelesOrtho.o hapmapPhaseIIISummary.o hapmapSnps.o hdb.o hgColors.o hgConfig.o hgFind.o hgFindSpec.o hgFindSpecCustom.o hgHgvs.o hgHgvsParse.o hgMaf.o hgRelate.o hic.o hicUi.o hubConnect.o hubPublic.o hubSearchText.o hui.o imageClone.o indelShift.o interact.o interactUi.o itemAttr.o jksql.o joiner.o jsHelper.o kgAlias.o kgProtAlias.o kgXref.o knownInfo.o knownMore.o lav.o lfs.o liftOver.o liftOverChain.o liftUp.o longRange.o lrg.o lsSnpPdb.o mafFrames.o mafGene.o mafSummary.o makeItemsItem.o mdb.o microarray.o minChromSize.o namedSessionDb.o netAlign.o netCart.o pepPred.o pgPhenoAssoc.o pgSnp.o pslReader.o qaSeq.o quickLift.o quickLiftChain.o rankProp.o refLink.o refSeqStatus.o rikenCluster.o rmskAlign.o rmskJoined.o rmskOut.o rmskOut2.o rnaGene.o sage.o sageCounts.o samAlignment.o sample.o sanger22extra.o scoredRef.o seqWindow.o snakeUi.o snp.o snpExceptions.o soTerm.o spDb.o sqlProg.o sqlSanity.o stanMad.o stsAlias.o stsInfo2.o stsMap.o stsMarker.o tableStatus.o tablesTables.o tagRepo.o tfbsCons.o tigrCmrGene.o traceInfo.o trackDb.o trackDbCache.o trackDbCustom.o trackHub.o trackVersion.o trashDir.o txAliDiff.o txCluster.o txCommon.o txEdgeBed.o txGraph.o txInfo.o txRnaAccs.o variantProjector.o vcfUi.o vegaInfo.o web.o wigAsciiToBinary.o wigDataStream.o wiggle.o wiggleCart.o wiggleUtils.o wikiLink.o bigRmskAlignBed.o bigRmskBed.o + cd kent/src/hg/checkHgFindSpec + make CC=/opt/conda/conda-bld/ucsc-checkhgfindspec_1724792872911/_build_env/bin/x86_64-conda-linux-gnu-cc CXX= 'CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /opt/conda/conda-bld/ucsc-checkhgfindspec_1724792872911/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include -fdebug-prefix-map=/opt/conda/conda-bld/ucsc-checkhgfindspec_1724792872911/work=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=/opt/conda/conda-bld/ucsc-checkhgfindspec_1724792872911/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,/opt/conda/conda-bld/ucsc-checkhgfindspec_1724792872911/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib -Wl,-rpath-link,/opt/conda/conda-bld/ucsc-checkhgfindspec_1724792872911/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib -L/opt/conda/conda-bld/ucsc-checkhgfindspec_1724792872911/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib -L/opt/conda/conda-bld/ucsc-checkhgfindspec_1724792872911/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib' 'CXXFLAGS= -I/opt/conda/conda-bld/ucsc-checkhgfindspec_1724792872911/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,/opt/conda/conda-bld/ucsc-checkhgfindspec_1724792872911/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib -Wl,-rpath-link,/opt/conda/conda-bld/ucsc-checkhgfindspec_1724792872911/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib -L/opt/conda/conda-bld/ucsc-checkhgfindspec_1724792872911/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib -L/opt/conda/conda-bld/ucsc-checkhgfindspec_1724792872911/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib' -j 4 + make: *** No rule to make target '../../lib/x86_64/jkhgapcgi.a', needed by '/opt/conda/conda-bld/ucsc-checkhgfindspec_1724792872911/work/bin/checkHgFindSpec'. Stop. + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/ucsc-checkhgfindspec_1724792872911/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/ucsc-checkhgfindspec/build_failure.linux-aarch64.yaml b/recipes/ucsc-checkhgfindspec/build_failure.linux-aarch64.yaml new file mode 100644 index 0000000000000..968e091213191 --- /dev/null +++ b/recipes/ucsc-checkhgfindspec/build_failure.linux-aarch64.yaml @@ -0,0 +1,104 @@ +recipe_sha: df8d57e37d78b7409b8c609e4b204bd41d195d67802921500989e57e12b65d07 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + | ^~~~~~~~~ + qaSeq.c: In function 'qaFastReadNext': + qaSeq.c:195:1: warning: '__builtin_strncpy' specified bound 256 equals destination size [-Wstringop-truncation] + 195 | strncpy(name, s, sizeof(name)); + | ^~~~~~~ + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o quickLift.o -c quickLift.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o quickLiftChain.o -c quickLiftChain.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rankProp.o -c rankProp.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o refLink.o -c refLink.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o refSeqStatus.o -c refSeqStatus.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rikenCluster.o -c rikenCluster.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rmskAlign.o -c rmskAlign.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rmskJoined.o -c rmskJoined.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rmskOut.o -c rmskOut.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rmskOut2.o -c rmskOut2.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rnaGene.o -c rnaGene.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sage.o -c sage.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sageCounts.o -c sageCounts.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o samAlignment.o -c samAlignment.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sample.o -c sample.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sanger22extra.o -c sanger22extra.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o scoredRef.o -c scoredRef.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o seqWindow.o -c seqWindow.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o snakeUi.o -c snakeUi.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o snp.o -c snp.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o snpExceptions.o -c snpExceptions.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o soTerm.o -c soTerm.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o spDb.o -c spDb.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sqlProg.o -c sqlProg.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sqlSanity.o -c sqlSanity.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o stanMad.o -c stanMad.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o stsAlias.o -c stsAlias.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o stsInfo2.o -c stsInfo2.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o stsMap.o -c stsMap.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o stsMarker.o -c stsMarker.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o tableStatus.o -c tableStatus.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o tablesTables.o -c tablesTables.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o tagRepo.o -c tagRepo.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o tfbsCons.o -c tfbsCons.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o tigrCmrGene.o -c tigrCmrGene.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o traceInfo.o -c traceInfo.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackDb.o -c trackDb.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackDbCache.o -c trackDbCache.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackDbCustom.o -c trackDbCustom.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackHub.o -c trackHub.c + trackDbCustom.c: In function 'trackDbInclude': + trackDbCustom.c:294:5: warning: 'splitPath' accessing 512 bytes in a region of size 256 [-Wstringop-overflow=] + 294 | splitPath(raFile, incFile, NULL, NULL); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + trackDbCustom.c:294:5: note: referencing argument 2 of type 'char[512]' + trackDbCustom.c:294:5: note: referencing argument 3 of type 'char[128]' + trackDbCustom.c:294:5: note: referencing argument 4 of type 'char[64]' + In file included from trackDbCustom.c:9: + ../../inc/common.h:1139:6: note: in a call to function 'splitPath' + 1139 | void splitPath(char *path, char dir[PATH_LEN], char name[FILENAME_LEN], + | ^~~~~~~~~ + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackVersion.o -c trackVersion.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trashDir.o -c trashDir.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txAliDiff.o -c txAliDiff.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txCluster.o -c txCluster.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txCommon.o -c txCommon.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txEdgeBed.o -c txEdgeBed.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txGraph.o -c txGraph.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txInfo.o -c txInfo.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txRnaAccs.o -c txRnaAccs.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o variantProjector.o -c variantProjector.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o vcfUi.o -c vcfUi.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o vegaInfo.o -c vegaInfo.c + sed -e 's/\\/\\\\/g; s/"/\\"/g; s/^/"/; s/$/\\n"/;' jWestHeader.html > jWestHeader.h + sed -e 's/\\/\\\\/g; s/"/\\"/g; s/^/"/; s/$/\\n"/;' jWestBanner.html > jWestBanner.h + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wigAsciiToBinary.o -c wigAsciiToBinary.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wigDataStream.o -c wigDataStream.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wiggle.o -c wiggle.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wiggleCart.o -c wiggleCart.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wiggleUtils.o -c wiggleUtils.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wikiLink.o -c wikiLink.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o bigRmskAlignBed.o -c bigRmskAlignBed.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o bigRmskBed.o -c bigRmskBed.c + mkdir -p ../../lib/aarch64 + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -O -g -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_aarch64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o web.o -c web.c + ar rcus ../../lib/aarch64/jkhgap.a adjacency.o affyPairs.o agpFrag.o agpGap.o alignSeqSizes.o altGraphX.o asmAlias.o asmEquivalent.o asmSummary.o autoUpgrade.o axtInfo.o barChartBed.o barChartCategory.o barChartUi.o bed.o bed12Source.o bedDetail.o bigBedFind.o bigBedLabel.o bigChain.o bigDbSnp.o bigGenePred.o bigLink.o bigPsl.o blastTab.o borf.o botDelay.o cart.o cartDb.o cdsEvidence.o cdsOrtho.o cdsPick.o cgapSage/cgapSage.o cgapSage/cgapSageLib.o cgiApoptosis.o chainCart.o chainDb.o chainLink.o chainNet.o chainNetDbLoad.o chromAlias.o chromBins.o chromGraph.o chromGraphFactory.o chromInfo.o chromInserts.o chromKeeper.o clonePos.o cpgIsland.o ctgPos.o customAdjacency.o customComposite.o customFactory.o customPp.o customTrack.o cv.o cytoBand.o dbDb.o decoration.o decoratorUi.o defaultDb.o dnaMotifSql.o dupTrack.o encode/encodeErge.o encode/encodeErgeHssCellLines.o encode/encodeExp.o encode/encodeHapMapAlleleFreq.o encode/encodeIndels.o encode/encodePeak.o encode/encodeRegionInfoCustom.o encode/encodeRna.o encode/encodeStanfordPromoters.o encode/encodeStanfordPromotersAverage.o encode/peptideMapping.o encode/wgEncodeGencodeAnnotationRemark.o encode/wgEncodeGencodeAttrs.o encode/wgEncodeGencodeEntrezGene.o encode/wgEncodeGencodeExonSupport.o encode/wgEncodeGencodeGeneSource.o encode/wgEncodeGencodeGeneSymbol.o encode/wgEncodeGencodePdb.o encode/wgEncodeGencodePubMed.o encode/wgEncodeGencodeRefSeq.o encode/wgEncodeGencodeTag.o encode/wgEncodeGencodeTranscriptSource.o encode/wgEncodeGencodeTranscriptSupport.o encode/wgEncodeGencodeTranscriptionSupportLevel.o encode/wgEncodeGencodeUniProt.o encode3/encode3Valid.o estOrientInfo.o expData.o exportedDataHubs.o expRecord.o facetField.o facetedTable.o featureBits.o findKGAlias.o fakeCurl.o findKGProtAlias.o gbSeq.o gbExtFile.o gcPercent.o genark.o genbank.o genbankBlackList.o gencodeTracksCommon.o gencodeAttrs.o gencodeToRefSeq.o geneGraph.o genePred.o genePredReader.o geoMirror.o ggCluster.o ggDump.o ggGraph.o ggMrnaAli.o ggTypes.o glDbRep.o googleAnalytics.o gpFx.o grp.o gtexAse.o gtexDonor.o gtexGeneBed.o gtexInfo.o gtexSample.o gtexSampleData.o gtexTissue.o gtexTissueMedian.o gtexUi.o hCommon.o hPrint.o hVarSubst.o hapmapAllelesOrtho.o hapmapPhaseIIISummary.o hapmapSnps.o hdb.o hgColors.o hgConfig.o hgFind.o hgFindSpec.o hgFindSpecCustom.o hgHgvs.o hgHgvsParse.o hgMaf.o hgRelate.o hic.o hicUi.o hubConnect.o hubPublic.o hubSearchText.o hui.o imageClone.o indelShift.o interact.o interactUi.o itemAttr.o jksql.o joiner.o jsHelper.o kgAlias.o kgProtAlias.o kgXref.o knownInfo.o knownMore.o lav.o lfs.o liftOver.o liftOverChain.o liftUp.o longRange.o lrg.o lsSnpPdb.o mafFrames.o mafGene.o mafSummary.o makeItemsItem.o mdb.o microarray.o minChromSize.o namedSessionDb.o netAlign.o netCart.o pepPred.o pgPhenoAssoc.o pgSnp.o pslReader.o qaSeq.o quickLift.o quickLiftChain.o rankProp.o refLink.o refSeqStatus.o rikenCluster.o rmskAlign.o rmskJoined.o rmskOut.o rmskOut2.o rnaGene.o sage.o sageCounts.o samAlignment.o sample.o sanger22extra.o scoredRef.o seqWindow.o snakeUi.o snp.o snpExceptions.o soTerm.o spDb.o sqlProg.o sqlSanity.o stanMad.o stsAlias.o stsInfo2.o stsMap.o stsMarker.o tableStatus.o tablesTables.o tagRepo.o tfbsCons.o tigrCmrGene.o traceInfo.o trackDb.o trackDbCache.o trackDbCustom.o trackHub.o trackVersion.o trashDir.o txAliDiff.o txCluster.o txCommon.o txEdgeBed.o txGraph.o txInfo.o txRnaAccs.o variantProjector.o vcfUi.o vegaInfo.o web.o wigAsciiToBinary.o wigDataStream.o wiggle.o wiggleCart.o wiggleUtils.o wikiLink.o bigRmskAlignBed.o bigRmskBed.o + cd kent/src/hg/checkHgFindSpec + make CC=/opt/conda/conda-bld/ucsc-checkhgfindspec_1724786009370/_build_env/bin/aarch64-conda-linux-gnu-cc CXX= 'CFLAGS=-ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem /opt/conda/conda-bld/ucsc-checkhgfindspec_1724786009370/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include -fdebug-prefix-map=/opt/conda/conda-bld/ucsc-checkhgfindspec_1724786009370/work=/usr/local/src/conda/ucsc-checkhgfindspec-469 -fdebug-prefix-map=/opt/conda/conda-bld/ucsc-checkhgfindspec_1724786009370/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,/opt/conda/conda-bld/ucsc-checkhgfindspec_1724786009370/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib -Wl,-rpath-link,/opt/conda/conda-bld/ucsc-checkhgfindspec_1724786009370/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib -L/opt/conda/conda-bld/ucsc-checkhgfindspec_1724786009370/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib -L/opt/conda/conda-bld/ucsc-checkhgfindspec_1724786009370/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib' 'CXXFLAGS= -I/opt/conda/conda-bld/ucsc-checkhgfindspec_1724786009370/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,/opt/conda/conda-bld/ucsc-checkhgfindspec_1724786009370/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib -Wl,-rpath-link,/opt/conda/conda-bld/ucsc-checkhgfindspec_1724786009370/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib -L/opt/conda/conda-bld/ucsc-checkhgfindspec_1724786009370/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib -L/opt/conda/conda-bld/ucsc-checkhgfindspec_1724786009370/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib' -j 4 + make: *** No rule to make target '../../lib/aarch64/jkhgapcgi.a', needed by '/opt/conda/conda-bld/ucsc-checkhgfindspec_1724786009370/work/bin/checkHgFindSpec'. Stop. + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/ucsc-checkhgfindspec_1724786009370/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/ucsc-checkhgfindspec/include.patch b/recipes/ucsc-checkhgfindspec/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-checkhgfindspec/include.patch +++ b/recipes/ucsc-checkhgfindspec/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-checkhgfindspec/meta.yaml b/recipes/ucsc-checkhgfindspec/meta.yaml index 7d0c1b14e7bda..344ee0e75f466 100644 --- a/recipes/ucsc-checkhgfindspec/meta.yaml +++ b/recipes/ucsc-checkhgfindspec/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-checkhgfindspec" %} {% set program = "checkHgFindSpec" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "test and describe search specs in hgFindSpec tables." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-checktablecoords/build.sh b/recipes/ucsc-checktablecoords/build.sh index 32521004ac2cd..91bb2e088ce06 100644 --- a/recipes/ucsc-checktablecoords/build.sh +++ b/recipes/ucsc-checktablecoords/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/checkTableCoords && make) -cp bin/checkTableCoords "$PREFIX/bin" -chmod +x "$PREFIX/bin/checkTableCoords" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/checkTableCoords && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/checkTableCoords "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/checkTableCoords" diff --git a/recipes/ucsc-checktablecoords/include.patch b/recipes/ucsc-checktablecoords/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-checktablecoords/include.patch +++ b/recipes/ucsc-checktablecoords/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-checktablecoords/meta.yaml b/recipes/ucsc-checktablecoords/meta.yaml index 791004d8305d7..adb7ea668615a 100644 --- a/recipes/ucsc-checktablecoords/meta.yaml +++ b/recipes/ucsc-checktablecoords/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-checktablecoords" %} {% set program = "checkTableCoords" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "check invariants on genomic coords in table(s)." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-chopfalines/build.sh b/recipes/ucsc-chopfalines/build.sh index ee55545a7dfb8..a58ab6b37ac2a 100644 --- a/recipes/ucsc-chopfalines/build.sh +++ b/recipes/ucsc-chopfalines/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/chopFaLines && make) -cp bin/chopFaLines "$PREFIX/bin" -chmod +x "$PREFIX/bin/chopFaLines" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/chopFaLines && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/chopFaLines "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/chopFaLines" diff --git a/recipes/ucsc-chopfalines/include.patch b/recipes/ucsc-chopfalines/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-chopfalines/include.patch +++ b/recipes/ucsc-chopfalines/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-chopfalines/meta.yaml b/recipes/ucsc-chopfalines/meta.yaml index 82f95f1e65f16..55a8833c00e82 100644 --- a/recipes/ucsc-chopfalines/meta.yaml +++ b/recipes/ucsc-chopfalines/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-chopfalines" %} {% set program = "chopFaLines" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Read in FA file with long lines and rewrite it with shorter lines" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-chromgraphfrombin/build.sh b/recipes/ucsc-chromgraphfrombin/build.sh index f4e4f1cd6a5c7..abe23d1d58239 100644 --- a/recipes/ucsc-chromgraphfrombin/build.sh +++ b/recipes/ucsc-chromgraphfrombin/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/utils/chromGraphFromBin && make) -cp bin/chromGraphFromBin "$PREFIX/bin" -chmod +x "$PREFIX/bin/chromGraphFromBin" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/chromGraphFromBin && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/chromGraphFromBin "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/chromGraphFromBin" diff --git a/recipes/ucsc-chromgraphfrombin/include.patch b/recipes/ucsc-chromgraphfrombin/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-chromgraphfrombin/include.patch +++ b/recipes/ucsc-chromgraphfrombin/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-chromgraphfrombin/meta.yaml b/recipes/ucsc-chromgraphfrombin/meta.yaml index d5fee658365da..81ed418950a54 100644 --- a/recipes/ucsc-chromgraphfrombin/meta.yaml +++ b/recipes/ucsc-chromgraphfrombin/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-chromgraphfrombin" %} {% set program = "chromGraphFromBin" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert chromGraph binary to ascii format." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-chromgraphtobin/build.sh b/recipes/ucsc-chromgraphtobin/build.sh index 3cfddf7a01494..e48eda9b05ff5 100644 --- a/recipes/ucsc-chromgraphtobin/build.sh +++ b/recipes/ucsc-chromgraphtobin/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/utils/chromGraphToBin && make) -cp bin/chromGraphToBin "$PREFIX/bin" -chmod +x "$PREFIX/bin/chromGraphToBin" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/chromGraphToBin && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/chromGraphToBin "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/chromGraphToBin" diff --git a/recipes/ucsc-chromgraphtobin/include.patch b/recipes/ucsc-chromgraphtobin/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-chromgraphtobin/include.patch +++ b/recipes/ucsc-chromgraphtobin/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-chromgraphtobin/meta.yaml b/recipes/ucsc-chromgraphtobin/meta.yaml index 3e585a0142a8f..3ca7a67b56d0a 100644 --- a/recipes/ucsc-chromgraphtobin/meta.yaml +++ b/recipes/ucsc-chromgraphtobin/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-chromgraphtobin" %} {% set program = "chromGraphToBin" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Make binary version of chromGraph." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-clustergenes/build_failure.linux-64.yaml b/recipes/ucsc-clustergenes/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..6f6b3fc542fb7 --- /dev/null +++ b/recipes/ucsc-clustergenes/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 7301658b2a9a152f5678e10ce66f847a6c66e265570df1b26bdf41f4d8183b78 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + trackDbCustom.c:294:5: note: referencing argument 2 of type 'char[512]' + trackDbCustom.c:294:5: note: referencing argument 3 of type 'char[128]' + trackDbCustom.c:294:5: note: referencing argument 4 of type 'char[64]' + In file included from trackDbCustom.c:8: + ../../inc/common.h:1104:6: note: in a call to function 'splitPath' + 1104 | void splitPath(char *path, char dir[PATH_LEN], char name[FILENAME_LEN], + | ^~~~~~~~~ + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackHub.o -c trackHub.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackLayout.o -c trackLayout.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackTable.o -c trackTable.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackVersion.o -c trackVersion.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trashDir.o -c trashDir.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o transRegCode.o -c transRegCode.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o transRegCodeCondition.o -c transRegCodeCondition.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o transRegCodeProbe.o -c transRegCodeProbe.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txAliDiff.o -c txAliDiff.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txCluster.o -c txCluster.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txCommon.o -c txCommon.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txEdgeBed.o -c txEdgeBed.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txEdgeOrtho.o -c txEdgeOrtho.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txGraph.o -c txGraph.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txInfo.o -c txInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txRnaAccs.o -c txRnaAccs.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o ucscRetroInfo.o -c ucscRetroInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o ucscRetroOrtho.o -c ucscRetroOrtho.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o validateGisaid.o -c validateGisaid.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o variant.o -c variant.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o variantProjector.o -c variantProjector.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o vcfUi.o -c vcfUi.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o vegaInfo.o -c vegaInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o vegaInfoZfish.o -c vegaInfoZfish.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o visiGene.o -c visiGene.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o vntr.o -c vntr.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wabAli.o -c wabAli.c + sed -e 's/\\/\\\\/g; s/"/\\"/g; s/^/"/; s/$/\\n"/;' jWestHeader.html > jWestHeader.h + sed -e 's/\\/\\\\/g; s/"/\\"/g; s/^/"/; s/$/\\n"/;' jWestBanner.html > jWestBanner.h + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o web.o -c web.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o ncRna.o -c ncRna.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wgRna.o -c wgRna.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wigAsciiToBinary.o -c wigAsciiToBinary.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wigDataStream.o -c wigDataStream.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wiggle.o -c wiggle.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wiggleCart.o -c wiggleCart.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wiggleUtils.o -c wiggleUtils.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wikiLink.o -c wikiLink.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wikiTrack.o -c wikiTrack.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o yaleGencodeAssoc.o -c yaleGencodeAssoc.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o zdobnovSynt.o -c zdobnovSynt.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o oreganno.o -c oreganno.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o oregannoUi.o -c oregannoUi.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o gvUi.o -c gvUi.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o gv.o -c gv.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o omicia.o -c omicia.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o protVar.o -c protVar.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o pgSnp.o -c pgSnp.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o alignInfo.o -c alignInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o cddInfo.o -c cddInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o loweutils.o -c loweutils.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o cddDesc.o -c cddDesc.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o arCOGs.o -c arCOGs.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o arcogdesc.o -c arcogdesc.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o geneTree.o -c geneTree.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o megablastInfo.o -c megablastInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o pgPhenoAssoc.o -c pgPhenoAssoc.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o pgSiftPred.o -c pgSiftPred.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o pgPolyphenPred.o -c pgPolyphenPred.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o userRegions.o -c userRegions.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o variome.o -c variome.c + ar rcus ../../lib/x86_64/jkhgap.a acemblyClass.o adjacency.o affyAllExonProbe.o affyAtlas.o affy10KDetails.o affy120KDetails.o affyOffset.o affyPairs.o agp.o agpFrag.o agpGap.o alignSeqSizes.o altGraph.o altGraphX.o ancientRref.o annoFormatVep.o annoGratorGpVar.o annoGrateWigDb.o annoStreamDb.o annoStreamDbFactorSource.o annoStreamDbPslPlus.o annoStreamWig.o api.o atomDb.o autoUpgrade.o axtInfo.o axtLib.o bactigPos.o hgBam.o barChartBed.o barChartCategory.o barChartUi.o barChartData.o barChartSample.o baseMaskCommon.o bdgpExprLink.o bdgpGeneInfo.o bed.o bed5FloatScore.o bed5Pval.o bed6FloatScore.o bed8Attrs.o bed12Source.o bed12wSeq.o bedCart.o bgiGeneInfo.o bgiGeneSnp.o bgiSnp.o bigBedFind.o bigBedLabel.o bigGenePred.o bigPsl.o bigTransMap.o bioImage.o blastTab.o blastzNet.o blatServers.o borf.o borkPseudoHom.o botDelay.o cart.o cartDb.o cartJson.o cartTrackDb.o cdsEvidence.o cdsOrtho.o cdsPick.o cdsSpec.o ccdsInfo.o ccdsNotes.o ccdsGeneMap.o celeraCoverage.o celeraDupPositive.o cgapSage/cgapSage.o cgapSage/cgapSageLib.o cgh.o chainCart.o chainDb.o chainLink.o chainNet.o chainNetDbLoad.o chicken13kInfo.o chromBins.o chromAlias.o chr18deletions.o chromGraph.o chromGraphFactory.o chromInfo.o chromInserts.o chromKeeper.o clonePos.o codeBlast.o codeBlastScore.o cogs.o cogsxra.o columnInfo.o contigAcc.o coordConv.o cnpIafrate.o cnpIafrate2.o cnpLocke.o cnpRedon.o cnpSebat.o cnpSebat2.o cnpSharp2.o cnpSharpCutoff.o cnpSharpSample.o cnpSharp.o cpgIsland.o cpgIslandExt.o ctgPos.o ctgPos2.o customComposite.o bedDetail.o cgiApoptosis.o customAdjacency.o customFactory.o customPp.o customTrack.o cutter.o cv.o cytoBand.o dbDb.o dbRIP.o dbSnpRs.o defaultDb.o delConrad2.o delHinds2.o dgv.o dgvPlus.o dless.o dnaMotifSql.o dnaMarkovSql.o dnaProbe.o dv.o dvBed.o dvXref2.o easyGene.o ec.o ecCode.o ecAttribute.o ecAttributeCode.o encode/encodeErge.o encode/encodeErgeHssCellLines.o encode/encodeHapMapAlleleFreq.o encode/encodeIndels.o encode/encodePeak.o encode/encodeRegionInfo.o encode/encodeRegionInfoCustom.o encode/encodeRna.o encode/encodeStanfordPromoters.o encode/encodeStanfordPromotersAverage.o encode/pairedTagAlign.o encode/peptideMapping.o encode/tagAlign.o encode/wgEncodeGencodeAttrs.o encode/wgEncodeGencodeExonSupport.o encode/wgEncodeGencodeEntrezGene.o encode/wgEncodeGencodeTag.o encode/wgEncodeGencodeGeneSymbol.o encode/wgEncodeGencodePdb.o encode/wgEncodeGencodePubMed.o encode/wgEncodeGencodeRefSeq.o encode/wgEncodeGencodeGeneSource.o encode/wgEncodeGencodeTranscriptSource.o encode/wgEncodeGencodeTranscriptSupport.o encode/wgEncodeGencodeTranscriptionSupportLevel.o encode/wgEncodeGencodeUniProt.o encode/wgEncodeGencodePolyAFeature.o encode/wgEncodeGencodeAnnotationRemark.o encode/wgEncodeCell.o encode/encodeExp.o encode3/encode2Manifest.o encode3/encode3Valid.o ensFace.o ensInfo.o ensPhusionBlast.o ensXRefZfish.o est3.o estOrientInfo.o estPair.o exoFish.o expData.o expRecord.o exprBed.o facetField.o factorSource.o fbTables.o featureBits.o fileUi.o findKGAlias.o findKGProtAlias.o fishClones.o flyBase2004Xref.o flyBaseSwissProt.o flyreg.o flyreg2.o gbExtFile.o gbWarn.o gbMiscDiff.o gbProtAnn.o gcPercent.o gbSeq.o genbank.o genbankBlackList.o gencodeGeneClass.o gencodeIntron.o genMapDb.o geneBands.o geneCheck.o geneCheckDetails.o geneCheckWidget.o geneGraph.o genePred.o genePredReader.o geneSimilarities.o genoLay.o genomeRangeTreeFile.o genomicDups.o genomicSuperDups.o geoMirror.o ggCluster.o ggDbIo.o ggDump.o ggGraph.o ggMrnaAli.o ggTypes.o glDbRep.o goa.o goaPart.o googleAnalytics.o gpFx.o growthCondition.o grp.o gtexAse.o gtexBoxplot.o gtexEqtlCluster.o gtexInfo.o gtexDonor.o gtexGeneBed.o gtexSample.o gtexSampleData.o gtexTissue.o gtexTissueData.o gtexTissueMedian.o gtexUi.o gwasCatalog.o hAnno.o haplotypes.o hapmapAllelesOrtho.o hapmapAllelesSummary.o hapmapPhaseIIISummary.o hapmapSnps.o hapmapSnpsCombined.o hashJoin.o hCommon.o hCytoBand.o hdb.o hgColors.o hgConfig.o hgExp.o hgFind.o hgFindSpec.o hgFindSpecCustom.o hgHgvs.o hgHgvsParse.o hgGene.o hgMaf.o hgRelate.o hgSeq.o hgdpGeo.o hPrint.o hVarSubst.o hvGfx.o HInv.o hubConnect.o hubSearchText.o hui.o humanParalog.o imageClone.o indelShift.o interact.o interactUi.o isochores.o ispyTables.o itemAttr.o itemConf.o itemDetailsHtml.o jalview.o jaxOrtholog.o jaxQTL.o jaxQTL3.o jksql.o joiner.o jsHelper.o kg1ToKg2.o jgiGene.o joinMixer.o kgAlias.o kgColor.o kgProtAlias.o kgXref.o knownInfo.o knownMore.o knownToSuper.o lav.o ld.o ld2.o lfs.o liftOver.o liftOverChain.o liftUp.o llaInfo.o longRange.o lrg.o lsSnpPdb.o lsSnpPdbChimera.o mafFrames.o mafGene.o mafSummary.o makeItemsItem.o mammalPsg.o mapSts.o mathWig.o mcnBreakpoints.o mdb.o metaChromGraph.o microarray.o minChromSize.o minGeneInfo.o mrnaMisMatch.o mouseOrtho.o mouseSyn.o mouseSynWhd.o mysqlTableStatus.o ncbiRefLink.o ncbiRefSeqLink.o netAlign.o netCart.o nonCodingUi.o omimTitle.o ooUtils.o orthoAlleles.o pal.o pbStamp.o pcrResult.o pepPred.o peptideAtlasPeptide.o plasEndPairs.o polyGenotype.o protFeat.o pscreen.o pseudoGeneLink.o pslReader.o pslWScore.o putaInfo.o qaSeq.o rangeTreeFile.o rankProp.o recombRate.o recombRateRat.o recombRateMouse.o refLink.o refSeqStatus.o rgdQtl.o riken.o rhMapZfishInfo.o rikenBest.o rikenCluster.o rmskOut.o rmskAlign.o rmskJoined.o rmskOut2.o rnaFold.o rnaGene.o rnaGroup.o rnaHybridization.o rnaPLFold.o tRNAs.o gbRNAs.o snoRNAs.o lowelabPfamHit.o lowelabArkinOperonScore.o lowelabTIGROperonScore.o rnaSecStr.o tfbsConsFactors.o roughAli.o transMapStuff.o transMapInfo.o transMapGene.o transMapSrc.o sage.o sageCounts.o sageExp.o samAlignment.o sample.o sanger22extra.o sangerGene.o sangerGeneToWBGeneID.o sargassoSeaXra.o scopDes.o scoredRef.o search.o seqWindow.o sessionThumbnail.o sgdAbundance.o sgdClone.o sgdDescription.o sgdOther.o simpleNucDiff.o simpleRepeat.o snakeUi.o snp.o snp125.o snp125CodingCoordless.o snp132Ext.o snpExceptions.o snpFasta.o snpMap.o snpTmp.o snpUi.o snp125Exceptions.o snp125Ui.o softPromoter.o softberryHom.o soTerm.o spDb.o splignAlign.o sqlSanity.o stanMad.o stsAlias.o stsInfo.o stsInfo2.o stsInfoMouse.o stsInfoMouseNew.o stsInfoRat.o stsMap.o stsMapMouse.o stsMapMouseNew.o stsMapRat.o stsMarker.o suggest.o switchDbTss.o synMap.o synteny100000.o syntenyBerk.o syntenySanger.o sqlProg.o tfbsCons.o tfbsConsSites.o tablesTables.o tableDescriptions.o tableStatus.o targetDb.o tfbsConsMap.o tagRepo.o taxonDivision.o taxonGeneticCode.o taxonName.o taxonNode.o taxonXref.o tigrCmrGene.o tigrOperon.o tilingPath.o traceInfo.o trackDb.o trackDbCustom.o trackHub.o trackLayout.o trackTable.o trackVersion.o trashDir.o transRegCode.o transRegCodeCondition.o transRegCodeProbe.o txAliDiff.o txCluster.o txCommon.o txEdgeBed.o txEdgeOrtho.o txGraph.o txInfo.o txRnaAccs.o ucscRetroInfo.o ucscRetroOrtho.o validateGisaid.o variant.o variantProjector.o vcfUi.o vegaInfo.o vegaInfoZfish.o visiGene.o vntr.o wabAli.o web.o ncRna.o wgRna.o wigAsciiToBinary.o wigDataStream.o wiggle.o wiggleCart.o wiggleUtils.o wikiLink.o wikiTrack.o yaleGencodeAssoc.o zdobnovSynt.o oreganno.o oregannoUi.o gvUi.o gv.o omicia.o protVar.o pgSnp.o alignInfo.o cddInfo.o loweutils.o cddDesc.o arCOGs.o arcogdesc.o geneTree.o megablastInfo.o pgPhenoAssoc.o pgSiftPred.o pgPolyphenPred.o userRegions.o variome.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-clustergenes-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -o clusterGenes.o -c clusterGenes.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -o $SRC_DIR/bin/clusterGenes clusterGenes.o ../../../lib/x86_64/jkhgap.a ../../../lib/x86_64/jkweb.a -L$PREFIX/lib -lmysqlclient -lstdc -lrt -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -lpthread -lssl -lcrypto ../../../htslib/libhts.a -L$PREFIX/lib -lpng16 -lm -lz + /opt/conda/conda-bld/ucsc-clustergenes_1724781208821/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkhgap.a(trackHub.o):/usr/local/src/conda/ucsc-clustergenes-377/kent/src/hg/lib/../../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-clustergenes-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + /opt/conda/conda-bld/ucsc-clustergenes_1724781208821/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkhgap.a(web.o):/usr/local/src/conda/ucsc-clustergenes-377/kent/src/hg/lib/../../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-clustergenes-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + /opt/conda/conda-bld/ucsc-clustergenes_1724781208821/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkhgap.a(wikiLink.o):/usr/local/src/conda/ucsc-clustergenes-377/kent/src/hg/lib/../../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-clustergenes-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + /opt/conda/conda-bld/ucsc-clustergenes_1724781208821/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkhgap.a(cart.o):/usr/local/src/conda/ucsc-clustergenes-377/kent/src/hg/lib/../../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-clustergenes-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + /opt/conda/conda-bld/ucsc-clustergenes_1724781208821/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkhgap.a(hPrint.o):/usr/local/src/conda/ucsc-clustergenes-377/kent/src/hg/lib/../../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-clustergenes-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + /opt/conda/conda-bld/ucsc-clustergenes_1724781208821/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkweb.a(bamFile.o):/usr/local/src/conda/ucsc-clustergenes-377/kent/src/lib/../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-clustergenes-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + /opt/conda/conda-bld/ucsc-clustergenes_1724781208821/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkweb.a(cheapcgi.o):/usr/local/src/conda/ucsc-clustergenes-377/kent/src/lib/../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-clustergenes-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + /opt/conda/conda-bld/ucsc-clustergenes_1724781208821/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkweb.a(htmlPage.o):/usr/local/src/conda/ucsc-clustergenes-377/kent/src/lib/../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-clustergenes-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + /opt/conda/conda-bld/ucsc-clustergenes_1724781208821/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkweb.a(htmshell.o):/usr/local/src/conda/ucsc-clustergenes-377/kent/src/lib/../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-clustergenes-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + /opt/conda/conda-bld/ucsc-clustergenes_1724781208821/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkweb.a(portimpl.o):/usr/local/src/conda/ucsc-clustergenes-377/kent/src/lib/../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-clustergenes-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + collect2: error: ld returned 1 exit status + make: *** [../../../inc/userApp.mk:31: /opt/conda/conda-bld/ucsc-clustergenes_1724781208821/work/bin/clusterGenes] Error 1 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/ucsc-clustergenes_1724781208821/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/ucsc-coltransform/build.sh b/recipes/ucsc-coltransform/build.sh index a98809f9c583c..17f4d40047c93 100644 --- a/recipes/ucsc-coltransform/build.sh +++ b/recipes/ucsc-coltransform/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/colTransform && make) -cp bin/colTransform "$PREFIX/bin" -chmod +x "$PREFIX/bin/colTransform" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/colTransform && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/colTransform "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/colTransform" diff --git a/recipes/ucsc-coltransform/include.patch b/recipes/ucsc-coltransform/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-coltransform/include.patch +++ b/recipes/ucsc-coltransform/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-coltransform/meta.yaml b/recipes/ucsc-coltransform/meta.yaml index 8db80ad0ad41b..46a6ce6c314fa 100644 --- a/recipes/ucsc-coltransform/meta.yaml +++ b/recipes/ucsc-coltransform/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-coltransform" %} {% set program = "colTransform" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Add and/or multiply column by constant." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-countchars/build.sh b/recipes/ucsc-countchars/build.sh index e2c225cd7ebe3..ab3cb84cb1983 100644 --- a/recipes/ucsc-countchars/build.sh +++ b/recipes/ucsc-countchars/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/countChars && make) -cp bin/countChars "$PREFIX/bin" -chmod +x "$PREFIX/bin/countChars" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/countChars && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/countChars "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/countChars" diff --git a/recipes/ucsc-countchars/include.patch b/recipes/ucsc-countchars/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-countchars/include.patch +++ b/recipes/ucsc-countchars/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-countchars/meta.yaml b/recipes/ucsc-countchars/meta.yaml index a5edbbf355e7d..3191991de187e 100644 --- a/recipes/ucsc-countchars/meta.yaml +++ b/recipes/ucsc-countchars/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-countchars" %} {% set program = "countChars" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Count the number of occurrences of a particular char" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-crtreeindexbed/build.sh b/recipes/ucsc-crtreeindexbed/build.sh index a5c31fd2e8f40..32c54dab05cde 100644 --- a/recipes/ucsc-crtreeindexbed/build.sh +++ b/recipes/ucsc-crtreeindexbed/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/utils/crTreeIndexBed && make) -cp bin/crTreeIndexBed "$PREFIX/bin" -chmod +x "$PREFIX/bin/crTreeIndexBed" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/crTreeIndexBed && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/crTreeIndexBed "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/crTreeIndexBed" diff --git a/recipes/ucsc-crtreeindexbed/include.patch b/recipes/ucsc-crtreeindexbed/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-crtreeindexbed/include.patch +++ b/recipes/ucsc-crtreeindexbed/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-crtreeindexbed/meta.yaml b/recipes/ucsc-crtreeindexbed/meta.yaml index b27fbf72f00c6..59945d6280836 100644 --- a/recipes/ucsc-crtreeindexbed/meta.yaml +++ b/recipes/ucsc-crtreeindexbed/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-crtreeindexbed" %} {% set program = "crTreeIndexBed" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Create an index for a bed file." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-crtreesearchbed/build.sh b/recipes/ucsc-crtreesearchbed/build.sh index a12dde560da6c..3ff4031d4a04a 100644 --- a/recipes/ucsc-crtreesearchbed/build.sh +++ b/recipes/ucsc-crtreesearchbed/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/utils/crTreeSearchBed && make) -cp bin/crTreeSearchBed "$PREFIX/bin" -chmod +x "$PREFIX/bin/crTreeSearchBed" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/crTreeSearchBed && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/crTreeSearchBed "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/crTreeSearchBed" diff --git a/recipes/ucsc-crtreesearchbed/include.patch b/recipes/ucsc-crtreesearchbed/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-crtreesearchbed/include.patch +++ b/recipes/ucsc-crtreesearchbed/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-crtreesearchbed/meta.yaml b/recipes/ucsc-crtreesearchbed/meta.yaml index 2066d7d3f5600..cf88771bb980d 100644 --- a/recipes/ucsc-crtreesearchbed/meta.yaml +++ b/recipes/ucsc-crtreesearchbed/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-crtreesearchbed" %} {% set program = "crTreeSearchBed" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Search a crTree indexed bed file and print all items that overlap query." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-dbsnoop/build.sh b/recipes/ucsc-dbsnoop/build.sh index 262a37a241c74..aa3011731bccf 100644 --- a/recipes/ucsc-dbsnoop/build.sh +++ b/recipes/ucsc-dbsnoop/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/makeDb/schema/dbSnoop && make) -cp bin/dbSnoop "$PREFIX/bin" -chmod +x "$PREFIX/bin/dbSnoop" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/makeDb/schema/dbSnoop && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/dbSnoop "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/dbSnoop" diff --git a/recipes/ucsc-dbsnoop/include.patch b/recipes/ucsc-dbsnoop/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-dbsnoop/include.patch +++ b/recipes/ucsc-dbsnoop/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-dbsnoop/meta.yaml b/recipes/ucsc-dbsnoop/meta.yaml index e72dffb9fd650..b20c4a5c34f80 100644 --- a/recipes/ucsc-dbsnoop/meta.yaml +++ b/recipes/ucsc-dbsnoop/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-dbsnoop" %} {% set program = "dbSnoop" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Produce an overview of a database." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-dbtrash/build.sh b/recipes/ucsc-dbtrash/build.sh index 486a57847c65e..9052d214175ac 100644 --- a/recipes/ucsc-dbtrash/build.sh +++ b/recipes/ucsc-dbtrash/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/dbTrash && make) -cp bin/dbTrash "$PREFIX/bin" -chmod +x "$PREFIX/bin/dbTrash" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/dbTrash && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/dbTrash "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/dbTrash" diff --git a/recipes/ucsc-dbtrash/include.patch b/recipes/ucsc-dbtrash/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-dbtrash/include.patch +++ b/recipes/ucsc-dbtrash/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-dbtrash/meta.yaml b/recipes/ucsc-dbtrash/meta.yaml index 66ad1fd75c48d..4270a211766bf 100644 --- a/recipes/ucsc-dbtrash/meta.yaml +++ b/recipes/ucsc-dbtrash/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-dbtrash" %} {% set program = "dbTrash" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "drop tables from a database older than specified N hours" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-endsinlf/build_failure.linux-64.yaml b/recipes/ucsc-endsinlf/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..c207bddc849c7 --- /dev/null +++ b/recipes/ucsc-endsinlf/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 9dd147853f61d5e67e767ed724974f0baf58c1fffa7e30799c31880431f172b7 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o tigrOperon.o -c tigrOperon.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o tilingPath.o -c tilingPath.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o traceInfo.o -c traceInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackDb.o -c trackDb.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackDbCustom.o -c trackDbCustom.c + trackDbCustom.c: In function 'trackDbInclude': + trackDbCustom.c:294:5: warning: 'splitPath' accessing 512 bytes in a region of size 256 [-Wstringop-overflow=] + 294 | splitPath(raFile, incFile, NULL, NULL); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + trackDbCustom.c:294:5: note: referencing argument 2 of type 'char[512]' + trackDbCustom.c:294:5: note: referencing argument 3 of type 'char[128]' + trackDbCustom.c:294:5: note: referencing argument 4 of type 'char[64]' + In file included from trackDbCustom.c:8: + ../../inc/common.h:1104:6: note: in a call to function 'splitPath' + 1104 | void splitPath(char *path, char dir[PATH_LEN], char name[FILENAME_LEN], + | ^~~~~~~~~ + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackHub.o -c trackHub.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackLayout.o -c trackLayout.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackTable.o -c trackTable.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackVersion.o -c trackVersion.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trashDir.o -c trashDir.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o transRegCode.o -c transRegCode.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o transRegCodeCondition.o -c transRegCodeCondition.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o transRegCodeProbe.o -c transRegCodeProbe.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txAliDiff.o -c txAliDiff.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txCluster.o -c txCluster.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txCommon.o -c txCommon.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txEdgeBed.o -c txEdgeBed.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txEdgeOrtho.o -c txEdgeOrtho.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txGraph.o -c txGraph.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txInfo.o -c txInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txRnaAccs.o -c txRnaAccs.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o ucscRetroInfo.o -c ucscRetroInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o ucscRetroOrtho.o -c ucscRetroOrtho.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o validateGisaid.o -c validateGisaid.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o variant.o -c variant.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o variantProjector.o -c variantProjector.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o vcfUi.o -c vcfUi.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o vegaInfo.o -c vegaInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o vegaInfoZfish.o -c vegaInfoZfish.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o visiGene.o -c visiGene.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o vntr.o -c vntr.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wabAli.o -c wabAli.c + sed -e 's/\\/\\\\/g; s/"/\\"/g; s/^/"/; s/$/\\n"/;' jWestHeader.html > jWestHeader.h + sed -e 's/\\/\\\\/g; s/"/\\"/g; s/^/"/; s/$/\\n"/;' jWestBanner.html > jWestBanner.h + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o web.o -c web.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o ncRna.o -c ncRna.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wgRna.o -c wgRna.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wigAsciiToBinary.o -c wigAsciiToBinary.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wigDataStream.o -c wigDataStream.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wiggle.o -c wiggle.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wiggleCart.o -c wiggleCart.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wiggleUtils.o -c wiggleUtils.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wikiLink.o -c wikiLink.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wikiTrack.o -c wikiTrack.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o yaleGencodeAssoc.o -c yaleGencodeAssoc.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o zdobnovSynt.o -c zdobnovSynt.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o oreganno.o -c oreganno.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o oregannoUi.o -c oregannoUi.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o gvUi.o -c gvUi.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o gv.o -c gv.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o omicia.o -c omicia.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o protVar.o -c protVar.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o pgSnp.o -c pgSnp.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o alignInfo.o -c alignInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o cddInfo.o -c cddInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o loweutils.o -c loweutils.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o cddDesc.o -c cddDesc.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o arCOGs.o -c arCOGs.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o arcogdesc.o -c arcogdesc.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o geneTree.o -c geneTree.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o megablastInfo.o -c megablastInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o pgPhenoAssoc.o -c pgPhenoAssoc.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o pgSiftPred.o -c pgSiftPred.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o pgPolyphenPred.o -c pgPolyphenPred.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o userRegions.o -c userRegions.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o variome.o -c variome.c + ar rcus ../../lib/x86_64/jkhgap.a acemblyClass.o adjacency.o affyAllExonProbe.o affyAtlas.o affy10KDetails.o affy120KDetails.o affyOffset.o affyPairs.o agp.o agpFrag.o agpGap.o alignSeqSizes.o altGraph.o altGraphX.o ancientRref.o annoFormatVep.o annoGratorGpVar.o annoGrateWigDb.o annoStreamDb.o annoStreamDbFactorSource.o annoStreamDbPslPlus.o annoStreamWig.o api.o atomDb.o autoUpgrade.o axtInfo.o axtLib.o bactigPos.o hgBam.o barChartBed.o barChartCategory.o barChartUi.o barChartData.o barChartSample.o baseMaskCommon.o bdgpExprLink.o bdgpGeneInfo.o bed.o bed5FloatScore.o bed5Pval.o bed6FloatScore.o bed8Attrs.o bed12Source.o bed12wSeq.o bedCart.o bgiGeneInfo.o bgiGeneSnp.o bgiSnp.o bigBedFind.o bigBedLabel.o bigGenePred.o bigPsl.o bigTransMap.o bioImage.o blastTab.o blastzNet.o blatServers.o borf.o borkPseudoHom.o botDelay.o cart.o cartDb.o cartJson.o cartTrackDb.o cdsEvidence.o cdsOrtho.o cdsPick.o cdsSpec.o ccdsInfo.o ccdsNotes.o ccdsGeneMap.o celeraCoverage.o celeraDupPositive.o cgapSage/cgapSage.o cgapSage/cgapSageLib.o cgh.o chainCart.o chainDb.o chainLink.o chainNet.o chainNetDbLoad.o chicken13kInfo.o chromBins.o chromAlias.o chr18deletions.o chromGraph.o chromGraphFactory.o chromInfo.o chromInserts.o chromKeeper.o clonePos.o codeBlast.o codeBlastScore.o cogs.o cogsxra.o columnInfo.o contigAcc.o coordConv.o cnpIafrate.o cnpIafrate2.o cnpLocke.o cnpRedon.o cnpSebat.o cnpSebat2.o cnpSharp2.o cnpSharpCutoff.o cnpSharpSample.o cnpSharp.o cpgIsland.o cpgIslandExt.o ctgPos.o ctgPos2.o customComposite.o bedDetail.o cgiApoptosis.o customAdjacency.o customFactory.o customPp.o customTrack.o cutter.o cv.o cytoBand.o dbDb.o dbRIP.o dbSnpRs.o defaultDb.o delConrad2.o delHinds2.o dgv.o dgvPlus.o dless.o dnaMotifSql.o dnaMarkovSql.o dnaProbe.o dv.o dvBed.o dvXref2.o easyGene.o ec.o ecCode.o ecAttribute.o ecAttributeCode.o encode/encodeErge.o encode/encodeErgeHssCellLines.o encode/encodeHapMapAlleleFreq.o encode/encodeIndels.o encode/encodePeak.o encode/encodeRegionInfo.o encode/encodeRegionInfoCustom.o encode/encodeRna.o encode/encodeStanfordPromoters.o encode/encodeStanfordPromotersAverage.o encode/pairedTagAlign.o encode/peptideMapping.o encode/tagAlign.o encode/wgEncodeGencodeAttrs.o encode/wgEncodeGencodeExonSupport.o encode/wgEncodeGencodeEntrezGene.o encode/wgEncodeGencodeTag.o encode/wgEncodeGencodeGeneSymbol.o encode/wgEncodeGencodePdb.o encode/wgEncodeGencodePubMed.o encode/wgEncodeGencodeRefSeq.o encode/wgEncodeGencodeGeneSource.o encode/wgEncodeGencodeTranscriptSource.o encode/wgEncodeGencodeTranscriptSupport.o encode/wgEncodeGencodeTranscriptionSupportLevel.o encode/wgEncodeGencodeUniProt.o encode/wgEncodeGencodePolyAFeature.o encode/wgEncodeGencodeAnnotationRemark.o encode/wgEncodeCell.o encode/encodeExp.o encode3/encode2Manifest.o encode3/encode3Valid.o ensFace.o ensInfo.o ensPhusionBlast.o ensXRefZfish.o est3.o estOrientInfo.o estPair.o exoFish.o expData.o expRecord.o exprBed.o facetField.o factorSource.o fbTables.o featureBits.o fileUi.o findKGAlias.o findKGProtAlias.o fishClones.o flyBase2004Xref.o flyBaseSwissProt.o flyreg.o flyreg2.o gbExtFile.o gbWarn.o gbMiscDiff.o gbProtAnn.o gcPercent.o gbSeq.o genbank.o genbankBlackList.o gencodeGeneClass.o gencodeIntron.o genMapDb.o geneBands.o geneCheck.o geneCheckDetails.o geneCheckWidget.o geneGraph.o genePred.o genePredReader.o geneSimilarities.o genoLay.o genomeRangeTreeFile.o genomicDups.o genomicSuperDups.o geoMirror.o ggCluster.o ggDbIo.o ggDump.o ggGraph.o ggMrnaAli.o ggTypes.o glDbRep.o goa.o goaPart.o googleAnalytics.o gpFx.o growthCondition.o grp.o gtexAse.o gtexBoxplot.o gtexEqtlCluster.o gtexInfo.o gtexDonor.o gtexGeneBed.o gtexSample.o gtexSampleData.o gtexTissue.o gtexTissueData.o gtexTissueMedian.o gtexUi.o gwasCatalog.o hAnno.o haplotypes.o hapmapAllelesOrtho.o hapmapAllelesSummary.o hapmapPhaseIIISummary.o hapmapSnps.o hapmapSnpsCombined.o hashJoin.o hCommon.o hCytoBand.o hdb.o hgColors.o hgConfig.o hgExp.o hgFind.o hgFindSpec.o hgFindSpecCustom.o hgHgvs.o hgHgvsParse.o hgGene.o hgMaf.o hgRelate.o hgSeq.o hgdpGeo.o hPrint.o hVarSubst.o hvGfx.o HInv.o hubConnect.o hubSearchText.o hui.o humanParalog.o imageClone.o indelShift.o interact.o interactUi.o isochores.o ispyTables.o itemAttr.o itemConf.o itemDetailsHtml.o jalview.o jaxOrtholog.o jaxQTL.o jaxQTL3.o jksql.o joiner.o jsHelper.o kg1ToKg2.o jgiGene.o joinMixer.o kgAlias.o kgColor.o kgProtAlias.o kgXref.o knownInfo.o knownMore.o knownToSuper.o lav.o ld.o ld2.o lfs.o liftOver.o liftOverChain.o liftUp.o llaInfo.o longRange.o lrg.o lsSnpPdb.o lsSnpPdbChimera.o mafFrames.o mafGene.o mafSummary.o makeItemsItem.o mammalPsg.o mapSts.o mathWig.o mcnBreakpoints.o mdb.o metaChromGraph.o microarray.o minChromSize.o minGeneInfo.o mrnaMisMatch.o mouseOrtho.o mouseSyn.o mouseSynWhd.o mysqlTableStatus.o ncbiRefLink.o ncbiRefSeqLink.o netAlign.o netCart.o nonCodingUi.o omimTitle.o ooUtils.o orthoAlleles.o pal.o pbStamp.o pcrResult.o pepPred.o peptideAtlasPeptide.o plasEndPairs.o polyGenotype.o protFeat.o pscreen.o pseudoGeneLink.o pslReader.o pslWScore.o putaInfo.o qaSeq.o rangeTreeFile.o rankProp.o recombRate.o recombRateRat.o recombRateMouse.o refLink.o refSeqStatus.o rgdQtl.o riken.o rhMapZfishInfo.o rikenBest.o rikenCluster.o rmskOut.o rmskAlign.o rmskJoined.o rmskOut2.o rnaFold.o rnaGene.o rnaGroup.o rnaHybridization.o rnaPLFold.o tRNAs.o gbRNAs.o snoRNAs.o lowelabPfamHit.o lowelabArkinOperonScore.o lowelabTIGROperonScore.o rnaSecStr.o tfbsConsFactors.o roughAli.o transMapStuff.o transMapInfo.o transMapGene.o transMapSrc.o sage.o sageCounts.o sageExp.o samAlignment.o sample.o sanger22extra.o sangerGene.o sangerGeneToWBGeneID.o sargassoSeaXra.o scopDes.o scoredRef.o search.o seqWindow.o sessionThumbnail.o sgdAbundance.o sgdClone.o sgdDescription.o sgdOther.o simpleNucDiff.o simpleRepeat.o snakeUi.o snp.o snp125.o snp125CodingCoordless.o snp132Ext.o snpExceptions.o snpFasta.o snpMap.o snpTmp.o snpUi.o snp125Exceptions.o snp125Ui.o softPromoter.o softberryHom.o soTerm.o spDb.o splignAlign.o sqlSanity.o stanMad.o stsAlias.o stsInfo.o stsInfo2.o stsInfoMouse.o stsInfoMouseNew.o stsInfoRat.o stsMap.o stsMapMouse.o stsMapMouseNew.o stsMapRat.o stsMarker.o suggest.o switchDbTss.o synMap.o synteny100000.o syntenyBerk.o syntenySanger.o sqlProg.o tfbsCons.o tfbsConsSites.o tablesTables.o tableDescriptions.o tableStatus.o targetDb.o tfbsConsMap.o tagRepo.o taxonDivision.o taxonGeneticCode.o taxonName.o taxonNode.o taxonXref.o tigrCmrGene.o tigrOperon.o tilingPath.o traceInfo.o trackDb.o trackDbCustom.o trackHub.o trackLayout.o trackTable.o trackVersion.o trashDir.o transRegCode.o transRegCodeCondition.o transRegCodeProbe.o txAliDiff.o txCluster.o txCommon.o txEdgeBed.o txEdgeOrtho.o txGraph.o txInfo.o txRnaAccs.o ucscRetroInfo.o ucscRetroOrtho.o validateGisaid.o variant.o variantProjector.o vcfUi.o vegaInfo.o vegaInfoZfish.o visiGene.o vntr.o wabAli.o web.o ncRna.o wgRna.o wigAsciiToBinary.o wigDataStream.o wiggle.o wiggleCart.o wiggleUtils.o wikiLink.o wikiTrack.o yaleGencodeAssoc.o zdobnovSynt.o oreganno.o oregannoUi.o gvUi.o gv.o omicia.o protVar.o pgSnp.o alignInfo.o cddInfo.o loweutils.o cddDesc.o arCOGs.o arcogdesc.o geneTree.o megablastInfo.o pgPhenoAssoc.o pgSiftPred.o pgPolyphenPred.o userRegions.o variome.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-endsinlf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -o endsInLf.o -c endsInLf.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -o $SRC_DIR/bin/endsInLf endsInLf.o ../../lib/x86_64/jkweb.a -L$PREFIX/lib -lmysqlclient -lstdc -lrt -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -lpthread -lssl -lcrypto ../../htslib/libhts.a -L$PREFIX/lib -lpng16 -lm -lz -lm + /opt/conda/conda-bld/ucsc-endsinlf_1724783725175/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../lib/x86_64/jkweb.a(htmshell.o):/usr/local/src/conda/ucsc-endsinlf-377/kent/src/lib/../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../lib/x86_64/jkweb.a(cheapcgi.o):/usr/local/src/conda/ucsc-endsinlf-377/kent/src/lib/../inc/htmshell.h:163: first defined here + /opt/conda/conda-bld/ucsc-endsinlf_1724783725175/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../lib/x86_64/jkweb.a(portimpl.o):/usr/local/src/conda/ucsc-endsinlf-377/kent/src/lib/../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../lib/x86_64/jkweb.a(cheapcgi.o):/usr/local/src/conda/ucsc-endsinlf-377/kent/src/lib/../inc/htmshell.h:163: first defined here + collect2: error: ld returned 1 exit status + make: *** [../../inc/userApp.mk:31: /opt/conda/conda-bld/ucsc-endsinlf_1724783725175/work/bin/endsInLf] Error 1 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/ucsc-endsinlf_1724783725175/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/ucsc-estorient/build.sh b/recipes/ucsc-estorient/build.sh index 5566c5e5ad866..d7641fd6d458b 100644 --- a/recipes/ucsc-estorient/build.sh +++ b/recipes/ucsc-estorient/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/estOrient && make) -cp bin/estOrient "$PREFIX/bin" -chmod +x "$PREFIX/bin/estOrient" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/estOrient && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/estOrient "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/estOrient" diff --git a/recipes/ucsc-estorient/include.patch b/recipes/ucsc-estorient/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-estorient/include.patch +++ b/recipes/ucsc-estorient/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-estorient/meta.yaml b/recipes/ucsc-estorient/meta.yaml index 9d1af8682029d..5c3d11569e838 100644 --- a/recipes/ucsc-estorient/meta.yaml +++ b/recipes/ucsc-estorient/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-estorient" %} {% set program = "estOrient" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,27 +27,35 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: " Read ESTs from a database and determine orientation based on estOrientInfo table or direction in gbCdnaInfo table. Update PSLs so that the strand reflects the direction of transcription. By default, PSLs where the direction can't be determined are dropped. " + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-expmatrixtobarchartbed/build.sh b/recipes/ucsc-expmatrixtobarchartbed/build.sh index 1a0f89d979c8a..4d969ac373b84 100644 --- a/recipes/ucsc-expmatrixtobarchartbed/build.sh +++ b/recipes/ucsc-expmatrixtobarchartbed/build.sh @@ -1,4 +1,7 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -cp kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed "$PREFIX/bin" -chmod +x "$PREFIX/bin/expMatrixToBarchartBed" +cp kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/expMatrixToBarchartBed" diff --git a/recipes/ucsc-expmatrixtobarchartbed/include.patch b/recipes/ucsc-expmatrixtobarchartbed/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-expmatrixtobarchartbed/include.patch +++ b/recipes/ucsc-expmatrixtobarchartbed/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-expmatrixtobarchartbed/meta.yaml b/recipes/ucsc-expmatrixtobarchartbed/meta.yaml index d553009fe4404..ad965a7733d42 100644 --- a/recipes/ucsc-expmatrixtobarchartbed/meta.yaml +++ b/recipes/ucsc-expmatrixtobarchartbed/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-expmatrixtobarchartbed" %} {% set program = "expMatrixToBarchartBed" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,16 +15,25 @@ source: build: skip: True # [osx] - number: 2 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: + - {{ compiler('c') }} host: + - libpng + - libuuid + - mysql-connector-c + - libopenssl-static + - zlib + run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - python - zlib @@ -40,3 +49,12 @@ about: Generate a barChart bed6+5 file from a matrix, meta data, and coordinates. " + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-faalign/build.sh b/recipes/ucsc-faalign/build.sh index a2075d4dccc91..ab0abc9c5a13a 100644 --- a/recipes/ucsc-faalign/build.sh +++ b/recipes/ucsc-faalign/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/faAlign && make) -cp bin/faAlign "$PREFIX/bin" -chmod +x "$PREFIX/bin/faAlign" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/faAlign && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/faAlign "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/faAlign" diff --git a/recipes/ucsc-faalign/include.patch b/recipes/ucsc-faalign/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-faalign/include.patch +++ b/recipes/ucsc-faalign/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-faalign/meta.yaml b/recipes/ucsc-faalign/meta.yaml index bce04cc6ed964..e5bb10fb1e460 100644 --- a/recipes/ucsc-faalign/meta.yaml +++ b/recipes/ucsc-faalign/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-faalign" %} {% set program = "faAlign" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Align two fasta files" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-facmp/build.sh b/recipes/ucsc-facmp/build.sh index 63045c9a3e2b8..a5d4d479e44b0 100644 --- a/recipes/ucsc-facmp/build.sh +++ b/recipes/ucsc-facmp/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/faCmp && make) -cp bin/faCmp "$PREFIX/bin" -chmod +x "$PREFIX/bin/faCmp" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/faCmp && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/faCmp "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/faCmp" diff --git a/recipes/ucsc-facmp/include.patch b/recipes/ucsc-facmp/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-facmp/include.patch +++ b/recipes/ucsc-facmp/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-facmp/meta.yaml b/recipes/ucsc-facmp/meta.yaml index c418a4cb1aea9..7a45c7f7ff32d 100644 --- a/recipes/ucsc-facmp/meta.yaml +++ b/recipes/ucsc-facmp/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-facmp" %} {% set program = "faCmp" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Compare two .fa files" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-facount/build.sh b/recipes/ucsc-facount/build.sh index 728b733768684..3c2c36f703f08 100644 --- a/recipes/ucsc-facount/build.sh +++ b/recipes/ucsc-facount/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/faCount && make) -cp bin/faCount "$PREFIX/bin" -chmod +x "$PREFIX/bin/faCount" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/faCount && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/faCount "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/faCount" diff --git a/recipes/ucsc-facount/include.patch b/recipes/ucsc-facount/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-facount/include.patch +++ b/recipes/ucsc-facount/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-facount/meta.yaml b/recipes/ucsc-facount/meta.yaml index cdadf370f0701..e09912d257d02 100644 --- a/recipes/ucsc-facount/meta.yaml +++ b/recipes/ucsc-facount/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-facount" %} {% set program = "faCount" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "count base statistics and CpGs in FA files." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-fafilter/build.sh b/recipes/ucsc-fafilter/build.sh index 35517aac7e251..967758179cadb 100644 --- a/recipes/ucsc-fafilter/build.sh +++ b/recipes/ucsc-fafilter/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/faFilter && make) -cp bin/faFilter "$PREFIX/bin" -chmod +x "$PREFIX/bin/faFilter" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/faFilter && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/faFilter "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/faFilter" diff --git a/recipes/ucsc-fafilter/include.patch b/recipes/ucsc-fafilter/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-fafilter/include.patch +++ b/recipes/ucsc-fafilter/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-fafilter/meta.yaml b/recipes/ucsc-fafilter/meta.yaml index de8020cd7496a..ee67056366443 100644 --- a/recipes/ucsc-fafilter/meta.yaml +++ b/recipes/ucsc-fafilter/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-fafilter" %} {% set program = "faFilter" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Filter fa records, selecting ones that match the specified conditions" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-fafiltern/build.sh b/recipes/ucsc-fafiltern/build.sh index 772564ca3074e..e7a910bc26cad 100644 --- a/recipes/ucsc-fafiltern/build.sh +++ b/recipes/ucsc-fafiltern/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/faFilterN && make) -cp bin/faFilterN "$PREFIX/bin" -chmod +x "$PREFIX/bin/faFilterN" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/faFilterN && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/faFilterN "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/faFilterN" diff --git a/recipes/ucsc-fafiltern/include.patch b/recipes/ucsc-fafiltern/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-fafiltern/include.patch +++ b/recipes/ucsc-fafiltern/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-fafiltern/meta.yaml b/recipes/ucsc-fafiltern/meta.yaml index d6d0f1112e23a..64f3693d3df25 100644 --- a/recipes/ucsc-fafiltern/meta.yaml +++ b/recipes/ucsc-fafiltern/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-fafiltern" %} {% set program = "faFilterN" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Get rid of sequences with too many N's" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-fafrag/build.sh b/recipes/ucsc-fafrag/build.sh index cc8217d202654..bbde61befd833 100644 --- a/recipes/ucsc-fafrag/build.sh +++ b/recipes/ucsc-fafrag/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/faFrag && make) -cp bin/faFrag "$PREFIX/bin" -chmod +x "$PREFIX/bin/faFrag" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/faFrag && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/faFrag "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/faFrag" diff --git a/recipes/ucsc-fafrag/include.patch b/recipes/ucsc-fafrag/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-fafrag/include.patch +++ b/recipes/ucsc-fafrag/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-fafrag/meta.yaml b/recipes/ucsc-fafrag/meta.yaml index 74dbeee693c2e..63fbd2a2bc5cf 100644 --- a/recipes/ucsc-fafrag/meta.yaml +++ b/recipes/ucsc-fafrag/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-fafrag" %} {% set program = "faFrag" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Extract a piece of DNA from a .fa file." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-fanoise/build.sh b/recipes/ucsc-fanoise/build.sh index 2c1848ec9a9dc..4b96dc8e7a9ad 100644 --- a/recipes/ucsc-fanoise/build.sh +++ b/recipes/ucsc-fanoise/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/faNoise && make) -cp bin/faNoise "$PREFIX/bin" -chmod +x "$PREFIX/bin/faNoise" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/faNoise && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/faNoise "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/faNoise" diff --git a/recipes/ucsc-fanoise/include.patch b/recipes/ucsc-fanoise/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-fanoise/include.patch +++ b/recipes/ucsc-fanoise/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-fanoise/meta.yaml b/recipes/ucsc-fanoise/meta.yaml index a89d4b85524be..6ba0418b05532 100644 --- a/recipes/ucsc-fanoise/meta.yaml +++ b/recipes/ucsc-fanoise/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-fanoise" %} {% set program = "faNoise" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Add noise to .fa file" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-faonerecord/build.sh b/recipes/ucsc-faonerecord/build.sh index d2a4c53e9f283..af644537f494a 100644 --- a/recipes/ucsc-faonerecord/build.sh +++ b/recipes/ucsc-faonerecord/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/faOneRecord && make) -cp bin/faOneRecord "$PREFIX/bin" -chmod +x "$PREFIX/bin/faOneRecord" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/faOneRecord && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/faOneRecord "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/faOneRecord" diff --git a/recipes/ucsc-faonerecord/include.patch b/recipes/ucsc-faonerecord/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-faonerecord/include.patch +++ b/recipes/ucsc-faonerecord/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-faonerecord/meta.yaml b/recipes/ucsc-faonerecord/meta.yaml index 761f7d83bdc1a..d52e42e40b317 100644 --- a/recipes/ucsc-faonerecord/meta.yaml +++ b/recipes/ucsc-faonerecord/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-faonerecord" %} {% set program = "faOneRecord" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Extract a single record from a .FA file" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-fapolyasizes/build.sh b/recipes/ucsc-fapolyasizes/build.sh index 2a7659a5c4a58..383f0fdc8416b 100644 --- a/recipes/ucsc-fapolyasizes/build.sh +++ b/recipes/ucsc-fapolyasizes/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/faPolyASizes && make) -cp bin/faPolyASizes "$PREFIX/bin" -chmod +x "$PREFIX/bin/faPolyASizes" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/faPolyASizes && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/faPolyASizes "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/faPolyASizes" diff --git a/recipes/ucsc-fapolyasizes/include.patch b/recipes/ucsc-fapolyasizes/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-fapolyasizes/include.patch +++ b/recipes/ucsc-fapolyasizes/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-fapolyasizes/meta.yaml b/recipes/ucsc-fapolyasizes/meta.yaml index 55df8ed83732c..6dac4793b6b2e 100644 --- a/recipes/ucsc-fapolyasizes/meta.yaml +++ b/recipes/ucsc-fapolyasizes/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-fapolyasizes" %} {% set program = "faPolyASizes" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "get poly A sizes" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-farandomize/build.sh b/recipes/ucsc-farandomize/build.sh index 10bcbaa61dec2..992f3baa9537f 100644 --- a/recipes/ucsc-farandomize/build.sh +++ b/recipes/ucsc-farandomize/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/faRandomize && make) -cp bin/faRandomize "$PREFIX/bin" -chmod +x "$PREFIX/bin/faRandomize" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/faRandomize && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/faRandomize "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/faRandomize" diff --git a/recipes/ucsc-farandomize/include.patch b/recipes/ucsc-farandomize/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-farandomize/include.patch +++ b/recipes/ucsc-farandomize/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-farandomize/meta.yaml b/recipes/ucsc-farandomize/meta.yaml index 400b9d8b2578e..7a357380b6102 100644 --- a/recipes/ucsc-farandomize/meta.yaml +++ b/recipes/ucsc-farandomize/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-farandomize" %} {% set program = "faRandomize" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Program to create random fasta records" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-farc/build.sh b/recipes/ucsc-farc/build.sh index d68de0a45c997..5efc3188c34d8 100644 --- a/recipes/ucsc-farc/build.sh +++ b/recipes/ucsc-farc/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/faRc && make) -cp bin/faRc "$PREFIX/bin" -chmod +x "$PREFIX/bin/faRc" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/faRc && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/faRc "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/faRc" diff --git a/recipes/ucsc-farc/include.patch b/recipes/ucsc-farc/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-farc/include.patch +++ b/recipes/ucsc-farc/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-farc/meta.yaml b/recipes/ucsc-farc/meta.yaml index 544410aef81d7..59ad4f779fb2c 100644 --- a/recipes/ucsc-farc/meta.yaml +++ b/recipes/ucsc-farc/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-farc" %} {% set program = "faRc" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Reverse complement a FA file" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-fasize/build.sh b/recipes/ucsc-fasize/build.sh index 08610aaa04451..42e777e285924 100644 --- a/recipes/ucsc-fasize/build.sh +++ b/recipes/ucsc-fasize/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/faSize && make) -cp bin/faSize "$PREFIX/bin" -chmod +x "$PREFIX/bin/faSize" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/faSize && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/faSize "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/faSize" diff --git a/recipes/ucsc-fasize/include.patch b/recipes/ucsc-fasize/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-fasize/include.patch +++ b/recipes/ucsc-fasize/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-fasize/meta.yaml b/recipes/ucsc-fasize/meta.yaml index 295546709d3a1..e5ca815518a66 100644 --- a/recipes/ucsc-fasize/meta.yaml +++ b/recipes/ucsc-fasize/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-fasize" %} {% set program = "faSize" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "print total base count in fa files." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-fasomerecords/build.sh b/recipes/ucsc-fasomerecords/build.sh index b61bf19685404..94dda243aec45 100644 --- a/recipes/ucsc-fasomerecords/build.sh +++ b/recipes/ucsc-fasomerecords/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/faSomeRecords && make) -cp bin/faSomeRecords "$PREFIX/bin" -chmod +x "$PREFIX/bin/faSomeRecords" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/faSomeRecords && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/faSomeRecords "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/faSomeRecords" diff --git a/recipes/ucsc-fasomerecords/include.patch b/recipes/ucsc-fasomerecords/include.patch index e4831ef2dea13..edc04d0dc2f64 100644 --- a/recipes/ucsc-fasomerecords/include.patch +++ b/recipes/ucsc-fasomerecords/include.patch @@ -1,22 +1,22 @@ --- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 ++++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -+++ kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -@@ -147,4 +147,4 @@ -- L+=${PREFIX}/lib/libssl.a ${PREFIX}/lib/libcrypto.a -ldl -+ L+=${PREFIX}/lib/libssl.so ${PREFIX}/lib/libcrypto.so -ldl - else - ifneq ($(wildcard /opt/local/lib/libssl.a),) - L+=/opt/local/lib/libssl.a +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python2.7 ++#!/usr/bin/env python + + import logging, sys, optparse, string + from collections import defaultdict --- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ @@ -25,16 +25,3 @@ # expMatrixToBarchartBed """ Generate a barChart bed6+5 file from a matrix, meta data, and coordinates. ---- kent/src/hg/lib/straw/makefile -+++ kent/src/hg/lib/straw/makefile -@@ -3,8 +3,8 @@ - straw: straw.o cStraw.o - ld -r -o ../straw.o straw.o cStraw.o - straw.o: straw.cpp straw.h -- ${CXX} straw.cpp ${KENT_INC} -g -c -lz -std=c++11 -lcurl -o straw.o -+ ${CXX} straw.cpp ${KENT_INC} -g -c -lz -std=c++11 -lcurl -o straw.o -I ${PREFIX}/include - cStraw.o: cStraw.cpp straw.h -- ${CXX} cStraw.cpp ${KENT_INC} -g -c -lz -std=c++11 -lcurl -o cStraw.o -+ ${CXX} cStraw.cpp ${KENT_INC} -g -c -lz -std=c++11 -lcurl -o cStraw.o -I ${PREFIX}/include - clean: - rm -f straw.o cStraw.o ../straw.o diff --git a/recipes/ucsc-fasomerecords/meta.yaml b/recipes/ucsc-fasomerecords/meta.yaml index 507bf2b0b7cd6..86fe4dda5cbc4 100644 --- a/recipes/ucsc-fasomerecords/meta.yaml +++ b/recipes/ucsc-fasomerecords/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-fasomerecords" %} {% set program = "faSomeRecords" %} -{% set version = "455" %} -{% set sha256 = "e458cadad7c4a5c1b8385edafffa1b29380ac725a0c20535bf5a3bab99fe80db" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -23,27 +23,35 @@ requirements: build: - make - {{ compiler('c') }} - - binutils >=2.32 # https://wiki.gentoo.org/wiki/Project:Toolchain/Binutils_2.32_upgrade_notes/elfutils_0.175:_unable_to_initialize_decompress_status_for_section_.debug_info - - {{ compiler('cxx') }} host: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib + run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Extract multiple fa records" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-fasplit/build.sh b/recipes/ucsc-fasplit/build.sh index bf837fd78a605..ed7f37ba92c85 100644 --- a/recipes/ucsc-fasplit/build.sh +++ b/recipes/ucsc-fasplit/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/faSplit && make) -cp bin/faSplit "$PREFIX/bin" -chmod +x "$PREFIX/bin/faSplit" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/faSplit && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/faSplit "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/faSplit" diff --git a/recipes/ucsc-fasplit/include.patch b/recipes/ucsc-fasplit/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-fasplit/include.patch +++ b/recipes/ucsc-fasplit/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-fasplit/meta.yaml b/recipes/ucsc-fasplit/meta.yaml index 1758efe8fe7d9..9b811fc0a565c 100644 --- a/recipes/ucsc-fasplit/meta.yaml +++ b/recipes/ucsc-fasplit/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-fasplit" %} {% set program = "faSplit" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Split an fa file into several files." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-fastqstatsandsubsample/build.sh b/recipes/ucsc-fastqstatsandsubsample/build.sh index a06ee6dcb3901..56efb5ed3f796 100644 --- a/recipes/ucsc-fastqstatsandsubsample/build.sh +++ b/recipes/ucsc-fastqstatsandsubsample/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/fastqStatsAndSubsample && make) -cp bin/fastqStatsAndSubsample "$PREFIX/bin" -chmod +x "$PREFIX/bin/fastqStatsAndSubsample" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/fastqStatsAndSubsample && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/fastqStatsAndSubsample "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/fastqStatsAndSubsample" diff --git a/recipes/ucsc-fastqstatsandsubsample/include.patch b/recipes/ucsc-fastqstatsandsubsample/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-fastqstatsandsubsample/include.patch +++ b/recipes/ucsc-fastqstatsandsubsample/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-fastqstatsandsubsample/meta.yaml b/recipes/ucsc-fastqstatsandsubsample/meta.yaml index fa874a86c6770..ccdb6bfc69d23 100644 --- a/recipes/ucsc-fastqstatsandsubsample/meta.yaml +++ b/recipes/ucsc-fastqstatsandsubsample/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-fastqstatsandsubsample" %} {% set program = "fastqStatsAndSubsample" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Go through a fastq file doing sanity checks and collecting stats" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-fastqtofa/build.sh b/recipes/ucsc-fastqtofa/build.sh index a0eb7afc81495..0d73cb307256b 100644 --- a/recipes/ucsc-fastqtofa/build.sh +++ b/recipes/ucsc-fastqtofa/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/fastqToFa && make) -cp bin/fastqToFa "$PREFIX/bin" -chmod +x "$PREFIX/bin/fastqToFa" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/fastqToFa && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/fastqToFa "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/fastqToFa" diff --git a/recipes/ucsc-fastqtofa/include.patch b/recipes/ucsc-fastqtofa/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-fastqtofa/include.patch +++ b/recipes/ucsc-fastqtofa/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-fastqtofa/meta.yaml b/recipes/ucsc-fastqtofa/meta.yaml index d2bcf5a600ff4..5bc623ded2330 100644 --- a/recipes/ucsc-fastqtofa/meta.yaml +++ b/recipes/ucsc-fastqtofa/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-fastqtofa" %} {% set program = "fastqToFa" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert from fastq to fasta format." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-fatofastq/build.sh b/recipes/ucsc-fatofastq/build.sh index 69dd94f808370..821b6b535ce86 100644 --- a/recipes/ucsc-fatofastq/build.sh +++ b/recipes/ucsc-fatofastq/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/faToFastq && make) -cp bin/faToFastq "$PREFIX/bin" -chmod +x "$PREFIX/bin/faToFastq" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/faToFastq && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/faToFastq "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/faToFastq" diff --git a/recipes/ucsc-fatofastq/include.patch b/recipes/ucsc-fatofastq/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-fatofastq/include.patch +++ b/recipes/ucsc-fatofastq/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-fatofastq/meta.yaml b/recipes/ucsc-fatofastq/meta.yaml index 31b3b7709b9d3..e2ecba2ff9675 100644 --- a/recipes/ucsc-fatofastq/meta.yaml +++ b/recipes/ucsc-fatofastq/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-fatofastq" %} {% set program = "faToFastq" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert fa to fastq format, just faking quality values." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-fatotab/build.sh b/recipes/ucsc-fatotab/build.sh index 6bdeebad8ed7b..1939aa14b9372 100644 --- a/recipes/ucsc-fatotab/build.sh +++ b/recipes/ucsc-fatotab/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/faToTab && make) -cp bin/faToTab "$PREFIX/bin" -chmod +x "$PREFIX/bin/faToTab" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/faToTab && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/faToTab "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/faToTab" diff --git a/recipes/ucsc-fatotab/include.patch b/recipes/ucsc-fatotab/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-fatotab/include.patch +++ b/recipes/ucsc-fatotab/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-fatotab/meta.yaml b/recipes/ucsc-fatotab/meta.yaml index a5106bdd93cd2..c7901931785a1 100644 --- a/recipes/ucsc-fatotab/meta.yaml +++ b/recipes/ucsc-fatotab/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-fatotab" %} {% set program = "faToTab" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "convert fa file to tab separated file" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-fatotwobit/build.sh b/recipes/ucsc-fatotwobit/build.sh index 017f496c75e0d..47d1b7225bb5c 100644 --- a/recipes/ucsc-fatotwobit/build.sh +++ b/recipes/ucsc-fatotwobit/build.sh @@ -1,26 +1,28 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" +set -xe +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) -export BINDIR="$(pwd)/bin" +export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" if [[ "$(uname)" == Darwin ]]; then export LDFLAGS="${LDFLAGS} -Wl,-rpath,${PREFIX}/lib" export CFLAGS="${CFLAGS} -Wno-unused-command-line-argument" fi -(cd kent/src/lib && make CC="${CC}" CFLAGS="${CFLAGS}" -j ${CPU_COUNT}) -(cd kent/src/htslib && make CC="${CC}" CFLAGS="${CFLAGS}" -j ${CPU_COUNT}) -(cd kent/src/jkOwnLib && make CC="${CC}" CFLAGS="${CFLAGS}" -j ${CPU_COUNT}) -(cd kent/src/hg/lib && make CC="${CC}" CFLAGS="${CFLAGS}" -j ${CPU_COUNT}) -(cd kent/src/utils/faToTwoBit && make CC="${CC}" CFLAGS="${CFLAGS}" -j ${CPU_COUNT}) -cp -rf bin/faToTwoBit "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/faToTwoBit" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/faToTwoBit && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/faToTwoBit "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/faToTwoBit" diff --git a/recipes/ucsc-fatotwobit/include.patch b/recipes/ucsc-fatotwobit/include.patch index 2c1e8a7f20226..35fd16a3d9090 100644 --- a/recipes/ucsc-fatotwobit/include.patch +++ b/recipes/ucsc-fatotwobit/include.patch @@ -5,7 +5,7 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) diff --git a/recipes/ucsc-fatotwobit/meta.yaml b/recipes/ucsc-fatotwobit/meta.yaml index 492d7f4a37cdd..0a74ff24cf3fc 100644 --- a/recipes/ucsc-fatotwobit/meta.yaml +++ b/recipes/ucsc-fatotwobit/meta.yaml @@ -15,9 +15,9 @@ source: - include.macos.patch # [osx] build: - number: 1 + number: 2 run_exports: - - {{ pin_subpackage("ucsc-fatotwobit", max_pin=None) }} + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -37,6 +37,7 @@ requirements: - libuuid - mysql-connector-c - libopenssl-static + - zlib test: commands: @@ -44,12 +45,15 @@ test: - test -x ${PREFIX}/bin/{{ program }} about: - home: "https://hgdownload.cse.ucsc.edu/admin/exe" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" license: "Varies; see http://genome.ucsc.edu/license" - summary: "Convert DNA from fasta to 2bit format." + summary: "Convert DNA from fasta to 2bit format" dev_url: "https://github.com/ucscGenomeBrowser/kent" - doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/v{{ version }}_base/README" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - linux-aarch64 diff --git a/recipes/ucsc-fatrans/build.sh b/recipes/ucsc-fatrans/build.sh index a781ab3d9c5fb..2e4768dfe353f 100644 --- a/recipes/ucsc-fatrans/build.sh +++ b/recipes/ucsc-fatrans/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/faTrans && make) -cp bin/faTrans "$PREFIX/bin" -chmod +x "$PREFIX/bin/faTrans" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/faTrans && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/faTrans "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/faTrans" diff --git a/recipes/ucsc-fatrans/include.patch b/recipes/ucsc-fatrans/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-fatrans/include.patch +++ b/recipes/ucsc-fatrans/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-fatrans/meta.yaml b/recipes/ucsc-fatrans/meta.yaml index 39e117aec53d2..51811a6159fa7 100644 --- a/recipes/ucsc-fatrans/meta.yaml +++ b/recipes/ucsc-fatrans/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-fatrans" %} {% set program = "faTrans" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Translate DNA .fa file to peptide" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-featurebits/build.sh b/recipes/ucsc-featurebits/build.sh index 0aab0a6b5bf92..917a51e28eb88 100644 --- a/recipes/ucsc-featurebits/build.sh +++ b/recipes/ucsc-featurebits/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/featureBits && make) -cp bin/featureBits "$PREFIX/bin" -chmod +x "$PREFIX/bin/featureBits" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/featureBits && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/featureBits "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/featureBits" diff --git a/recipes/ucsc-featurebits/include.patch b/recipes/ucsc-featurebits/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-featurebits/include.patch +++ b/recipes/ucsc-featurebits/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-featurebits/meta.yaml b/recipes/ucsc-featurebits/meta.yaml index 24e41aeb3841b..8dd37713562a8 100644 --- a/recipes/ucsc-featurebits/meta.yaml +++ b/recipes/ucsc-featurebits/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-featurebits" %} {% set program = "featureBits" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Correlate tables via bitmap projections. " + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-fetchchromsizes/build.sh b/recipes/ucsc-fetchchromsizes/build.sh index 60cb967c7e192..f37dd6327039f 100644 --- a/recipes/ucsc-fetchchromsizes/build.sh +++ b/recipes/ucsc-fetchchromsizes/build.sh @@ -1,6 +1,6 @@ #!/bin/bash -mkdir -p $PREFIX/bin +set -xe -cp -f kent/src/utils/userApps/fetchChromSizes $PREFIX/bin -chmod 0755 $PREFIX/bin/fetchChromSizes +cp kent/src/utils/userApps/fetchChromSizes ${PREFIX}/bin +chmod 0755 ${PREFIX}/bin/fetchChromSizes diff --git a/recipes/ucsc-fetchchromsizes/include.patch b/recipes/ucsc-fetchchromsizes/include.patch index 1646de15a38f7..edc04d0dc2f64 100644 --- a/recipes/ucsc-fetchchromsizes/include.patch +++ b/recipes/ucsc-fetchchromsizes/include.patch @@ -1,5 +1,5 @@ ---- a/kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ b/kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 +--- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 ++++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif @@ -9,16 +9,16 @@ # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- a/kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 -+++ b/kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python import logging, sys, optparse, string from collections import defaultdict ---- a/kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 -+++ b/kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-fetchchromsizes/meta.yaml b/recipes/ucsc-fetchchromsizes/meta.yaml index e93d20580f61f..cfe061d194d38 100644 --- a/recipes/ucsc-fetchchromsizes/meta.yaml +++ b/recipes/ucsc-fetchchromsizes/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-fetchchromsizes" %} {% set program = "fetchChromSizes" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -14,26 +14,28 @@ source: - "include.patch" build: + skip: True # [osx] number: 0 run_exports: - - {{ pin_subpackage('ucsc-fetchchromsizes', max_pin=None) }} + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: - make - {{ compiler('c') }} - - {{ compiler('cxx') }} host: - libpng - libuuid - mysql-connector-c - libopenssl-static - zlib + run: - libpng - libuuid - mysql-connector-c - libopenssl-static + - zlib test: commands: @@ -42,7 +44,7 @@ test: about: home: "https://hgdownload.cse.ucsc.edu/admin/exe/" - license: "Varies; see https://genome.ucsc.edu/license" + license: "Varies; see http://genome.ucsc.edu/license" summary: " used to fetch chrom.sizes information from UCSC for the given " @@ -50,5 +52,8 @@ used to fetch chrom.sizes information from UCSC for the given doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - linux-aarch64 diff --git a/recipes/ucsc-findmotif/build.sh b/recipes/ucsc-findmotif/build.sh index c83f19994c25b..e0a729b566822 100644 --- a/recipes/ucsc-findmotif/build.sh +++ b/recipes/ucsc-findmotif/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/findMotif && make) -cp bin/findMotif "$PREFIX/bin" -chmod +x "$PREFIX/bin/findMotif" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/findMotif && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/findMotif "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/findMotif" diff --git a/recipes/ucsc-findmotif/include.patch b/recipes/ucsc-findmotif/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-findmotif/include.patch +++ b/recipes/ucsc-findmotif/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-findmotif/meta.yaml b/recipes/ucsc-findmotif/meta.yaml index 3ad718a71fc72..7a216c91b07df 100644 --- a/recipes/ucsc-findmotif/meta.yaml +++ b/recipes/ucsc-findmotif/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-findmotif" %} {% set program = "findMotif" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "find specified motif in sequence" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-gaptolift/build.sh b/recipes/ucsc-gaptolift/build.sh index ed5e7af6dd119..3e35b9508f85a 100644 --- a/recipes/ucsc-gaptolift/build.sh +++ b/recipes/ucsc-gaptolift/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/utils/gapToLift && make) -cp bin/gapToLift "$PREFIX/bin" -chmod +x "$PREFIX/bin/gapToLift" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/gapToLift && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/gapToLift "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/gapToLift" diff --git a/recipes/ucsc-gaptolift/include.patch b/recipes/ucsc-gaptolift/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-gaptolift/include.patch +++ b/recipes/ucsc-gaptolift/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-gaptolift/meta.yaml b/recipes/ucsc-gaptolift/meta.yaml index b30683d4565e8..d966465836968 100644 --- a/recipes/ucsc-gaptolift/meta.yaml +++ b/recipes/ucsc-gaptolift/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-gaptolift" %} {% set program = "gapToLift" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "create lift file from gap table(s)" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-genepredcheck/build.sh b/recipes/ucsc-genepredcheck/build.sh index b6524788d6ce9..2e78923fd14a7 100644 --- a/recipes/ucsc-genepredcheck/build.sh +++ b/recipes/ucsc-genepredcheck/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" + +set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make -j ${CPU_COUNT}) -(cd kent/src/htslib && make -j ${CPU_COUNT}) -(cd kent/src/jkOwnLib && make -j ${CPU_COUNT}) -(cd kent/src/hg/lib && make -j ${CPU_COUNT}) -(cd kent/src/hg/genePredCheck && make -j ${CPU_COUNT}) -cp bin/genePredCheck "$PREFIX/bin" -chmod +x "$PREFIX/bin/genePredCheck" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/genePredCheck && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/genePredCheck "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/genePredCheck" diff --git a/recipes/ucsc-genepredcheck/include.patch b/recipes/ucsc-genepredcheck/include.patch index e9c8621194325..edc04d0dc2f64 100644 --- a/recipes/ucsc-genepredcheck/include.patch +++ b/recipes/ucsc-genepredcheck/include.patch @@ -1,30 +1,22 @@ --- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 ++++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -+++ kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -@@ -147,4 +147,4 @@ -- L+=${PREFIX}/lib/libssl.a ${PREFIX}/lib/libcrypto.a -ldl -+ L+=${PREFIX}/lib/libssl.so ${PREFIX}/lib/libcrypto.so -ldl - else - ifneq ($(wildcard /opt/local/lib/libssl.a),) - L+=/opt/local/lib/libssl.a ---- kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 -+++ kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ --KENT_INC=-I../../../inc -+KENT_INC=-I../../../inc -I${PREFIX}/include - - straw: straw.o cStraw.o - ld -r -o ../straw.o straw.o cStraw.o +-#!/usr/bin/env python2.7 ++#!/usr/bin/env python + + import logging, sys, optparse, string + from collections import defaultdict --- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ diff --git a/recipes/ucsc-genepredcheck/meta.yaml b/recipes/ucsc-genepredcheck/meta.yaml index 3431a4e7693ad..db9f5b2a78bcd 100644 --- a/recipes/ucsc-genepredcheck/meta.yaml +++ b/recipes/ucsc-genepredcheck/meta.yaml @@ -1,57 +1,56 @@ {% set package = "ucsc-genepredcheck" %} {% set program = "genePredCheck" %} -{% set version = "447" %} -{% set sha256 = "747a48486f7481d891e297baf63623b15d699265ede7339f654bcbc42481ac81" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: - name: {{ package }} - version: {{ version }} + name: "{{ package }}" + version: "{{ version }}" source: url: "http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{{ version }}.src.tgz" - sha256: {{ sha256 }} + sha256: "{{ sha256 }}" patches: - - include.patch - - htmshell.patch + - "include.patch" build: - number: 2 - skip: True # [osx] + skip: True # [osx] + number: 0 run_exports: - {{ pin_subpackage(package, max_pin=None) }} - ignore_run_exports: - - libpng - - libuuid requirements: build: - make - {{ compiler('c') }} - - {{ compiler('cxx') }} - - binutils # [linux] host: - libpng - libuuid - mysql-connector-c - - openssl - libopenssl-static - zlib + run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static + - zlib test: commands: # just check for existence and exec bit, because the individual packages have no unified behavior - - test -x $PREFIX/bin/{{ program }} + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" - summary: "Validate genePred files or tables" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" + summary: "validate genePred files or tables" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: - additional-platforms: - - linux-aarch64 \ No newline at end of file + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-genepredfilter/build.sh b/recipes/ucsc-genepredfilter/build.sh index 740a38a92b847..43aedb3dafe58 100644 --- a/recipes/ucsc-genepredfilter/build.sh +++ b/recipes/ucsc-genepredfilter/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/utils/genePredFilter && make) -cp bin/genePredFilter "$PREFIX/bin" -chmod +x "$PREFIX/bin/genePredFilter" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/genePredFilter && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/genePredFilter "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/genePredFilter" diff --git a/recipes/ucsc-genepredfilter/include.patch b/recipes/ucsc-genepredfilter/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-genepredfilter/include.patch +++ b/recipes/ucsc-genepredfilter/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-genepredfilter/meta.yaml b/recipes/ucsc-genepredfilter/meta.yaml index bbdbe7224a9b2..555cc71621d1a 100644 --- a/recipes/ucsc-genepredfilter/meta.yaml +++ b/recipes/ucsc-genepredfilter/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-genepredfilter" %} {% set program = "genePredFilter" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "filter a genePred file" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-genepredhisto/build.sh b/recipes/ucsc-genepredhisto/build.sh index eae0a8415e1ce..7cbdc5550a941 100644 --- a/recipes/ucsc-genepredhisto/build.sh +++ b/recipes/ucsc-genepredhisto/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/genePredHisto && make) -cp bin/genePredHisto "$PREFIX/bin" -chmod +x "$PREFIX/bin/genePredHisto" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/genePredHisto && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/genePredHisto "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/genePredHisto" diff --git a/recipes/ucsc-genepredhisto/include.patch b/recipes/ucsc-genepredhisto/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-genepredhisto/include.patch +++ b/recipes/ucsc-genepredhisto/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-genepredhisto/meta.yaml b/recipes/ucsc-genepredhisto/meta.yaml index 2c5afb13865f9..26ea81c76bb67 100644 --- a/recipes/ucsc-genepredhisto/meta.yaml +++ b/recipes/ucsc-genepredhisto/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-genepredhisto" %} {% set program = "genePredHisto" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "get data for generating histograms from a genePred file." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-genepredsinglecover/build.sh b/recipes/ucsc-genepredsinglecover/build.sh index cc6aa8cdea7b8..69a1610ac29a2 100644 --- a/recipes/ucsc-genepredsinglecover/build.sh +++ b/recipes/ucsc-genepredsinglecover/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/genePredSingleCover && make) -cp bin/genePredSingleCover "$PREFIX/bin" -chmod +x "$PREFIX/bin/genePredSingleCover" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/genePredSingleCover && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/genePredSingleCover "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/genePredSingleCover" diff --git a/recipes/ucsc-genepredsinglecover/include.patch b/recipes/ucsc-genepredsinglecover/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-genepredsinglecover/include.patch +++ b/recipes/ucsc-genepredsinglecover/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-genepredsinglecover/meta.yaml b/recipes/ucsc-genepredsinglecover/meta.yaml index c5feab4138c2a..7da1658b06ae8 100644 --- a/recipes/ucsc-genepredsinglecover/meta.yaml +++ b/recipes/ucsc-genepredsinglecover/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-genepredsinglecover" %} {% set program = "genePredSingleCover" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "create single-coverage genePred files" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-genepredtobed/build.sh b/recipes/ucsc-genepredtobed/build.sh index 73f68a12d7a6a..c2d189f5935c0 100644 --- a/recipes/ucsc-genepredtobed/build.sh +++ b/recipes/ucsc-genepredtobed/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" + +set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/genePredToBed && make) -cp bin/genePredToBed "$PREFIX/bin" -chmod +x "$PREFIX/bin/genePredToBed" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/genePredToBed && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/genePredToBed "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/genePredToBed" diff --git a/recipes/ucsc-genepredtobed/include.patch b/recipes/ucsc-genepredtobed/include.patch index e9c8621194325..edc04d0dc2f64 100644 --- a/recipes/ucsc-genepredtobed/include.patch +++ b/recipes/ucsc-genepredtobed/include.patch @@ -1,30 +1,22 @@ --- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 ++++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -+++ kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -@@ -147,4 +147,4 @@ -- L+=${PREFIX}/lib/libssl.a ${PREFIX}/lib/libcrypto.a -ldl -+ L+=${PREFIX}/lib/libssl.so ${PREFIX}/lib/libcrypto.so -ldl - else - ifneq ($(wildcard /opt/local/lib/libssl.a),) - L+=/opt/local/lib/libssl.a ---- kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 -+++ kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ --KENT_INC=-I../../../inc -+KENT_INC=-I../../../inc -I${PREFIX}/include - - straw: straw.o cStraw.o - ld -r -o ../straw.o straw.o cStraw.o +-#!/usr/bin/env python2.7 ++#!/usr/bin/env python + + import logging, sys, optparse, string + from collections import defaultdict --- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ diff --git a/recipes/ucsc-genepredtobed/meta.yaml b/recipes/ucsc-genepredtobed/meta.yaml index ce54339cf9111..3bec9a4e9fa8e 100644 --- a/recipes/ucsc-genepredtobed/meta.yaml +++ b/recipes/ucsc-genepredtobed/meta.yaml @@ -1,25 +1,21 @@ {% set package = "ucsc-genepredtobed" %} {% set program = "genePredToBed" %} -{% set version = "447" %} -{% set sha256 = "747a48486f7481d891e297baf63623b15d699265ede7339f654bcbc42481ac81" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: - name: {{ package }} - version: {{ version }} + name: "{{ package }}" + version: "{{ version }}" source: url: "http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{{ version }}.src.tgz" - sha256: {{ sha256 }} + sha256: "{{ sha256 }}" patches: - - include.patch - - htmshell.patch + - "include.patch" build: - number: 1 - skip: True # [osx] - ignore_run_exports: - - libpng - - libuuid + skip: True # [osx] + number: 0 run_exports: - {{ pin_subpackage(package, max_pin=None) }} @@ -27,31 +23,34 @@ requirements: build: - make - {{ compiler('c') }} - - {{ compiler('cxx') }} - - binutils # [linux] host: - libpng - libuuid - mysql-connector-c - - openssl - libopenssl-static - zlib + run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static + - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert from genePred to bed format. Does not yet handle genePredExt" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: - additional-platforms: - - linux-aarch64 \ No newline at end of file + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-genepredtobiggenepred/build.sh b/recipes/ucsc-genepredtobiggenepred/build.sh index baf17c6b537f2..22cb9a1a3f13f 100644 --- a/recipes/ucsc-genepredtobiggenepred/build.sh +++ b/recipes/ucsc-genepredtobiggenepred/build.sh @@ -2,15 +2,20 @@ set -xe -mkdir -p "$PREFIX/bin" +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make -j ${CPU_COUNT}) -(cd kent/src/htslib && make -j ${CPU_COUNT}) -(cd kent/src/jkOwnLib && make -j ${CPU_COUNT}) -(cd kent/src/hg/lib && make -j ${CPU_COUNT}) -(cd kent/src/hg/utils/genePredToBigGenePred && make -j ${CPU_COUNT}) -cp bin/genePredToBigGenePred "$PREFIX/bin" -chmod +x "$PREFIX/bin/genePredToBigGenePred" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/genePredToBigGenePred && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/genePredToBigGenePred "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/genePredToBigGenePred" diff --git a/recipes/ucsc-genepredtobiggenepred/include.patch b/recipes/ucsc-genepredtobiggenepred/include.patch index e9c8621194325..edc04d0dc2f64 100644 --- a/recipes/ucsc-genepredtobiggenepred/include.patch +++ b/recipes/ucsc-genepredtobiggenepred/include.patch @@ -1,30 +1,22 @@ --- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 ++++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -+++ kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -@@ -147,4 +147,4 @@ -- L+=${PREFIX}/lib/libssl.a ${PREFIX}/lib/libcrypto.a -ldl -+ L+=${PREFIX}/lib/libssl.so ${PREFIX}/lib/libcrypto.so -ldl - else - ifneq ($(wildcard /opt/local/lib/libssl.a),) - L+=/opt/local/lib/libssl.a ---- kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 -+++ kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ --KENT_INC=-I../../../inc -+KENT_INC=-I../../../inc -I${PREFIX}/include - - straw: straw.o cStraw.o - ld -r -o ../straw.o straw.o cStraw.o +-#!/usr/bin/env python2.7 ++#!/usr/bin/env python + + import logging, sys, optparse, string + from collections import defaultdict --- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ diff --git a/recipes/ucsc-genepredtobiggenepred/meta.yaml b/recipes/ucsc-genepredtobiggenepred/meta.yaml index 7c13583979a71..a1246916eef6c 100644 --- a/recipes/ucsc-genepredtobiggenepred/meta.yaml +++ b/recipes/ucsc-genepredtobiggenepred/meta.yaml @@ -1,46 +1,41 @@ {% set package = "ucsc-genepredtobiggenepred" %} {% set program = "genePredToBigGenePred" %} -{% set version = "447" %} -{% set sha256 = "747a48486f7481d891e297baf63623b15d699265ede7339f654bcbc42481ac81" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: - name: {{ package }} - version: {{ version }} + name: "{{ package }}" + version: "{{ version }}" source: url: "http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{{ version }}.src.tgz" - sha256: {{ sha256 }} + sha256: "{{ sha256 }}" patches: - - include.patch - - htmshell.patch + - "include.patch" build: - number: 2 - skip: True # [osx] + skip: True # [osx] + number: 0 run_exports: - {{ pin_subpackage(package, max_pin=None) }} - ignore_run_exports: - - libpng - - libuuid requirements: build: - make - {{ compiler('c') }} - - {{ compiler('cxx') }} - - binutils # [linux] host: - libpng - libuuid - mysql-connector-c - - openssl - libopenssl-static - zlib + run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static + - zlib test: commands: @@ -48,10 +43,14 @@ test: - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" - summary: "Converts genePred or genePredExt to bigGenePred input (bed format with extra fields)" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" + summary: "converts genePred or genePredExt to bigGenePred input (bed format with extra fields)" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: - additional-platforms: - - linux-aarch64 + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-genepredtofakepsl/build.sh b/recipes/ucsc-genepredtofakepsl/build.sh index 03cf481ed9fae..0cbaf2644b10f 100644 --- a/recipes/ucsc-genepredtofakepsl/build.sh +++ b/recipes/ucsc-genepredtofakepsl/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/genePredToFakePsl && make) -cp bin/genePredToFakePsl "$PREFIX/bin" -chmod +x "$PREFIX/bin/genePredToFakePsl" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/genePredToFakePsl && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/genePredToFakePsl "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/genePredToFakePsl" diff --git a/recipes/ucsc-genepredtofakepsl/include.patch b/recipes/ucsc-genepredtofakepsl/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-genepredtofakepsl/include.patch +++ b/recipes/ucsc-genepredtofakepsl/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-genepredtofakepsl/meta.yaml b/recipes/ucsc-genepredtofakepsl/meta.yaml index 6dd0dbfb20747..db76e2c25d187 100644 --- a/recipes/ucsc-genepredtofakepsl/meta.yaml +++ b/recipes/ucsc-genepredtofakepsl/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-genepredtofakepsl" %} {% set program = "genePredToFakePsl" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Create a psl of fake-mRNA aligned to gene-preds from a file or table." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-genepredtogtf/build.sh b/recipes/ucsc-genepredtogtf/build.sh index 626b3eed43b01..2eacfa5aca0fe 100644 --- a/recipes/ucsc-genepredtogtf/build.sh +++ b/recipes/ucsc-genepredtogtf/build.sh @@ -2,15 +2,20 @@ set -xe -mkdir -p "$PREFIX/bin" +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make -j ${CPU_COUNT}) -(cd kent/src/htslib && make -j ${CPU_COUNT}) -(cd kent/src/jkOwnLib && make -j ${CPU_COUNT}) -(cd kent/src/hg/lib && USE_HIC=0 make -j ${CPU_COUNT}) -(cd kent/src/hg/genePredToGtf && make -j ${CPU_COUNT}) -cp bin/genePredToGtf "$PREFIX/bin" -chmod +x "$PREFIX/bin/genePredToGtf" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/genePredToGtf && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/genePredToGtf "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/genePredToGtf" diff --git a/recipes/ucsc-genepredtogtf/include.patch b/recipes/ucsc-genepredtogtf/include.patch index e2c7f6e6cb70a..edc04d0dc2f64 100644 --- a/recipes/ucsc-genepredtogtf/include.patch +++ b/recipes/ucsc-genepredtogtf/include.patch @@ -5,7 +5,7 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) diff --git a/recipes/ucsc-genepredtogtf/meta.yaml b/recipes/ucsc-genepredtogtf/meta.yaml index 4283d807812f0..63feeb7475766 100644 --- a/recipes/ucsc-genepredtogtf/meta.yaml +++ b/recipes/ucsc-genepredtogtf/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-genepredtogtf" %} {% set program = "genePredToGtf" %} -{% set version = "465" %} -{% set sha256 = "eef17b1f3182d1d9dc99b5c73a6b0468d5d3bd80470f25d3f7706cc1372e04b0" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -43,10 +43,14 @@ test: - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert genePred table or file to gtf." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: - additional-platforms: - - linux-aarch64 \ No newline at end of file + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-genepredtomafframes/build.sh b/recipes/ucsc-genepredtomafframes/build.sh index 3c6c10a9fad99..d0914e9e23d2e 100644 --- a/recipes/ucsc-genepredtomafframes/build.sh +++ b/recipes/ucsc-genepredtomafframes/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/genePredToMafFrames && make) -cp bin/genePredToMafFrames "$PREFIX/bin" -chmod +x "$PREFIX/bin/genePredToMafFrames" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/genePredToMafFrames && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/genePredToMafFrames "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/genePredToMafFrames" diff --git a/recipes/ucsc-genepredtomafframes/include.patch b/recipes/ucsc-genepredtomafframes/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-genepredtomafframes/include.patch +++ b/recipes/ucsc-genepredtomafframes/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-genepredtomafframes/meta.yaml b/recipes/ucsc-genepredtomafframes/meta.yaml index de319b6994200..a2198b27e22c8 100644 --- a/recipes/ucsc-genepredtomafframes/meta.yaml +++ b/recipes/ucsc-genepredtomafframes/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-genepredtomafframes" %} {% set program = "genePredToMafFrames" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "create mafFrames tables from a genePreds" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-genepredtoprot/build.sh b/recipes/ucsc-genepredtoprot/build.sh index 45cad43fa314d..0e997669e739d 100644 --- a/recipes/ucsc-genepredtoprot/build.sh +++ b/recipes/ucsc-genepredtoprot/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/utils/genePredToProt && make) -cp bin/genePredToProt "$PREFIX/bin" -chmod +x "$PREFIX/bin/genePredToProt" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/genePredToProt && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/genePredToProt "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/genePredToProt" diff --git a/recipes/ucsc-genepredtoprot/include.patch b/recipes/ucsc-genepredtoprot/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-genepredtoprot/include.patch +++ b/recipes/ucsc-genepredtoprot/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-genepredtoprot/meta.yaml b/recipes/ucsc-genepredtoprot/meta.yaml index b04d00344ff6f..415939a3f7ac5 100644 --- a/recipes/ucsc-genepredtoprot/meta.yaml +++ b/recipes/ucsc-genepredtoprot/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-genepredtoprot" %} {% set program = "genePredToProt" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "create protein sequences by translating gene annotations" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-gensub2/build.sh b/recipes/ucsc-gensub2/build.sh index c2fb30cfe1ea8..7eea99522dd3e 100644 --- a/recipes/ucsc-gensub2/build.sh +++ b/recipes/ucsc-gensub2/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/parasol && make) -cp kent/src/parasol/bin/gensub2 "$PREFIX/bin" -chmod +x "$PREFIX/bin/gensub2" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/parasol && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp kent/src/parasol/bin/gensub2 "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/gensub2" diff --git a/recipes/ucsc-gensub2/include.patch b/recipes/ucsc-gensub2/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-gensub2/include.patch +++ b/recipes/ucsc-gensub2/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-gensub2/meta.yaml b/recipes/ucsc-gensub2/meta.yaml index 9dbd6efb84cd5..5b1d1ebc67a8d 100644 --- a/recipes/ucsc-gensub2/meta.yaml +++ b/recipes/ucsc-gensub2/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-gensub2" %} {% set program = "gensub2" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "version 12.18" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-getrna/build.sh b/recipes/ucsc-getrna/build.sh index a143abd3f5d49..68c77a40cd7d3 100644 --- a/recipes/ucsc-getrna/build.sh +++ b/recipes/ucsc-getrna/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/getRna && make) -cp bin/getRna "$PREFIX/bin" -chmod +x "$PREFIX/bin/getRna" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/getRna && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/getRna "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/getRna" diff --git a/recipes/ucsc-getrna/include.patch b/recipes/ucsc-getrna/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-getrna/include.patch +++ b/recipes/ucsc-getrna/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-getrna/meta.yaml b/recipes/ucsc-getrna/meta.yaml index 2762bd242def6..a513246dfff19 100644 --- a/recipes/ucsc-getrna/meta.yaml +++ b/recipes/ucsc-getrna/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-getrna" %} {% set program = "getRna" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Get mrna for GenBank or RefSeq sequences found in a database" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-getrnapred/build.sh b/recipes/ucsc-getrnapred/build.sh index 8fc3876e2eba3..1285faed92b52 100644 --- a/recipes/ucsc-getrnapred/build.sh +++ b/recipes/ucsc-getrnapred/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/getRnaPred && make) -cp bin/getRnaPred "$PREFIX/bin" -chmod +x "$PREFIX/bin/getRnaPred" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/getRnaPred && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/getRnaPred "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/getRnaPred" diff --git a/recipes/ucsc-getrnapred/include.patch b/recipes/ucsc-getrnapred/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-getrnapred/include.patch +++ b/recipes/ucsc-getrnapred/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-getrnapred/meta.yaml b/recipes/ucsc-getrnapred/meta.yaml index 456e7a2e36ce1..511717e689efd 100644 --- a/recipes/ucsc-getrnapred/meta.yaml +++ b/recipes/ucsc-getrnapred/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-getrnapred" %} {% set program = "getRnaPred" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Get virtual RNA for gene predictions" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-gff3togenepred/build.sh b/recipes/ucsc-gff3togenepred/build.sh index 6ffa740fe32c1..98a30d0537b93 100644 --- a/recipes/ucsc-gff3togenepred/build.sh +++ b/recipes/ucsc-gff3togenepred/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" + +set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make -j ${CPU_COUNT}) -(cd kent/src/htslib && make -j ${CPU_COUNT}) -(cd kent/src/jkOwnLib && make -j ${CPU_COUNT}) -(cd kent/src/hg/lib && make -j ${CPU_COUNT}) -(cd kent/src/hg/utils/gff3ToGenePred && make -j ${CPU_COUNT}) -cp bin/gff3ToGenePred "$PREFIX/bin" -chmod +x "$PREFIX/bin/gff3ToGenePred" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/gff3ToGenePred && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/gff3ToGenePred "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/gff3ToGenePred" diff --git a/recipes/ucsc-gff3togenepred/include.patch b/recipes/ucsc-gff3togenepred/include.patch index e9c8621194325..edc04d0dc2f64 100644 --- a/recipes/ucsc-gff3togenepred/include.patch +++ b/recipes/ucsc-gff3togenepred/include.patch @@ -1,30 +1,22 @@ --- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 ++++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -+++ kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -@@ -147,4 +147,4 @@ -- L+=${PREFIX}/lib/libssl.a ${PREFIX}/lib/libcrypto.a -ldl -+ L+=${PREFIX}/lib/libssl.so ${PREFIX}/lib/libcrypto.so -ldl - else - ifneq ($(wildcard /opt/local/lib/libssl.a),) - L+=/opt/local/lib/libssl.a ---- kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 -+++ kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ --KENT_INC=-I../../../inc -+KENT_INC=-I../../../inc -I${PREFIX}/include - - straw: straw.o cStraw.o - ld -r -o ../straw.o straw.o cStraw.o +-#!/usr/bin/env python2.7 ++#!/usr/bin/env python + + import logging, sys, optparse, string + from collections import defaultdict --- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ diff --git a/recipes/ucsc-gff3togenepred/meta.yaml b/recipes/ucsc-gff3togenepred/meta.yaml index 184186af9a4d2..c16b7d914188d 100644 --- a/recipes/ucsc-gff3togenepred/meta.yaml +++ b/recipes/ucsc-gff3togenepred/meta.yaml @@ -1,57 +1,56 @@ {% set package = "ucsc-gff3togenepred" %} {% set program = "gff3ToGenePred" %} -{% set version = "447" %} -{% set sha256 = "747a48486f7481d891e297baf63623b15d699265ede7339f654bcbc42481ac81" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: - name: {{ package }} - version: {{ version }} + name: "{{ package }}" + version: "{{ version }}" source: url: "http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{{ version }}.src.tgz" - sha256: {{ sha256 }} + sha256: "{{ sha256 }}" patches: - - include.patch - - htmshell.patch + - "include.patch" build: - number: 2 - skip: True # [osx] + skip: True # [osx] + number: 0 run_exports: - {{ pin_subpackage(package, max_pin=None) }} - ignore_run_exports: - - libpng - - libuuid requirements: build: - make - {{ compiler('c') }} - - {{ compiler('cxx') }} - - binutils # [linux] host: - libpng - libuuid - mysql-connector-c - - openssl - libopenssl-static - zlib + run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static + - zlib test: commands: # just check for existence and exec bit, because the individual packages have no unified behavior - - test -x $PREFIX/bin/{{ program }} + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" - summary: "Convert a GFF3 file to a genePred file" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" + summary: "convert a GFF3 file to a genePred file" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: - additional-platforms: - - linux-aarch64 \ No newline at end of file + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-gff3topsl/build.sh b/recipes/ucsc-gff3topsl/build.sh index 0af0b67a67fa0..1480a1a5c4c6c 100644 --- a/recipes/ucsc-gff3topsl/build.sh +++ b/recipes/ucsc-gff3topsl/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/utils/gff3ToPsl && make) -cp bin/gff3ToPsl "$PREFIX/bin" -chmod +x "$PREFIX/bin/gff3ToPsl" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/gff3ToPsl && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/gff3ToPsl "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/gff3ToPsl" diff --git a/recipes/ucsc-gff3topsl/include.patch b/recipes/ucsc-gff3topsl/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-gff3topsl/include.patch +++ b/recipes/ucsc-gff3topsl/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-gff3topsl/meta.yaml b/recipes/ucsc-gff3topsl/meta.yaml index 4a1ea66855d54..6b6d7a265cea8 100644 --- a/recipes/ucsc-gff3topsl/meta.yaml +++ b/recipes/ucsc-gff3topsl/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-gff3topsl" %} {% set program = "gff3ToPsl" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "convert a GFF3 CIGAR file to a PSL file" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-gmtime/build.sh b/recipes/ucsc-gmtime/build.sh index df84f2bc8be6f..f9fdd83658185 100644 --- a/recipes/ucsc-gmtime/build.sh +++ b/recipes/ucsc-gmtime/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/timing/gmtime && make) -cp bin/gmtime "$PREFIX/bin" -chmod +x "$PREFIX/bin/gmtime" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/timing/gmtime && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/gmtime "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/gmtime" diff --git a/recipes/ucsc-gmtime/include.patch b/recipes/ucsc-gmtime/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-gmtime/include.patch +++ b/recipes/ucsc-gmtime/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-gmtime/meta.yaml b/recipes/ucsc-gmtime/meta.yaml index 3a363611db7b8..be7f2efb84739 100644 --- a/recipes/ucsc-gmtime/meta.yaml +++ b/recipes/ucsc-gmtime/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-gmtime" %} {% set program = "gmtime" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "convert unix timestamp to date string" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-gtftogenepred/build.sh b/recipes/ucsc-gtftogenepred/build.sh index 49f68076bbb2e..80a3ce55a4aa6 100644 --- a/recipes/ucsc-gtftogenepred/build.sh +++ b/recipes/ucsc-gtftogenepred/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/utils/gtfToGenePred && make) -cp bin/gtfToGenePred "$PREFIX/bin" -chmod +x "$PREFIX/bin/gtfToGenePred" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/gtfToGenePred && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/gtfToGenePred "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/gtfToGenePred" diff --git a/recipes/ucsc-gtftogenepred/include.patch b/recipes/ucsc-gtftogenepred/include.patch index e9c8621194325..edc04d0dc2f64 100644 --- a/recipes/ucsc-gtftogenepred/include.patch +++ b/recipes/ucsc-gtftogenepred/include.patch @@ -1,30 +1,22 @@ --- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 ++++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -+++ kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -@@ -147,4 +147,4 @@ -- L+=${PREFIX}/lib/libssl.a ${PREFIX}/lib/libcrypto.a -ldl -+ L+=${PREFIX}/lib/libssl.so ${PREFIX}/lib/libcrypto.so -ldl - else - ifneq ($(wildcard /opt/local/lib/libssl.a),) - L+=/opt/local/lib/libssl.a ---- kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 -+++ kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ --KENT_INC=-I../../../inc -+KENT_INC=-I../../../inc -I${PREFIX}/include - - straw: straw.o cStraw.o - ld -r -o ../straw.o straw.o cStraw.o +-#!/usr/bin/env python2.7 ++#!/usr/bin/env python + + import logging, sys, optparse, string + from collections import defaultdict --- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ diff --git a/recipes/ucsc-gtftogenepred/meta.yaml b/recipes/ucsc-gtftogenepred/meta.yaml index 87ed2f492e9cb..813e6c2d6a6b6 100644 --- a/recipes/ucsc-gtftogenepred/meta.yaml +++ b/recipes/ucsc-gtftogenepred/meta.yaml @@ -1,57 +1,56 @@ {% set package = "ucsc-gtftogenepred" %} {% set program = "gtfToGenePred" %} -{% set version = "447" %} -{% set sha256 = "747a48486f7481d891e297baf63623b15d699265ede7339f654bcbc42481ac81" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: - name: {{ package }} - version: {{ version }} + name: "{{ package }}" + version: "{{ version }}" source: url: "http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{{ version }}.src.tgz" - sha256: {{ sha256 }} + sha256: "{{ sha256 }}" patches: - - include.patch - - htmshell.patch + - "include.patch" build: - number: 1 - skip: True # [osx] - ignore_run_exports: - - libpng - - libuuid + skip: True # [osx] + number: 0 run_exports: - - {{ pin_subpackage(package|lower, max_pin=None) }} + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: - make - {{ compiler('c') }} - - {{ compiler('cxx') }} - - binutils # [linux] host: - libpng - libuuid - mysql-connector-c - - openssl - libopenssl-static - zlib + run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static + - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" - summary: "Convert a GTF file to a genePred" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" + summary: "convert a GTF file to a genePred" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: - additional-platforms: - - linux-aarch64 \ No newline at end of file + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-headrest/build.sh b/recipes/ucsc-headrest/build.sh index e663809978aba..42931e2fdcda4 100644 --- a/recipes/ucsc-headrest/build.sh +++ b/recipes/ucsc-headrest/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/headRest && make) -cp bin/headRest "$PREFIX/bin" -chmod +x "$PREFIX/bin/headRest" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/headRest && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/headRest "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/headRest" diff --git a/recipes/ucsc-headrest/include.patch b/recipes/ucsc-headrest/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-headrest/include.patch +++ b/recipes/ucsc-headrest/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-headrest/meta.yaml b/recipes/ucsc-headrest/meta.yaml index ca8f56ff645ef..5544ab7e8edc7 100644 --- a/recipes/ucsc-headrest/meta.yaml +++ b/recipes/ucsc-headrest/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-headrest" %} {% set program = "headRest" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Return all *but* the first N lines of a file." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-hgbbidblink/build.sh b/recipes/ucsc-hgbbidblink/build.sh index 6da58add15c6a..bd30d4f90abf3 100644 --- a/recipes/ucsc-hgbbidblink/build.sh +++ b/recipes/ucsc-hgbbidblink/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/makeDb/hgBbiDbLink && make) -cp bin/hgBbiDbLink "$PREFIX/bin" -chmod +x "$PREFIX/bin/hgBbiDbLink" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/makeDb/hgBbiDbLink && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/hgBbiDbLink "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/hgBbiDbLink" diff --git a/recipes/ucsc-hgbbidblink/include.patch b/recipes/ucsc-hgbbidblink/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-hgbbidblink/include.patch +++ b/recipes/ucsc-hgbbidblink/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-hgbbidblink/meta.yaml b/recipes/ucsc-hgbbidblink/meta.yaml index b1ad270d2c719..45c299a6c87ee 100644 --- a/recipes/ucsc-hgbbidblink/meta.yaml +++ b/recipes/ucsc-hgbbidblink/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-hgbbidblink" %} {% set program = "hgBbiDbLink" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Add table that just contains a pointer to a bbiFile to database. This program " + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-hgfakeagp/build.sh b/recipes/ucsc-hgfakeagp/build.sh index da41fc2e586e1..03d106363c3f0 100644 --- a/recipes/ucsc-hgfakeagp/build.sh +++ b/recipes/ucsc-hgfakeagp/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/makeDb/hgFakeAgp && make) -cp bin/hgFakeAgp "$PREFIX/bin" -chmod +x "$PREFIX/bin/hgFakeAgp" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/makeDb/hgFakeAgp && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/hgFakeAgp "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/hgFakeAgp" diff --git a/recipes/ucsc-hgfakeagp/include.patch b/recipes/ucsc-hgfakeagp/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-hgfakeagp/include.patch +++ b/recipes/ucsc-hgfakeagp/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-hgfakeagp/meta.yaml b/recipes/ucsc-hgfakeagp/meta.yaml index a8f5f3d17ac1e..457365f7fa59a 100644 --- a/recipes/ucsc-hgfakeagp/meta.yaml +++ b/recipes/ucsc-hgfakeagp/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-hgfakeagp" %} {% set program = "hgFakeAgp" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Create fake AGP file by looking at N's" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-hgfindspec/build.sh b/recipes/ucsc-hgfindspec/build.sh index 86c10fc48027c..f02b401cba046 100644 --- a/recipes/ucsc-hgfindspec/build.sh +++ b/recipes/ucsc-hgfindspec/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/makeDb/hgFindSpec && make) -cp bin/hgFindSpec "$PREFIX/bin" -chmod +x "$PREFIX/bin/hgFindSpec" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/makeDb/hgFindSpec && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/hgFindSpec "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/hgFindSpec" diff --git a/recipes/ucsc-hgfindspec/include.patch b/recipes/ucsc-hgfindspec/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-hgfindspec/include.patch +++ b/recipes/ucsc-hgfindspec/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-hgfindspec/meta.yaml b/recipes/ucsc-hgfindspec/meta.yaml index fa2b4eca2f34b..02d2bf103bd22 100644 --- a/recipes/ucsc-hgfindspec/meta.yaml +++ b/recipes/ucsc-hgfindspec/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-hgfindspec" %} {% set program = "hgFindSpec" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Create hgFindSpec table from trackDb.ra files." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-hggcpercent/build.sh b/recipes/ucsc-hggcpercent/build.sh index 769b86221d65f..0f13041348d4e 100644 --- a/recipes/ucsc-hggcpercent/build.sh +++ b/recipes/ucsc-hggcpercent/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" + +set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make -j ${CPU_COUNT}) -(cd kent/src/htslib && make -j ${CPU_COUNT}) -(cd kent/src/jkOwnLib && make -j ${CPU_COUNT}) -(cd kent/src/hg/lib && make -j ${CPU_COUNT}) -(cd kent/src/hg/makeDb/hgGcPercent && make -j ${CPU_COUNT}) -cp bin/hgGcPercent "$PREFIX/bin" -chmod +x "$PREFIX/bin/hgGcPercent" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/makeDb/hgGcPercent && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/hgGcPercent "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/hgGcPercent" diff --git a/recipes/ucsc-hggcpercent/include.patch b/recipes/ucsc-hggcpercent/include.patch index e9c8621194325..edc04d0dc2f64 100644 --- a/recipes/ucsc-hggcpercent/include.patch +++ b/recipes/ucsc-hggcpercent/include.patch @@ -1,30 +1,22 @@ --- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 ++++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -+++ kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -@@ -147,4 +147,4 @@ -- L+=${PREFIX}/lib/libssl.a ${PREFIX}/lib/libcrypto.a -ldl -+ L+=${PREFIX}/lib/libssl.so ${PREFIX}/lib/libcrypto.so -ldl - else - ifneq ($(wildcard /opt/local/lib/libssl.a),) - L+=/opt/local/lib/libssl.a ---- kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 -+++ kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ --KENT_INC=-I../../../inc -+KENT_INC=-I../../../inc -I${PREFIX}/include - - straw: straw.o cStraw.o - ld -r -o ../straw.o straw.o cStraw.o +-#!/usr/bin/env python2.7 ++#!/usr/bin/env python + + import logging, sys, optparse, string + from collections import defaultdict --- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ diff --git a/recipes/ucsc-hggcpercent/meta.yaml b/recipes/ucsc-hggcpercent/meta.yaml index 9317978520057..8e1740f1de060 100644 --- a/recipes/ucsc-hggcpercent/meta.yaml +++ b/recipes/ucsc-hggcpercent/meta.yaml @@ -1,22 +1,21 @@ {% set package = "ucsc-hggcpercent" %} {% set program = "hgGcPercent" %} -{% set version = "448" %} -{% set sha256 = "90c28f06f3f5b6d79ff141cbf745e6a0c1b289a2ce640bbd1b0a14c826f08a85" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: - name: {{ package }} - version: {{ version }} + name: "{{ package }}" + version: "{{ version }}" source: - url: http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{{ version }}.src.tgz - sha256: {{ sha256 }} + url: "http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{{ version }}.src.tgz" + sha256: "{{ sha256 }}" patches: - - include.patch - - htmshell.patch + - "include.patch" build: - number: 1 skip: True # [osx] + number: 0 run_exports: - {{ pin_subpackage(package, max_pin=None) }} @@ -24,31 +23,34 @@ requirements: build: - make - {{ compiler('c') }} - - {{ compiler('cxx') }} - - binutils # [linux] host: - libpng - libuuid - mysql-connector-c - - openssl - libopenssl-static - zlib + run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static + - zlib test: commands: # just check for existence and exec bit, because the individual packages have no unified behavior - - test -x $PREFIX/bin/{{ program }} + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Calculate GC Percentage in 20kb windows" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: - additional-platforms: - - linux-aarch64 \ No newline at end of file + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-hggoldgapgl/build_failure.linux-64.yaml b/recipes/ucsc-hggoldgapgl/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..2e5116388d48d --- /dev/null +++ b/recipes/ucsc-hggoldgapgl/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: b3c6555b75999218c1585469a88df713fb1380afa8ca1f8f708ae3c4c4f06a67 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hggoldgapgl-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o protVar.o -c protVar.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hggoldgapgl-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o pgSnp.o -c pgSnp.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hggoldgapgl-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o alignInfo.o -c alignInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hggoldgapgl-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o cddInfo.o -c cddInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hggoldgapgl-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o loweutils.o -c loweutils.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hggoldgapgl-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o cddDesc.o -c cddDesc.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hggoldgapgl-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o arCOGs.o -c arCOGs.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hggoldgapgl-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o arcogdesc.o -c arcogdesc.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hggoldgapgl-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o geneTree.o -c geneTree.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hggoldgapgl-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o megablastInfo.o -c megablastInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hggoldgapgl-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o pgPhenoAssoc.o -c pgPhenoAssoc.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hggoldgapgl-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o pgSiftPred.o -c pgSiftPred.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hggoldgapgl-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o pgPolyphenPred.o -c pgPolyphenPred.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hggoldgapgl-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o userRegions.o -c userRegions.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hggoldgapgl-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o variome.o -c variome.c + ar rcus ../../lib/x86_64/jkhgap.a acemblyClass.o adjacency.o affyAllExonProbe.o affyAtlas.o affy10KDetails.o affy120KDetails.o affyOffset.o affyPairs.o agp.o agpFrag.o agpGap.o alignSeqSizes.o altGraph.o altGraphX.o ancientRref.o annoFormatVep.o annoGratorGpVar.o annoGrateWigDb.o annoStreamDb.o annoStreamDbFactorSource.o annoStreamDbPslPlus.o annoStreamWig.o api.o atomDb.o autoUpgrade.o axtInfo.o axtLib.o bactigPos.o hgBam.o barChartBed.o barChartCategory.o barChartUi.o barChartData.o barChartSample.o baseMaskCommon.o bdgpExprLink.o bdgpGeneInfo.o bed.o bed5FloatScore.o bed5Pval.o bed6FloatScore.o bed8Attrs.o bed12Source.o bed12wSeq.o bedCart.o bgiGeneInfo.o bgiGeneSnp.o bgiSnp.o bigBedFind.o bigBedLabel.o bigGenePred.o bigPsl.o bigTransMap.o bioImage.o blastTab.o blastzNet.o blatServers.o borf.o borkPseudoHom.o botDelay.o cart.o cartDb.o cartJson.o cartTrackDb.o cdsEvidence.o cdsOrtho.o cdsPick.o cdsSpec.o ccdsInfo.o ccdsNotes.o ccdsGeneMap.o celeraCoverage.o celeraDupPositive.o cgapSage/cgapSage.o cgapSage/cgapSageLib.o cgh.o chainCart.o chainDb.o chainLink.o chainNet.o chainNetDbLoad.o chicken13kInfo.o chromBins.o chromAlias.o chr18deletions.o chromGraph.o chromGraphFactory.o chromInfo.o chromInserts.o chromKeeper.o clonePos.o codeBlast.o codeBlastScore.o cogs.o cogsxra.o columnInfo.o contigAcc.o coordConv.o cnpIafrate.o cnpIafrate2.o cnpLocke.o cnpRedon.o cnpSebat.o cnpSebat2.o cnpSharp2.o cnpSharpCutoff.o cnpSharpSample.o cnpSharp.o cpgIsland.o cpgIslandExt.o ctgPos.o ctgPos2.o customComposite.o bedDetail.o cgiApoptosis.o customAdjacency.o customFactory.o customPp.o customTrack.o cutter.o cv.o cytoBand.o dbDb.o dbRIP.o dbSnpRs.o defaultDb.o delConrad2.o delHinds2.o dgv.o dgvPlus.o dless.o dnaMotifSql.o dnaMarkovSql.o dnaProbe.o dv.o dvBed.o dvXref2.o easyGene.o ec.o ecCode.o ecAttribute.o ecAttributeCode.o encode/encodeErge.o encode/encodeErgeHssCellLines.o encode/encodeHapMapAlleleFreq.o encode/encodeIndels.o encode/encodePeak.o encode/encodeRegionInfo.o encode/encodeRegionInfoCustom.o encode/encodeRna.o encode/encodeStanfordPromoters.o encode/encodeStanfordPromotersAverage.o encode/pairedTagAlign.o encode/peptideMapping.o encode/tagAlign.o encode/wgEncodeGencodeAttrs.o encode/wgEncodeGencodeExonSupport.o encode/wgEncodeGencodeEntrezGene.o encode/wgEncodeGencodeTag.o encode/wgEncodeGencodeGeneSymbol.o encode/wgEncodeGencodePdb.o encode/wgEncodeGencodePubMed.o encode/wgEncodeGencodeRefSeq.o encode/wgEncodeGencodeGeneSource.o encode/wgEncodeGencodeTranscriptSource.o encode/wgEncodeGencodeTranscriptSupport.o encode/wgEncodeGencodeTranscriptionSupportLevel.o encode/wgEncodeGencodeUniProt.o encode/wgEncodeGencodePolyAFeature.o encode/wgEncodeGencodeAnnotationRemark.o encode/wgEncodeCell.o encode/encodeExp.o encode3/encode2Manifest.o encode3/encode3Valid.o ensFace.o ensInfo.o ensPhusionBlast.o ensXRefZfish.o est3.o estOrientInfo.o estPair.o exoFish.o expData.o expRecord.o exprBed.o facetField.o factorSource.o fbTables.o featureBits.o fileUi.o findKGAlias.o findKGProtAlias.o fishClones.o flyBase2004Xref.o flyBaseSwissProt.o flyreg.o flyreg2.o gbExtFile.o gbWarn.o gbMiscDiff.o gbProtAnn.o gcPercent.o gbSeq.o genbank.o genbankBlackList.o gencodeGeneClass.o gencodeIntron.o genMapDb.o geneBands.o geneCheck.o geneCheckDetails.o geneCheckWidget.o geneGraph.o genePred.o genePredReader.o geneSimilarities.o genoLay.o genomeRangeTreeFile.o genomicDups.o genomicSuperDups.o geoMirror.o ggCluster.o ggDbIo.o ggDump.o ggGraph.o ggMrnaAli.o ggTypes.o glDbRep.o goa.o goaPart.o googleAnalytics.o gpFx.o growthCondition.o grp.o gtexAse.o gtexBoxplot.o gtexEqtlCluster.o gtexInfo.o gtexDonor.o gtexGeneBed.o gtexSample.o gtexSampleData.o gtexTissue.o gtexTissueData.o gtexTissueMedian.o gtexUi.o gwasCatalog.o hAnno.o haplotypes.o hapmapAllelesOrtho.o hapmapAllelesSummary.o hapmapPhaseIIISummary.o hapmapSnps.o hapmapSnpsCombined.o hashJoin.o hCommon.o hCytoBand.o hdb.o hgColors.o hgConfig.o hgExp.o hgFind.o hgFindSpec.o hgFindSpecCustom.o hgHgvs.o hgHgvsParse.o hgGene.o hgMaf.o hgRelate.o hgSeq.o hgdpGeo.o hPrint.o hVarSubst.o hvGfx.o HInv.o hubConnect.o hubSearchText.o hui.o humanParalog.o imageClone.o indelShift.o interact.o interactUi.o isochores.o ispyTables.o itemAttr.o itemConf.o itemDetailsHtml.o jalview.o jaxOrtholog.o jaxQTL.o jaxQTL3.o jksql.o joiner.o jsHelper.o kg1ToKg2.o jgiGene.o joinMixer.o kgAlias.o kgColor.o kgProtAlias.o kgXref.o knownInfo.o knownMore.o knownToSuper.o lav.o ld.o ld2.o lfs.o liftOver.o liftOverChain.o liftUp.o llaInfo.o longRange.o lrg.o lsSnpPdb.o lsSnpPdbChimera.o mafFrames.o mafGene.o mafSummary.o makeItemsItem.o mammalPsg.o mapSts.o mathWig.o mcnBreakpoints.o mdb.o metaChromGraph.o microarray.o minChromSize.o minGeneInfo.o mrnaMisMatch.o mouseOrtho.o mouseSyn.o mouseSynWhd.o mysqlTableStatus.o ncbiRefLink.o ncbiRefSeqLink.o netAlign.o netCart.o nonCodingUi.o omimTitle.o ooUtils.o orthoAlleles.o pal.o pbStamp.o pcrResult.o pepPred.o peptideAtlasPeptide.o plasEndPairs.o polyGenotype.o protFeat.o pscreen.o pseudoGeneLink.o pslReader.o pslWScore.o putaInfo.o qaSeq.o rangeTreeFile.o rankProp.o recombRate.o recombRateRat.o recombRateMouse.o refLink.o refSeqStatus.o rgdQtl.o riken.o rhMapZfishInfo.o rikenBest.o rikenCluster.o rmskOut.o rmskAlign.o rmskJoined.o rmskOut2.o rnaFold.o rnaGene.o rnaGroup.o rnaHybridization.o rnaPLFold.o tRNAs.o gbRNAs.o snoRNAs.o lowelabPfamHit.o lowelabArkinOperonScore.o lowelabTIGROperonScore.o rnaSecStr.o tfbsConsFactors.o roughAli.o transMapStuff.o transMapInfo.o transMapGene.o transMapSrc.o sage.o sageCounts.o sageExp.o samAlignment.o sample.o sanger22extra.o sangerGene.o sangerGeneToWBGeneID.o sargassoSeaXra.o scopDes.o scoredRef.o search.o seqWindow.o sessionThumbnail.o sgdAbundance.o sgdClone.o sgdDescription.o sgdOther.o simpleNucDiff.o simpleRepeat.o snakeUi.o snp.o snp125.o snp125CodingCoordless.o snp132Ext.o snpExceptions.o snpFasta.o snpMap.o snpTmp.o snpUi.o snp125Exceptions.o snp125Ui.o softPromoter.o softberryHom.o soTerm.o spDb.o splignAlign.o sqlSanity.o stanMad.o stsAlias.o stsInfo.o stsInfo2.o stsInfoMouse.o stsInfoMouseNew.o stsInfoRat.o stsMap.o stsMapMouse.o stsMapMouseNew.o stsMapRat.o stsMarker.o suggest.o switchDbTss.o synMap.o synteny100000.o syntenyBerk.o syntenySanger.o sqlProg.o tfbsCons.o tfbsConsSites.o tablesTables.o tableDescriptions.o tableStatus.o targetDb.o tfbsConsMap.o tagRepo.o taxonDivision.o taxonGeneticCode.o taxonName.o taxonNode.o taxonXref.o tigrCmrGene.o tigrOperon.o tilingPath.o traceInfo.o trackDb.o trackDbCustom.o trackHub.o trackLayout.o trackTable.o trackVersion.o trashDir.o transRegCode.o transRegCodeCondition.o transRegCodeProbe.o txAliDiff.o txCluster.o txCommon.o txEdgeBed.o txEdgeOrtho.o txGraph.o txInfo.o txRnaAccs.o ucscRetroInfo.o ucscRetroOrtho.o validateGisaid.o variant.o variantProjector.o vcfUi.o vegaInfo.o vegaInfoZfish.o visiGene.o vntr.o wabAli.o web.o ncRna.o wgRna.o wigAsciiToBinary.o wigDataStream.o wiggle.o wiggleCart.o wiggleUtils.o wikiLink.o wikiTrack.o yaleGencodeAssoc.o zdobnovSynt.o oreganno.o oregannoUi.o gvUi.o gv.o omicia.o protVar.o pgSnp.o alignInfo.o cddInfo.o loweutils.o cddDesc.o arCOGs.o arcogdesc.o geneTree.o megablastInfo.o pgPhenoAssoc.o pgSiftPred.o pgPolyphenPred.o userRegions.o variome.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hggoldgapgl-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -o hgGoldGapGl.o -c hgGoldGapGl.c + hgGoldGapGl.c: In function 'makeGoldAndGap': + hgGoldGapGl.c:213:5: warning: 'splitPath' accessing 512 bytes in a region of size 256 [-Wstringop-overflow=] + 213 | splitPath(agpName, dir, chrom, ext); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + hgGoldGapGl.c:213:5: note: referencing argument 2 of type 'char[512]' + hgGoldGapGl.c:213:5: note: referencing argument 3 of type 'char[128]' + hgGoldGapGl.c:213:5: note: referencing argument 4 of type 'char[64]' + In file included from hgGoldGapGl.c:5: + ../../../inc/common.h:1104:6: note: in a call to function 'splitPath' + 1104 | void splitPath(char *path, char dir[PATH_LEN], char name[FILENAME_LEN], + | ^~~~~~~~~ + hgGoldGapGl.c: In function 'makeGl': + hgGoldGapGl.c:305:5: warning: 'splitPath' accessing 512 bytes in a region of size 256 [-Wstringop-overflow=] + 305 | splitPath(glFileName, dir, chrom, ext); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + hgGoldGapGl.c:305:5: note: referencing argument 2 of type 'char[512]' + hgGoldGapGl.c:305:5: note: referencing argument 3 of type 'char[128]' + hgGoldGapGl.c:305:5: note: referencing argument 4 of type 'char[64]' + ../../../inc/common.h:1104:6: note: in a call to function 'splitPath' + 1104 | void splitPath(char *path, char dir[PATH_LEN], char name[FILENAME_LEN], + | ^~~~~~~~~ + hgGoldGapGl.c: In function 'makeGoldAndGap': + hgGoldGapGl.c:216:26: warning: '_gold' directive writing 5 bytes into a region of size between 1 and 128 [-Wformat-overflow=] + 216 | sprintf(goldName, "%s_gold", chrom); + | ^~~~~ + hgGoldGapGl.c:216:5: note: 'sprintf' output between 6 and 133 bytes into a destination of size 128 + 216 | sprintf(goldName, "%s_gold", chrom); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + hgGoldGapGl.c:217:25: warning: '_gap' directive writing 4 bytes into a region of size between 1 and 128 [-Wformat-overflow=] + 217 | sprintf(gapName, "%s_gap", chrom); + | ^~~~ + hgGoldGapGl.c:217:5: note: 'sprintf' output between 5 and 132 bytes into a destination of size 128 + 217 | sprintf(gapName, "%s_gap", chrom); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + hgGoldGapGl.c: In function 'makeGl': + hgGoldGapGl.c:306:25: warning: '_gl' directive writing 3 bytes into a region of size between 1 and 128 [-Wformat-overflow=] + 306 | sprintf(glTable, "%s_gl", chrom); + | ^~~ + hgGoldGapGl.c:306:5: note: 'sprintf' output between 4 and 131 bytes into a destination of size 128 + 306 | sprintf(glTable, "%s_gl", chrom); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + hgGoldGapGl.c: In function 'makeCloneVerHash': + hgGoldGapGl.c:338:5: warning: '__builtin_strncpy' specified bound 32 equals destination size [-Wstringop-truncation] + 338 | strncpy(acc, row[0], sizeof(acc)); + | ^~~~~~~ + hgGoldGapGl.c: In function 'hgGoldGapGl': + hgGoldGapGl.c:394:37: warning: 'sprintf' may write a terminating nul past the end of the destination [-Wformat-overflow=] + 394 | sprintf(pathName, "%s/%s", ooDir, chrFi->name); + | ^ + hgGoldGapGl.c:394:13: note: 'sprintf' output 2 or more bytes (assuming 513) into a destination of size 512 + 394 | sprintf(pathName, "%s/%s", ooDir, chrFi->name); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hggoldgapgl-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -o ntContig.o -c ntContig.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -o $SRC_DIR/bin/hgGoldGapGl \ + hgGoldGapGl.o ntContig.o ../../../lib/x86_64/jkhgap.a ../../../lib/x86_64/jkweb.a -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -lpthread -lssl -lcrypto ../../../htslib/libhts.a -L$PREFIX/lib -lpng16 -lm -lz -L$PREFIX/lib -lmysqlclient -lstdc -lrt -lm + /opt/conda/conda-bld/ucsc-hggoldgapgl_1724781897900/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkhgap.a(trackHub.o):/usr/local/src/conda/ucsc-hggoldgapgl-377/kent/src/hg/lib/../../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-hggoldgapgl-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + /opt/conda/conda-bld/ucsc-hggoldgapgl_1724781897900/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkhgap.a(web.o):/usr/local/src/conda/ucsc-hggoldgapgl-377/kent/src/hg/lib/../../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-hggoldgapgl-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + /opt/conda/conda-bld/ucsc-hggoldgapgl_1724781897900/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkhgap.a(wikiLink.o):/usr/local/src/conda/ucsc-hggoldgapgl-377/kent/src/hg/lib/../../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-hggoldgapgl-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + /opt/conda/conda-bld/ucsc-hggoldgapgl_1724781897900/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkhgap.a(cart.o):/usr/local/src/conda/ucsc-hggoldgapgl-377/kent/src/hg/lib/../../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-hggoldgapgl-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + /opt/conda/conda-bld/ucsc-hggoldgapgl_1724781897900/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkhgap.a(hPrint.o):/usr/local/src/conda/ucsc-hggoldgapgl-377/kent/src/hg/lib/../../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-hggoldgapgl-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + /opt/conda/conda-bld/ucsc-hggoldgapgl_1724781897900/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkweb.a(bamFile.o):/usr/local/src/conda/ucsc-hggoldgapgl-377/kent/src/lib/../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-hggoldgapgl-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + /opt/conda/conda-bld/ucsc-hggoldgapgl_1724781897900/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkweb.a(cheapcgi.o):/usr/local/src/conda/ucsc-hggoldgapgl-377/kent/src/lib/../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-hggoldgapgl-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + /opt/conda/conda-bld/ucsc-hggoldgapgl_1724781897900/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkweb.a(htmlPage.o):/usr/local/src/conda/ucsc-hggoldgapgl-377/kent/src/lib/../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-hggoldgapgl-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + /opt/conda/conda-bld/ucsc-hggoldgapgl_1724781897900/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkweb.a(htmshell.o):/usr/local/src/conda/ucsc-hggoldgapgl-377/kent/src/lib/../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-hggoldgapgl-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + /opt/conda/conda-bld/ucsc-hggoldgapgl_1724781897900/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkweb.a(portimpl.o):/usr/local/src/conda/ucsc-hggoldgapgl-377/kent/src/lib/../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-hggoldgapgl-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + collect2: error: ld returned 1 exit status + make: *** [makefile:14: hgGoldGapGl] Error 1 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/ucsc-hggoldgapgl_1724781897900/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/ucsc-hgloadbed/build.sh b/recipes/ucsc-hgloadbed/build.sh index 6c0b79016fe23..62d56d66a98c7 100644 --- a/recipes/ucsc-hgloadbed/build.sh +++ b/recipes/ucsc-hgloadbed/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/makeDb/hgLoadBed && make) -cp bin/hgLoadBed "$PREFIX/bin" -chmod +x "$PREFIX/bin/hgLoadBed" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/makeDb/hgLoadBed && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/hgLoadBed "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/hgLoadBed" diff --git a/recipes/ucsc-hgloadbed/include.patch b/recipes/ucsc-hgloadbed/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-hgloadbed/include.patch +++ b/recipes/ucsc-hgloadbed/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-hgloadbed/meta.yaml b/recipes/ucsc-hgloadbed/meta.yaml index c14a6b24bfc5f..d10d7a94dec54 100644 --- a/recipes/ucsc-hgloadbed/meta.yaml +++ b/recipes/ucsc-hgloadbed/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-hgloadbed" %} {% set program = "hgLoadBed" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Load a generic bed file into database" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-hgloadchain/build.sh b/recipes/ucsc-hgloadchain/build.sh index 7733176a98e61..0836ef0a2b3a4 100644 --- a/recipes/ucsc-hgloadchain/build.sh +++ b/recipes/ucsc-hgloadchain/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/makeDb/hgLoadChain && make) -cp bin/hgLoadChain "$PREFIX/bin" -chmod +x "$PREFIX/bin/hgLoadChain" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/makeDb/hgLoadChain && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/hgLoadChain "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/hgLoadChain" diff --git a/recipes/ucsc-hgloadchain/include.patch b/recipes/ucsc-hgloadchain/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-hgloadchain/include.patch +++ b/recipes/ucsc-hgloadchain/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-hgloadchain/meta.yaml b/recipes/ucsc-hgloadchain/meta.yaml index a37db8bb33d55..b251f71789efa 100644 --- a/recipes/ucsc-hgloadchain/meta.yaml +++ b/recipes/ucsc-hgloadchain/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-hgloadchain" %} {% set program = "hgLoadChain" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Load a generic Chain file into database" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-hgloadmaf/build.sh b/recipes/ucsc-hgloadmaf/build.sh index 2ae0cbe492abd..6e858c951b003 100644 --- a/recipes/ucsc-hgloadmaf/build.sh +++ b/recipes/ucsc-hgloadmaf/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/makeDb/hgLoadMaf && make) -cp bin/hgLoadMaf "$PREFIX/bin" -chmod +x "$PREFIX/bin/hgLoadMaf" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/makeDb/hgLoadMaf && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/hgLoadMaf "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/hgLoadMaf" diff --git a/recipes/ucsc-hgloadmaf/include.patch b/recipes/ucsc-hgloadmaf/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-hgloadmaf/include.patch +++ b/recipes/ucsc-hgloadmaf/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-hgloadmaf/meta.yaml b/recipes/ucsc-hgloadmaf/meta.yaml index 19b53f7e81296..b16d0a55d7962 100644 --- a/recipes/ucsc-hgloadmaf/meta.yaml +++ b/recipes/ucsc-hgloadmaf/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-hgloadmaf" %} {% set program = "hgLoadMaf" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Load a maf file index into the database" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-hgloadnet/build.sh b/recipes/ucsc-hgloadnet/build.sh index afd005fbf3b31..44361aee149dc 100644 --- a/recipes/ucsc-hgloadnet/build.sh +++ b/recipes/ucsc-hgloadnet/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/makeDb/hgLoadNet && make) -cp bin/hgLoadNet "$PREFIX/bin" -chmod +x "$PREFIX/bin/hgLoadNet" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/makeDb/hgLoadNet && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/hgLoadNet "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/hgLoadNet" diff --git a/recipes/ucsc-hgloadnet/include.patch b/recipes/ucsc-hgloadnet/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-hgloadnet/include.patch +++ b/recipes/ucsc-hgloadnet/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-hgloadnet/meta.yaml b/recipes/ucsc-hgloadnet/meta.yaml index 29d2d37aa891a..34ae43d661357 100644 --- a/recipes/ucsc-hgloadnet/meta.yaml +++ b/recipes/ucsc-hgloadnet/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-hgloadnet" %} {% set program = "hgLoadNet" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Load a generic net file into database" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-hgloadout/build.sh b/recipes/ucsc-hgloadout/build.sh index bcbdfa0686952..19021359dacaf 100644 --- a/recipes/ucsc-hgloadout/build.sh +++ b/recipes/ucsc-hgloadout/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/makeDb/hgLoadOut && make) -cp bin/hgLoadOut "$PREFIX/bin" -chmod +x "$PREFIX/bin/hgLoadOut" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/makeDb/hgLoadOut && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/hgLoadOut "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/hgLoadOut" diff --git a/recipes/ucsc-hgloadout/include.patch b/recipes/ucsc-hgloadout/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-hgloadout/include.patch +++ b/recipes/ucsc-hgloadout/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-hgloadout/meta.yaml b/recipes/ucsc-hgloadout/meta.yaml index 589de17eb66f8..f1abed39bf9f8 100644 --- a/recipes/ucsc-hgloadout/meta.yaml +++ b/recipes/ucsc-hgloadout/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-hgloadout" %} {% set program = "hgLoadOut" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "load RepeatMasker .out files into database" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-hgloadoutjoined/build.sh b/recipes/ucsc-hgloadoutjoined/build.sh index 52f973bd6094f..1dd85c8321304 100644 --- a/recipes/ucsc-hgloadoutjoined/build.sh +++ b/recipes/ucsc-hgloadoutjoined/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/makeDb/hgLoadOutJoined && make) -cp bin/hgLoadOutJoined "$PREFIX/bin" -chmod +x "$PREFIX/bin/hgLoadOutJoined" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/makeDb/hgLoadOutJoined && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/hgLoadOutJoined "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/hgLoadOutJoined" diff --git a/recipes/ucsc-hgloadoutjoined/include.patch b/recipes/ucsc-hgloadoutjoined/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-hgloadoutjoined/include.patch +++ b/recipes/ucsc-hgloadoutjoined/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-hgloadoutjoined/meta.yaml b/recipes/ucsc-hgloadoutjoined/meta.yaml index 7a8f58d48adf8..530efb471e395 100644 --- a/recipes/ucsc-hgloadoutjoined/meta.yaml +++ b/recipes/ucsc-hgloadoutjoined/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-hgloadoutjoined" %} {% set program = "hgLoadOutJoined" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "load new style (2014) RepeatMasker .out files into database" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-hgloadsqltab/build.sh b/recipes/ucsc-hgloadsqltab/build.sh index 6b583d73e1561..943bf9b400cec 100644 --- a/recipes/ucsc-hgloadsqltab/build.sh +++ b/recipes/ucsc-hgloadsqltab/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/makeDb/hgLoadSqlTab && make) -cp bin/hgLoadSqlTab "$PREFIX/bin" -chmod +x "$PREFIX/bin/hgLoadSqlTab" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/makeDb/hgLoadSqlTab && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/hgLoadSqlTab "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/hgLoadSqlTab" diff --git a/recipes/ucsc-hgloadsqltab/include.patch b/recipes/ucsc-hgloadsqltab/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-hgloadsqltab/include.patch +++ b/recipes/ucsc-hgloadsqltab/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-hgloadsqltab/meta.yaml b/recipes/ucsc-hgloadsqltab/meta.yaml index a66bbbbb50a27..1ae390c3c6a3f 100644 --- a/recipes/ucsc-hgloadsqltab/meta.yaml +++ b/recipes/ucsc-hgloadsqltab/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-hgloadsqltab" %} {% set program = "hgLoadSqlTab" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Load table into database from SQL and text files." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-hgloadwiggle/build.sh b/recipes/ucsc-hgloadwiggle/build.sh index 8530d3cc9a930..5a8736a672f80 100644 --- a/recipes/ucsc-hgloadwiggle/build.sh +++ b/recipes/ucsc-hgloadwiggle/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/makeDb/hgLoadWiggle && make) -cp bin/hgLoadWiggle "$PREFIX/bin" -chmod +x "$PREFIX/bin/hgLoadWiggle" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/makeDb/hgLoadWiggle && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/hgLoadWiggle "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/hgLoadWiggle" diff --git a/recipes/ucsc-hgloadwiggle/include.patch b/recipes/ucsc-hgloadwiggle/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-hgloadwiggle/include.patch +++ b/recipes/ucsc-hgloadwiggle/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-hgloadwiggle/meta.yaml b/recipes/ucsc-hgloadwiggle/meta.yaml index 6859a90c405b5..e8e2571e9013b 100644 --- a/recipes/ucsc-hgloadwiggle/meta.yaml +++ b/recipes/ucsc-hgloadwiggle/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-hgloadwiggle" %} {% set program = "hgLoadWiggle" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Load a wiggle track definition into database" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-hgspeciesrna/build.sh b/recipes/ucsc-hgspeciesrna/build.sh index b6858f027c0a5..1af260d069942 100644 --- a/recipes/ucsc-hgspeciesrna/build.sh +++ b/recipes/ucsc-hgspeciesrna/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/hgSpeciesRna && make) -cp bin/hgSpeciesRna "$PREFIX/bin" -chmod +x "$PREFIX/bin/hgSpeciesRna" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/hgSpeciesRna && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/hgSpeciesRna "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/hgSpeciesRna" diff --git a/recipes/ucsc-hgspeciesrna/include.patch b/recipes/ucsc-hgspeciesrna/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-hgspeciesrna/include.patch +++ b/recipes/ucsc-hgspeciesrna/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-hgspeciesrna/meta.yaml b/recipes/ucsc-hgspeciesrna/meta.yaml index 5970a38722898..26e0337c640e6 100644 --- a/recipes/ucsc-hgspeciesrna/meta.yaml +++ b/recipes/ucsc-hgspeciesrna/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-hgspeciesrna" %} {% set program = "hgSpeciesRna" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Create fasta file with RNA from one species" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-hgsqldump/build.sh b/recipes/ucsc-hgsqldump/build.sh index 80671787650fb..dbee464b271c9 100644 --- a/recipes/ucsc-hgsqldump/build.sh +++ b/recipes/ucsc-hgsqldump/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/hgsqldump && make) -cp bin/hgsqldump "$PREFIX/bin" -chmod +x "$PREFIX/bin/hgsqldump" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/hgsqldump && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/hgsqldump "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/hgsqldump" diff --git a/recipes/ucsc-hgsqldump/include.patch b/recipes/ucsc-hgsqldump/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-hgsqldump/include.patch +++ b/recipes/ucsc-hgsqldump/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-hgsqldump/meta.yaml b/recipes/ucsc-hgsqldump/meta.yaml index 9b1ffe0672543..cf837117dbedc 100644 --- a/recipes/ucsc-hgsqldump/meta.yaml +++ b/recipes/ucsc-hgsqldump/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-hgsqldump" %} {% set program = "hgsqldump" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Execute mysqldump using passwords from .hg.conf" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-hgtrackdb/build.sh b/recipes/ucsc-hgtrackdb/build.sh index e1b8ac6e65c4f..106bc9b2835e1 100644 --- a/recipes/ucsc-hgtrackdb/build.sh +++ b/recipes/ucsc-hgtrackdb/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/makeDb/hgTrackDb && make) -cp bin/hgTrackDb "$PREFIX/bin" -chmod +x "$PREFIX/bin/hgTrackDb" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/makeDb/hgTrackDb && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/hgTrackDb "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/hgTrackDb" diff --git a/recipes/ucsc-hgtrackdb/build_failure.linux-64.yaml b/recipes/ucsc-hgtrackdb/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..1a5cc3996bd96 --- /dev/null +++ b/recipes/ucsc-hgtrackdb/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 4f8702f06ec982e425c34372c9753e61d8588e2d622c1c37d09bde19d1f58d12 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o quickLift.o -c quickLift.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o quickLiftChain.o -c quickLiftChain.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rankProp.o -c rankProp.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o refLink.o -c refLink.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o refSeqStatus.o -c refSeqStatus.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rikenCluster.o -c rikenCluster.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rmskAlign.o -c rmskAlign.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rmskJoined.o -c rmskJoined.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rmskOut.o -c rmskOut.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rmskOut2.o -c rmskOut2.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rnaGene.o -c rnaGene.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sage.o -c sage.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sageCounts.o -c sageCounts.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o samAlignment.o -c samAlignment.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sample.o -c sample.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sanger22extra.o -c sanger22extra.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o scoredRef.o -c scoredRef.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o seqWindow.o -c seqWindow.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o snakeUi.o -c snakeUi.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o snp.o -c snp.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o snpExceptions.o -c snpExceptions.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o soTerm.o -c soTerm.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o spDb.o -c spDb.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sqlProg.o -c sqlProg.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sqlSanity.o -c sqlSanity.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o stanMad.o -c stanMad.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o stsAlias.o -c stsAlias.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o stsInfo2.o -c stsInfo2.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o stsMap.o -c stsMap.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o stsMarker.o -c stsMarker.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o tableStatus.o -c tableStatus.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o tablesTables.o -c tablesTables.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o tagRepo.o -c tagRepo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o tfbsCons.o -c tfbsCons.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o tigrCmrGene.o -c tigrCmrGene.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o traceInfo.o -c traceInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackDb.o -c trackDb.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackDbCache.o -c trackDbCache.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackDbCustom.o -c trackDbCustom.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackHub.o -c trackHub.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackVersion.o -c trackVersion.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trashDir.o -c trashDir.c + trackDbCustom.c: In function 'trackDbInclude': + trackDbCustom.c:294:5: warning: 'splitPath' accessing 512 bytes in a region of size 256 [-Wstringop-overflow=] + 294 | splitPath(raFile, incFile, NULL, NULL); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + trackDbCustom.c:294:5: note: referencing argument 2 of type 'char[512]' + trackDbCustom.c:294:5: note: referencing argument 3 of type 'char[128]' + trackDbCustom.c:294:5: note: referencing argument 4 of type 'char[64]' + In file included from trackDbCustom.c:9: + ../../inc/common.h:1139:6: note: in a call to function 'splitPath' + 1139 | void splitPath(char *path, char dir[PATH_LEN], char name[FILENAME_LEN], + | ^~~~~~~~~ + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txAliDiff.o -c txAliDiff.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txCluster.o -c txCluster.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txCommon.o -c txCommon.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txEdgeBed.o -c txEdgeBed.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txGraph.o -c txGraph.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txInfo.o -c txInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txRnaAccs.o -c txRnaAccs.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o variantProjector.o -c variantProjector.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o vcfUi.o -c vcfUi.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o vegaInfo.o -c vegaInfo.c + sed -e 's/\\/\\\\/g; s/"/\\"/g; s/^/"/; s/$/\\n"/;' jWestHeader.html > jWestHeader.h + sed -e 's/\\/\\\\/g; s/"/\\"/g; s/^/"/; s/$/\\n"/;' jWestBanner.html > jWestBanner.h + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wigAsciiToBinary.o -c wigAsciiToBinary.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wigDataStream.o -c wigDataStream.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wiggle.o -c wiggle.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wiggleCart.o -c wiggleCart.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wiggleUtils.o -c wiggleUtils.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wikiLink.o -c wikiLink.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o bigRmskAlignBed.o -c bigRmskAlignBed.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o bigRmskBed.o -c bigRmskBed.c + mkdir -p ../../lib/x86_64 + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o web.o -c web.c + ar rcus ../../lib/x86_64/jkhgap.a adjacency.o affyPairs.o agpFrag.o agpGap.o alignSeqSizes.o altGraphX.o asmAlias.o asmEquivalent.o asmSummary.o autoUpgrade.o axtInfo.o barChartBed.o barChartCategory.o barChartUi.o bed.o bed12Source.o bedDetail.o bigBedFind.o bigBedLabel.o bigChain.o bigDbSnp.o bigGenePred.o bigLink.o bigPsl.o blastTab.o borf.o botDelay.o cart.o cartDb.o cdsEvidence.o cdsOrtho.o cdsPick.o cgapSage/cgapSage.o cgapSage/cgapSageLib.o cgiApoptosis.o chainCart.o chainDb.o chainLink.o chainNet.o chainNetDbLoad.o chromAlias.o chromBins.o chromGraph.o chromGraphFactory.o chromInfo.o chromInserts.o chromKeeper.o clonePos.o cpgIsland.o ctgPos.o customAdjacency.o customComposite.o customFactory.o customPp.o customTrack.o cv.o cytoBand.o dbDb.o decoration.o decoratorUi.o defaultDb.o dnaMotifSql.o dupTrack.o encode/encodeErge.o encode/encodeErgeHssCellLines.o encode/encodeExp.o encode/encodeHapMapAlleleFreq.o encode/encodeIndels.o encode/encodePeak.o encode/encodeRegionInfoCustom.o encode/encodeRna.o encode/encodeStanfordPromoters.o encode/encodeStanfordPromotersAverage.o encode/peptideMapping.o encode/wgEncodeGencodeAnnotationRemark.o encode/wgEncodeGencodeAttrs.o encode/wgEncodeGencodeEntrezGene.o encode/wgEncodeGencodeExonSupport.o encode/wgEncodeGencodeGeneSource.o encode/wgEncodeGencodeGeneSymbol.o encode/wgEncodeGencodePdb.o encode/wgEncodeGencodePubMed.o encode/wgEncodeGencodeRefSeq.o encode/wgEncodeGencodeTag.o encode/wgEncodeGencodeTranscriptSource.o encode/wgEncodeGencodeTranscriptSupport.o encode/wgEncodeGencodeTranscriptionSupportLevel.o encode/wgEncodeGencodeUniProt.o encode3/encode3Valid.o estOrientInfo.o expData.o exportedDataHubs.o expRecord.o facetField.o facetedTable.o featureBits.o findKGAlias.o fakeCurl.o findKGProtAlias.o gbSeq.o gbExtFile.o gcPercent.o genark.o genbank.o genbankBlackList.o gencodeTracksCommon.o gencodeAttrs.o gencodeToRefSeq.o geneGraph.o genePred.o genePredReader.o geoMirror.o ggCluster.o ggDump.o ggGraph.o ggMrnaAli.o ggTypes.o glDbRep.o googleAnalytics.o gpFx.o grp.o gtexAse.o gtexDonor.o gtexGeneBed.o gtexInfo.o gtexSample.o gtexSampleData.o gtexTissue.o gtexTissueMedian.o gtexUi.o hCommon.o hPrint.o hVarSubst.o hapmapAllelesOrtho.o hapmapPhaseIIISummary.o hapmapSnps.o hdb.o hgColors.o hgConfig.o hgFind.o hgFindSpec.o hgFindSpecCustom.o hgHgvs.o hgHgvsParse.o hgMaf.o hgRelate.o hic.o hicUi.o hubConnect.o hubPublic.o hubSearchText.o hui.o imageClone.o indelShift.o interact.o interactUi.o itemAttr.o jksql.o joiner.o jsHelper.o kgAlias.o kgProtAlias.o kgXref.o knownInfo.o knownMore.o lav.o lfs.o liftOver.o liftOverChain.o liftUp.o longRange.o lrg.o lsSnpPdb.o mafFrames.o mafGene.o mafSummary.o makeItemsItem.o mdb.o microarray.o minChromSize.o namedSessionDb.o netAlign.o netCart.o pepPred.o pgPhenoAssoc.o pgSnp.o pslReader.o qaSeq.o quickLift.o quickLiftChain.o rankProp.o refLink.o refSeqStatus.o rikenCluster.o rmskAlign.o rmskJoined.o rmskOut.o rmskOut2.o rnaGene.o sage.o sageCounts.o samAlignment.o sample.o sanger22extra.o scoredRef.o seqWindow.o snakeUi.o snp.o snpExceptions.o soTerm.o spDb.o sqlProg.o sqlSanity.o stanMad.o stsAlias.o stsInfo2.o stsMap.o stsMarker.o tableStatus.o tablesTables.o tagRepo.o tfbsCons.o tigrCmrGene.o traceInfo.o trackDb.o trackDbCache.o trackDbCustom.o trackHub.o trackVersion.o trashDir.o txAliDiff.o txCluster.o txCommon.o txEdgeBed.o txGraph.o txInfo.o txRnaAccs.o variantProjector.o vcfUi.o vegaInfo.o web.o wigAsciiToBinary.o wigDataStream.o wiggle.o wiggleCart.o wiggleUtils.o wikiLink.o bigRmskAlignBed.o bigRmskBed.o + cd kent/src/hg/makeDb/hgTrackDb + make CC=/opt/conda/conda-bld/ucsc-hgtrackdb_1724797961927/_build_env/bin/x86_64-conda-linux-gnu-cc CXX= 'CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /opt/conda/conda-bld/ucsc-hgtrackdb_1724797961927/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/include -fdebug-prefix-map=/opt/conda/conda-bld/ucsc-hgtrackdb_1724797961927/work=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=/opt/conda/conda-bld/ucsc-hgtrackdb_1724797961927/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,/opt/conda/conda-bld/ucsc-hgtrackdb_1724797961927/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib -Wl,-rpath-link,/opt/conda/conda-bld/ucsc-hgtrackdb_1724797961927/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib -L/opt/conda/conda-bld/ucsc-hgtrackdb_1724797961927/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib -L/opt/conda/conda-bld/ucsc-hgtrackdb_1724797961927/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib' 'CXXFLAGS= -I/opt/conda/conda-bld/ucsc-hgtrackdb_1724797961927/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/include -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,/opt/conda/conda-bld/ucsc-hgtrackdb_1724797961927/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib -Wl,-rpath-link,/opt/conda/conda-bld/ucsc-hgtrackdb_1724797961927/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib -L/opt/conda/conda-bld/ucsc-hgtrackdb_1724797961927/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib -L/opt/conda/conda-bld/ucsc-hgtrackdb_1724797961927/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib' -j 4 + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgtrackdb-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -DUSE_HIC -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -o hgTrackDb.o -c hgTrackDb.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -o $SRC_DIR/bin/hgTrackDb hgTrackDb.o ../../../lib/x86_64/jkhgap.a ../../../lib/x86_64/jkweb.a -L$PREFIX/lib -lmysqlclient -lstdc -lrt -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -lpthread $PREFIX/lib/libssl.a $PREFIX/lib/libcrypto.a -ldl ../../../htslib/libhts.a -L$PREFIX/lib -lpng16 -lm -lz + /opt/conda/conda-bld/ucsc-hgtrackdb_1724797961927/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkweb.a(knetUdc.o): in function knetUdcInstall': + /usr/local/src/conda/ucsc-hgtrackdb-469/kent/src/lib/knetUdc.c:80: undefined reference to knet_init_alt' + collect2: error: ld returned 1 exit status + make: *** [../../../inc/userApp.mk:32: /opt/conda/conda-bld/ucsc-hgtrackdb_1724797961927/work/bin/hgTrackDb] Error 1 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/ucsc-hgtrackdb_1724797961927/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/ucsc-hgtrackdb/include.patch b/recipes/ucsc-hgtrackdb/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-hgtrackdb/include.patch +++ b/recipes/ucsc-hgtrackdb/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-hgtrackdb/meta.yaml b/recipes/ucsc-hgtrackdb/meta.yaml index dc17c36ddfcd2..551b65375b5f2 100644 --- a/recipes/ucsc-hgtrackdb/meta.yaml +++ b/recipes/ucsc-hgtrackdb/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-hgtrackdb" %} {% set program = "hgTrackDb" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Create trackDb table from text files." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-hgvstovcf/build_failure.linux-64.yaml b/recipes/ucsc-hgvstovcf/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..5246ca5955a05 --- /dev/null +++ b/recipes/ucsc-hgvstovcf/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: e623fe095996910ce2886e5861e4c5768349d26229f9006821887f1c8468ad5d # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + trackDbCustom.c:294:5: note: referencing argument 2 of type 'char[512]' + trackDbCustom.c:294:5: note: referencing argument 3 of type 'char[128]' + trackDbCustom.c:294:5: note: referencing argument 4 of type 'char[64]' + In file included from trackDbCustom.c:8: + ../../inc/common.h:1104:6: note: in a call to function 'splitPath' + 1104 | void splitPath(char *path, char dir[PATH_LEN], char name[FILENAME_LEN], + | ^~~~~~~~~ + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackHub.o -c trackHub.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackLayout.o -c trackLayout.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackTable.o -c trackTable.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackVersion.o -c trackVersion.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trashDir.o -c trashDir.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o transRegCode.o -c transRegCode.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o transRegCodeCondition.o -c transRegCodeCondition.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o transRegCodeProbe.o -c transRegCodeProbe.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txAliDiff.o -c txAliDiff.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txCluster.o -c txCluster.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txCommon.o -c txCommon.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txEdgeBed.o -c txEdgeBed.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txEdgeOrtho.o -c txEdgeOrtho.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txGraph.o -c txGraph.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txInfo.o -c txInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txRnaAccs.o -c txRnaAccs.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o ucscRetroInfo.o -c ucscRetroInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o ucscRetroOrtho.o -c ucscRetroOrtho.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o validateGisaid.o -c validateGisaid.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o variant.o -c variant.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o variantProjector.o -c variantProjector.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o vcfUi.o -c vcfUi.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o vegaInfo.o -c vegaInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o vegaInfoZfish.o -c vegaInfoZfish.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o visiGene.o -c visiGene.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o vntr.o -c vntr.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wabAli.o -c wabAli.c + sed -e 's/\\/\\\\/g; s/"/\\"/g; s/^/"/; s/$/\\n"/;' jWestHeader.html > jWestHeader.h + sed -e 's/\\/\\\\/g; s/"/\\"/g; s/^/"/; s/$/\\n"/;' jWestBanner.html > jWestBanner.h + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o web.o -c web.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o ncRna.o -c ncRna.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wgRna.o -c wgRna.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wigAsciiToBinary.o -c wigAsciiToBinary.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wigDataStream.o -c wigDataStream.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wiggle.o -c wiggle.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wiggleCart.o -c wiggleCart.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wiggleUtils.o -c wiggleUtils.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wikiLink.o -c wikiLink.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wikiTrack.o -c wikiTrack.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o yaleGencodeAssoc.o -c yaleGencodeAssoc.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o zdobnovSynt.o -c zdobnovSynt.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o oreganno.o -c oreganno.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o oregannoUi.o -c oregannoUi.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o gvUi.o -c gvUi.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o gv.o -c gv.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o omicia.o -c omicia.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o protVar.o -c protVar.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o pgSnp.o -c pgSnp.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o alignInfo.o -c alignInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o cddInfo.o -c cddInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o loweutils.o -c loweutils.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o cddDesc.o -c cddDesc.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o arCOGs.o -c arCOGs.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o arcogdesc.o -c arcogdesc.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o geneTree.o -c geneTree.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o megablastInfo.o -c megablastInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o pgPhenoAssoc.o -c pgPhenoAssoc.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o pgSiftPred.o -c pgSiftPred.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o pgPolyphenPred.o -c pgPolyphenPred.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o userRegions.o -c userRegions.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o variome.o -c variome.c + ar rcus ../../lib/x86_64/jkhgap.a acemblyClass.o adjacency.o affyAllExonProbe.o affyAtlas.o affy10KDetails.o affy120KDetails.o affyOffset.o affyPairs.o agp.o agpFrag.o agpGap.o alignSeqSizes.o altGraph.o altGraphX.o ancientRref.o annoFormatVep.o annoGratorGpVar.o annoGrateWigDb.o annoStreamDb.o annoStreamDbFactorSource.o annoStreamDbPslPlus.o annoStreamWig.o api.o atomDb.o autoUpgrade.o axtInfo.o axtLib.o bactigPos.o hgBam.o barChartBed.o barChartCategory.o barChartUi.o barChartData.o barChartSample.o baseMaskCommon.o bdgpExprLink.o bdgpGeneInfo.o bed.o bed5FloatScore.o bed5Pval.o bed6FloatScore.o bed8Attrs.o bed12Source.o bed12wSeq.o bedCart.o bgiGeneInfo.o bgiGeneSnp.o bgiSnp.o bigBedFind.o bigBedLabel.o bigGenePred.o bigPsl.o bigTransMap.o bioImage.o blastTab.o blastzNet.o blatServers.o borf.o borkPseudoHom.o botDelay.o cart.o cartDb.o cartJson.o cartTrackDb.o cdsEvidence.o cdsOrtho.o cdsPick.o cdsSpec.o ccdsInfo.o ccdsNotes.o ccdsGeneMap.o celeraCoverage.o celeraDupPositive.o cgapSage/cgapSage.o cgapSage/cgapSageLib.o cgh.o chainCart.o chainDb.o chainLink.o chainNet.o chainNetDbLoad.o chicken13kInfo.o chromBins.o chromAlias.o chr18deletions.o chromGraph.o chromGraphFactory.o chromInfo.o chromInserts.o chromKeeper.o clonePos.o codeBlast.o codeBlastScore.o cogs.o cogsxra.o columnInfo.o contigAcc.o coordConv.o cnpIafrate.o cnpIafrate2.o cnpLocke.o cnpRedon.o cnpSebat.o cnpSebat2.o cnpSharp2.o cnpSharpCutoff.o cnpSharpSample.o cnpSharp.o cpgIsland.o cpgIslandExt.o ctgPos.o ctgPos2.o customComposite.o bedDetail.o cgiApoptosis.o customAdjacency.o customFactory.o customPp.o customTrack.o cutter.o cv.o cytoBand.o dbDb.o dbRIP.o dbSnpRs.o defaultDb.o delConrad2.o delHinds2.o dgv.o dgvPlus.o dless.o dnaMotifSql.o dnaMarkovSql.o dnaProbe.o dv.o dvBed.o dvXref2.o easyGene.o ec.o ecCode.o ecAttribute.o ecAttributeCode.o encode/encodeErge.o encode/encodeErgeHssCellLines.o encode/encodeHapMapAlleleFreq.o encode/encodeIndels.o encode/encodePeak.o encode/encodeRegionInfo.o encode/encodeRegionInfoCustom.o encode/encodeRna.o encode/encodeStanfordPromoters.o encode/encodeStanfordPromotersAverage.o encode/pairedTagAlign.o encode/peptideMapping.o encode/tagAlign.o encode/wgEncodeGencodeAttrs.o encode/wgEncodeGencodeExonSupport.o encode/wgEncodeGencodeEntrezGene.o encode/wgEncodeGencodeTag.o encode/wgEncodeGencodeGeneSymbol.o encode/wgEncodeGencodePdb.o encode/wgEncodeGencodePubMed.o encode/wgEncodeGencodeRefSeq.o encode/wgEncodeGencodeGeneSource.o encode/wgEncodeGencodeTranscriptSource.o encode/wgEncodeGencodeTranscriptSupport.o encode/wgEncodeGencodeTranscriptionSupportLevel.o encode/wgEncodeGencodeUniProt.o encode/wgEncodeGencodePolyAFeature.o encode/wgEncodeGencodeAnnotationRemark.o encode/wgEncodeCell.o encode/encodeExp.o encode3/encode2Manifest.o encode3/encode3Valid.o ensFace.o ensInfo.o ensPhusionBlast.o ensXRefZfish.o est3.o estOrientInfo.o estPair.o exoFish.o expData.o expRecord.o exprBed.o facetField.o factorSource.o fbTables.o featureBits.o fileUi.o findKGAlias.o findKGProtAlias.o fishClones.o flyBase2004Xref.o flyBaseSwissProt.o flyreg.o flyreg2.o gbExtFile.o gbWarn.o gbMiscDiff.o gbProtAnn.o gcPercent.o gbSeq.o genbank.o genbankBlackList.o gencodeGeneClass.o gencodeIntron.o genMapDb.o geneBands.o geneCheck.o geneCheckDetails.o geneCheckWidget.o geneGraph.o genePred.o genePredReader.o geneSimilarities.o genoLay.o genomeRangeTreeFile.o genomicDups.o genomicSuperDups.o geoMirror.o ggCluster.o ggDbIo.o ggDump.o ggGraph.o ggMrnaAli.o ggTypes.o glDbRep.o goa.o goaPart.o googleAnalytics.o gpFx.o growthCondition.o grp.o gtexAse.o gtexBoxplot.o gtexEqtlCluster.o gtexInfo.o gtexDonor.o gtexGeneBed.o gtexSample.o gtexSampleData.o gtexTissue.o gtexTissueData.o gtexTissueMedian.o gtexUi.o gwasCatalog.o hAnno.o haplotypes.o hapmapAllelesOrtho.o hapmapAllelesSummary.o hapmapPhaseIIISummary.o hapmapSnps.o hapmapSnpsCombined.o hashJoin.o hCommon.o hCytoBand.o hdb.o hgColors.o hgConfig.o hgExp.o hgFind.o hgFindSpec.o hgFindSpecCustom.o hgHgvs.o hgHgvsParse.o hgGene.o hgMaf.o hgRelate.o hgSeq.o hgdpGeo.o hPrint.o hVarSubst.o hvGfx.o HInv.o hubConnect.o hubSearchText.o hui.o humanParalog.o imageClone.o indelShift.o interact.o interactUi.o isochores.o ispyTables.o itemAttr.o itemConf.o itemDetailsHtml.o jalview.o jaxOrtholog.o jaxQTL.o jaxQTL3.o jksql.o joiner.o jsHelper.o kg1ToKg2.o jgiGene.o joinMixer.o kgAlias.o kgColor.o kgProtAlias.o kgXref.o knownInfo.o knownMore.o knownToSuper.o lav.o ld.o ld2.o lfs.o liftOver.o liftOverChain.o liftUp.o llaInfo.o longRange.o lrg.o lsSnpPdb.o lsSnpPdbChimera.o mafFrames.o mafGene.o mafSummary.o makeItemsItem.o mammalPsg.o mapSts.o mathWig.o mcnBreakpoints.o mdb.o metaChromGraph.o microarray.o minChromSize.o minGeneInfo.o mrnaMisMatch.o mouseOrtho.o mouseSyn.o mouseSynWhd.o mysqlTableStatus.o ncbiRefLink.o ncbiRefSeqLink.o netAlign.o netCart.o nonCodingUi.o omimTitle.o ooUtils.o orthoAlleles.o pal.o pbStamp.o pcrResult.o pepPred.o peptideAtlasPeptide.o plasEndPairs.o polyGenotype.o protFeat.o pscreen.o pseudoGeneLink.o pslReader.o pslWScore.o putaInfo.o qaSeq.o rangeTreeFile.o rankProp.o recombRate.o recombRateRat.o recombRateMouse.o refLink.o refSeqStatus.o rgdQtl.o riken.o rhMapZfishInfo.o rikenBest.o rikenCluster.o rmskOut.o rmskAlign.o rmskJoined.o rmskOut2.o rnaFold.o rnaGene.o rnaGroup.o rnaHybridization.o rnaPLFold.o tRNAs.o gbRNAs.o snoRNAs.o lowelabPfamHit.o lowelabArkinOperonScore.o lowelabTIGROperonScore.o rnaSecStr.o tfbsConsFactors.o roughAli.o transMapStuff.o transMapInfo.o transMapGene.o transMapSrc.o sage.o sageCounts.o sageExp.o samAlignment.o sample.o sanger22extra.o sangerGene.o sangerGeneToWBGeneID.o sargassoSeaXra.o scopDes.o scoredRef.o search.o seqWindow.o sessionThumbnail.o sgdAbundance.o sgdClone.o sgdDescription.o sgdOther.o simpleNucDiff.o simpleRepeat.o snakeUi.o snp.o snp125.o snp125CodingCoordless.o snp132Ext.o snpExceptions.o snpFasta.o snpMap.o snpTmp.o snpUi.o snp125Exceptions.o snp125Ui.o softPromoter.o softberryHom.o soTerm.o spDb.o splignAlign.o sqlSanity.o stanMad.o stsAlias.o stsInfo.o stsInfo2.o stsInfoMouse.o stsInfoMouseNew.o stsInfoRat.o stsMap.o stsMapMouse.o stsMapMouseNew.o stsMapRat.o stsMarker.o suggest.o switchDbTss.o synMap.o synteny100000.o syntenyBerk.o syntenySanger.o sqlProg.o tfbsCons.o tfbsConsSites.o tablesTables.o tableDescriptions.o tableStatus.o targetDb.o tfbsConsMap.o tagRepo.o taxonDivision.o taxonGeneticCode.o taxonName.o taxonNode.o taxonXref.o tigrCmrGene.o tigrOperon.o tilingPath.o traceInfo.o trackDb.o trackDbCustom.o trackHub.o trackLayout.o trackTable.o trackVersion.o trashDir.o transRegCode.o transRegCodeCondition.o transRegCodeProbe.o txAliDiff.o txCluster.o txCommon.o txEdgeBed.o txEdgeOrtho.o txGraph.o txInfo.o txRnaAccs.o ucscRetroInfo.o ucscRetroOrtho.o validateGisaid.o variant.o variantProjector.o vcfUi.o vegaInfo.o vegaInfoZfish.o visiGene.o vntr.o wabAli.o web.o ncRna.o wgRna.o wigAsciiToBinary.o wigDataStream.o wiggle.o wiggleCart.o wiggleUtils.o wikiLink.o wikiTrack.o yaleGencodeAssoc.o zdobnovSynt.o oreganno.o oregannoUi.o gvUi.o gv.o omicia.o protVar.o pgSnp.o alignInfo.o cddInfo.o loweutils.o cddDesc.o arCOGs.o arcogdesc.o geneTree.o megablastInfo.o pgPhenoAssoc.o pgSiftPred.o pgPolyphenPred.o userRegions.o variome.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hgvstovcf-377 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../../htslib -I $PREFIX/include -I/include -I$PREFIX/include/libpng16 -o hgvsToVcf.o -c hgvsToVcf.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -o $SRC_DIR/bin/hgvsToVcf hgvsToVcf.o ../../../lib/x86_64/jkhgap.a ../../../lib/x86_64/jkweb.a -L$PREFIX/lib -lmysqlclient -lstdc -lrt -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -lpthread -lssl -lcrypto ../../../htslib/libhts.a -L$PREFIX/lib -lpng16 -lm -lz + /opt/conda/conda-bld/ucsc-hgvstovcf_1724784085089/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkhgap.a(trackHub.o):/usr/local/src/conda/ucsc-hgvstovcf-377/kent/src/hg/lib/../../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-hgvstovcf-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + /opt/conda/conda-bld/ucsc-hgvstovcf_1724784085089/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkhgap.a(web.o):/usr/local/src/conda/ucsc-hgvstovcf-377/kent/src/hg/lib/../../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-hgvstovcf-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + /opt/conda/conda-bld/ucsc-hgvstovcf_1724784085089/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkhgap.a(wikiLink.o):/usr/local/src/conda/ucsc-hgvstovcf-377/kent/src/hg/lib/../../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-hgvstovcf-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + /opt/conda/conda-bld/ucsc-hgvstovcf_1724784085089/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkhgap.a(cart.o):/usr/local/src/conda/ucsc-hgvstovcf-377/kent/src/hg/lib/../../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-hgvstovcf-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + /opt/conda/conda-bld/ucsc-hgvstovcf_1724784085089/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkhgap.a(hPrint.o):/usr/local/src/conda/ucsc-hgvstovcf-377/kent/src/hg/lib/../../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-hgvstovcf-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + /opt/conda/conda-bld/ucsc-hgvstovcf_1724784085089/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkweb.a(bamFile.o):/usr/local/src/conda/ucsc-hgvstovcf-377/kent/src/lib/../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-hgvstovcf-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + /opt/conda/conda-bld/ucsc-hgvstovcf_1724784085089/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkweb.a(cheapcgi.o):/usr/local/src/conda/ucsc-hgvstovcf-377/kent/src/lib/../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-hgvstovcf-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + /opt/conda/conda-bld/ucsc-hgvstovcf_1724784085089/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkweb.a(htmlPage.o):/usr/local/src/conda/ucsc-hgvstovcf-377/kent/src/lib/../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-hgvstovcf-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + /opt/conda/conda-bld/ucsc-hgvstovcf_1724784085089/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkweb.a(htmshell.o):/usr/local/src/conda/ucsc-hgvstovcf-377/kent/src/lib/../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-hgvstovcf-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + /opt/conda/conda-bld/ucsc-hgvstovcf_1724784085089/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkweb.a(portimpl.o):/usr/local/src/conda/ucsc-hgvstovcf-377/kent/src/lib/../inc/htmshell.h:163: multiple definition of htmlRecover'; ../../../lib/x86_64/jkhgap.a(hui.o):/usr/local/src/conda/ucsc-hgvstovcf-377/kent/src/hg/lib/../../inc/htmshell.h:163: first defined here + collect2: error: ld returned 1 exit status + make: *** [../../../inc/userApp.mk:31: /opt/conda/conda-bld/ucsc-hgvstovcf_1724784085089/work/bin/hgvsToVcf] Error 1 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/ucsc-hgvstovcf_1724784085089/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/ucsc-htmlcheck/build.sh b/recipes/ucsc-htmlcheck/build.sh index b99b826297c80..10020a3222df5 100644 --- a/recipes/ucsc-htmlcheck/build.sh +++ b/recipes/ucsc-htmlcheck/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/htmlCheck && make) -cp bin/htmlCheck "$PREFIX/bin" -chmod +x "$PREFIX/bin/htmlCheck" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/htmlCheck && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/htmlCheck "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/htmlCheck" diff --git a/recipes/ucsc-htmlcheck/include.patch b/recipes/ucsc-htmlcheck/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-htmlcheck/include.patch +++ b/recipes/ucsc-htmlcheck/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-htmlcheck/meta.yaml b/recipes/ucsc-htmlcheck/meta.yaml index 2fb806db88e37..edc5c0b821f24 100644 --- a/recipes/ucsc-htmlcheck/meta.yaml +++ b/recipes/ucsc-htmlcheck/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-htmlcheck" %} {% set program = "htmlCheck" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Do a little reading and verification of html file" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-hubcheck/build.sh b/recipes/ucsc-hubcheck/build.sh index f680c4c42c14b..42f264921d821 100644 --- a/recipes/ucsc-hubcheck/build.sh +++ b/recipes/ucsc-hubcheck/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/utils/hubCheck && make) -cp bin/hubCheck "$PREFIX/bin" -chmod +x "$PREFIX/bin/hubCheck" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/hubCheck && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/hubCheck "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/hubCheck" diff --git a/recipes/ucsc-hubcheck/build_failure.linux-64.yaml b/recipes/ucsc-hubcheck/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..b57fb59a51175 --- /dev/null +++ b/recipes/ucsc-hubcheck/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 5f43f332bdb133a6b645f4a426f312cc7de49c205454fad3f075e2b4cd58541c # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o quickLift.o -c quickLift.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o quickLiftChain.o -c quickLiftChain.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rankProp.o -c rankProp.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o refLink.o -c refLink.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o refSeqStatus.o -c refSeqStatus.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rikenCluster.o -c rikenCluster.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rmskAlign.o -c rmskAlign.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rmskJoined.o -c rmskJoined.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rmskOut.o -c rmskOut.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rmskOut2.o -c rmskOut2.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o rnaGene.o -c rnaGene.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sage.o -c sage.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sageCounts.o -c sageCounts.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o samAlignment.o -c samAlignment.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sample.o -c sample.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sanger22extra.o -c sanger22extra.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o scoredRef.o -c scoredRef.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o seqWindow.o -c seqWindow.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o snakeUi.o -c snakeUi.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o snp.o -c snp.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o snpExceptions.o -c snpExceptions.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o soTerm.o -c soTerm.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o spDb.o -c spDb.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sqlProg.o -c sqlProg.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o sqlSanity.o -c sqlSanity.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o stanMad.o -c stanMad.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o stsAlias.o -c stsAlias.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o stsInfo2.o -c stsInfo2.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o stsMap.o -c stsMap.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o stsMarker.o -c stsMarker.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o tableStatus.o -c tableStatus.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o tablesTables.o -c tablesTables.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o tagRepo.o -c tagRepo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o tfbsCons.o -c tfbsCons.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o tigrCmrGene.o -c tigrCmrGene.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o traceInfo.o -c traceInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackDb.o -c trackDb.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackDbCache.o -c trackDbCache.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackDbCustom.o -c trackDbCustom.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackHub.o -c trackHub.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trackVersion.o -c trackVersion.c + trackDbCustom.c: In function 'trackDbInclude': + trackDbCustom.c:294:5: warning: 'splitPath' accessing 512 bytes in a region of size 256 [-Wstringop-overflow=] + 294 | splitPath(raFile, incFile, NULL, NULL); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + trackDbCustom.c:294:5: note: referencing argument 2 of type 'char[512]' + trackDbCustom.c:294:5: note: referencing argument 3 of type 'char[128]' + trackDbCustom.c:294:5: note: referencing argument 4 of type 'char[64]' + In file included from trackDbCustom.c:9: + ../../inc/common.h:1139:6: note: in a call to function 'splitPath' + 1139 | void splitPath(char *path, char dir[PATH_LEN], char name[FILENAME_LEN], + | ^~~~~~~~~ + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o trashDir.o -c trashDir.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txAliDiff.o -c txAliDiff.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txCluster.o -c txCluster.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txCommon.o -c txCommon.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txEdgeBed.o -c txEdgeBed.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txGraph.o -c txGraph.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txInfo.o -c txInfo.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o txRnaAccs.o -c txRnaAccs.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o variantProjector.o -c variantProjector.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o vcfUi.o -c vcfUi.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o vegaInfo.o -c vegaInfo.c + sed -e 's/\\/\\\\/g; s/"/\\"/g; s/^/"/; s/$/\\n"/;' jWestHeader.html > jWestHeader.h + sed -e 's/\\/\\\\/g; s/"/\\"/g; s/^/"/; s/$/\\n"/;' jWestBanner.html > jWestBanner.h + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wigAsciiToBinary.o -c wigAsciiToBinary.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wigDataStream.o -c wigDataStream.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wiggle.o -c wiggle.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wiggleCart.o -c wiggleCart.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wiggleUtils.o -c wiggleUtils.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o wikiLink.o -c wikiLink.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o bigRmskAlignBed.o -c bigRmskAlignBed.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o bigRmskBed.o -c bigRmskBed.c + mkdir -p ../../lib/x86_64 + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -I$PREFIX/include -o web.o -c web.c + ar rcus ../../lib/x86_64/jkhgap.a adjacency.o affyPairs.o agpFrag.o agpGap.o alignSeqSizes.o altGraphX.o asmAlias.o asmEquivalent.o asmSummary.o autoUpgrade.o axtInfo.o barChartBed.o barChartCategory.o barChartUi.o bed.o bed12Source.o bedDetail.o bigBedFind.o bigBedLabel.o bigChain.o bigDbSnp.o bigGenePred.o bigLink.o bigPsl.o blastTab.o borf.o botDelay.o cart.o cartDb.o cdsEvidence.o cdsOrtho.o cdsPick.o cgapSage/cgapSage.o cgapSage/cgapSageLib.o cgiApoptosis.o chainCart.o chainDb.o chainLink.o chainNet.o chainNetDbLoad.o chromAlias.o chromBins.o chromGraph.o chromGraphFactory.o chromInfo.o chromInserts.o chromKeeper.o clonePos.o cpgIsland.o ctgPos.o customAdjacency.o customComposite.o customFactory.o customPp.o customTrack.o cv.o cytoBand.o dbDb.o decoration.o decoratorUi.o defaultDb.o dnaMotifSql.o dupTrack.o encode/encodeErge.o encode/encodeErgeHssCellLines.o encode/encodeExp.o encode/encodeHapMapAlleleFreq.o encode/encodeIndels.o encode/encodePeak.o encode/encodeRegionInfoCustom.o encode/encodeRna.o encode/encodeStanfordPromoters.o encode/encodeStanfordPromotersAverage.o encode/peptideMapping.o encode/wgEncodeGencodeAnnotationRemark.o encode/wgEncodeGencodeAttrs.o encode/wgEncodeGencodeEntrezGene.o encode/wgEncodeGencodeExonSupport.o encode/wgEncodeGencodeGeneSource.o encode/wgEncodeGencodeGeneSymbol.o encode/wgEncodeGencodePdb.o encode/wgEncodeGencodePubMed.o encode/wgEncodeGencodeRefSeq.o encode/wgEncodeGencodeTag.o encode/wgEncodeGencodeTranscriptSource.o encode/wgEncodeGencodeTranscriptSupport.o encode/wgEncodeGencodeTranscriptionSupportLevel.o encode/wgEncodeGencodeUniProt.o encode3/encode3Valid.o estOrientInfo.o expData.o exportedDataHubs.o expRecord.o facetField.o facetedTable.o featureBits.o findKGAlias.o fakeCurl.o findKGProtAlias.o gbSeq.o gbExtFile.o gcPercent.o genark.o genbank.o genbankBlackList.o gencodeTracksCommon.o gencodeAttrs.o gencodeToRefSeq.o geneGraph.o genePred.o genePredReader.o geoMirror.o ggCluster.o ggDump.o ggGraph.o ggMrnaAli.o ggTypes.o glDbRep.o googleAnalytics.o gpFx.o grp.o gtexAse.o gtexDonor.o gtexGeneBed.o gtexInfo.o gtexSample.o gtexSampleData.o gtexTissue.o gtexTissueMedian.o gtexUi.o hCommon.o hPrint.o hVarSubst.o hapmapAllelesOrtho.o hapmapPhaseIIISummary.o hapmapSnps.o hdb.o hgColors.o hgConfig.o hgFind.o hgFindSpec.o hgFindSpecCustom.o hgHgvs.o hgHgvsParse.o hgMaf.o hgRelate.o hic.o hicUi.o hubConnect.o hubPublic.o hubSearchText.o hui.o imageClone.o indelShift.o interact.o interactUi.o itemAttr.o jksql.o joiner.o jsHelper.o kgAlias.o kgProtAlias.o kgXref.o knownInfo.o knownMore.o lav.o lfs.o liftOver.o liftOverChain.o liftUp.o longRange.o lrg.o lsSnpPdb.o mafFrames.o mafGene.o mafSummary.o makeItemsItem.o mdb.o microarray.o minChromSize.o namedSessionDb.o netAlign.o netCart.o pepPred.o pgPhenoAssoc.o pgSnp.o pslReader.o qaSeq.o quickLift.o quickLiftChain.o rankProp.o refLink.o refSeqStatus.o rikenCluster.o rmskAlign.o rmskJoined.o rmskOut.o rmskOut2.o rnaGene.o sage.o sageCounts.o samAlignment.o sample.o sanger22extra.o scoredRef.o seqWindow.o snakeUi.o snp.o snpExceptions.o soTerm.o spDb.o sqlProg.o sqlSanity.o stanMad.o stsAlias.o stsInfo2.o stsMap.o stsMarker.o tableStatus.o tablesTables.o tagRepo.o tfbsCons.o tigrCmrGene.o traceInfo.o trackDb.o trackDbCache.o trackDbCustom.o trackHub.o trackVersion.o trashDir.o txAliDiff.o txCluster.o txCommon.o txEdgeBed.o txGraph.o txInfo.o txRnaAccs.o variantProjector.o vcfUi.o vegaInfo.o web.o wigAsciiToBinary.o wigDataStream.o wiggle.o wiggleCart.o wiggleUtils.o wikiLink.o bigRmskAlignBed.o bigRmskBed.o + cd kent/src/hg/utils/hubCheck + make CC=/opt/conda/conda-bld/ucsc-hubcheck_1724797987261/_build_env/bin/x86_64-conda-linux-gnu-cc CXX= 'CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /opt/conda/conda-bld/ucsc-hubcheck_1724797987261/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include -fdebug-prefix-map=/opt/conda/conda-bld/ucsc-hubcheck_1724797987261/work=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=/opt/conda/conda-bld/ucsc-hubcheck_1724797987261/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,/opt/conda/conda-bld/ucsc-hubcheck_1724797987261/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib -Wl,-rpath-link,/opt/conda/conda-bld/ucsc-hubcheck_1724797987261/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib -L/opt/conda/conda-bld/ucsc-hubcheck_1724797987261/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib -L/opt/conda/conda-bld/ucsc-hubcheck_1724797987261/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib' 'CXXFLAGS= -I/opt/conda/conda-bld/ucsc-hubcheck_1724797987261/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,/opt/conda/conda-bld/ucsc-hubcheck_1724797987261/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib -Wl,-rpath-link,/opt/conda/conda-bld/ucsc-hubcheck_1724797987261/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib -L/opt/conda/conda-bld/ucsc-hubcheck_1724797987261/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib -L/opt/conda/conda-bld/ucsc-hubcheck_1724797987261/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib' -j 4 + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ucsc-hubcheck-469 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_x86_64 -DUSE_HIC -Wall -Wformat -Wimplicit -Wreturn-type -Wuninitialized -I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I../../../htslib -I$PREFIX/include -I$BUILD_PREFIX/include -I$PREFIX/include/libpng16 -o hubCheck.o -c hubCheck.c + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -O -g -o $SRC_DIR/bin/hubCheck hubCheck.o ../../../lib/x86_64/jkhgap.a ../../../lib/x86_64/jkweb.a -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -lpthread $PREFIX/lib/libssl.a $PREFIX/lib/libcrypto.a -ldl ../../../htslib/libhts.a -L$PREFIX/lib -lpng16 -lm -lz -L$PREFIX/lib -lmysqlclient -lstdc -lrt -lm + /opt/conda/conda-bld/ucsc-hubcheck_1724797987261/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: ../../../lib/x86_64/jkweb.a(knetUdc.o): in function knetUdcInstall': + /usr/local/src/conda/ucsc-hubcheck-469/kent/src/lib/knetUdc.c:80: undefined reference to knet_init_alt' + collect2: error: ld returned 1 exit status + make: *** [makefile:12: hubCheck] Error 1 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/ucsc-hubcheck_1724797987261/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/ucsc-hubcheck/include.patch b/recipes/ucsc-hubcheck/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-hubcheck/include.patch +++ b/recipes/ucsc-hubcheck/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-hubcheck/meta.yaml b/recipes/ucsc-hubcheck/meta.yaml index a7bbbafd799af..5a3c63cb34566 100644 --- a/recipes/ucsc-hubcheck/meta.yaml +++ b/recipes/ucsc-hubcheck/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-hubcheck" %} {% set program = "hubCheck" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Check a track data hub for integrity." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-hubpubliccheck/build.sh b/recipes/ucsc-hubpubliccheck/build.sh index e44de2a3b03aa..9e62440c60826 100644 --- a/recipes/ucsc-hubpubliccheck/build.sh +++ b/recipes/ucsc-hubpubliccheck/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/utils/hubPublicCheck && make) -cp bin/hubPublicCheck "$PREFIX/bin" -chmod +x "$PREFIX/bin/hubPublicCheck" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/hubPublicCheck && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/hubPublicCheck "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/hubPublicCheck" diff --git a/recipes/ucsc-hubpubliccheck/include.patch b/recipes/ucsc-hubpubliccheck/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-hubpubliccheck/include.patch +++ b/recipes/ucsc-hubpubliccheck/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-hubpubliccheck/meta.yaml b/recipes/ucsc-hubpubliccheck/meta.yaml index cca7bfbd24adb..f0a4cc1d4f97e 100644 --- a/recipes/ucsc-hubpubliccheck/meta.yaml +++ b/recipes/ucsc-hubpubliccheck/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-hubpubliccheck" %} {% set program = "hubPublicCheck" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "checks that the labels in hubPublic match what is in the hub labels" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-ixixx/build.sh b/recipes/ucsc-ixixx/build.sh index e4ce4fe68f1ae..961320e7fd96d 100644 --- a/recipes/ucsc-ixixx/build.sh +++ b/recipes/ucsc-ixixx/build.sh @@ -1,5 +1,8 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" + +set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" @@ -8,11 +11,11 @@ export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -(cd kent/src/hg/lib && USE_HIC=0 make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/index/ixIxx && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/ixIxx "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/ixIxx" +cp bin/ixIxx "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/ixIxx" diff --git a/recipes/ucsc-ixixx/include.patch b/recipes/ucsc-ixixx/include.patch index 1646de15a38f7..edc04d0dc2f64 100644 --- a/recipes/ucsc-ixixx/include.patch +++ b/recipes/ucsc-ixixx/include.patch @@ -1,5 +1,5 @@ ---- a/kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ b/kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 +--- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 ++++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif @@ -9,16 +9,16 @@ # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- a/kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 -+++ b/kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python import logging, sys, optparse, string from collections import defaultdict ---- a/kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 -+++ b/kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-ixixx/meta.yaml b/recipes/ucsc-ixixx/meta.yaml index 67d8022a455c2..12e29c5de07c1 100644 --- a/recipes/ucsc-ixixx/meta.yaml +++ b/recipes/ucsc-ixixx/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-ixixx" %} {% set program = "ixIxx" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -14,26 +14,28 @@ source: - "include.patch" build: + skip: True # [osx] number: 0 run_exports: - - {{ pin_subpackage('ucsc-ixixx', max_pin=None) }} + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: - make - {{ compiler('c') }} - - {{ compiler('cxx') }} host: - libpng - libuuid - mysql-connector-c - libopenssl-static - zlib + run: - libpng - libuuid - mysql-connector-c - libopenssl-static + - zlib test: commands: @@ -42,11 +44,14 @@ test: about: home: "https://hgdownload.cse.ucsc.edu/admin/exe/" - license: "Varies; see https://genome.ucsc.edu/license" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Create indices for simple line-oriented file of format " dev_url: "https://github.com/ucscGenomeBrowser/kent" doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - linux-aarch64 diff --git a/recipes/ucsc-lavtoaxt/build.sh b/recipes/ucsc-lavtoaxt/build.sh index 053f95a6d6f0c..28b7382f0f659 100644 --- a/recipes/ucsc-lavtoaxt/build.sh +++ b/recipes/ucsc-lavtoaxt/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/lavToAxt && make) -cp bin/lavToAxt "$PREFIX/bin" -chmod +x "$PREFIX/bin/lavToAxt" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/lavToAxt && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/lavToAxt "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/lavToAxt" diff --git a/recipes/ucsc-lavtoaxt/include.patch b/recipes/ucsc-lavtoaxt/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-lavtoaxt/include.patch +++ b/recipes/ucsc-lavtoaxt/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-lavtoaxt/meta.yaml b/recipes/ucsc-lavtoaxt/meta.yaml index e1c9793a5521a..06c0cafe88b92 100644 --- a/recipes/ucsc-lavtoaxt/meta.yaml +++ b/recipes/ucsc-lavtoaxt/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-lavtoaxt" %} {% set program = "lavToAxt" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert blastz lav file to an axt file (which includes sequence)" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-lavtopsl/build.sh b/recipes/ucsc-lavtopsl/build.sh index 6bc1639458228..f3bad35b19a90 100644 --- a/recipes/ucsc-lavtopsl/build.sh +++ b/recipes/ucsc-lavtopsl/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/lavToPsl && make) -cp bin/lavToPsl "$PREFIX/bin" -chmod +x "$PREFIX/bin/lavToPsl" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/lavToPsl && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/lavToPsl "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/lavToPsl" diff --git a/recipes/ucsc-lavtopsl/include.patch b/recipes/ucsc-lavtopsl/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-lavtopsl/include.patch +++ b/recipes/ucsc-lavtopsl/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-lavtopsl/meta.yaml b/recipes/ucsc-lavtopsl/meta.yaml index e561090f1335f..cfc2c04b24fa7 100644 --- a/recipes/ucsc-lavtopsl/meta.yaml +++ b/recipes/ucsc-lavtopsl/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-lavtopsl" %} {% set program = "lavToPsl" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert blastz lav to psl format" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-ldhggene/build.sh b/recipes/ucsc-ldhggene/build.sh index f03594d189cf0..bcfee33c689a7 100644 --- a/recipes/ucsc-ldhggene/build.sh +++ b/recipes/ucsc-ldhggene/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/makeDb/ldHgGene && make) -cp bin/ldHgGene "$PREFIX/bin" -chmod +x "$PREFIX/bin/ldHgGene" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/makeDb/ldHgGene && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/ldHgGene "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/ldHgGene" diff --git a/recipes/ucsc-ldhggene/include.patch b/recipes/ucsc-ldhggene/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-ldhggene/include.patch +++ b/recipes/ucsc-ldhggene/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-ldhggene/meta.yaml b/recipes/ucsc-ldhggene/meta.yaml index 629f7cfa8254a..aec3b9faa2050 100644 --- a/recipes/ucsc-ldhggene/meta.yaml +++ b/recipes/ucsc-ldhggene/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-ldhggene" %} {% set program = "ldHgGene" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "load database with gene predictions from a gff file." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-liftover/build.sh b/recipes/ucsc-liftover/build.sh index 189c409009472..50f0e8474db9a 100644 --- a/recipes/ucsc-liftover/build.sh +++ b/recipes/ucsc-liftover/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" + +set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make -j${CPU_COUNT}) -(cd kent/src/htslib && make -j${CPU_COUNT}) -(cd kent/src/jkOwnLib && make -j${CPU_COUNT}) -(cd kent/src/hg/lib && make -j${CPU_COUNT}) -(cd kent/src/hg/liftOver && make -j${CPU_COUNT}) -cp bin/liftOver "$PREFIX/bin" -chmod +x "$PREFIX/bin/liftOver" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/liftOver && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/liftOver "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/liftOver" diff --git a/recipes/ucsc-liftover/include.patch b/recipes/ucsc-liftover/include.patch index e9c8621194325..edc04d0dc2f64 100644 --- a/recipes/ucsc-liftover/include.patch +++ b/recipes/ucsc-liftover/include.patch @@ -1,30 +1,22 @@ --- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 ++++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -+++ kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -@@ -147,4 +147,4 @@ -- L+=${PREFIX}/lib/libssl.a ${PREFIX}/lib/libcrypto.a -ldl -+ L+=${PREFIX}/lib/libssl.so ${PREFIX}/lib/libcrypto.so -ldl - else - ifneq ($(wildcard /opt/local/lib/libssl.a),) - L+=/opt/local/lib/libssl.a ---- kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 -+++ kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ --KENT_INC=-I../../../inc -+KENT_INC=-I../../../inc -I${PREFIX}/include - - straw: straw.o cStraw.o - ld -r -o ../straw.o straw.o cStraw.o +-#!/usr/bin/env python2.7 ++#!/usr/bin/env python + + import logging, sys, optparse, string + from collections import defaultdict --- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ diff --git a/recipes/ucsc-liftover/meta.yaml b/recipes/ucsc-liftover/meta.yaml index 4d953bf48e005..a38bea325585b 100644 --- a/recipes/ucsc-liftover/meta.yaml +++ b/recipes/ucsc-liftover/meta.yaml @@ -1,25 +1,21 @@ {% set package = "ucsc-liftover" %} {% set program = "liftOver" %} -{% set version = "447" %} -{% set sha256 = "747a48486f7481d891e297baf63623b15d699265ede7339f654bcbc42481ac81" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: - name: {{ package }} - version: {{ version }} + name: "{{ package }}" + version: "{{ version }}" source: url: "http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{{ version }}.src.tgz" - sha256: {{ sha256 }} + sha256: "{{ sha256 }}" patches: - - include.patch - - htmshell.patch + - "include.patch" build: - number: 1 - skip: True # [osx] - ignore_run_exports: - - libpng - - libuuid + skip: True # [osx] + number: 0 run_exports: - {{ pin_subpackage(package, max_pin=None) }} @@ -27,31 +23,34 @@ requirements: build: - make - {{ compiler('c') }} - - {{ compiler('cxx') }} - - binutils # [linux] host: - libpng - libuuid - mysql-connector-c - - openssl - libopenssl-static - zlib + run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static + - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Move annotations from one assembly to another" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: - additional-platforms: - - linux-aarch64 \ No newline at end of file + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-liftup/build.sh b/recipes/ucsc-liftup/build.sh index 5a638019c0676..1a14a6cb069d0 100644 --- a/recipes/ucsc-liftup/build.sh +++ b/recipes/ucsc-liftup/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/liftUp && make) -cp bin/liftUp "$PREFIX/bin" -chmod +x "$PREFIX/bin/liftUp" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/liftUp && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/liftUp "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/liftUp" diff --git a/recipes/ucsc-liftup/include.patch b/recipes/ucsc-liftup/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-liftup/include.patch +++ b/recipes/ucsc-liftup/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-liftup/meta.yaml b/recipes/ucsc-liftup/meta.yaml index 87acba1d33d82..b61c25d8102ca 100644 --- a/recipes/ucsc-liftup/meta.yaml +++ b/recipes/ucsc-liftup/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-liftup" %} {% set program = "liftUp" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "change coordinates of .psl, .agp, .gap, .gl, .out, .align, .gff, .gtf" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-linestora/build.sh b/recipes/ucsc-linestora/build.sh index 945e02d5d447d..eb58c0fc0db43 100644 --- a/recipes/ucsc-linestora/build.sh +++ b/recipes/ucsc-linestora/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/raToLines/linesToRa && make) -cp bin/linesToRa "$PREFIX/bin" -chmod +x "$PREFIX/bin/linesToRa" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/raToLines/linesToRa && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/linesToRa "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/linesToRa" diff --git a/recipes/ucsc-linestora/include.patch b/recipes/ucsc-linestora/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-linestora/include.patch +++ b/recipes/ucsc-linestora/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-linestora/meta.yaml b/recipes/ucsc-linestora/meta.yaml index 58fd0d3a47e68..8929fdad5aeff 100644 --- a/recipes/ucsc-linestora/meta.yaml +++ b/recipes/ucsc-linestora/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-linestora" %} {% set program = "linesToRa" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "generate .ra format from lines with pipe-separated fields" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-localtime/build.sh b/recipes/ucsc-localtime/build.sh index 5e4271dc0c297..b0b32fe905438 100644 --- a/recipes/ucsc-localtime/build.sh +++ b/recipes/ucsc-localtime/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/timing/localtime && make) -cp bin/localtime "$PREFIX/bin" -chmod +x "$PREFIX/bin/localtime" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/timing/localtime && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/localtime "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/localtime" diff --git a/recipes/ucsc-localtime/include.patch b/recipes/ucsc-localtime/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-localtime/include.patch +++ b/recipes/ucsc-localtime/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-localtime/meta.yaml b/recipes/ucsc-localtime/meta.yaml index fe6a48b0afb65..9a5bb720eea6a 100644 --- a/recipes/ucsc-localtime/meta.yaml +++ b/recipes/ucsc-localtime/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-localtime" %} {% set program = "localtime" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "convert unix timestamp to date string" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-mafaddirows/build.sh b/recipes/ucsc-mafaddirows/build.sh index e7d550df0494d..cac297e03b3d9 100644 --- a/recipes/ucsc-mafaddirows/build.sh +++ b/recipes/ucsc-mafaddirows/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/ratStuff/mafAddIRows && make) -cp bin/mafAddIRows "$PREFIX/bin" -chmod +x "$PREFIX/bin/mafAddIRows" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/ratStuff/mafAddIRows && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/mafAddIRows "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/mafAddIRows" diff --git a/recipes/ucsc-mafaddirows/include.patch b/recipes/ucsc-mafaddirows/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-mafaddirows/include.patch +++ b/recipes/ucsc-mafaddirows/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-mafaddirows/meta.yaml b/recipes/ucsc-mafaddirows/meta.yaml index 5d99df62b05d9..1678cf8b45d74 100644 --- a/recipes/ucsc-mafaddirows/meta.yaml +++ b/recipes/ucsc-mafaddirows/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-mafaddirows" %} {% set program = "mafAddIRows" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "add 'i' rows to a maf" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-mafaddqrows/build.sh b/recipes/ucsc-mafaddqrows/build.sh index 2a500dafaef18..ed596762c367a 100644 --- a/recipes/ucsc-mafaddqrows/build.sh +++ b/recipes/ucsc-mafaddqrows/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/ratStuff/mafAddQRows && make) -cp bin/mafAddQRows "$PREFIX/bin" -chmod +x "$PREFIX/bin/mafAddQRows" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/ratStuff/mafAddQRows && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/mafAddQRows "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/mafAddQRows" diff --git a/recipes/ucsc-mafaddqrows/include.patch b/recipes/ucsc-mafaddqrows/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-mafaddqrows/include.patch +++ b/recipes/ucsc-mafaddqrows/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-mafaddqrows/meta.yaml b/recipes/ucsc-mafaddqrows/meta.yaml index f9017087a7315..852353ae2d074 100644 --- a/recipes/ucsc-mafaddqrows/meta.yaml +++ b/recipes/ucsc-mafaddqrows/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-mafaddqrows" %} {% set program = "mafAddQRows" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Add quality data to a maf" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-mafcoverage/build.sh b/recipes/ucsc-mafcoverage/build.sh index 348d70bc50d75..468207ac0d869 100644 --- a/recipes/ucsc-mafcoverage/build.sh +++ b/recipes/ucsc-mafcoverage/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/mafCoverage && make) -cp bin/mafCoverage "$PREFIX/bin" -chmod +x "$PREFIX/bin/mafCoverage" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/mafCoverage && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/mafCoverage "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/mafCoverage" diff --git a/recipes/ucsc-mafcoverage/include.patch b/recipes/ucsc-mafcoverage/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-mafcoverage/include.patch +++ b/recipes/ucsc-mafcoverage/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-mafcoverage/meta.yaml b/recipes/ucsc-mafcoverage/meta.yaml index 098e92ad735b5..e4a133f4200cc 100644 --- a/recipes/ucsc-mafcoverage/meta.yaml +++ b/recipes/ucsc-mafcoverage/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-mafcoverage" %} {% set program = "mafCoverage" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Analyse coverage by maf files - chromosome by " + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-maffetch/build.sh b/recipes/ucsc-maffetch/build.sh index 645c5ada6b7fd..05845f691ae3f 100644 --- a/recipes/ucsc-maffetch/build.sh +++ b/recipes/ucsc-maffetch/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/mafFetch && make) -cp bin/mafFetch "$PREFIX/bin" -chmod +x "$PREFIX/bin/mafFetch" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/mafFetch && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/mafFetch "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/mafFetch" diff --git a/recipes/ucsc-maffetch/include.patch b/recipes/ucsc-maffetch/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-maffetch/include.patch +++ b/recipes/ucsc-maffetch/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-maffetch/meta.yaml b/recipes/ucsc-maffetch/meta.yaml index 0bcc9b3c66e88..9090dbba9ad87 100644 --- a/recipes/ucsc-maffetch/meta.yaml +++ b/recipes/ucsc-maffetch/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-maffetch" %} {% set program = "mafFetch" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "get overlapping records from an MAF using an index table" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-maffilter/build.sh b/recipes/ucsc-maffilter/build.sh index 1456dd4eba626..9843b09843d39 100644 --- a/recipes/ucsc-maffilter/build.sh +++ b/recipes/ucsc-maffilter/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/ratStuff/mafFilter && make) -cp bin/mafFilter "$PREFIX/bin" -chmod +x "$PREFIX/bin/mafFilter" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/ratStuff/mafFilter && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/mafFilter "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/mafFilter" diff --git a/recipes/ucsc-maffilter/include.patch b/recipes/ucsc-maffilter/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-maffilter/include.patch +++ b/recipes/ucsc-maffilter/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-maffilter/meta.yaml b/recipes/ucsc-maffilter/meta.yaml index 7663b1c8a008c..fe2bdf5d06413 100644 --- a/recipes/ucsc-maffilter/meta.yaml +++ b/recipes/ucsc-maffilter/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-maffilter" %} {% set program = "mafFilter" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Filter out maf files. Output goes to standard out" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-maffrag/build.sh b/recipes/ucsc-maffrag/build.sh index f2386fc8ed4df..d9960af580f54 100644 --- a/recipes/ucsc-maffrag/build.sh +++ b/recipes/ucsc-maffrag/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/ratStuff/mafFrag && make) -cp bin/mafFrag "$PREFIX/bin" -chmod +x "$PREFIX/bin/mafFrag" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/ratStuff/mafFrag && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/mafFrag "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/mafFrag" diff --git a/recipes/ucsc-maffrag/include.patch b/recipes/ucsc-maffrag/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-maffrag/include.patch +++ b/recipes/ucsc-maffrag/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-maffrag/meta.yaml b/recipes/ucsc-maffrag/meta.yaml index f65ce536626f5..be0547277cd93 100644 --- a/recipes/ucsc-maffrag/meta.yaml +++ b/recipes/ucsc-maffrag/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-maffrag" %} {% set program = "mafFrag" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Extract maf sequences for a region from database" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-maffrags/build.sh b/recipes/ucsc-maffrags/build.sh index b058c5853bc14..1e18fa9821f72 100644 --- a/recipes/ucsc-maffrags/build.sh +++ b/recipes/ucsc-maffrags/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/ratStuff/mafFrags && make) -cp bin/mafFrags "$PREFIX/bin" -chmod +x "$PREFIX/bin/mafFrags" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/ratStuff/mafFrags && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/mafFrags "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/mafFrags" diff --git a/recipes/ucsc-maffrags/include.patch b/recipes/ucsc-maffrags/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-maffrags/include.patch +++ b/recipes/ucsc-maffrags/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-maffrags/meta.yaml b/recipes/ucsc-maffrags/meta.yaml index 21cd93f53f83e..34d81f233584a 100644 --- a/recipes/ucsc-maffrags/meta.yaml +++ b/recipes/ucsc-maffrags/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-maffrags" %} {% set program = "mafFrags" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Collect MAFs from regions specified in a 6 column bed file" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-mafgene/build.sh b/recipes/ucsc-mafgene/build.sh index 6ef25dbca5c93..b3fd8c73fa645 100644 --- a/recipes/ucsc-mafgene/build.sh +++ b/recipes/ucsc-mafgene/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/ratStuff/mafGene && make) -cp bin/mafGene "$PREFIX/bin" -chmod +x "$PREFIX/bin/mafGene" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/ratStuff/mafGene && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/mafGene "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/mafGene" diff --git a/recipes/ucsc-mafgene/include.patch b/recipes/ucsc-mafgene/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-mafgene/include.patch +++ b/recipes/ucsc-mafgene/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-mafgene/meta.yaml b/recipes/ucsc-mafgene/meta.yaml index 9912fd7602673..00c8dcbf6fd3c 100644 --- a/recipes/ucsc-mafgene/meta.yaml +++ b/recipes/ucsc-mafgene/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-mafgene" %} {% set program = "mafGene" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "output protein alignments using maf and genePred" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-mafmefirst/build.sh b/recipes/ucsc-mafmefirst/build.sh index 4363fc2b59ba9..6ffa033237548 100644 --- a/recipes/ucsc-mafmefirst/build.sh +++ b/recipes/ucsc-mafmefirst/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/ratStuff/mafMeFirst && make) -cp bin/mafMeFirst "$PREFIX/bin" -chmod +x "$PREFIX/bin/mafMeFirst" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/ratStuff/mafMeFirst && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/mafMeFirst "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/mafMeFirst" diff --git a/recipes/ucsc-mafmefirst/include.patch b/recipes/ucsc-mafmefirst/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-mafmefirst/include.patch +++ b/recipes/ucsc-mafmefirst/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-mafmefirst/meta.yaml b/recipes/ucsc-mafmefirst/meta.yaml index e48007351af53..4ee6e4b03ce1e 100644 --- a/recipes/ucsc-mafmefirst/meta.yaml +++ b/recipes/ucsc-mafmefirst/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-mafmefirst" %} {% set program = "mafMeFirst" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Move component to top if it is one of the named ones. " + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-maforder/build.sh b/recipes/ucsc-maforder/build.sh index cefff99c5bdf1..a89bd8868c424 100644 --- a/recipes/ucsc-maforder/build.sh +++ b/recipes/ucsc-maforder/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/ratStuff/mafOrder && make) -cp bin/mafOrder "$PREFIX/bin" -chmod +x "$PREFIX/bin/mafOrder" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/ratStuff/mafOrder && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/mafOrder "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/mafOrder" diff --git a/recipes/ucsc-maforder/include.patch b/recipes/ucsc-maforder/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-maforder/include.patch +++ b/recipes/ucsc-maforder/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-maforder/meta.yaml b/recipes/ucsc-maforder/meta.yaml index 54bfd559eb179..ad84eab22d85c 100644 --- a/recipes/ucsc-maforder/meta.yaml +++ b/recipes/ucsc-maforder/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-maforder" %} {% set program = "mafOrder" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "order components within a maf file" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-mafranges/build.sh b/recipes/ucsc-mafranges/build.sh index 0441760e4d982..e1687873c6d65 100644 --- a/recipes/ucsc-mafranges/build.sh +++ b/recipes/ucsc-mafranges/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/mafRanges && make) -cp bin/mafRanges "$PREFIX/bin" -chmod +x "$PREFIX/bin/mafRanges" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/mafRanges && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/mafRanges "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/mafRanges" diff --git a/recipes/ucsc-mafranges/include.patch b/recipes/ucsc-mafranges/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-mafranges/include.patch +++ b/recipes/ucsc-mafranges/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-mafranges/meta.yaml b/recipes/ucsc-mafranges/meta.yaml index 6510d41b8bb8e..66d3c977d9dc7 100644 --- a/recipes/ucsc-mafranges/meta.yaml +++ b/recipes/ucsc-mafranges/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-mafranges" %} {% set program = "mafRanges" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Extract ranges of target (or query) coverage from maf and " + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-mafsinregion/build.sh b/recipes/ucsc-mafsinregion/build.sh index 3e8ea07de6c37..4fb3f28a5e560 100644 --- a/recipes/ucsc-mafsinregion/build.sh +++ b/recipes/ucsc-mafsinregion/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/ratStuff/mafsInRegion && make) -cp bin/mafsInRegion "$PREFIX/bin" -chmod +x "$PREFIX/bin/mafsInRegion" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/ratStuff/mafsInRegion && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/mafsInRegion "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/mafsInRegion" diff --git a/recipes/ucsc-mafsinregion/include.patch b/recipes/ucsc-mafsinregion/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-mafsinregion/include.patch +++ b/recipes/ucsc-mafsinregion/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-mafsinregion/meta.yaml b/recipes/ucsc-mafsinregion/meta.yaml index 81d418c4524e2..48415aa8bb4dc 100644 --- a/recipes/ucsc-mafsinregion/meta.yaml +++ b/recipes/ucsc-mafsinregion/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-mafsinregion" %} {% set program = "mafsInRegion" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Extract MAFS in a genomic region" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-mafspecieslist/build.sh b/recipes/ucsc-mafspecieslist/build.sh index fb5f2c9fc419c..b55e48756c1d1 100644 --- a/recipes/ucsc-mafspecieslist/build.sh +++ b/recipes/ucsc-mafspecieslist/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/ratStuff/mafSpeciesList && make) -cp bin/mafSpeciesList "$PREFIX/bin" -chmod +x "$PREFIX/bin/mafSpeciesList" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/ratStuff/mafSpeciesList && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/mafSpeciesList "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/mafSpeciesList" diff --git a/recipes/ucsc-mafspecieslist/include.patch b/recipes/ucsc-mafspecieslist/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-mafspecieslist/include.patch +++ b/recipes/ucsc-mafspecieslist/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-mafspecieslist/meta.yaml b/recipes/ucsc-mafspecieslist/meta.yaml index db844606494ed..39fea6c3f3bcf 100644 --- a/recipes/ucsc-mafspecieslist/meta.yaml +++ b/recipes/ucsc-mafspecieslist/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-mafspecieslist" %} {% set program = "mafSpeciesList" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Scan maf and output all species used in it." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-mafspeciessubset/build.sh b/recipes/ucsc-mafspeciessubset/build.sh index 57941b4e15733..f1c3303a4e9d3 100644 --- a/recipes/ucsc-mafspeciessubset/build.sh +++ b/recipes/ucsc-mafspeciessubset/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/ratStuff/mafSpeciesSubset && make) -cp bin/mafSpeciesSubset "$PREFIX/bin" -chmod +x "$PREFIX/bin/mafSpeciesSubset" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/ratStuff/mafSpeciesSubset && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/mafSpeciesSubset "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/mafSpeciesSubset" diff --git a/recipes/ucsc-mafspeciessubset/include.patch b/recipes/ucsc-mafspeciessubset/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-mafspeciessubset/include.patch +++ b/recipes/ucsc-mafspeciessubset/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-mafspeciessubset/meta.yaml b/recipes/ucsc-mafspeciessubset/meta.yaml index 29994a6b0c59f..566864c8adf9a 100644 --- a/recipes/ucsc-mafspeciessubset/meta.yaml +++ b/recipes/ucsc-mafspeciessubset/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-mafspeciessubset" %} {% set program = "mafSpeciesSubset" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Extract a maf that just has a subset of species." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-mafsplit/build.sh b/recipes/ucsc-mafsplit/build.sh index 16a94db036ce9..c95e8038cb565 100644 --- a/recipes/ucsc-mafsplit/build.sh +++ b/recipes/ucsc-mafsplit/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/ratStuff/mafSplit && make) -cp bin/mafSplit "$PREFIX/bin" -chmod +x "$PREFIX/bin/mafSplit" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/ratStuff/mafSplit && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/mafSplit "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/mafSplit" diff --git a/recipes/ucsc-mafsplit/include.patch b/recipes/ucsc-mafsplit/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-mafsplit/include.patch +++ b/recipes/ucsc-mafsplit/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-mafsplit/meta.yaml b/recipes/ucsc-mafsplit/meta.yaml index 57c217ce78e8b..8fb771c78e0c5 100644 --- a/recipes/ucsc-mafsplit/meta.yaml +++ b/recipes/ucsc-mafsplit/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-mafsplit" %} {% set program = "mafSplit" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Split multiple alignment files" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-mafsplitpos/build.sh b/recipes/ucsc-mafsplitpos/build.sh index 3c410b8870dc6..755b371f59363 100644 --- a/recipes/ucsc-mafsplitpos/build.sh +++ b/recipes/ucsc-mafsplitpos/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/ratStuff/mafSplitPos && make) -cp bin/mafSplitPos "$PREFIX/bin" -chmod +x "$PREFIX/bin/mafSplitPos" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/ratStuff/mafSplitPos && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/mafSplitPos "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/mafSplitPos" diff --git a/recipes/ucsc-mafsplitpos/include.patch b/recipes/ucsc-mafsplitpos/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-mafsplitpos/include.patch +++ b/recipes/ucsc-mafsplitpos/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-mafsplitpos/meta.yaml b/recipes/ucsc-mafsplitpos/meta.yaml index 8c0fb2d4ad59c..77c67139a4334 100644 --- a/recipes/ucsc-mafsplitpos/meta.yaml +++ b/recipes/ucsc-mafsplitpos/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-mafsplitpos" %} {% set program = "mafSplitPos" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Pick positions to split multiple alignment input files" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-maftoaxt/build.sh b/recipes/ucsc-maftoaxt/build.sh index d1c547e94566a..915b30b593cce 100644 --- a/recipes/ucsc-maftoaxt/build.sh +++ b/recipes/ucsc-maftoaxt/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/mafToAxt && make) -cp bin/mafToAxt "$PREFIX/bin" -chmod +x "$PREFIX/bin/mafToAxt" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/mafToAxt && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/mafToAxt "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/mafToAxt" diff --git a/recipes/ucsc-maftoaxt/include.patch b/recipes/ucsc-maftoaxt/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-maftoaxt/include.patch +++ b/recipes/ucsc-maftoaxt/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-maftoaxt/meta.yaml b/recipes/ucsc-maftoaxt/meta.yaml index 30844b9a378a5..2e31d3a08bf55 100644 --- a/recipes/ucsc-maftoaxt/meta.yaml +++ b/recipes/ucsc-maftoaxt/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-maftoaxt" %} {% set program = "mafToAxt" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert from maf to axt format" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-maftobigmaf/build.sh b/recipes/ucsc-maftobigmaf/build.sh index b8f624f13c557..9e78fbddae397 100644 --- a/recipes/ucsc-maftobigmaf/build.sh +++ b/recipes/ucsc-maftobigmaf/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/utils/mafToBigMaf && make) -cp bin/mafToBigMaf "$PREFIX/bin" -chmod +x "$PREFIX/bin/mafToBigMaf" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/mafToBigMaf && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/mafToBigMaf "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/mafToBigMaf" diff --git a/recipes/ucsc-maftobigmaf/include.patch b/recipes/ucsc-maftobigmaf/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-maftobigmaf/include.patch +++ b/recipes/ucsc-maftobigmaf/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-maftobigmaf/meta.yaml b/recipes/ucsc-maftobigmaf/meta.yaml index 823170338eb05..e99a1f9fec06f 100644 --- a/recipes/ucsc-maftobigmaf/meta.yaml +++ b/recipes/ucsc-maftobigmaf/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-maftobigmaf" %} {% set program = "mafToBigMaf" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Put ucsc standard maf file into bigMaf format" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-maftopsl/build.sh b/recipes/ucsc-maftopsl/build.sh index c9de71f45a5ed..3889b11a30b41 100644 --- a/recipes/ucsc-maftopsl/build.sh +++ b/recipes/ucsc-maftopsl/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/mafToPsl && make) -cp bin/mafToPsl "$PREFIX/bin" -chmod +x "$PREFIX/bin/mafToPsl" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/mafToPsl && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/mafToPsl "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/mafToPsl" diff --git a/recipes/ucsc-maftopsl/include.patch b/recipes/ucsc-maftopsl/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-maftopsl/include.patch +++ b/recipes/ucsc-maftopsl/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-maftopsl/meta.yaml b/recipes/ucsc-maftopsl/meta.yaml index b47c1683b1e3b..ede1d2177c11c 100644 --- a/recipes/ucsc-maftopsl/meta.yaml +++ b/recipes/ucsc-maftopsl/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-maftopsl" %} {% set program = "mafToPsl" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert maf to psl format" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-maftosnpbed/build.sh b/recipes/ucsc-maftosnpbed/build.sh index d85e46296e96a..50318d5b9132e 100644 --- a/recipes/ucsc-maftosnpbed/build.sh +++ b/recipes/ucsc-maftosnpbed/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/ratStuff/mafToSnpBed && make) -cp bin/mafToSnpBed "$PREFIX/bin" -chmod +x "$PREFIX/bin/mafToSnpBed" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/ratStuff/mafToSnpBed && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/mafToSnpBed "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/mafToSnpBed" diff --git a/recipes/ucsc-maftosnpbed/include.patch b/recipes/ucsc-maftosnpbed/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-maftosnpbed/include.patch +++ b/recipes/ucsc-maftosnpbed/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-maftosnpbed/meta.yaml b/recipes/ucsc-maftosnpbed/meta.yaml index ec50b9371c946..46d27f2eb21d2 100644 --- a/recipes/ucsc-maftosnpbed/meta.yaml +++ b/recipes/ucsc-maftosnpbed/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-maftosnpbed" %} {% set program = "mafToSnpBed" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "finds SNPs in MAF and builds a bed with their functional consequence" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-maketablelist/build.sh b/recipes/ucsc-maketablelist/build.sh index 5511e7edf2d17..637891a953eb6 100644 --- a/recipes/ucsc-maketablelist/build.sh +++ b/recipes/ucsc-maketablelist/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/utils/makeTableList && make) -cp bin/makeTableList "$PREFIX/bin" -chmod +x "$PREFIX/bin/makeTableList" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/makeTableList && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/makeTableList "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/makeTableList" diff --git a/recipes/ucsc-maketablelist/include.patch b/recipes/ucsc-maketablelist/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-maketablelist/include.patch +++ b/recipes/ucsc-maketablelist/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-maketablelist/meta.yaml b/recipes/ucsc-maketablelist/meta.yaml index bed1d94da6a3d..b11002a961035 100644 --- a/recipes/ucsc-maketablelist/meta.yaml +++ b/recipes/ucsc-maketablelist/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-maketablelist" %} {% set program = "makeTableList" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "create/recreate tableList tables (cache of SHOW TABLES and DESCRIBE)" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-maskoutfa/build.sh b/recipes/ucsc-maskoutfa/build.sh index 2f24ecb8fe45d..27e2043807128 100644 --- a/recipes/ucsc-maskoutfa/build.sh +++ b/recipes/ucsc-maskoutfa/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/maskOutFa && make) -cp bin/maskOutFa "$PREFIX/bin" -chmod +x "$PREFIX/bin/maskOutFa" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/maskOutFa && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/maskOutFa "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/maskOutFa" diff --git a/recipes/ucsc-maskoutfa/include.patch b/recipes/ucsc-maskoutfa/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-maskoutfa/include.patch +++ b/recipes/ucsc-maskoutfa/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-maskoutfa/meta.yaml b/recipes/ucsc-maskoutfa/meta.yaml index 9edb65eb58987..fa8cc7eb1593a 100644 --- a/recipes/ucsc-maskoutfa/meta.yaml +++ b/recipes/ucsc-maskoutfa/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-maskoutfa" %} {% set program = "maskOutFa" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Produce a masked .fa file given an unmasked .fa and" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-mktime/build.sh b/recipes/ucsc-mktime/build.sh index ac60435474cef..736038679a3b1 100644 --- a/recipes/ucsc-mktime/build.sh +++ b/recipes/ucsc-mktime/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/timing/mktime && make) -cp bin/mktime "$PREFIX/bin" -chmod +x "$PREFIX/bin/mktime" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/timing/mktime && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/mktime "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/mktime" diff --git a/recipes/ucsc-mktime/include.patch b/recipes/ucsc-mktime/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-mktime/include.patch +++ b/recipes/ucsc-mktime/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-mktime/meta.yaml b/recipes/ucsc-mktime/meta.yaml index ff8b7b04ca583..e52b1b0b0c71b 100644 --- a/recipes/ucsc-mktime/meta.yaml +++ b/recipes/ucsc-mktime/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-mktime" %} {% set program = "mktime" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "convert date string to unix timestamp" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-mrnatogene/build.sh b/recipes/ucsc-mrnatogene/build.sh index 1f51dc89ac019..356d27d294304 100644 --- a/recipes/ucsc-mrnatogene/build.sh +++ b/recipes/ucsc-mrnatogene/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mrnaToGene && make) -cp bin/mrnaToGene "$PREFIX/bin" -chmod +x "$PREFIX/bin/mrnaToGene" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mrnaToGene && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/mrnaToGene "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/mrnaToGene" diff --git a/recipes/ucsc-mrnatogene/include.patch b/recipes/ucsc-mrnatogene/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-mrnatogene/include.patch +++ b/recipes/ucsc-mrnatogene/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-mrnatogene/meta.yaml b/recipes/ucsc-mrnatogene/meta.yaml index d20f36281b5ff..b867c1e781a84 100644 --- a/recipes/ucsc-mrnatogene/meta.yaml +++ b/recipes/ucsc-mrnatogene/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-mrnatogene" %} {% set program = "mrnaToGene" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "convert PSL alignments of mRNAs to gene annotations" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-netchainsubset/build.sh b/recipes/ucsc-netchainsubset/build.sh index 8427193703407..59ab5b713497e 100644 --- a/recipes/ucsc-netchainsubset/build.sh +++ b/recipes/ucsc-netchainsubset/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/netChainSubset && make) -cp bin/netChainSubset "$PREFIX/bin" -chmod +x "$PREFIX/bin/netChainSubset" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/netChainSubset && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/netChainSubset "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/netChainSubset" diff --git a/recipes/ucsc-netchainsubset/include.patch b/recipes/ucsc-netchainsubset/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-netchainsubset/include.patch +++ b/recipes/ucsc-netchainsubset/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-netchainsubset/meta.yaml b/recipes/ucsc-netchainsubset/meta.yaml index d877f1327402a..2f921aa504a60 100644 --- a/recipes/ucsc-netchainsubset/meta.yaml +++ b/recipes/ucsc-netchainsubset/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-netchainsubset" %} {% set program = "netChainSubset" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Create chain file with subset of chains that appear in the net" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-netclass/build.sh b/recipes/ucsc-netclass/build.sh index 68e9b089f5bcb..cf06d9c6b23c1 100644 --- a/recipes/ucsc-netclass/build.sh +++ b/recipes/ucsc-netclass/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/netClass && make) -cp bin/netClass "$PREFIX/bin" -chmod +x "$PREFIX/bin/netClass" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/netClass && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/netClass "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/netClass" diff --git a/recipes/ucsc-netclass/include.patch b/recipes/ucsc-netclass/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-netclass/include.patch +++ b/recipes/ucsc-netclass/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-netclass/meta.yaml b/recipes/ucsc-netclass/meta.yaml index 48be742bee886..bd64db2ff8c0e 100644 --- a/recipes/ucsc-netclass/meta.yaml +++ b/recipes/ucsc-netclass/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-netclass" %} {% set program = "netClass" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Add classification info to net" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-netfilter/build.sh b/recipes/ucsc-netfilter/build.sh index be78f3e060ccc..69dd249c8e00d 100644 --- a/recipes/ucsc-netfilter/build.sh +++ b/recipes/ucsc-netfilter/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/netFilter && make) -cp bin/netFilter "$PREFIX/bin" -chmod +x "$PREFIX/bin/netFilter" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/netFilter && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/netFilter "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/netFilter" diff --git a/recipes/ucsc-netfilter/include.patch b/recipes/ucsc-netfilter/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-netfilter/include.patch +++ b/recipes/ucsc-netfilter/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-netfilter/meta.yaml b/recipes/ucsc-netfilter/meta.yaml index 0561f41a51fc9..59415265530ab 100644 --- a/recipes/ucsc-netfilter/meta.yaml +++ b/recipes/ucsc-netfilter/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-netfilter" %} {% set program = "netFilter" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Filter out parts of net. What passes" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-netsplit/build.sh b/recipes/ucsc-netsplit/build.sh index 75be84d8d69e7..5baa0ef4281d0 100644 --- a/recipes/ucsc-netsplit/build.sh +++ b/recipes/ucsc-netsplit/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/netSplit && make) -cp bin/netSplit "$PREFIX/bin" -chmod +x "$PREFIX/bin/netSplit" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/netSplit && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/netSplit "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/netSplit" diff --git a/recipes/ucsc-netsplit/include.patch b/recipes/ucsc-netsplit/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-netsplit/include.patch +++ b/recipes/ucsc-netsplit/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-netsplit/meta.yaml b/recipes/ucsc-netsplit/meta.yaml index 8c6739a77a8e9..feca545a7efbc 100644 --- a/recipes/ucsc-netsplit/meta.yaml +++ b/recipes/ucsc-netsplit/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-netsplit" %} {% set program = "netSplit" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Split a genome net file into chromosome net files" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-netsyntenic/build.sh b/recipes/ucsc-netsyntenic/build.sh index 2ac9ac5182941..5e8aebf053581 100644 --- a/recipes/ucsc-netsyntenic/build.sh +++ b/recipes/ucsc-netsyntenic/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/netSyntenic && make) -cp bin/netSyntenic "$PREFIX/bin" -chmod +x "$PREFIX/bin/netSyntenic" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/netSyntenic && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/netSyntenic "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/netSyntenic" diff --git a/recipes/ucsc-netsyntenic/include.patch b/recipes/ucsc-netsyntenic/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-netsyntenic/include.patch +++ b/recipes/ucsc-netsyntenic/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-netsyntenic/meta.yaml b/recipes/ucsc-netsyntenic/meta.yaml index 81b2bddddd265..87b26bea97f27 100644 --- a/recipes/ucsc-netsyntenic/meta.yaml +++ b/recipes/ucsc-netsyntenic/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-netsyntenic" %} {% set program = "netSyntenic" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Add synteny info to net." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-nettoaxt/build.sh b/recipes/ucsc-nettoaxt/build.sh index 733eca3ea04bf..73bdfb3fd65e8 100644 --- a/recipes/ucsc-nettoaxt/build.sh +++ b/recipes/ucsc-nettoaxt/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/netToAxt && make) -cp bin/netToAxt "$PREFIX/bin" -chmod +x "$PREFIX/bin/netToAxt" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/netToAxt && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/netToAxt "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/netToAxt" diff --git a/recipes/ucsc-nettoaxt/include.patch b/recipes/ucsc-nettoaxt/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-nettoaxt/include.patch +++ b/recipes/ucsc-nettoaxt/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-nettoaxt/meta.yaml b/recipes/ucsc-nettoaxt/meta.yaml index 52f7b5123312b..aeef00d707002 100644 --- a/recipes/ucsc-nettoaxt/meta.yaml +++ b/recipes/ucsc-nettoaxt/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-nettoaxt" %} {% set program = "netToAxt" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert net (and chain) to axt." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-nettobed/build.sh b/recipes/ucsc-nettobed/build.sh index ebd0e971bcab6..f24f2ee9b350d 100644 --- a/recipes/ucsc-nettobed/build.sh +++ b/recipes/ucsc-nettobed/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/netToBed && make) -cp bin/netToBed "$PREFIX/bin" -chmod +x "$PREFIX/bin/netToBed" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/netToBed && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/netToBed "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/netToBed" diff --git a/recipes/ucsc-nettobed/include.patch b/recipes/ucsc-nettobed/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-nettobed/include.patch +++ b/recipes/ucsc-nettobed/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-nettobed/meta.yaml b/recipes/ucsc-nettobed/meta.yaml index a1278573aba66..78ef0cc414f73 100644 --- a/recipes/ucsc-nettobed/meta.yaml +++ b/recipes/ucsc-nettobed/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-nettobed" %} {% set program = "netToBed" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert target coverage of net to a bed file." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-newprog/build.sh b/recipes/ucsc-newprog/build.sh index c3ae494488a4a..8549421304b91 100644 --- a/recipes/ucsc-newprog/build.sh +++ b/recipes/ucsc-newprog/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/newProg && make) -cp bin/newProg "$PREFIX/bin" -chmod +x "$PREFIX/bin/newProg" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/newProg && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/newProg "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/newProg" diff --git a/recipes/ucsc-newprog/include.patch b/recipes/ucsc-newprog/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-newprog/include.patch +++ b/recipes/ucsc-newprog/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-newprog/meta.yaml b/recipes/ucsc-newprog/meta.yaml index 9d93bc10fe5fe..4f06ccbc16664 100644 --- a/recipes/ucsc-newprog/meta.yaml +++ b/recipes/ucsc-newprog/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-newprog" %} {% set program = "newProg" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "make a new C source skeleton." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-newpythonprog/build.sh b/recipes/ucsc-newpythonprog/build.sh index a049d1734108b..9b3d10a8a6f99 100644 --- a/recipes/ucsc-newpythonprog/build.sh +++ b/recipes/ucsc-newpythonprog/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/newPythonProg && make) -cp bin/newPythonProg "$PREFIX/bin" -chmod +x "$PREFIX/bin/newPythonProg" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/newPythonProg && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/newPythonProg "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/newPythonProg" diff --git a/recipes/ucsc-newpythonprog/include.patch b/recipes/ucsc-newpythonprog/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-newpythonprog/include.patch +++ b/recipes/ucsc-newpythonprog/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-newpythonprog/meta.yaml b/recipes/ucsc-newpythonprog/meta.yaml index 7f8c05c0c5380..361d9f8b5f4fd 100644 --- a/recipes/ucsc-newpythonprog/meta.yaml +++ b/recipes/ucsc-newpythonprog/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-newpythonprog" %} {% set program = "newPythonProg" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Make a skeleton for a new python program" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-nibfrag/build.sh b/recipes/ucsc-nibfrag/build.sh index 088a651a09043..bb08f993f9b15 100644 --- a/recipes/ucsc-nibfrag/build.sh +++ b/recipes/ucsc-nibfrag/build.sh @@ -2,20 +2,20 @@ set -xe -mkdir -p "$PREFIX/bin" +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) +export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" -export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/utils/nibFrag && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -x bin/nibFrag "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/nibFrag" +cp bin/nibFrag "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/nibFrag" diff --git a/recipes/ucsc-nibfrag/meta.yaml b/recipes/ucsc-nibfrag/meta.yaml index 17bb497cfb5d5..d62bed526b13b 100644 --- a/recipes/ucsc-nibfrag/meta.yaml +++ b/recipes/ucsc-nibfrag/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-nibfrag" %} {% set program = "nibFrag" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -43,12 +43,15 @@ test: - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Extract part of a nib file as .fa (all bases/gaps lower case by default)" dev_url: "https://github.com/ucscGenomeBrowser/kent" doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-nibsize/build.sh b/recipes/ucsc-nibsize/build.sh index e2caa29987ced..7a2721a2626ba 100644 --- a/recipes/ucsc-nibsize/build.sh +++ b/recipes/ucsc-nibsize/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/nibSize && make) -cp bin/nibSize "$PREFIX/bin" -chmod +x "$PREFIX/bin/nibSize" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/nibSize && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/nibSize "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/nibSize" diff --git a/recipes/ucsc-nibsize/include.patch b/recipes/ucsc-nibsize/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-nibsize/include.patch +++ b/recipes/ucsc-nibsize/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-nibsize/meta.yaml b/recipes/ucsc-nibsize/meta.yaml index 79d338775cab0..c137ff3bace8e 100644 --- a/recipes/ucsc-nibsize/meta.yaml +++ b/recipes/ucsc-nibsize/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-nibsize" %} {% set program = "nibSize" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "print size of nibs" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-oligomatch/build.sh b/recipes/ucsc-oligomatch/build.sh index a88ccff20a470..3d72e4bab8926 100644 --- a/recipes/ucsc-oligomatch/build.sh +++ b/recipes/ucsc-oligomatch/build.sh @@ -2,20 +2,20 @@ set -xe -mkdir -p "$PREFIX/bin" +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) +export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" -export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/utils/oligoMatch && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/oligoMatch "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/oligoMatch" +cp bin/oligoMatch "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/oligoMatch" diff --git a/recipes/ucsc-oligomatch/meta.yaml b/recipes/ucsc-oligomatch/meta.yaml index e3e152c54dd21..f34d627ba9455 100644 --- a/recipes/ucsc-oligomatch/meta.yaml +++ b/recipes/ucsc-oligomatch/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-oligomatch" %} {% set program = "oligoMatch" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -43,12 +43,15 @@ test: - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "find perfect matches in sequence." dev_url: "https://github.com/ucscGenomeBrowser/kent" doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-overlapselect/build.sh b/recipes/ucsc-overlapselect/build.sh index cc2603b122258..142a3f3814a7c 100644 --- a/recipes/ucsc-overlapselect/build.sh +++ b/recipes/ucsc-overlapselect/build.sh @@ -1,15 +1,22 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -export LIBRARY_PATH=$PREFIX/lib -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/stringify && make) -(cd kent/src/hg/utils/overlapSelect && make) -cp bin/overlapSelect "$PREFIX/bin" -chmod +x "$PREFIX/bin/overlapSelect" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/stringify && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/overlapSelect && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/overlapSelect "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/overlapSelect" diff --git a/recipes/ucsc-overlapselect/include.patch b/recipes/ucsc-overlapselect/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-overlapselect/include.patch +++ b/recipes/ucsc-overlapselect/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-overlapselect/meta.yaml b/recipes/ucsc-overlapselect/meta.yaml index c56ff504055c6..00978ce2ec5d1 100644 --- a/recipes/ucsc-overlapselect/meta.yaml +++ b/recipes/ucsc-overlapselect/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-overlapselect" %} {% set program = "overlapSelect" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 1 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,24 +27,24 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: " Select records based on overlapping chromosome ranges. The ranges are specified in the selectFile, with each block specifying a range. @@ -50,3 +52,11 @@ Records are copied from the inFile to outFile based on the selection criteria. Selection is based on blocks or exons rather than entire range. " + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-para/build.sh b/recipes/ucsc-para/build.sh index 6fd859b06df5a..42637fdceedef 100644 --- a/recipes/ucsc-para/build.sh +++ b/recipes/ucsc-para/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/parasol && make) -cp kent/src/parasol/bin/para "$PREFIX/bin" -chmod +x "$PREFIX/bin/para" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/parasol && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp kent/src/parasol/bin/para "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/para" diff --git a/recipes/ucsc-para/include.patch b/recipes/ucsc-para/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-para/include.patch +++ b/recipes/ucsc-para/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-para/meta.yaml b/recipes/ucsc-para/meta.yaml index ce4365c52b3fd..51ddc57dd7308 100644 --- a/recipes/ucsc-para/meta.yaml +++ b/recipes/ucsc-para/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-para" %} {% set program = "para" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "version 12.18" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-parafetch/build.sh b/recipes/ucsc-parafetch/build.sh index 4ca0a8d0b0c96..4b721d3254311 100644 --- a/recipes/ucsc-parafetch/build.sh +++ b/recipes/ucsc-parafetch/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/paraFetch && make) -cp bin/paraFetch "$PREFIX/bin" -chmod +x "$PREFIX/bin/paraFetch" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/paraFetch && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/paraFetch "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/paraFetch" diff --git a/recipes/ucsc-parafetch/include.patch b/recipes/ucsc-parafetch/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-parafetch/include.patch +++ b/recipes/ucsc-parafetch/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-parafetch/meta.yaml b/recipes/ucsc-parafetch/meta.yaml index f87780cd44f5a..027e9eb2c2a9f 100644 --- a/recipes/ucsc-parafetch/meta.yaml +++ b/recipes/ucsc-parafetch/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-parafetch" %} {% set program = "paraFetch" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "try to fetch url with multiple connections" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-parahub/build.sh b/recipes/ucsc-parahub/build.sh index b07637d49880f..b3179ffe3b0ea 100644 --- a/recipes/ucsc-parahub/build.sh +++ b/recipes/ucsc-parahub/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/parasol && make) -cp kent/src/parasol/bin/paraHub "$PREFIX/bin" -chmod +x "$PREFIX/bin/paraHub" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/parasol && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp kent/src/parasol/bin/paraHub "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/paraHub" diff --git a/recipes/ucsc-parahub/include.patch b/recipes/ucsc-parahub/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-parahub/include.patch +++ b/recipes/ucsc-parahub/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-parahub/meta.yaml b/recipes/ucsc-parahub/meta.yaml index 1c6a1f5c685f9..5643cd381a146 100644 --- a/recipes/ucsc-parahub/meta.yaml +++ b/recipes/ucsc-parahub/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-parahub" %} {% set program = "paraHub" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "parasol hub server version 12.18" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-parahubstop/build.sh b/recipes/ucsc-parahubstop/build.sh index b6d59daed3d1b..4928c38160983 100644 --- a/recipes/ucsc-parahubstop/build.sh +++ b/recipes/ucsc-parahubstop/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/parasol && make) -cp kent/src/parasol/bin/paraHubStop "$PREFIX/bin" -chmod +x "$PREFIX/bin/paraHubStop" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/parasol && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp kent/src/parasol/bin/paraHubStop "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/paraHubStop" diff --git a/recipes/ucsc-parahubstop/include.patch b/recipes/ucsc-parahubstop/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-parahubstop/include.patch +++ b/recipes/ucsc-parahubstop/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-parahubstop/meta.yaml b/recipes/ucsc-parahubstop/meta.yaml index 3db97dd0e5048..58351f6cdbfed 100644 --- a/recipes/ucsc-parahubstop/meta.yaml +++ b/recipes/ucsc-parahubstop/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-parahubstop" %} {% set program = "paraHubStop" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "version 12.18" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-paranode/build.sh b/recipes/ucsc-paranode/build.sh index 9f0598370b27c..4264150ac6964 100644 --- a/recipes/ucsc-paranode/build.sh +++ b/recipes/ucsc-paranode/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/parasol && make) -cp kent/src/parasol/bin/paraNode "$PREFIX/bin" -chmod +x "$PREFIX/bin/paraNode" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/parasol && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp kent/src/parasol/bin/paraNode "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/paraNode" diff --git a/recipes/ucsc-paranode/include.patch b/recipes/ucsc-paranode/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-paranode/include.patch +++ b/recipes/ucsc-paranode/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-paranode/meta.yaml b/recipes/ucsc-paranode/meta.yaml index ac3724fcebfc6..bebf62ba576af 100644 --- a/recipes/ucsc-paranode/meta.yaml +++ b/recipes/ucsc-paranode/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-paranode" %} {% set program = "paraNode" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "version 12.18" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-paranodestart/build.sh b/recipes/ucsc-paranodestart/build.sh index 12c13b8de1cc0..bcd025dda9cfd 100644 --- a/recipes/ucsc-paranodestart/build.sh +++ b/recipes/ucsc-paranodestart/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/parasol && make) -cp kent/src/parasol/bin/paraNodeStart "$PREFIX/bin" -chmod +x "$PREFIX/bin/paraNodeStart" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/parasol && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp kent/src/parasol/bin/paraNodeStart "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/paraNodeStart" diff --git a/recipes/ucsc-paranodestart/include.patch b/recipes/ucsc-paranodestart/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-paranodestart/include.patch +++ b/recipes/ucsc-paranodestart/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-paranodestart/meta.yaml b/recipes/ucsc-paranodestart/meta.yaml index 616f68ffa2dc6..fc403349abe12 100644 --- a/recipes/ucsc-paranodestart/meta.yaml +++ b/recipes/ucsc-paranodestart/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-paranodestart" %} {% set program = "paraNodeStart" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "version 12.18" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-paranodestatus/build.sh b/recipes/ucsc-paranodestatus/build.sh index 1bcf47aaa7b35..511f3623d3dff 100644 --- a/recipes/ucsc-paranodestatus/build.sh +++ b/recipes/ucsc-paranodestatus/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/parasol && make) -cp kent/src/parasol/bin/paraNodeStatus "$PREFIX/bin" -chmod +x "$PREFIX/bin/paraNodeStatus" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/parasol && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp kent/src/parasol/bin/paraNodeStatus "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/paraNodeStatus" diff --git a/recipes/ucsc-paranodestatus/include.patch b/recipes/ucsc-paranodestatus/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-paranodestatus/include.patch +++ b/recipes/ucsc-paranodestatus/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-paranodestatus/meta.yaml b/recipes/ucsc-paranodestatus/meta.yaml index de880fd0e1e19..8f02ac48eb5c0 100644 --- a/recipes/ucsc-paranodestatus/meta.yaml +++ b/recipes/ucsc-paranodestatus/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-paranodestatus" %} {% set program = "paraNodeStatus" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "version 12.18" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-paranodestop/build.sh b/recipes/ucsc-paranodestop/build.sh index 70ee91dcb5ccb..3bf8a31b65e09 100644 --- a/recipes/ucsc-paranodestop/build.sh +++ b/recipes/ucsc-paranodestop/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/parasol && make) -cp kent/src/parasol/bin/paraNodeStop "$PREFIX/bin" -chmod +x "$PREFIX/bin/paraNodeStop" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/parasol && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp kent/src/parasol/bin/paraNodeStop "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/paraNodeStop" diff --git a/recipes/ucsc-paranodestop/include.patch b/recipes/ucsc-paranodestop/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-paranodestop/include.patch +++ b/recipes/ucsc-paranodestop/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-paranodestop/meta.yaml b/recipes/ucsc-paranodestop/meta.yaml index 4cd1915969163..f7128debc7d61 100644 --- a/recipes/ucsc-paranodestop/meta.yaml +++ b/recipes/ucsc-paranodestop/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-paranodestop" %} {% set program = "paraNodeStop" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,24 +27,33 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: " Shut down parasol node daemons on a list of machines " + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-parasol/build.sh b/recipes/ucsc-parasol/build.sh index 71cb7156a637c..0c8cf86fdf1eb 100644 --- a/recipes/ucsc-parasol/build.sh +++ b/recipes/ucsc-parasol/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/parasol && make) -cp kent/src/parasol/bin/parasol "$PREFIX/bin" -chmod +x "$PREFIX/bin/parasol" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/parasol && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp kent/src/parasol/bin/parasol "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/parasol" diff --git a/recipes/ucsc-parasol/include.patch b/recipes/ucsc-parasol/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-parasol/include.patch +++ b/recipes/ucsc-parasol/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-parasol/meta.yaml b/recipes/ucsc-parasol/meta.yaml index 312af4a41ac72..0b01fffa4b53f 100644 --- a/recipes/ucsc-parasol/meta.yaml +++ b/recipes/ucsc-parasol/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-parasol" %} {% set program = "parasol" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,27 +27,36 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: " Parasol is the name given to the overall system for managing jobs on a computer cluster and to this specific command. This command is intended primarily for system administrators. The 'para' command is the primary command for users. " + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-parasync/build.sh b/recipes/ucsc-parasync/build.sh index 471e37fc9c924..5d4414af87ee1 100644 --- a/recipes/ucsc-parasync/build.sh +++ b/recipes/ucsc-parasync/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/paraSync && make) -cp bin/paraSync "$PREFIX/bin" -chmod +x "$PREFIX/bin/paraSync" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/paraSync && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/paraSync "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/paraSync" diff --git a/recipes/ucsc-parasync/include.patch b/recipes/ucsc-parasync/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-parasync/include.patch +++ b/recipes/ucsc-parasync/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-parasync/meta.yaml b/recipes/ucsc-parasync/meta.yaml index cd3b79f2d8324..ef74648b0d782 100644 --- a/recipes/ucsc-parasync/meta.yaml +++ b/recipes/ucsc-parasync/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-parasync" %} {% set program = "paraSync" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "uses paraFetch to recursively mirror url to given path" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-paratestjob/build.sh b/recipes/ucsc-paratestjob/build.sh index 3578cd03ac885..23d28f563e267 100644 --- a/recipes/ucsc-paratestjob/build.sh +++ b/recipes/ucsc-paratestjob/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/parasol && make) -cp kent/src/parasol/bin/paraTestJob "$PREFIX/bin" -chmod +x "$PREFIX/bin/paraTestJob" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/parasol && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp kent/src/parasol/bin/paraTestJob "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/paraTestJob" diff --git a/recipes/ucsc-paratestjob/include.patch b/recipes/ucsc-paratestjob/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-paratestjob/include.patch +++ b/recipes/ucsc-paratestjob/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-paratestjob/meta.yaml b/recipes/ucsc-paratestjob/meta.yaml index ab5b4396c8617..edbd7f5781f3d 100644 --- a/recipes/ucsc-paratestjob/meta.yaml +++ b/recipes/ucsc-paratestjob/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-paratestjob" %} {% set program = "paraTestJob" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "version 12.18" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-positionaltblcheck/build.sh b/recipes/ucsc-positionaltblcheck/build.sh index 2aac0fb259542..4a2db6d3472b3 100644 --- a/recipes/ucsc-positionaltblcheck/build.sh +++ b/recipes/ucsc-positionaltblcheck/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/utils/positionalTblCheck && make) -cp bin/positionalTblCheck "$PREFIX/bin" -chmod +x "$PREFIX/bin/positionalTblCheck" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/positionalTblCheck && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/positionalTblCheck "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/positionalTblCheck" diff --git a/recipes/ucsc-positionaltblcheck/include.patch b/recipes/ucsc-positionaltblcheck/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-positionaltblcheck/include.patch +++ b/recipes/ucsc-positionaltblcheck/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-positionaltblcheck/meta.yaml b/recipes/ucsc-positionaltblcheck/meta.yaml index 022176abef7e4..d71f3a86bf615 100644 --- a/recipes/ucsc-positionaltblcheck/meta.yaml +++ b/recipes/ucsc-positionaltblcheck/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-positionaltblcheck" %} {% set program = "positionalTblCheck" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "check that positional tables are sorted" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-pslcat/build.sh b/recipes/ucsc-pslcat/build.sh index 8f0d19f7c40f9..ef4ae6bb97d3d 100644 --- a/recipes/ucsc-pslcat/build.sh +++ b/recipes/ucsc-pslcat/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/pslCat && make) -cp bin/pslCat "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslCat" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/pslCat && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/pslCat "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/pslCat" diff --git a/recipes/ucsc-pslcat/include.patch b/recipes/ucsc-pslcat/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-pslcat/include.patch +++ b/recipes/ucsc-pslcat/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-pslcat/meta.yaml b/recipes/ucsc-pslcat/meta.yaml index 21c04084ea807..84be38fe0d48b 100644 --- a/recipes/ucsc-pslcat/meta.yaml +++ b/recipes/ucsc-pslcat/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslcat" %} {% set program = "pslCat" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "concatenate psl files" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-pslcdnafilter/build.sh b/recipes/ucsc-pslcdnafilter/build.sh index 05a21275d4c6d..6f9c17e7cba0b 100644 --- a/recipes/ucsc-pslcdnafilter/build.sh +++ b/recipes/ucsc-pslcdnafilter/build.sh @@ -1,14 +1,22 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/stringify && make) -(cd kent/src/hg/pslCDnaFilter && make) -cp bin/pslCDnaFilter "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslCDnaFilter" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/stringify && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/pslCDnaFilter && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/pslCDnaFilter "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/pslCDnaFilter" diff --git a/recipes/ucsc-pslcdnafilter/include.patch b/recipes/ucsc-pslcdnafilter/include.patch index e9c8621194325..edc04d0dc2f64 100644 --- a/recipes/ucsc-pslcdnafilter/include.patch +++ b/recipes/ucsc-pslcdnafilter/include.patch @@ -1,30 +1,22 @@ --- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 ++++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -+++ kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -@@ -147,4 +147,4 @@ -- L+=${PREFIX}/lib/libssl.a ${PREFIX}/lib/libcrypto.a -ldl -+ L+=${PREFIX}/lib/libssl.so ${PREFIX}/lib/libcrypto.so -ldl - else - ifneq ($(wildcard /opt/local/lib/libssl.a),) - L+=/opt/local/lib/libssl.a ---- kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 -+++ kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ --KENT_INC=-I../../../inc -+KENT_INC=-I../../../inc -I${PREFIX}/include - - straw: straw.o cStraw.o - ld -r -o ../straw.o straw.o cStraw.o +-#!/usr/bin/env python2.7 ++#!/usr/bin/env python + + import logging, sys, optparse, string + from collections import defaultdict --- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ diff --git a/recipes/ucsc-pslcdnafilter/meta.yaml b/recipes/ucsc-pslcdnafilter/meta.yaml index 8807ae5634842..58d533a67e4ff 100644 --- a/recipes/ucsc-pslcdnafilter/meta.yaml +++ b/recipes/ucsc-pslcdnafilter/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslcdnafilter" %} {% set program = "pslCDnaFilter" %} -{% set version = "445" %} -{% set sha256 = "c7abb5db6a5e16a79aefcee849d2b59dbc71ee112ca1e41fea0afb25229cf56c" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -14,39 +14,48 @@ source: - "include.patch" build: - skip: True # [osx] - number: 1 + skip: True # [osx] + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: - make - {{ compiler('c') }} - - {{ compiler('cxx') }} - - binutils # [linux] host: - libpng - libuuid - mysql-connector-c - - openssl - libopenssl-static - zlib + run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static + - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: " Filter cDNA alignments in psl format. Filtering criteria are comparative, selecting near best in genome alignments for each given cDNA and non-comparative, based only on the quality of an individual alignment. " + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-pslcheck/build.sh b/recipes/ucsc-pslcheck/build.sh index 9b8ba14c30a7e..bea130066fb3d 100644 --- a/recipes/ucsc-pslcheck/build.sh +++ b/recipes/ucsc-pslcheck/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/pslCheck && make) -cp bin/pslCheck "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslCheck" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/pslCheck && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/pslCheck "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/pslCheck" diff --git a/recipes/ucsc-pslcheck/include.patch b/recipes/ucsc-pslcheck/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-pslcheck/include.patch +++ b/recipes/ucsc-pslcheck/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-pslcheck/meta.yaml b/recipes/ucsc-pslcheck/meta.yaml index bdb230d6bd710..58ac61563cab6 100644 --- a/recipes/ucsc-pslcheck/meta.yaml +++ b/recipes/ucsc-pslcheck/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslcheck" %} {% set program = "pslCheck" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "validate PSL files" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-psldropoverlap/build.sh b/recipes/ucsc-psldropoverlap/build.sh index 3d6c3a2acdf28..8056852ba266e 100644 --- a/recipes/ucsc-psldropoverlap/build.sh +++ b/recipes/ucsc-psldropoverlap/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/pslDropOverlap && make) -cp bin/pslDropOverlap "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslDropOverlap" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/pslDropOverlap && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/pslDropOverlap "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/pslDropOverlap" diff --git a/recipes/ucsc-psldropoverlap/include.patch b/recipes/ucsc-psldropoverlap/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-psldropoverlap/include.patch +++ b/recipes/ucsc-psldropoverlap/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-psldropoverlap/meta.yaml b/recipes/ucsc-psldropoverlap/meta.yaml index 69fc9e7fd456d..6e34ccd565410 100644 --- a/recipes/ucsc-psldropoverlap/meta.yaml +++ b/recipes/ucsc-psldropoverlap/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-psldropoverlap" %} {% set program = "pslDropOverlap" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "deletes all overlapping self alignments. " + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-pslfilter/build.sh b/recipes/ucsc-pslfilter/build.sh index 45a8bda3a2219..cf8b855b41b42 100644 --- a/recipes/ucsc-pslfilter/build.sh +++ b/recipes/ucsc-pslfilter/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/pslFilter && make) -cp bin/pslFilter "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslFilter" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/pslFilter && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/pslFilter "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/pslFilter" diff --git a/recipes/ucsc-pslfilter/include.patch b/recipes/ucsc-pslfilter/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-pslfilter/include.patch +++ b/recipes/ucsc-pslfilter/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-pslfilter/meta.yaml b/recipes/ucsc-pslfilter/meta.yaml index 73d97517cbbee..3069b7da5417d 100644 --- a/recipes/ucsc-pslfilter/meta.yaml +++ b/recipes/ucsc-pslfilter/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslfilter" %} {% set program = "pslFilter" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "filter out psl file" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-pslhisto/build.sh b/recipes/ucsc-pslhisto/build.sh index d1f0b2a1cdc0a..0e8b1fe8c5bf1 100644 --- a/recipes/ucsc-pslhisto/build.sh +++ b/recipes/ucsc-pslhisto/build.sh @@ -2,20 +2,20 @@ set -xe -mkdir -p "$PREFIX/bin" +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) +export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" -export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/pslHisto && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/pslHisto "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/pslHisto" +cp bin/pslHisto "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/pslHisto" diff --git a/recipes/ucsc-pslhisto/meta.yaml b/recipes/ucsc-pslhisto/meta.yaml index 404d4c7f221a3..3f78d33a190b3 100644 --- a/recipes/ucsc-pslhisto/meta.yaml +++ b/recipes/ucsc-pslhisto/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslhisto" %} {% set program = "pslHisto" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -43,8 +43,8 @@ test: - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: " Collect counts on PSL alignments for making histograms. These then be analyzed with R, textHistogram, etc. @@ -53,5 +53,8 @@ analyzed with R, textHistogram, etc. doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-pslliftsubrangeblat/build.sh b/recipes/ucsc-pslliftsubrangeblat/build.sh index 0e33ea9346038..a814a887df9b0 100644 --- a/recipes/ucsc-pslliftsubrangeblat/build.sh +++ b/recipes/ucsc-pslliftsubrangeblat/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/pslLiftSubrangeBlat && make) -cp bin/pslLiftSubrangeBlat "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslLiftSubrangeBlat" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/pslLiftSubrangeBlat && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/pslLiftSubrangeBlat "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/pslLiftSubrangeBlat" diff --git a/recipes/ucsc-pslliftsubrangeblat/include.patch b/recipes/ucsc-pslliftsubrangeblat/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-pslliftsubrangeblat/include.patch +++ b/recipes/ucsc-pslliftsubrangeblat/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-pslliftsubrangeblat/meta.yaml b/recipes/ucsc-pslliftsubrangeblat/meta.yaml index fecad941cbb28..79dce984359ef 100644 --- a/recipes/ucsc-pslliftsubrangeblat/meta.yaml +++ b/recipes/ucsc-pslliftsubrangeblat/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslliftsubrangeblat" %} {% set program = "pslLiftSubrangeBlat" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "lift PSLs from blat subrange alignments" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-pslmap/build.sh b/recipes/ucsc-pslmap/build.sh index a50ee2333c360..dc5c2fd9f25d7 100644 --- a/recipes/ucsc-pslmap/build.sh +++ b/recipes/ucsc-pslmap/build.sh @@ -1,14 +1,22 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/stringify && make) -(cd kent/src/hg/utils/pslMap && make) -cp bin/pslMap "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslMap" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/stringify && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/pslMap && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/pslMap "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/pslMap" diff --git a/recipes/ucsc-pslmap/include.patch b/recipes/ucsc-pslmap/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-pslmap/include.patch +++ b/recipes/ucsc-pslmap/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-pslmap/meta.yaml b/recipes/ucsc-pslmap/meta.yaml index 2c144a480b637..df0c23ae1a8c3 100644 --- a/recipes/ucsc-pslmap/meta.yaml +++ b/recipes/ucsc-pslmap/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslmap" %} {% set program = "pslMap" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 1 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "map PSLs alignments to new targets using alignments of" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-pslmappostchain/build.sh b/recipes/ucsc-pslmappostchain/build.sh index 54453ecba698c..5eadb4481a518 100644 --- a/recipes/ucsc-pslmappostchain/build.sh +++ b/recipes/ucsc-pslmappostchain/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/utils/pslMapPostChain && make) -cp bin/pslMapPostChain "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslMapPostChain" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/pslMapPostChain && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/pslMapPostChain "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/pslMapPostChain" diff --git a/recipes/ucsc-pslmappostchain/include.patch b/recipes/ucsc-pslmappostchain/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-pslmappostchain/include.patch +++ b/recipes/ucsc-pslmappostchain/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-pslmappostchain/meta.yaml b/recipes/ucsc-pslmappostchain/meta.yaml index b2906a3216d1f..7c51187e06db4 100644 --- a/recipes/ucsc-pslmappostchain/meta.yaml +++ b/recipes/ucsc-pslmappostchain/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslmappostchain" %} {% set program = "pslMapPostChain" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,27 +27,36 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: " Post genomic pslMap (TransMap) chaining. This takes transcripts that have been mapped via genomic chains adds back in blocks that didn't get include in genomic chains due to complex rearrangements or other issues. " + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-pslmrnacover/build.sh b/recipes/ucsc-pslmrnacover/build.sh index a7c9804cb5f4a..9cff5cb571c0e 100644 --- a/recipes/ucsc-pslmrnacover/build.sh +++ b/recipes/ucsc-pslmrnacover/build.sh @@ -17,5 +17,5 @@ mkdir -p "${BINDIR}" (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/mouseStuff/pslMrnaCover && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/pslMrnaCover "${PREFIX}/bin" +cp bin/pslMrnaCover "${PREFIX}/bin" chmod 0755 "${PREFIX}/bin/pslMrnaCover" diff --git a/recipes/ucsc-pslmrnacover/meta.yaml b/recipes/ucsc-pslmrnacover/meta.yaml index 3b0628781bcd1..a50e026a5250b 100644 --- a/recipes/ucsc-pslmrnacover/meta.yaml +++ b/recipes/ucsc-pslmrnacover/meta.yaml @@ -50,5 +50,8 @@ about: doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-pslpairs/build.sh b/recipes/ucsc-pslpairs/build.sh index a90d13ee108cb..6cd14191ba17c 100644 --- a/recipes/ucsc-pslpairs/build.sh +++ b/recipes/ucsc-pslpairs/build.sh @@ -2,20 +2,20 @@ set -xe -mkdir -p "$PREFIX/bin" +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) +export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" -export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -(cd kent/src/hg/lib && USE_HIC=0 make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/pslPairs && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/pslPairs "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/pslPairs" +cp bin/pslPairs "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/pslPairs" diff --git a/recipes/ucsc-pslpairs/meta.yaml b/recipes/ucsc-pslpairs/meta.yaml index b581d5d417072..73161b3ec6fb7 100644 --- a/recipes/ucsc-pslpairs/meta.yaml +++ b/recipes/ucsc-pslpairs/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslpairs" %} {% set program = "pslPairs" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -43,12 +43,15 @@ test: - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "join paired ends in psl alignments" dev_url: "https://github.com/ucscGenomeBrowser/kent" doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-pslpartition/build.sh b/recipes/ucsc-pslpartition/build.sh index 3a4209e4f50cf..291e7d801ec0b 100644 --- a/recipes/ucsc-pslpartition/build.sh +++ b/recipes/ucsc-pslpartition/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/pslPartition && make) -cp bin/pslPartition "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslPartition" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/pslPartition && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/pslPartition "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/pslPartition" diff --git a/recipes/ucsc-pslpartition/include.patch b/recipes/ucsc-pslpartition/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-pslpartition/include.patch +++ b/recipes/ucsc-pslpartition/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-pslpartition/meta.yaml b/recipes/ucsc-pslpartition/meta.yaml index 11df1060d2279..377e85b51ecf5 100644 --- a/recipes/ucsc-pslpartition/meta.yaml +++ b/recipes/ucsc-pslpartition/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslpartition" %} {% set program = "pslPartition" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "split PSL files into non-overlapping sets" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-pslpostarget/build.sh b/recipes/ucsc-pslpostarget/build.sh index a69900e05adbd..fb27dca9ad942 100644 --- a/recipes/ucsc-pslpostarget/build.sh +++ b/recipes/ucsc-pslpostarget/build.sh @@ -2,20 +2,20 @@ set -xe -mkdir -p "$PREFIX/bin" +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) +export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" -export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/utils/pslPosTarget && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/pslPosTarget "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/pslPosTarget" +cp bin/pslPosTarget "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/pslPosTarget" diff --git a/recipes/ucsc-pslpostarget/meta.yaml b/recipes/ucsc-pslpostarget/meta.yaml index 7dfaf50fd3ce5..8172abd6a6979 100644 --- a/recipes/ucsc-pslpostarget/meta.yaml +++ b/recipes/ucsc-pslpostarget/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslpostarget" %} {% set program = "pslPosTarget" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -43,12 +43,15 @@ test: - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "flip psl strands so target is positive and implicit" dev_url: "https://github.com/ucscGenomeBrowser/kent" doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-pslpretty/build.sh b/recipes/ucsc-pslpretty/build.sh index 89c3ce9725e23..f4d1451c7c558 100644 --- a/recipes/ucsc-pslpretty/build.sh +++ b/recipes/ucsc-pslpretty/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/pslPretty && make) -cp bin/pslPretty "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslPretty" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/pslPretty && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/pslPretty "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/pslPretty" diff --git a/recipes/ucsc-pslpretty/include.patch b/recipes/ucsc-pslpretty/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-pslpretty/include.patch +++ b/recipes/ucsc-pslpretty/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-pslpretty/meta.yaml b/recipes/ucsc-pslpretty/meta.yaml index 9810dafca6c09..e2db3fedad559 100644 --- a/recipes/ucsc-pslpretty/meta.yaml +++ b/recipes/ucsc-pslpretty/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslpretty" %} {% set program = "pslPretty" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert PSL to human-readable output" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-pslrc/build.sh b/recipes/ucsc-pslrc/build.sh index 03b0eed50d4cd..6ca282e519ca1 100644 --- a/recipes/ucsc-pslrc/build.sh +++ b/recipes/ucsc-pslrc/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/utils/pslRc && make) -cp bin/pslRc "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslRc" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/pslRc && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/pslRc "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/pslRc" diff --git a/recipes/ucsc-pslrc/include.patch b/recipes/ucsc-pslrc/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-pslrc/include.patch +++ b/recipes/ucsc-pslrc/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-pslrc/meta.yaml b/recipes/ucsc-pslrc/meta.yaml index a42ca7ee23c4d..3ac6f82f47dfe 100644 --- a/recipes/ucsc-pslrc/meta.yaml +++ b/recipes/ucsc-pslrc/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslrc" %} {% set program = "pslRc" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "reverse-complement psl" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-pslrecalcmatch/build.sh b/recipes/ucsc-pslrecalcmatch/build.sh index 41a0a5d53edfe..17f174080a9f0 100644 --- a/recipes/ucsc-pslrecalcmatch/build.sh +++ b/recipes/ucsc-pslrecalcmatch/build.sh @@ -2,20 +2,20 @@ set -xe -mkdir -p "$PREFIX/bin" +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) +export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" -export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/pslRecalcMatch && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/pslRecalcMatch "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/pslRecalcMatch" +cp bin/pslRecalcMatch "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/pslRecalcMatch" diff --git a/recipes/ucsc-pslrecalcmatch/meta.yaml b/recipes/ucsc-pslrecalcmatch/meta.yaml index ecff808f4ac50..3a6b62e0f316b 100644 --- a/recipes/ucsc-pslrecalcmatch/meta.yaml +++ b/recipes/ucsc-pslrecalcmatch/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslrecalcmatch" %} {% set program = "pslRecalcMatch" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -43,12 +43,15 @@ test: - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Recalculate match,mismatch,repMatch columns in psl file." dev_url: "https://github.com/ucscGenomeBrowser/kent" doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-pslreps/build.sh b/recipes/ucsc-pslreps/build.sh index adbe151df2566..fa9e34309baed 100644 --- a/recipes/ucsc-pslreps/build.sh +++ b/recipes/ucsc-pslreps/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/pslReps && make) -cp bin/pslReps "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslReps" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/pslReps && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/pslReps "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/pslReps" diff --git a/recipes/ucsc-pslreps/include.patch b/recipes/ucsc-pslreps/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-pslreps/include.patch +++ b/recipes/ucsc-pslreps/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-pslreps/meta.yaml b/recipes/ucsc-pslreps/meta.yaml index 450be1b4a1e2c..a6430c181ea3c 100644 --- a/recipes/ucsc-pslreps/meta.yaml +++ b/recipes/ucsc-pslreps/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslreps" %} {% set program = "pslReps" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Analyze repeats and generate genome-wide best alignments from a" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-pslscore/build.sh b/recipes/ucsc-pslscore/build.sh index 1a0fa041d5306..874a7d983f790 100644 --- a/recipes/ucsc-pslscore/build.sh +++ b/recipes/ucsc-pslscore/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/pslScore && make) -cp bin/pslScore "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslScore" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/pslScore && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/pslScore "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/pslScore" diff --git a/recipes/ucsc-pslscore/include.patch b/recipes/ucsc-pslscore/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-pslscore/include.patch +++ b/recipes/ucsc-pslscore/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-pslscore/meta.yaml b/recipes/ucsc-pslscore/meta.yaml index 5be496a84abbb..1476a30e87a17 100644 --- a/recipes/ucsc-pslscore/meta.yaml +++ b/recipes/ucsc-pslscore/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslscore" %} {% set program = "pslScore" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "calculate web blat score from psl files" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-pslselect/build.sh b/recipes/ucsc-pslselect/build.sh index 661a81177c6c2..c9df1304a0391 100644 --- a/recipes/ucsc-pslselect/build.sh +++ b/recipes/ucsc-pslselect/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/pslSelect && make) -cp bin/pslSelect "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslSelect" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/pslSelect && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/pslSelect "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/pslSelect" diff --git a/recipes/ucsc-pslselect/include.patch b/recipes/ucsc-pslselect/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-pslselect/include.patch +++ b/recipes/ucsc-pslselect/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-pslselect/meta.yaml b/recipes/ucsc-pslselect/meta.yaml index 94e42706a0ac7..58d456a600295 100644 --- a/recipes/ucsc-pslselect/meta.yaml +++ b/recipes/ucsc-pslselect/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslselect" %} {% set program = "pslSelect" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "select records from a PSL file." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-pslsomerecords/build.sh b/recipes/ucsc-pslsomerecords/build.sh index c7390660855d1..ad88b60584d55 100644 --- a/recipes/ucsc-pslsomerecords/build.sh +++ b/recipes/ucsc-pslsomerecords/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/pslSomeRecords && make) -cp bin/pslSomeRecords "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslSomeRecords" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/pslSomeRecords && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/pslSomeRecords "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/pslSomeRecords" diff --git a/recipes/ucsc-pslsomerecords/include.patch b/recipes/ucsc-pslsomerecords/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-pslsomerecords/include.patch +++ b/recipes/ucsc-pslsomerecords/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-pslsomerecords/meta.yaml b/recipes/ucsc-pslsomerecords/meta.yaml index 1bc820c6a1f16..5af9a55a1dad2 100644 --- a/recipes/ucsc-pslsomerecords/meta.yaml +++ b/recipes/ucsc-pslsomerecords/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslsomerecords" %} {% set program = "pslSomeRecords" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Extract multiple psl records" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-pslsort/build.sh b/recipes/ucsc-pslsort/build.sh index b18c33998499e..046c3d78cb35f 100644 --- a/recipes/ucsc-pslsort/build.sh +++ b/recipes/ucsc-pslsort/build.sh @@ -2,20 +2,20 @@ set -xe -mkdir -p "$PREFIX/bin" +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) +export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" -export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/pslSort && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/pslSort "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/pslSort" +cp bin/pslSort "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/pslSort" diff --git a/recipes/ucsc-pslsort/meta.yaml b/recipes/ucsc-pslsort/meta.yaml index 79c34e14b5ec6..5e7ae26baeb3f 100644 --- a/recipes/ucsc-pslsort/meta.yaml +++ b/recipes/ucsc-pslsort/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslsort" %} {% set program = "pslSort" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -43,12 +43,15 @@ test: - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Merge and sort psCluster .psl output files" dev_url: "https://github.com/ucscGenomeBrowser/kent" doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-pslstats/build.sh b/recipes/ucsc-pslstats/build.sh index e010d560bb0c1..5955bcc8bc430 100644 --- a/recipes/ucsc-pslstats/build.sh +++ b/recipes/ucsc-pslstats/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/pslStats && make) -cp bin/pslStats "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslStats" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/pslStats && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/pslStats "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/pslStats" diff --git a/recipes/ucsc-pslstats/include.patch b/recipes/ucsc-pslstats/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-pslstats/include.patch +++ b/recipes/ucsc-pslstats/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-pslstats/meta.yaml b/recipes/ucsc-pslstats/meta.yaml index 9a3e3b0f48491..df4dcdf568dde 100644 --- a/recipes/ucsc-pslstats/meta.yaml +++ b/recipes/ucsc-pslstats/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslstats" %} {% set program = "pslStats" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "collect statistics from a psl file." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-pslswap/build.sh b/recipes/ucsc-pslswap/build.sh index 0b4455e51c576..e1bbe56df4c19 100644 --- a/recipes/ucsc-pslswap/build.sh +++ b/recipes/ucsc-pslswap/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/pslSwap && make) -cp bin/pslSwap "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslSwap" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/pslSwap && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/pslSwap "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/pslSwap" diff --git a/recipes/ucsc-pslswap/include.patch b/recipes/ucsc-pslswap/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-pslswap/include.patch +++ b/recipes/ucsc-pslswap/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-pslswap/meta.yaml b/recipes/ucsc-pslswap/meta.yaml index 3d086d16daa16..034f5d8fb55c0 100644 --- a/recipes/ucsc-pslswap/meta.yaml +++ b/recipes/ucsc-pslswap/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslswap" %} {% set program = "pslSwap" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,24 +27,33 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: " Swap target and query in psls " + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-psltobed/build.sh b/recipes/ucsc-psltobed/build.sh index aad6779233d63..7280bbec84dfc 100644 --- a/recipes/ucsc-psltobed/build.sh +++ b/recipes/ucsc-psltobed/build.sh @@ -2,20 +2,20 @@ set -xe -mkdir -p "$PREFIX/bin" +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) +export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" -export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/pslToBed && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/pslToBed "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/pslToBed" +cp bin/pslToBed "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/pslToBed" diff --git a/recipes/ucsc-psltobed/meta.yaml b/recipes/ucsc-psltobed/meta.yaml index b80b18d71a5c4..470ba825d07d8 100644 --- a/recipes/ucsc-psltobed/meta.yaml +++ b/recipes/ucsc-psltobed/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-psltobed" %} {% set program = "pslToBed" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -43,8 +43,8 @@ test: - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: " transform a psl format file to a bed format file. " @@ -52,5 +52,8 @@ transform a psl format file to a bed format file. doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-psltobigpsl/build.sh b/recipes/ucsc-psltobigpsl/build.sh index 3e1f3486afb2c..905ffabb5bda3 100644 --- a/recipes/ucsc-psltobigpsl/build.sh +++ b/recipes/ucsc-psltobigpsl/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/utils/pslToBigPsl && make) -cp bin/pslToBigPsl "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslToBigPsl" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/pslToBigPsl && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/pslToBigPsl "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/pslToBigPsl" diff --git a/recipes/ucsc-psltobigpsl/include.patch b/recipes/ucsc-psltobigpsl/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-psltobigpsl/include.patch +++ b/recipes/ucsc-psltobigpsl/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-psltobigpsl/meta.yaml b/recipes/ucsc-psltobigpsl/meta.yaml index 2682f3653cd23..79c71bdbe2174 100644 --- a/recipes/ucsc-psltobigpsl/meta.yaml +++ b/recipes/ucsc-psltobigpsl/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-psltobigpsl" %} {% set program = "pslToBigPsl" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 5 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "converts psl to bigPsl input (bed format with extra fields)" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-psltochain/build.sh b/recipes/ucsc-psltochain/build.sh index 4d4568b0f1411..ef1f2a4b3cbc2 100644 --- a/recipes/ucsc-psltochain/build.sh +++ b/recipes/ucsc-psltochain/build.sh @@ -2,20 +2,20 @@ set -xe -mkdir -p "$PREFIX/bin" +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) +export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" -export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/pslToChain && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/pslToChain "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/pslToChain" +cp bin/pslToChain "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/pslToChain" diff --git a/recipes/ucsc-psltochain/meta.yaml b/recipes/ucsc-psltochain/meta.yaml index c851e92f46935..87146c0c41407 100644 --- a/recipes/ucsc-psltochain/meta.yaml +++ b/recipes/ucsc-psltochain/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-psltochain" %} {% set program = "pslToChain" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -43,12 +43,15 @@ test: - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert psl records to chain records " dev_url: "https://github.com/ucscGenomeBrowser/kent" doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-psltopslx/build.sh b/recipes/ucsc-psltopslx/build.sh index 5dbb6b7a422ec..922799ae7f212 100644 --- a/recipes/ucsc-psltopslx/build.sh +++ b/recipes/ucsc-psltopslx/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/pslToPslx && make) -cp bin/pslToPslx "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslToPslx" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/pslToPslx && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/pslToPslx "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/pslToPslx" diff --git a/recipes/ucsc-psltopslx/include.patch b/recipes/ucsc-psltopslx/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-psltopslx/include.patch +++ b/recipes/ucsc-psltopslx/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-psltopslx/meta.yaml b/recipes/ucsc-psltopslx/meta.yaml index 77454025bf7f0..cefae969c7fcd 100644 --- a/recipes/ucsc-psltopslx/meta.yaml +++ b/recipes/ucsc-psltopslx/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-psltopslx" %} {% set program = "pslToPslx" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert from psl to pslx format, which includes sequences" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-pslxtofa/build.sh b/recipes/ucsc-pslxtofa/build.sh index 863aec4ce315e..1f69a506672c3 100644 --- a/recipes/ucsc-pslxtofa/build.sh +++ b/recipes/ucsc-pslxtofa/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/pslxToFa && make) -cp bin/pslxToFa "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslxToFa" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/pslxToFa && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/pslxToFa "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/pslxToFa" diff --git a/recipes/ucsc-pslxtofa/include.patch b/recipes/ucsc-pslxtofa/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-pslxtofa/include.patch +++ b/recipes/ucsc-pslxtofa/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-pslxtofa/meta.yaml b/recipes/ucsc-pslxtofa/meta.yaml index 67df737ea1129..25bb9bac1eb2d 100644 --- a/recipes/ucsc-pslxtofa/meta.yaml +++ b/recipes/ucsc-pslxtofa/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslxtofa" %} {% set program = "pslxToFa" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "convert pslx (with sequence) to fasta file" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-qacagplift/build.sh b/recipes/ucsc-qacagplift/build.sh index 1bc5422348f6d..c964a8d70f369 100644 --- a/recipes/ucsc-qacagplift/build.sh +++ b/recipes/ucsc-qacagplift/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/qacAgpLift && make) -cp bin/qacAgpLift "$PREFIX/bin" -chmod +x "$PREFIX/bin/qacAgpLift" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/qacAgpLift && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/qacAgpLift "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/qacAgpLift" diff --git a/recipes/ucsc-qacagplift/include.patch b/recipes/ucsc-qacagplift/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-qacagplift/include.patch +++ b/recipes/ucsc-qacagplift/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-qacagplift/meta.yaml b/recipes/ucsc-qacagplift/meta.yaml index eac8a25f5ecf4..d801311aa1b38 100644 --- a/recipes/ucsc-qacagplift/meta.yaml +++ b/recipes/ucsc-qacagplift/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-qacagplift" %} {% set program = "qacAgpLift" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Use AGP to combine per-scaffold qac into per-chrom qac." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-qactoqa/build.sh b/recipes/ucsc-qactoqa/build.sh index e48a8804dd3e7..9eaa54e5d80b4 100644 --- a/recipes/ucsc-qactoqa/build.sh +++ b/recipes/ucsc-qactoqa/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/qacToQa && make) -cp bin/qacToQa "$PREFIX/bin" -chmod +x "$PREFIX/bin/qacToQa" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/qacToQa && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/qacToQa "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/qacToQa" diff --git a/recipes/ucsc-qactoqa/include.patch b/recipes/ucsc-qactoqa/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-qactoqa/include.patch +++ b/recipes/ucsc-qactoqa/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-qactoqa/meta.yaml b/recipes/ucsc-qactoqa/meta.yaml index 0fbf3dbd9b67e..510d12750220f 100644 --- a/recipes/ucsc-qactoqa/meta.yaml +++ b/recipes/ucsc-qactoqa/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-qactoqa" %} {% set program = "qacToQa" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "convert from compressed to uncompressed" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-qactowig/build.sh b/recipes/ucsc-qactowig/build.sh index 2cfa1d2934098..d39a37b27c18b 100644 --- a/recipes/ucsc-qactowig/build.sh +++ b/recipes/ucsc-qactowig/build.sh @@ -2,20 +2,20 @@ set -xe -mkdir -p "$PREFIX/bin" +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) +export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" -export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/qacToWig && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/qacToWig "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/qacToWig" +cp bin/qacToWig "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/qacToWig" diff --git a/recipes/ucsc-qactowig/meta.yaml b/recipes/ucsc-qactowig/meta.yaml index 0b905003df6a4..86bbbe0154949 100644 --- a/recipes/ucsc-qactowig/meta.yaml +++ b/recipes/ucsc-qactowig/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-qactowig" %} {% set program = "qacToWig" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -43,12 +43,15 @@ test: - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "convert from compressed quality score format to wiggle format." dev_url: "https://github.com/ucscGenomeBrowser/kent" doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-qatoqac/build.sh b/recipes/ucsc-qatoqac/build.sh index 0211aa66be612..413392663e72b 100644 --- a/recipes/ucsc-qatoqac/build.sh +++ b/recipes/ucsc-qatoqac/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/qaToQac && make) -cp bin/qaToQac "$PREFIX/bin" -chmod +x "$PREFIX/bin/qaToQac" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/qaToQac && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/qaToQac "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/qaToQac" diff --git a/recipes/ucsc-qatoqac/include.patch b/recipes/ucsc-qatoqac/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-qatoqac/include.patch +++ b/recipes/ucsc-qatoqac/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-qatoqac/meta.yaml b/recipes/ucsc-qatoqac/meta.yaml index 5b77b89af8a07..2cdd1b678e576 100644 --- a/recipes/ucsc-qatoqac/meta.yaml +++ b/recipes/ucsc-qatoqac/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-qatoqac" %} {% set program = "qaToQac" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "convert from uncompressed to compressed" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-randomlines/build.sh b/recipes/ucsc-randomlines/build.sh index e180d45f77b14..ea6b63b0d2966 100644 --- a/recipes/ucsc-randomlines/build.sh +++ b/recipes/ucsc-randomlines/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/randomLines && make) -cp bin/randomLines "$PREFIX/bin" -chmod +x "$PREFIX/bin/randomLines" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/randomLines && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/randomLines "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/randomLines" diff --git a/recipes/ucsc-randomlines/include.patch b/recipes/ucsc-randomlines/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-randomlines/include.patch +++ b/recipes/ucsc-randomlines/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-randomlines/meta.yaml b/recipes/ucsc-randomlines/meta.yaml index b3923f83b759d..b186f57343ca7 100644 --- a/recipes/ucsc-randomlines/meta.yaml +++ b/recipes/ucsc-randomlines/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-randomlines" %} {% set program = "randomLines" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Pick out random lines from file" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-rasqlquery/build.sh b/recipes/ucsc-rasqlquery/build.sh index 8973924b1eb3e..82a20c81779f9 100644 --- a/recipes/ucsc-rasqlquery/build.sh +++ b/recipes/ucsc-rasqlquery/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/raSqlQuery && make) -cp bin/raSqlQuery "$PREFIX/bin" -chmod +x "$PREFIX/bin/raSqlQuery" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/raSqlQuery && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/raSqlQuery "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/raSqlQuery" diff --git a/recipes/ucsc-rasqlquery/include.patch b/recipes/ucsc-rasqlquery/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-rasqlquery/include.patch +++ b/recipes/ucsc-rasqlquery/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-rasqlquery/meta.yaml b/recipes/ucsc-rasqlquery/meta.yaml index b61951542b664..8b9fca2d654b4 100644 --- a/recipes/ucsc-rasqlquery/meta.yaml +++ b/recipes/ucsc-rasqlquery/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-rasqlquery" %} {% set program = "raSqlQuery" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Do a SQL-like query on a RA file." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-ratolines/build.sh b/recipes/ucsc-ratolines/build.sh index f7bda7baaa8f9..aee4cda65ffba 100644 --- a/recipes/ucsc-ratolines/build.sh +++ b/recipes/ucsc-ratolines/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/raToLines && make) -cp bin/raToLines "$PREFIX/bin" -chmod +x "$PREFIX/bin/raToLines" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/raToLines && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/raToLines "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/raToLines" diff --git a/recipes/ucsc-ratolines/include.patch b/recipes/ucsc-ratolines/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-ratolines/include.patch +++ b/recipes/ucsc-ratolines/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-ratolines/meta.yaml b/recipes/ucsc-ratolines/meta.yaml index b7e5b58948156..2b95786fa9a09 100644 --- a/recipes/ucsc-ratolines/meta.yaml +++ b/recipes/ucsc-ratolines/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-ratolines" %} {% set program = "raToLines" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Output .ra file stanzas as single lines, with pipe-separated fields." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-ratotab/build.sh b/recipes/ucsc-ratotab/build.sh index 376e0b2cb6681..6ef3bb6dbe25c 100644 --- a/recipes/ucsc-ratotab/build.sh +++ b/recipes/ucsc-ratotab/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/raToTab && make) -cp bin/raToTab "$PREFIX/bin" -chmod +x "$PREFIX/bin/raToTab" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/raToTab && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/raToTab "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/raToTab" diff --git a/recipes/ucsc-ratotab/include.patch b/recipes/ucsc-ratotab/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-ratotab/include.patch +++ b/recipes/ucsc-ratotab/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-ratotab/meta.yaml b/recipes/ucsc-ratotab/meta.yaml index 2e41461139f83..a0318e0be1bf6 100644 --- a/recipes/ucsc-ratotab/meta.yaml +++ b/recipes/ucsc-ratotab/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-ratotab" %} {% set program = "raToTab" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert ra file to table." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-rmfadups/build.sh b/recipes/ucsc-rmfadups/build.sh index b7cedf268cbd0..74f2d3bec2e33 100644 --- a/recipes/ucsc-rmfadups/build.sh +++ b/recipes/ucsc-rmfadups/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/rmFaDups && make) -cp bin/rmFaDups "$PREFIX/bin" -chmod +x "$PREFIX/bin/rmFaDups" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/rmFaDups && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/rmFaDups "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/rmFaDups" diff --git a/recipes/ucsc-rmfadups/include.patch b/recipes/ucsc-rmfadups/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-rmfadups/include.patch +++ b/recipes/ucsc-rmfadups/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-rmfadups/meta.yaml b/recipes/ucsc-rmfadups/meta.yaml index 6c578746a3630..3219c579197fb 100644 --- a/recipes/ucsc-rmfadups/meta.yaml +++ b/recipes/ucsc-rmfadups/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-rmfadups" %} {% set program = "rmFaDups" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "remove duplicate records in FA file" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-rowstocols/build.sh b/recipes/ucsc-rowstocols/build.sh index f4c4bb2ade3fd..233ebf5926753 100644 --- a/recipes/ucsc-rowstocols/build.sh +++ b/recipes/ucsc-rowstocols/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/rowsToCols && make) -cp bin/rowsToCols "$PREFIX/bin" -chmod +x "$PREFIX/bin/rowsToCols" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/rowsToCols && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/rowsToCols "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/rowsToCols" diff --git a/recipes/ucsc-rowstocols/include.patch b/recipes/ucsc-rowstocols/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-rowstocols/include.patch +++ b/recipes/ucsc-rowstocols/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-rowstocols/meta.yaml b/recipes/ucsc-rowstocols/meta.yaml index 5996bb1425ee0..3b9bf1fc1db8b 100644 --- a/recipes/ucsc-rowstocols/meta.yaml +++ b/recipes/ucsc-rowstocols/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-rowstocols" %} {% set program = "rowsToCols" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert rows to columns and vice versa in a text file." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-spacedtotab/build.sh b/recipes/ucsc-spacedtotab/build.sh index 6327bb4f36c3e..1a1c572360a7e 100644 --- a/recipes/ucsc-spacedtotab/build.sh +++ b/recipes/ucsc-spacedtotab/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/spacedToTab && make) -cp bin/spacedToTab "$PREFIX/bin" -chmod +x "$PREFIX/bin/spacedToTab" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/spacedToTab && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/spacedToTab "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/spacedToTab" diff --git a/recipes/ucsc-spacedtotab/include.patch b/recipes/ucsc-spacedtotab/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-spacedtotab/include.patch +++ b/recipes/ucsc-spacedtotab/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-spacedtotab/meta.yaml b/recipes/ucsc-spacedtotab/meta.yaml index d14f6086ea2dc..1f7c293aafb21 100644 --- a/recipes/ucsc-spacedtotab/meta.yaml +++ b/recipes/ucsc-spacedtotab/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-spacedtotab" %} {% set program = "spacedToTab" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert fixed width space separated fields to tab separated" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-splitfile/build.sh b/recipes/ucsc-splitfile/build.sh index e4cbfae5d5da6..0b085f08fe8bd 100644 --- a/recipes/ucsc-splitfile/build.sh +++ b/recipes/ucsc-splitfile/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/splitFile && make) -cp bin/splitFile "$PREFIX/bin" -chmod +x "$PREFIX/bin/splitFile" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/splitFile && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/splitFile "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/splitFile" diff --git a/recipes/ucsc-splitfile/include.patch b/recipes/ucsc-splitfile/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-splitfile/include.patch +++ b/recipes/ucsc-splitfile/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-splitfile/meta.yaml b/recipes/ucsc-splitfile/meta.yaml index d7462e408fdb9..e893afcb87139 100644 --- a/recipes/ucsc-splitfile/meta.yaml +++ b/recipes/ucsc-splitfile/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-splitfile" %} {% set program = "splitFile" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Split up a file" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-splitfilebycolumn/build.sh b/recipes/ucsc-splitfilebycolumn/build.sh index b15b6afb70873..7b1ed691f5fc8 100644 --- a/recipes/ucsc-splitfilebycolumn/build.sh +++ b/recipes/ucsc-splitfilebycolumn/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/splitFileByColumn && make) -cp bin/splitFileByColumn "$PREFIX/bin" -chmod +x "$PREFIX/bin/splitFileByColumn" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/splitFileByColumn && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/splitFileByColumn "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/splitFileByColumn" diff --git a/recipes/ucsc-splitfilebycolumn/include.patch b/recipes/ucsc-splitfilebycolumn/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-splitfilebycolumn/include.patch +++ b/recipes/ucsc-splitfilebycolumn/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-splitfilebycolumn/meta.yaml b/recipes/ucsc-splitfilebycolumn/meta.yaml index aebb3eae685cb..4bab401fc02c4 100644 --- a/recipes/ucsc-splitfilebycolumn/meta.yaml +++ b/recipes/ucsc-splitfilebycolumn/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-splitfilebycolumn" %} {% set program = "splitFileByColumn" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Split text input into files named by column value" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-sqltoxml/build.sh b/recipes/ucsc-sqltoxml/build.sh index 825908cd3ff6b..2e84672942070 100644 --- a/recipes/ucsc-sqltoxml/build.sh +++ b/recipes/ucsc-sqltoxml/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/sqlToXml && make) -cp bin/sqlToXml "$PREFIX/bin" -chmod +x "$PREFIX/bin/sqlToXml" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/sqlToXml && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/sqlToXml "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/sqlToXml" diff --git a/recipes/ucsc-sqltoxml/include.patch b/recipes/ucsc-sqltoxml/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-sqltoxml/include.patch +++ b/recipes/ucsc-sqltoxml/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-sqltoxml/meta.yaml b/recipes/ucsc-sqltoxml/meta.yaml index 3556ed5c11082..690ca5a345e3b 100644 --- a/recipes/ucsc-sqltoxml/meta.yaml +++ b/recipes/ucsc-sqltoxml/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-sqltoxml" %} {% set program = "sqlToXml" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "dump out all or part of a relational database to XML, guided" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-stringify/build.sh b/recipes/ucsc-stringify/build.sh index 8a122223b89ca..431d016c0f80d 100644 --- a/recipes/ucsc-stringify/build.sh +++ b/recipes/ucsc-stringify/build.sh @@ -2,20 +2,20 @@ set -xe -mkdir -p "$PREFIX/bin" +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) +export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" -export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/utils/stringify && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/stringify "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/stringify" +cp bin/stringify "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/stringify" diff --git a/recipes/ucsc-stringify/meta.yaml b/recipes/ucsc-stringify/meta.yaml index b11c925f68302..32b2c0585670b 100644 --- a/recipes/ucsc-stringify/meta.yaml +++ b/recipes/ucsc-stringify/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-stringify" %} {% set program = "stringify" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -17,7 +17,7 @@ build: skip: True # [osx] number: 0 run_exports: - - {{ pin_subpackage(package, max_pin=None) }} + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -43,12 +43,15 @@ test: - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert file to C strings" dev_url: "https://github.com/ucscGenomeBrowser/kent" doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-subchar/build.sh b/recipes/ucsc-subchar/build.sh index 5129d2652ab3b..0e64313706326 100644 --- a/recipes/ucsc-subchar/build.sh +++ b/recipes/ucsc-subchar/build.sh @@ -2,20 +2,20 @@ set -xe -mkdir -p "$PREFIX/bin" +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) +export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" -export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/utils/subChar && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/subChar "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/subChar" +cp bin/subChar "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/subChar" diff --git a/recipes/ucsc-subchar/meta.yaml b/recipes/ucsc-subchar/meta.yaml index 10b943776e59c..58f2a5ab8d6c0 100644 --- a/recipes/ucsc-subchar/meta.yaml +++ b/recipes/ucsc-subchar/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-subchar" %} {% set program = "subChar" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -43,12 +43,15 @@ test: - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Substitute one character for another throughout a file." dev_url: "https://github.com/ucscGenomeBrowser/kent" doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-subcolumn/build.sh b/recipes/ucsc-subcolumn/build.sh index 3373060867eb0..4e7e3c1492639 100644 --- a/recipes/ucsc-subcolumn/build.sh +++ b/recipes/ucsc-subcolumn/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/subColumn && make) -cp bin/subColumn "$PREFIX/bin" -chmod +x "$PREFIX/bin/subColumn" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/subColumn && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/subColumn "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/subColumn" diff --git a/recipes/ucsc-subcolumn/include.patch b/recipes/ucsc-subcolumn/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-subcolumn/include.patch +++ b/recipes/ucsc-subcolumn/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-subcolumn/meta.yaml b/recipes/ucsc-subcolumn/meta.yaml index 8a5c7293c3be4..f481ad2ca4aba 100644 --- a/recipes/ucsc-subcolumn/meta.yaml +++ b/recipes/ucsc-subcolumn/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-subcolumn" %} {% set program = "subColumn" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Substitute one column in a tab-separated file." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-taillines/build.sh b/recipes/ucsc-taillines/build.sh index 1d3d8478855c2..31b3b4954aa6c 100644 --- a/recipes/ucsc-taillines/build.sh +++ b/recipes/ucsc-taillines/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/tailLines && make) -cp bin/tailLines "$PREFIX/bin" -chmod +x "$PREFIX/bin/tailLines" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/tailLines && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/tailLines "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/tailLines" diff --git a/recipes/ucsc-taillines/include.patch b/recipes/ucsc-taillines/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-taillines/include.patch +++ b/recipes/ucsc-taillines/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-taillines/meta.yaml b/recipes/ucsc-taillines/meta.yaml index 610642e21c3f4..5b2df04b6411d 100644 --- a/recipes/ucsc-taillines/meta.yaml +++ b/recipes/ucsc-taillines/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-taillines" %} {% set program = "tailLines" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "add tail to each line of file" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-tdbquery/build.sh b/recipes/ucsc-tdbquery/build.sh index 2a385dd48fddb..0111e2ceb8681 100644 --- a/recipes/ucsc-tdbquery/build.sh +++ b/recipes/ucsc-tdbquery/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/utils/tdbQuery && make) -cp bin/tdbQuery "$PREFIX/bin" -chmod +x "$PREFIX/bin/tdbQuery" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/tdbQuery && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/tdbQuery "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/tdbQuery" diff --git a/recipes/ucsc-tdbquery/include.patch b/recipes/ucsc-tdbquery/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-tdbquery/include.patch +++ b/recipes/ucsc-tdbquery/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-tdbquery/meta.yaml b/recipes/ucsc-tdbquery/meta.yaml index 3d46b7ee704a2..212fa54971621 100644 --- a/recipes/ucsc-tdbquery/meta.yaml +++ b/recipes/ucsc-tdbquery/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-tdbquery" %} {% set program = "tdbQuery" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Query the trackDb system using SQL syntax." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-texthistogram/build.sh b/recipes/ucsc-texthistogram/build.sh index 0b14714882311..4b83a0c70f4e6 100644 --- a/recipes/ucsc-texthistogram/build.sh +++ b/recipes/ucsc-texthistogram/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/textHistogram && make) -cp bin/textHistogram "$PREFIX/bin" -chmod +x "$PREFIX/bin/textHistogram" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/textHistogram && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/textHistogram "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/textHistogram" diff --git a/recipes/ucsc-texthistogram/include.patch b/recipes/ucsc-texthistogram/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-texthistogram/include.patch +++ b/recipes/ucsc-texthistogram/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-texthistogram/meta.yaml b/recipes/ucsc-texthistogram/meta.yaml index 087acaeef8301..756b419e8949d 100644 --- a/recipes/ucsc-texthistogram/meta.yaml +++ b/recipes/ucsc-texthistogram/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-texthistogram" %} {% set program = "textHistogram" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Make a histogram in ascii" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-ticktodate/build.sh b/recipes/ucsc-ticktodate/build.sh index 1fb966c199fe3..576694c3ec6fe 100644 --- a/recipes/ucsc-ticktodate/build.sh +++ b/recipes/ucsc-ticktodate/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/tickToDate && make) -cp bin/tickToDate "$PREFIX/bin" -chmod +x "$PREFIX/bin/tickToDate" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/tickToDate && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/tickToDate "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/tickToDate" diff --git a/recipes/ucsc-ticktodate/include.patch b/recipes/ucsc-ticktodate/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-ticktodate/include.patch +++ b/recipes/ucsc-ticktodate/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-ticktodate/meta.yaml b/recipes/ucsc-ticktodate/meta.yaml index 0e2ca23327479..ac0059144d920 100644 --- a/recipes/ucsc-ticktodate/meta.yaml +++ b/recipes/ucsc-ticktodate/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-ticktodate" %} {% set program = "tickToDate" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert seconds since 1970 to time and date" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-tolower/build.sh b/recipes/ucsc-tolower/build.sh index c59cd1a12634d..1208c312db8dd 100644 --- a/recipes/ucsc-tolower/build.sh +++ b/recipes/ucsc-tolower/build.sh @@ -2,20 +2,20 @@ set -xe -mkdir -p "$PREFIX/bin" +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) +export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" -export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/utils/toLower && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/toLower "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/toLower" +cp bin/toLower "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/toLower" diff --git a/recipes/ucsc-tolower/meta.yaml b/recipes/ucsc-tolower/meta.yaml index 076b34215d2e8..332473fb2342b 100644 --- a/recipes/ucsc-tolower/meta.yaml +++ b/recipes/ucsc-tolower/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-tolower" %} {% set program = "toLower" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -19,7 +19,6 @@ build: run_exports: - {{ pin_subpackage(package, max_pin=None) }} - requirements: build: - make @@ -44,12 +43,15 @@ test: - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert upper case to lower case in file. Leave other chars alone" dev_url: "https://github.com/ucscGenomeBrowser/kent" doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-toupper/build.sh b/recipes/ucsc-toupper/build.sh index d7cbdb9fffac3..ce555e0c80bf6 100644 --- a/recipes/ucsc-toupper/build.sh +++ b/recipes/ucsc-toupper/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/toUpper && make) -cp bin/toUpper "$PREFIX/bin" -chmod +x "$PREFIX/bin/toUpper" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/toUpper && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/toUpper "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/toUpper" diff --git a/recipes/ucsc-toupper/include.patch b/recipes/ucsc-toupper/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-toupper/include.patch +++ b/recipes/ucsc-toupper/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-toupper/meta.yaml b/recipes/ucsc-toupper/meta.yaml index 15c9ce22d1447..321ceb63c29a7 100644 --- a/recipes/ucsc-toupper/meta.yaml +++ b/recipes/ucsc-toupper/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-toupper" %} {% set program = "toUpper" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert lower case to upper case in file. Leave other chars alone" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-transmappsltogenepred/build.sh b/recipes/ucsc-transmappsltogenepred/build.sh index 9dd5385bb891c..5e65bc273c9cc 100644 --- a/recipes/ucsc-transmappsltogenepred/build.sh +++ b/recipes/ucsc-transmappsltogenepred/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/utils/transMapPslToGenePred && make) -cp bin/transMapPslToGenePred "$PREFIX/bin" -chmod +x "$PREFIX/bin/transMapPslToGenePred" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/transMapPslToGenePred && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/transMapPslToGenePred "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/transMapPslToGenePred" diff --git a/recipes/ucsc-transmappsltogenepred/include.patch b/recipes/ucsc-transmappsltogenepred/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-transmappsltogenepred/include.patch +++ b/recipes/ucsc-transmappsltogenepred/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-transmappsltogenepred/meta.yaml b/recipes/ucsc-transmappsltogenepred/meta.yaml index 79d57d1cd27f4..293cafa31d030 100644 --- a/recipes/ucsc-transmappsltogenepred/meta.yaml +++ b/recipes/ucsc-transmappsltogenepred/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-transmappsltogenepred" %} {% set program = "transMapPslToGenePred" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "convert PSL alignments of mRNAs to gene annotations." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-trfbig/build.sh b/recipes/ucsc-trfbig/build.sh index fa7537a9dec25..cdc8a63b351a6 100644 --- a/recipes/ucsc-trfbig/build.sh +++ b/recipes/ucsc-trfbig/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/trfBig && make) -cp bin/trfBig "$PREFIX/bin" -chmod +x "$PREFIX/bin/trfBig" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/trfBig && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/trfBig "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/trfBig" diff --git a/recipes/ucsc-trfbig/include.patch b/recipes/ucsc-trfbig/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-trfbig/include.patch +++ b/recipes/ucsc-trfbig/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-trfbig/meta.yaml b/recipes/ucsc-trfbig/meta.yaml index 828d2326d10e3..0025de973200c 100644 --- a/recipes/ucsc-trfbig/meta.yaml +++ b/recipes/ucsc-trfbig/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-trfbig" %} {% set program = "trfBig" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Mask tandem repeats on a big sequence file." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-twobitdup/build.sh b/recipes/ucsc-twobitdup/build.sh index 245b2d099cb46..634c386a90d8d 100644 --- a/recipes/ucsc-twobitdup/build.sh +++ b/recipes/ucsc-twobitdup/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/twoBitDup && make) -cp bin/twoBitDup "$PREFIX/bin" -chmod +x "$PREFIX/bin/twoBitDup" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/twoBitDup && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/twoBitDup "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/twoBitDup" diff --git a/recipes/ucsc-twobitdup/include.patch b/recipes/ucsc-twobitdup/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-twobitdup/include.patch +++ b/recipes/ucsc-twobitdup/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-twobitdup/meta.yaml b/recipes/ucsc-twobitdup/meta.yaml index ceb58f9e80f56..18ea0f188ccfd 100644 --- a/recipes/ucsc-twobitdup/meta.yaml +++ b/recipes/ucsc-twobitdup/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-twobitdup" %} {% set program = "twoBitDup" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "check to see if a twobit file has any identical sequences in it" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-twobitinfo/build.sh b/recipes/ucsc-twobitinfo/build.sh index 5921bddf59576..510984dbad870 100644 --- a/recipes/ucsc-twobitinfo/build.sh +++ b/recipes/ucsc-twobitinfo/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/twoBitInfo && make) -cp bin/twoBitInfo "$PREFIX/bin" -chmod +x "$PREFIX/bin/twoBitInfo" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/twoBitInfo && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/twoBitInfo "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/twoBitInfo" diff --git a/recipes/ucsc-twobitinfo/include.patch b/recipes/ucsc-twobitinfo/include.patch index e9c8621194325..edc04d0dc2f64 100644 --- a/recipes/ucsc-twobitinfo/include.patch +++ b/recipes/ucsc-twobitinfo/include.patch @@ -1,30 +1,22 @@ --- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 ++++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -+++ kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -@@ -147,4 +147,4 @@ -- L+=${PREFIX}/lib/libssl.a ${PREFIX}/lib/libcrypto.a -ldl -+ L+=${PREFIX}/lib/libssl.so ${PREFIX}/lib/libcrypto.so -ldl - else - ifneq ($(wildcard /opt/local/lib/libssl.a),) - L+=/opt/local/lib/libssl.a ---- kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 -+++ kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ --KENT_INC=-I../../../inc -+KENT_INC=-I../../../inc -I${PREFIX}/include - - straw: straw.o cStraw.o - ld -r -o ../straw.o straw.o cStraw.o +-#!/usr/bin/env python2.7 ++#!/usr/bin/env python + + import logging, sys, optparse, string + from collections import defaultdict --- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ diff --git a/recipes/ucsc-twobitinfo/meta.yaml b/recipes/ucsc-twobitinfo/meta.yaml index 32559085469d0..f02d59ed3bbbe 100644 --- a/recipes/ucsc-twobitinfo/meta.yaml +++ b/recipes/ucsc-twobitinfo/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-twobitinfo" %} {% set program = "twoBitInfo" %} -{% set version = "455" %} -{% set sha256 = "e458cadad7c4a5c1b8385edafffa1b29380ac725a0c20535bf5a3bab99fe80db" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -12,14 +12,10 @@ source: sha256: "{{ sha256 }}" patches: - "include.patch" - - htmshell.patch build: - skip: True # [osx] - number: 1 - ignore_run_exports: - - libpng - - libuuid + skip: True # [osx] + number: 0 run_exports: - {{ pin_subpackage(package, max_pin=None) }} @@ -27,31 +23,35 @@ requirements: build: - make - {{ compiler('c') }} - - {{ compiler('cxx') }} - - binutils # [linux] host: - libpng - libuuid - mysql-connector-c - - openssl - libopenssl-static - zlib + run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static + - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "get information about sequences in a .2bit file" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-twobitmask/build.sh b/recipes/ucsc-twobitmask/build.sh index 5368b1069ee35..04192302896ce 100644 --- a/recipes/ucsc-twobitmask/build.sh +++ b/recipes/ucsc-twobitmask/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/utils/twoBitMask && make) -cp bin/twoBitMask "$PREFIX/bin" -chmod +x "$PREFIX/bin/twoBitMask" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/twoBitMask && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/twoBitMask "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/twoBitMask" diff --git a/recipes/ucsc-twobitmask/include.patch b/recipes/ucsc-twobitmask/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-twobitmask/include.patch +++ b/recipes/ucsc-twobitmask/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-twobitmask/meta.yaml b/recipes/ucsc-twobitmask/meta.yaml index b4712f7ebff1e..cfef8cf9866cd 100644 --- a/recipes/ucsc-twobitmask/meta.yaml +++ b/recipes/ucsc-twobitmask/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-twobitmask" %} {% set program = "twoBitMask" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "apply masking to a .2bit file, creating a new .2bit file" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-twobittofa/build.sh b/recipes/ucsc-twobittofa/build.sh index 8f25dc11367ae..1db3e3360894c 100644 --- a/recipes/ucsc-twobittofa/build.sh +++ b/recipes/ucsc-twobittofa/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" + +set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make -j ${CPU_COUNT}) -(cd kent/src/htslib && make -j ${CPU_COUNT}) -(cd kent/src/jkOwnLib && make -j ${CPU_COUNT}) -(cd kent/src/hg/lib && make -j ${CPU_COUNT}) -(cd kent/src/utils/twoBitToFa && make -j ${CPU_COUNT}) -cp bin/twoBitToFa "$PREFIX/bin" -chmod +x "$PREFIX/bin/twoBitToFa" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/twoBitToFa && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/twoBitToFa "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/twoBitToFa" diff --git a/recipes/ucsc-twobittofa/include.patch b/recipes/ucsc-twobittofa/include.patch index e9c8621194325..edc04d0dc2f64 100644 --- a/recipes/ucsc-twobittofa/include.patch +++ b/recipes/ucsc-twobittofa/include.patch @@ -1,30 +1,22 @@ --- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 ++++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -+++ kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -@@ -147,4 +147,4 @@ -- L+=${PREFIX}/lib/libssl.a ${PREFIX}/lib/libcrypto.a -ldl -+ L+=${PREFIX}/lib/libssl.so ${PREFIX}/lib/libcrypto.so -ldl - else - ifneq ($(wildcard /opt/local/lib/libssl.a),) - L+=/opt/local/lib/libssl.a ---- kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 -+++ kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ --KENT_INC=-I../../../inc -+KENT_INC=-I../../../inc -I${PREFIX}/include - - straw: straw.o cStraw.o - ld -r -o ../straw.o straw.o cStraw.o +-#!/usr/bin/env python2.7 ++#!/usr/bin/env python + + import logging, sys, optparse, string + from collections import defaultdict --- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ diff --git a/recipes/ucsc-twobittofa/meta.yaml b/recipes/ucsc-twobittofa/meta.yaml index 9469bbbab5f7e..6c74d0cff77f5 100644 --- a/recipes/ucsc-twobittofa/meta.yaml +++ b/recipes/ucsc-twobittofa/meta.yaml @@ -1,57 +1,57 @@ {% set package = "ucsc-twobittofa" %} {% set program = "twoBitToFa" %} -{% set version = "455" %} -{% set sha256 = "e458cadad7c4a5c1b8385edafffa1b29380ac725a0c20535bf5a3bab99fe80db" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: - name: {{ package }} - version: {{ version }} + name: "{{ package }}" + version: "{{ version }}" source: url: "http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{{ version }}.src.tgz" - sha256: {{ sha256 }} + sha256: "{{ sha256 }}" patches: - - include.patch - - htmshell.patch + - "include.patch" build: - skip: True # [osx] - number: 1 - ignore_run_exports: - - libpng - - libuuid + skip: True # [osx] + number: 0 run_exports: - - {{ pin_subpackage("ucsc-twobittofa", max_pin=None) }} + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: - make - {{ compiler('c') }} - - {{ compiler('cxx') }} - - binutils # [linux] host: - libpng - libuuid - mysql-connector-c - - openssl - libopenssl-static - zlib + run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static + - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert all or part of .2bit file to fasta" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-validatefiles/build.sh b/recipes/ucsc-validatefiles/build.sh index d7fc914c34542..59fd038fccaa6 100644 --- a/recipes/ucsc-validatefiles/build.sh +++ b/recipes/ucsc-validatefiles/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/encode3/validateFiles && make) -cp bin/validateFiles "$PREFIX/bin" -chmod +x "$PREFIX/bin/validateFiles" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/encode3/validateFiles && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/validateFiles "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/validateFiles" diff --git a/recipes/ucsc-validatefiles/include.patch b/recipes/ucsc-validatefiles/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-validatefiles/include.patch +++ b/recipes/ucsc-validatefiles/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-validatefiles/meta.yaml b/recipes/ucsc-validatefiles/meta.yaml index 834d239050a73..67e9b60320e72 100644 --- a/recipes/ucsc-validatefiles/meta.yaml +++ b/recipes/ucsc-validatefiles/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-validatefiles" %} {% set program = "validateFiles" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,30 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Validates the format of different genomic files." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + \ No newline at end of file diff --git a/recipes/ucsc-validatemanifest/build.sh b/recipes/ucsc-validatemanifest/build.sh index e727b91ce0514..f92f057e59eaf 100644 --- a/recipes/ucsc-validatemanifest/build.sh +++ b/recipes/ucsc-validatemanifest/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/encode3/validateManifest && make) -cp bin/validateManifest "$PREFIX/bin" -chmod +x "$PREFIX/bin/validateManifest" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/encode3/validateManifest && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/validateManifest "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/validateManifest" diff --git a/recipes/ucsc-validatemanifest/include.patch b/recipes/ucsc-validatemanifest/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-validatemanifest/include.patch +++ b/recipes/ucsc-validatemanifest/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-validatemanifest/meta.yaml b/recipes/ucsc-validatemanifest/meta.yaml index a80b36a6feb4d..a3b17fc4ab953 100644 --- a/recipes/ucsc-validatemanifest/meta.yaml +++ b/recipes/ucsc-validatemanifest/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-validatemanifest" %} {% set program = "validateManifest" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Validates the ENCODE3 manifest.txt file." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-websync/build.sh b/recipes/ucsc-websync/build.sh index f39703618a8ac..eebbd4ce9a700 100644 --- a/recipes/ucsc-websync/build.sh +++ b/recipes/ucsc-websync/build.sh @@ -1,4 +1,7 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -cp kent/src/utils/webSync "$PREFIX/bin" -chmod +x "$PREFIX/bin/webSync" + +set -xe + +mkdir -p "${PREFIX}/bin" +cp kent/src/utils/webSync "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/webSync" diff --git a/recipes/ucsc-websync/include.patch b/recipes/ucsc-websync/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-websync/include.patch +++ b/recipes/ucsc-websync/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-websync/meta.yaml b/recipes/ucsc-websync/meta.yaml index c4bcd00e92eb8..91c8888cce901 100644 --- a/recipes/ucsc-websync/meta.yaml +++ b/recipes/ucsc-websync/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-websync" %} {% set program = "webSync" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,16 +15,25 @@ source: build: skip: True # [osx] - number: 2 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: + - {{ compiler('c') }} host: + - libpng + - libuuid + - mysql-connector-c + - libopenssl-static + - zlib + run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - python - zlib @@ -37,3 +46,12 @@ about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "download from https server, using files.txt on their end to get the list of files" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-wigcorrelate/build.sh b/recipes/ucsc-wigcorrelate/build.sh index dadcd1bb5bb53..716aad0dea677 100644 --- a/recipes/ucsc-wigcorrelate/build.sh +++ b/recipes/ucsc-wigcorrelate/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/wigCorrelate && make) -cp bin/wigCorrelate "$PREFIX/bin" -chmod +x "$PREFIX/bin/wigCorrelate" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/wigCorrelate && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/wigCorrelate "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/wigCorrelate" diff --git a/recipes/ucsc-wigcorrelate/include.patch b/recipes/ucsc-wigcorrelate/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-wigcorrelate/include.patch +++ b/recipes/ucsc-wigcorrelate/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-wigcorrelate/meta.yaml b/recipes/ucsc-wigcorrelate/meta.yaml index 691ade53701fd..dfa59e07f8970 100644 --- a/recipes/ucsc-wigcorrelate/meta.yaml +++ b/recipes/ucsc-wigcorrelate/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-wigcorrelate" %} {% set program = "wigCorrelate" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Produce a table that correlates all pairs of wigs." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-wigtobigwig/build.sh b/recipes/ucsc-wigtobigwig/build.sh index f150228de66bc..113f9a2031ecb 100644 --- a/recipes/ucsc-wigtobigwig/build.sh +++ b/recipes/ucsc-wigtobigwig/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/wigToBigWig && make) -cp bin/wigToBigWig "$PREFIX/bin" -chmod +x "$PREFIX/bin/wigToBigWig" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/wigToBigWig && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/wigToBigWig "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/wigToBigWig" diff --git a/recipes/ucsc-wigtobigwig/include.patch b/recipes/ucsc-wigtobigwig/include.patch index e9c8621194325..edc04d0dc2f64 100644 --- a/recipes/ucsc-wigtobigwig/include.patch +++ b/recipes/ucsc-wigtobigwig/include.patch @@ -1,30 +1,22 @@ --- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 ++++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -+++ kent/src/inc/common.mk 2022-10-25 12:00:00.000000000 +0100 -@@ -147,4 +147,4 @@ -- L+=${PREFIX}/lib/libssl.a ${PREFIX}/lib/libcrypto.a -ldl -+ L+=${PREFIX}/lib/libssl.so ${PREFIX}/lib/libcrypto.so -ldl - else - ifneq ($(wildcard /opt/local/lib/libssl.a),) - L+=/opt/local/lib/libssl.a ---- kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 -+++ kent/src/hg/lib/straw/makefile 2022-10-26 12:00:00.000000000 +0100 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ --KENT_INC=-I../../../inc -+KENT_INC=-I../../../inc -I${PREFIX}/include - - straw: straw.o cStraw.o - ld -r -o ../straw.o straw.o cStraw.o +-#!/usr/bin/env python2.7 ++#!/usr/bin/env python + + import logging, sys, optparse, string + from collections import defaultdict --- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ diff --git a/recipes/ucsc-wigtobigwig/meta.yaml b/recipes/ucsc-wigtobigwig/meta.yaml index c21b3a9bb7d40..ac2226d78ed5d 100644 --- a/recipes/ucsc-wigtobigwig/meta.yaml +++ b/recipes/ucsc-wigtobigwig/meta.yaml @@ -1,57 +1,57 @@ {% set package = "ucsc-wigtobigwig" %} {% set program = "wigToBigWig" %} -{% set version = "447" %} -{% set sha256 = "747a48486f7481d891e297baf63623b15d699265ede7339f654bcbc42481ac81" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: - name: {{ package }} - version: {{ version }} + name: "{{ package }}" + version: "{{ version }}" source: url: "http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{{ version }}.src.tgz" - sha256: {{ sha256 }} + sha256: "{{ sha256 }}" patches: - - include.patch - - htmshell.patch + - "include.patch" build: - number: 2 - skip: True # [osx] + skip: True # [osx] + number: 0 run_exports: - {{ pin_subpackage(package, max_pin=None) }} - ignore_run_exports: - - libpng - - libuuid requirements: build: - make - {{ compiler('c') }} - - {{ compiler('cxx') }} - - binutils # [linux] host: - libpng - libuuid - mysql-connector-c - - openssl - libopenssl-static - zlib + run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static + - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" - summary: "Convert ascii format wig file (in fixedStep, variableStep)" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" + summary: "Convert ascii format wig file (in fixedStep, variableStep" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-wordline/build.sh b/recipes/ucsc-wordline/build.sh index 2986588d188dc..f9483c43c25ce 100644 --- a/recipes/ucsc-wordline/build.sh +++ b/recipes/ucsc-wordline/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/wordLine && make) -cp bin/wordLine "$PREFIX/bin" -chmod +x "$PREFIX/bin/wordLine" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/wordLine && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/wordLine "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/wordLine" diff --git a/recipes/ucsc-wordline/include.patch b/recipes/ucsc-wordline/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-wordline/include.patch +++ b/recipes/ucsc-wordline/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-wordline/meta.yaml b/recipes/ucsc-wordline/meta.yaml index 340ea0ab85173..a4f886851f2d7 100644 --- a/recipes/ucsc-wordline/meta.yaml +++ b/recipes/ucsc-wordline/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-wordline" %} {% set program = "wordLine" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "chop up words by white space and output them with one" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-xmlcat/build.sh b/recipes/ucsc-xmlcat/build.sh index 0c43ba87a8e5e..8809a785168a9 100644 --- a/recipes/ucsc-xmlcat/build.sh +++ b/recipes/ucsc-xmlcat/build.sh @@ -1,21 +1,21 @@ #!/bin/bash set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) +export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 -export BINDIR=$(pwd)/bin export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/xmlCat && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/xmlCat "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/xmlCat" +cp bin/xmlCat "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/xmlCat" diff --git a/recipes/ucsc-xmlcat/meta.yaml b/recipes/ucsc-xmlcat/meta.yaml index f7728bd133b59..fdfb1b545ec90 100644 --- a/recipes/ucsc-xmlcat/meta.yaml +++ b/recipes/ucsc-xmlcat/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-xmlcat" %} {% set program = "xmlCat" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -43,12 +43,15 @@ test: - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Concatenate xml files together, stuffing all records inside a single outer tag. " dev_url: "https://github.com/ucscGenomeBrowser/kent" doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ucsc-xmltosql/build.sh b/recipes/ucsc-xmltosql/build.sh index 9c0109eec1bf3..da748dca33f72 100644 --- a/recipes/ucsc-xmltosql/build.sh +++ b/recipes/ucsc-xmltosql/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/xmlToSql && make) -cp bin/xmlToSql "$PREFIX/bin" -chmod +x "$PREFIX/bin/xmlToSql" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/xmlToSql && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp bin/xmlToSql "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/xmlToSql" diff --git a/recipes/ucsc-xmltosql/include.patch b/recipes/ucsc-xmltosql/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-xmltosql/include.patch +++ b/recipes/ucsc-xmltosql/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-xmltosql/meta.yaml b/recipes/ucsc-xmltosql/meta.yaml index e73be12d74a2d..d66247fc304ce 100644 --- a/recipes/ucsc-xmltosql/meta.yaml +++ b/recipes/ucsc-xmltosql/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-xmltosql" %} {% set program = "xmlToSql" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,31 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Convert XML dump into a fairly normalized relational database" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + additional-platforms: + - linux-aarch64 diff --git a/scripts/ucsc/create-ucsc-packages.py b/scripts/ucsc/create-ucsc-packages.py index 6785e01f7cd8c..d9a3520fe573b 100755 --- a/scripts/ucsc/create-ucsc-packages.py +++ b/scripts/ucsc/create-ucsc-packages.py @@ -201,6 +201,66 @@ def program_subdir(program, names): SKIP_AARCH64 = [ 'pslCDnaFilter', # https://github.com/bioconda/bioconda-recipes/pull/49297 'pslCheck', # https://github.com/bioconda/bioconda-recipes/pull/50193 + 'bedCoverage', + 'bedExtendRanges', + 'bedItemOverlapCount', + 'bedToGenePred', + 'checkCoverageGaps', + 'checkTableCoords', + 'chromGraphFromBin', + 'chromGraphToBin', + 'dbTrash', + 'estOrient', + 'featureBits', + 'gapToLift', + 'genePredCheck', + 'genePredFilter', + 'genePredHisto', + 'genePredSingleCover', + 'genePredToBed', + 'genePredToBigGenePred', + 'genePredToFakePsl', + 'genePredToGtf', + 'genePredToMafFrames', + 'genePredToProt', + 'getRna', + 'getRnaPred', + 'gff3ToGenePred', + 'gtfToGenePred', + 'hgFindSpec', + 'hgGcPercent', + 'hgLoadBed', + 'hgLoadChain', + 'hgLoadMaf', + 'hgLoadNet', + 'hgLoadOut', + 'hgLoadOutJoined', + 'hgLoadWiggle', + 'hgSpeciesRna', + 'hgTrackDb', + 'hubCheck', + 'hubPublicCheck', + 'ldHgGene', + 'liftOver', + 'liftUp', + 'mafCoverage', + 'mafFetch', + 'mafFrag', + 'mafFrags', + 'mafGene', + 'mafSplitPos', + 'mafToSnpBed', + 'makeTableList', + 'mrnaToGene', + 'netClass', + 'overlapSelect', + 'positionalTblCheck', + 'pslLiftSubrangeBlat', + 'pslToBigPsl', + 'raSqlQuery', + 'tdbQuery', + 'transMapPslToGenePred', + 'validateFiles' ] # Some programs need to be built differently. It seems that a subset of diff --git a/scripts/ucsc/template-meta-with-python.yaml b/scripts/ucsc/template-meta-with-python.yaml index d904f30099bda..2094dd74c6821 100644 --- a/scripts/ucsc/template-meta-with-python.yaml +++ b/scripts/ucsc/template-meta-with-python.yaml @@ -8,7 +8,7 @@ package: version: "{{{{ version }}}}" source: - url: "http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{{ version }}.src.tgz" + url: "http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{{{{ version }}}}.src.tgz" sha256: "{{{{ sha256 }}}}" patches: - "include.patch" @@ -17,7 +17,7 @@ build: skip: True # [osx] number: 0 run_exports: - - {{ pin_subpackage(package, max_pin=None) }} + - {{{{ pin_subpackage(package, max_pin=None) }}}} requirements: build: @@ -53,5 +53,4 @@ extra: identifiers: - biotools:UCSC_Genome_Browser_Utilities - doi:10.1093/bib/bbs038 - {linux_aarch64} - \ No newline at end of file + {linux_aarch64} \ No newline at end of file diff --git a/scripts/ucsc/template-meta.yaml b/scripts/ucsc/template-meta.yaml index a063435a2380a..8408f645ef084 100644 --- a/scripts/ucsc/template-meta.yaml +++ b/scripts/ucsc/template-meta.yaml @@ -53,5 +53,4 @@ extra: identifiers: - biotools:UCSC_Genome_Browser_Utilities - doi:10.1093/bib/bbs038 - {linux_aarch64} - \ No newline at end of file + {linux_aarch64} \ No newline at end of file From 8169de9cfaeea200eeaa5bf38723ce8a7468f3ac Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 28 Aug 2024 17:55:48 -0400 Subject: [PATCH 1268/1589] Update lsabgc to 1.1.2 (#50396) --- recipes/lsabgc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/lsabgc/meta.yaml b/recipes/lsabgc/meta.yaml index 832584c1f03b4..2f794a8713fad 100644 --- a/recipes/lsabgc/meta.yaml +++ b/recipes/lsabgc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "lsabgc" %} -{% set version = "1.1.1" %} +{% set version = "1.1.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Kalan-Lab/lsaBGC-Pan/archive/refs/tags/v{{ version }}.tar.gz - sha256: d926a662a19352c87c7a1c5085936a64b29d6318db2c037370797851eba71617 + sha256: 04eadeadd7887883d48112624dd23496c19e2a038605e29fb0102c79badab5f4 build: number: 0 From 229742946f0c188cd9f42da328bd9ec37f01750b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 28 Aug 2024 18:08:03 -0400 Subject: [PATCH 1269/1589] Update skder to 1.2.4 (#50395) * Update skder to 1.2.4 * Update meta.yaml --------- Co-authored-by: Rauf Salamzade --- recipes/skder/meta.yaml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/recipes/skder/meta.yaml b/recipes/skder/meta.yaml index c028bb34e45db..a5d04283eb8d2 100644 --- a/recipes/skder/meta.yaml +++ b/recipes/skder/meta.yaml @@ -1,5 +1,5 @@ {% set name = "skder" %} -{% set version = "1.2.3" %} +{% set version = "1.2.4" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/raufs/skDER/archive/refs/tags/v{{ version }}.tar.gz - sha256: 3089d3a60f1007101208b4aa4678133b979590521a497f36eb54c673088790d5 + sha256: da1d6e4a9ce7b5ee1525cd9b87c876d66c8163b59b2a793392536ab0a043f655 build: number: 0 @@ -24,12 +24,11 @@ requirements: - pip - wget run: - - python =3.10 + - python >=3.10 - biopython - setuptools - skani - ncbi-genome-download - - pyfastx - wget - seaborn - matplotlib-base From d05219de1bc9c0af61feeab6944a4f0957ce835b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 29 Aug 2024 01:24:06 -0400 Subject: [PATCH 1270/1589] Update sepp to 4.5.5 (#50397) --- recipes/sepp/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/sepp/meta.yaml b/recipes/sepp/meta.yaml index de593c2478bbb..9b675d94ae3f2 100644 --- a/recipes/sepp/meta.yaml +++ b/recipes/sepp/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "4.5.4" %} -{% set sha256 = "e30cfffd13adb904ef4d1d6fef3d72a49f5269438c8bc4f6fd0924abaa5d75eb" %} +{% set version = "4.5.5" %} +{% set sha256 = "af6b985bc16c96cd7c57bf78b3decce448f976aea612b3fad07b91697e4e1cfd" %} package: name: sepp version: '{{version}}' @@ -12,7 +12,7 @@ source: - relocate.sepp.config.patch build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('sepp', max_pin="x") }} From 27d5fcca21970bbb222552b862c69443eca7011f Mon Sep 17 00:00:00 2001 From: Wytamma Wirth Date: Thu, 29 Aug 2024 19:56:18 +1000 Subject: [PATCH 1271/1589] Add pango-collapse (#50377) * add pango-collapse * update source url * add SPDX Identifier license --- recipes/pango-collapse/meta.yaml | 53 ++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 recipes/pango-collapse/meta.yaml diff --git a/recipes/pango-collapse/meta.yaml b/recipes/pango-collapse/meta.yaml new file mode 100644 index 0000000000000..f5b8cdbfd43bd --- /dev/null +++ b/recipes/pango-collapse/meta.yaml @@ -0,0 +1,53 @@ +{% set name = "pango-collapse" %} +{% set version = "0.8.2" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name | replace("-","_") }}-{{ version }}.tar.gz + sha256: 8bf215c09cb04732726c7e9064dd7d087faa9d1fc3d4e42b8d5803738247f532 + +build: + run_exports: + - {{ pin_subpackage('pango-collapse', max_pin="x.x") }} + entry_points: + - pango-collapse = pango_collapse.main:app + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + +requirements: + host: + - python >=3.8,<4.0 + - poetry-core >=1.0.0 + - pip + run: + - python >=3.8,<4.0 + - typer >=0.6.1,<0.7.0 + - pango_aliasor >=0.3.0,<0.4.0 + - pandas >=1.3,<=1.5.3 + - numpy >=1.19.5,<1.27.0 + +test: + imports: + - pango_collapse + commands: + - pip check + - pango-collapse --help + requires: + - pip + +about: + home: https://github.com/MDU-PHL/pango-collapse + summary: Collapse Pango sublineages up to user defined parent lineages. + license: GPL-3.0-or-later + license_file: LICENSE + +extra: + recipe-maintainers: + - Wytamma + + + From b95f209b980339300b2fd84514a4912f6ad495e9 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Thu, 29 Aug 2024 13:37:14 +0200 Subject: [PATCH 1272/1589] Bump wisecondorx to v1.2.9 (#50408) --- recipes/wisecondorx/meta.yaml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/recipes/wisecondorx/meta.yaml b/recipes/wisecondorx/meta.yaml index cd381550d1544..94a801e6d7d16 100644 --- a/recipes/wisecondorx/meta.yaml +++ b/recipes/wisecondorx/meta.yaml @@ -1,11 +1,11 @@ -{% set version="1.2.8" %} +{% set version="1.2.9" %} package: name: wisecondorx version: {{ version }} source: url: https://github.com/CenterForMedicalGeneticsGhent/wisecondorX/archive/v{{ version }}.tar.gz - sha256: 9460649cdfd36fd4edb74c89618a4fbecefa857f9bfa357d76898f7de433b131 + sha256: 345faaf81822d6532d278ca9819059c1a2860e0856432b054d3bed076c95326c build: number: 0 @@ -21,14 +21,14 @@ requirements: run: - pandas - python >=3.6 - - pysam - - scipy - - scikit-learn - - numpy - - r-jsonlite >=1.5 + - pysam ==0.22 + - scipy ==1.13 + - scikit-learn ==1.4 + - numpy ==1.26 + - r-jsonlite ==1.8.8 - r-png - - bioconductor-dnacopy - - matplotlib-base + - bioconductor-dnacopy ==1.76 + - matplotlib-base ==3.8.4 test: imports: From 6fc56499b0d3eb601165eb9230b5d9d381901621 Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Thu, 29 Aug 2024 09:25:06 -0400 Subject: [PATCH 1273/1589] ci: nightly builds for linux-aarch64 and osx-arm64 (#50394) --- .circleci/config.yml | 67 +++++++++++++++++++++++++- .github/workflows/nightly.yml | 91 ++++------------------------------- 2 files changed, 76 insertions(+), 82 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 725c78f5e7e8a..48f482fe534a3 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -239,6 +239,54 @@ jobs: # a basic unit of work in a run --skiplist-leafs conda clean -y --all + nightly_build: + parameters: + os: + type: executor + runner: + type: integer + executor: << parameters.os >> + steps: + - add_ssh_keys: + fingerprints: + - 1e:85:74:42:35:5f:c5:a2:35:c2:ec:b7:80:c0:7c:40 + + - checkout + + - run: + name: Fetch bioconda install script + command: wget https://raw.githubusercontent.com/bioconda/bioconda-common/bulk/{common,install-and-set-up-conda,configure-conda}.sh + + - run: + name: Install bioconda-utils + command: | + sudo mkdir -p /opt/ + sudo chmod o+rwx /opt + bash install-and-set-up-conda.sh + + - run: + name: Setup PATH + command: + echo 'export PATH=/opt/mambaforge/bin:"$PATH"' >> "$BASH_ENV" + + - run: + name: Configure conda + command: bash configure-conda.sh + + # For now, do not upload ARM images to biocontainers: --mulled-upload-target biocontainers + - run: + name: Build and push leftover packages + command: | + set -e + eval "$(conda shell.bash hook)" + conda activate bioconda + source common.sh + + # build and push all leftover packages + bioconda-utils build recipes config.yml \ + --docker --mulled-test --docker-base-image "quay.io/bioconda/bioconda-utils-build-env-cos7-$(arch):${BIOCONDA_UTILS_TAG#v}" \ + --anaconda-upload \ + --prelint --exclude bioconda-repodata-patches workflows: build and test (ARM): @@ -267,7 +315,6 @@ workflows: - osx-arm64 - linux-aarch64 - Bulk branch (ARM): jobs: - bulk_build: @@ -280,3 +327,21 @@ workflows: # - osx-arm64 Bulk is on GitHub Actions - linux-aarch64 runner: [0, 1, 2, 3, 4, 5] + + Nightly (ARM): + triggers: + - schedule: + cron: "0 0 * * *" + filters: + branches: + only: master + jobs: + - nightly_build: + filters: + branches: + only: master + matrix: + parameters: + os: + # - osx-arm64 Nightly is on GitHub Actions + - linux-aarch64 \ No newline at end of file diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 11d48c1154598..850a5d83fc5ad 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -1,76 +1,17 @@ name: Nightly Uploader on: schedule: - - cron: '12 2 * * *' + - cron: "0 0 * * *" jobs: - build-linux: - name: Linux Upload + nightly-osx-arm: + name: Nightly OSX-ARM64 Builds if: github.repository == 'bioconda/bioconda-recipes' - runs-on: ubuntu-latest - strategy: - fail-fast: false - max-parallel: 13 - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: set path - run: echo "/opt/mambaforge/bin" >> $GITHUB_PATH - - - name: Fetch conda install script - run: | - wget https://raw.githubusercontent.com/bioconda/bioconda-common/master/{install-and-set-up-conda,configure-conda,common}.sh - - - name: Restore cache - id: cache - uses: actions/cache@v3 - with: - path: /opt/mambaforge - key: ${{ runner.os }}--bulk--${{ hashFiles('**/install-and-set-up-conda.sh') }} - - - name: Set up bioconda-utils - if: steps.cache.outputs.cache-hit != 'true' - run: bash install-and-set-up-conda.sh - - # This script can be used to reconfigure conda to use the right channel setup. - # This has to be done after the cache is restored, because - # the channel setup is not cached as it resides in the home directory. - # We could use a system-wide (and therefore cached) channel setup, - # but mamba does not support that at the time of implementation - # (it ignores settings made with --system). - - name: Configure conda - run: bash configure-conda.sh - - - name: Build and upload - env: - QUAY_LOGIN: ${{ secrets.QUAY_LOGIN }} - QUAY_OAUTH_TOKEN: ${{ secrets.QUAY_OAUTH_TOKEN }} - ANACONDA_TOKEN: ${{ secrets.ANACONDA_TOKEN }} - INVOLUCRO_AUTH: ${{ secrets.INVOLUCRO_AUTH }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # Mimic circleci - OSTYPE: "linux-gnu" - CI: "true" - run: | - set -ex - eval "$(conda shell.bash hook)" - conda activate bioconda - docker pull quay.io/dpryan79/mulled_container:latest - bioconda-utils build recipes config.yml \ - --docker --mulled-test --anaconda-upload --mulled-upload-target biocontainers \ - --prelint - docker rmi quay.io/dpryan79/mulled_container:latest - - build-osx: - name: OSX Tests - if: github.repository == 'bioconda/bioconda-recipes' - runs-on: macos-13 + runs-on: macOS-14 # M1 strategy: fail-fast: false max-parallel: 4 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -81,27 +22,13 @@ jobs: run: | wget https://raw.githubusercontent.com/bioconda/bioconda-common/master/{install-and-set-up-conda,configure-conda,common}.sh - - name: Restore cache - id: cache - uses: actions/cache@v3 - with: - path: /opt/mambaforge - key: ${{ runner.os }}--bulk--${{ hashFiles('**/install-and-set-up-conda.sh') }} - - name: Set up bioconda-utils - if: steps.cache.outputs.cache-hit != 'true' run: bash install-and-set-up-conda.sh - # This script can be used to reconfigure conda to use the right channel setup. - # This has to be done after the cache is restored, because - # the channel setup is not cached as it resides in the home directory. - # We could use a system-wide (and therefore cached) channel setup, - # but mamba does not support that at the time of implementation - # (it ignores settings made with --system). - name: Configure conda run: bash configure-conda.sh - - name: Build and Test + - name: Build and push leftover packages env: QUAY_LOGIN: ${{ secrets.QUAY_LOGIN }} QUAY_OAUTH_TOKEN: ${{ secrets.QUAY_OAUTH_TOKEN }} @@ -116,9 +43,11 @@ jobs: eval "$(conda shell.bash hook)" conda activate bioconda - # The SDK isn't actually cached, so reinstall it + source common.sh + # Sets up OSX SDK run_conda_forge_build_setup + # build and push all leftover packages bioconda-utils build recipes config.yml \ --anaconda-upload \ - --prelint + --prelint --exclude bioconda-repodata-patches From 0e564dad5a1738c910c28c66bbc2a2cd84acbb0b Mon Sep 17 00:00:00 2001 From: aliciaaevans Date: Thu, 29 Aug 2024 09:27:35 -0400 Subject: [PATCH 1274/1589] fix indentation --- .circleci/config.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 48f482fe534a3..a136f28881c83 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -277,16 +277,16 @@ jobs: # a basic unit of work in a run - run: name: Build and push leftover packages command: | - set -e - eval "$(conda shell.bash hook)" - conda activate bioconda - source common.sh - - # build and push all leftover packages - bioconda-utils build recipes config.yml \ - --docker --mulled-test --docker-base-image "quay.io/bioconda/bioconda-utils-build-env-cos7-$(arch):${BIOCONDA_UTILS_TAG#v}" \ - --anaconda-upload \ - --prelint --exclude bioconda-repodata-patches + set -e + eval "$(conda shell.bash hook)" + conda activate bioconda + source common.sh + + # build and push all leftover packages + bioconda-utils build recipes config.yml \ + --docker --mulled-test --docker-base-image "quay.io/bioconda/bioconda-utils-build-env-cos7-$(arch):${BIOCONDA_UTILS_TAG#v}" \ + --anaconda-upload \ + --prelint --exclude bioconda-repodata-patches workflows: build and test (ARM): From dec9280655d354ced739ac9e205e3bdf8203246f Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Thu, 29 Aug 2024 08:54:13 -0700 Subject: [PATCH 1275/1589] tigmint: add linux-aarch64 and osx-arm64 build (#50366) * tigmint: add linux-aarch64 and osx-arm64 build * Add run_exports * Remove skip * Remove extra 'extra' fields * Try updating scripts/check-for-additional-platforms.sh * Try to restrict python version for aarch64 and arm64 only * Revert check-for-additional-platforms.sh change - fixed upstream * Append to CXXFLAGS for linux * Try python version specification in build section * Add back identifiers section --- recipes/tigmint/build.sh | 4 ++++ recipes/tigmint/meta.yaml | 16 +++++++++------- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/recipes/tigmint/build.sh b/recipes/tigmint/build.sh index 3ac3bac6a3b56..061cabb433050 100644 --- a/recipes/tigmint/build.sh +++ b/recipes/tigmint/build.sh @@ -1,6 +1,10 @@ #!/bin/bash set -eux -o pipefail +if [[ ${target_platform} =~ linux.* ]]; then + export CXXFLAGS="${CXXFLAGS} -fopenmp" +fi + make -C src mkdir -p ${PREFIX}/bin/ diff --git a/recipes/tigmint/meta.yaml b/recipes/tigmint/meta.yaml index 7c4c77a4824a0..f7042d839b8b9 100644 --- a/recipes/tigmint/meta.yaml +++ b/recipes/tigmint/meta.yaml @@ -10,8 +10,10 @@ source: sha256: 8e7b5d424ff69d5da7b117bef9996463b02205078ce0fb6e3074ca6c9933efa9 build: - number: 2 - skip: True # [py<38] + number: 3 + skip: True #[(py>38 or py<38) and (arm64 or aarch64)] + run_exports: + - {{ pin_subpackage("tigmint", max_pin="x") }} requirements: @@ -48,15 +50,15 @@ test: about: home: https://bcgsc.github.io/tigmint/ - license: GNU General Public v3 (GPLv3) - license_family: GPL3 -# license_file: LICENSE + license: GPL-3.0 + license_file: LICENSE summary: Correct misassemblies using linked or long reads dev_url: https://github.com/bcgsc/tigmint doc_url: https://github.com/bcgsc/tigmint#readme extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 identifiers: - doi:10.1101/304253 - recipe-maintainers: - - sjackman From 8cb88c1edc358b1b66b6474f29d3e8369cdcc9c7 Mon Sep 17 00:00:00 2001 From: Silvio Waschina <32539757+Waschina@users.noreply.github.com> Date: Thu, 29 Aug 2024 18:03:36 +0200 Subject: [PATCH 1276/1589] first cobrar recipe (#50354) --- recipes/r-cobrar/meta.yaml | 60 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 recipes/r-cobrar/meta.yaml diff --git a/recipes/r-cobrar/meta.yaml b/recipes/r-cobrar/meta.yaml new file mode 100644 index 0000000000000..1b8dd50554991 --- /dev/null +++ b/recipes/r-cobrar/meta.yaml @@ -0,0 +1,60 @@ +{% set name = "cobrar" %} +{% set version = '0.1.0' %} +{% set github = "https://github.com/Waschina/cobrar" %} +{% set sha256 = '8b8d7f7604fd93130f999a41ee30ce94c16f998520dfd73d6842d34ff96270a6' %} + +package: + name: r-{{ name }} + version: {{ version|replace("-", "_") }} + +source: + url: + - {{ github }}/archive/refs/tags/v{{ version }}.tar.gz + sha256: {{ sha256 }} + +build: + number: 0 + script: R CMD INSTALL --build . + rpaths: + - lib/R/lib/ + - lib/ + run_exports: + - {{ pin_subpackage("r-cobrar", max_pin="x") }} + +requirements: + build: + - {{ compiler('cxx') }} + - make + host: + - glpk >=4.65 + - libsbml >=5.18.0 + - r-base + - r-rcpp + - r-rcpparmadillo + - r-matrix + run: + - glpk >=4.65 + - libsbml >=5.18.0 + - r-base + - r-rcpp + - r-rcpparmadillo + - r-matrix + +test: + commands: + - $R -e "library('cobrar')" + +about: + home: https://github.com/Waschina/cobrar + license: GPL-3.0-or-later + summary: COnstraint-based Reconstruction and Analysis (COBRA) of metabolic networks in R + license_family: GPL3 + license_file: + - '{{ environ["PREFIX"] }}/lib/R/share/licenses/GPL-3' + doc_url: https://waschina.github.io/cobrar/ + dev_url: https://github.com/Waschina/cobrar + +extra: + recipe-maintainers: + - Waschina + From a194b9ef01b43f3940438c63f9e48ceaf5b328a8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 29 Aug 2024 12:18:55 -0400 Subject: [PATCH 1277/1589] Update pyfamsa to 0.5.1 (#50380) * Update pyfamsa to 0.5.0 * clean up recipe * Update pyfamsa to 0.5.1 --------- Co-authored-by: mencian Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/pyfamsa/meta.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/recipes/pyfamsa/meta.yaml b/recipes/pyfamsa/meta.yaml index 6ec6d94b4d7c6..0a2f46b91ccae 100644 --- a/recipes/pyfamsa/meta.yaml +++ b/recipes/pyfamsa/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pyfamsa" %} -{% set version = "0.4.0" %} +{% set version = "0.5.1" %} package: name: "{{ name|lower }}" @@ -7,12 +7,11 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 9a09e04079b5d6401b62fed2b80886ffdd5626c30686697ff8c2b38e018e6e87 + sha256: 1edcb001bd56654fb05c7f73d3b83f494ea94b1cf7e94a74b5ae184abba7e5ef build: - number: 1 - skip: True # [py2k] - script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --use-pep517 -vvv" + number: 0 + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir --use-pep517 -vvv" run_exports: - {{ pin_subpackage('pyfamsa', max_pin="x.x") }} @@ -41,8 +40,8 @@ about: license: GPL-3.0-or-later license_family: GPL3 license_file: COPYING - summary: Cython bindings and Python interface to FAMSA, an algorithm for ultra-scale multiple sequence alignments. - doc_url: https://pyfamsa.readthedocs.org/ + summary: "Cython bindings and Python interface to FAMSA, an algorithm for ultra-scale multiple sequence alignments." + doc_url: https://pyfamsa.readthedocs.org dev_url: https://github.com/althonos/pyfamsa extra: @@ -50,3 +49,4 @@ extra: - althonos additional-platforms: - linux-aarch64 + - osx-arm64 From 7a2adacf2dc33b0a85b321d0f3e64a1e60dee639 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 29 Aug 2024 12:19:53 -0400 Subject: [PATCH 1278/1589] Update pybiolib to 1.2.122 (#50406) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index a01febe52c749..c8c440c313edd 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.2.111" %} +{% set version = "1.2.122" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: 28adeb22b1f56bc0e11d879f0a826dc4576b25e90fe3a5d4b624fd280f2f169d + sha256: 12b54578a02d76ec5604b12ed6f5b000011cd749753cd994fb0dd9cc9a0ed921 build: number: 0 From 39fe2ca3e0333721db77b6b41df2e91913a17659 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 29 Aug 2024 12:20:08 -0400 Subject: [PATCH 1279/1589] Update assembly_finder to 0.7.7 (#50405) --- recipes/assembly_finder/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/assembly_finder/meta.yaml b/recipes/assembly_finder/meta.yaml index 1752e16a42cc1..af993fa78011c 100644 --- a/recipes/assembly_finder/meta.yaml +++ b/recipes/assembly_finder/meta.yaml @@ -1,5 +1,5 @@ {% set name = "assembly_finder" %} -{% set version = "0.7.6" %} +{% set version = "0.7.7" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://github.com/metagenlab/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz - sha256: aa77170404109f6efcc52aef3bab98d6a24a0c380c18aaba9afba9a6fea7c0ed + sha256: 0c6542253464b8ba406aeddc630f5625db74a5e1e07911534be3add0500a1f02 build: number: 0 From f7e5c546bb9a1224f8af88084d5f5052bde781e7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 29 Aug 2024 12:21:05 -0400 Subject: [PATCH 1280/1589] Update anndata2ri to 1.3.2 (#50403) --- recipes/anndata2ri/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/anndata2ri/meta.yaml b/recipes/anndata2ri/meta.yaml index b9c15422687c7..a4e795ebc53cd 100644 --- a/recipes/anndata2ri/meta.yaml +++ b/recipes/anndata2ri/meta.yaml @@ -1,12 +1,12 @@ {% set name = "anndata2ri" %} -{% set version = "1.3.1" %} +{% set version = "1.3.2" %} package: name: {{ name|lower }} version: {{ version }} build: - number: 1 + number: 0 noarch: python script: "{{ PYTHON }} -m pip install . --no-deps -vvv" run_exports: @@ -14,7 +14,7 @@ build: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 0e3fa2f81789f682d19ef452fabdb401ec27899db9abe5a78e45e21dcc7caa42 + sha256: 34a767b16abfac1aacb6edcd394eaf565f53fff6de3e6f47961a3901d3890d93 requirements: host: From 2456b3dcc7ded9ab6572fb4f267f07ff7e11a272 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 29 Aug 2024 12:21:21 -0400 Subject: [PATCH 1281/1589] Update annotsv to 3.4.3 (#50402) --- recipes/annotsv/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/annotsv/meta.yaml b/recipes/annotsv/meta.yaml index 81da5cb827871..43fccf13b060f 100644 --- a/recipes/annotsv/meta.yaml +++ b/recipes/annotsv/meta.yaml @@ -1,6 +1,6 @@ {% set name = "annotsv" %} -{% set version = "3.4.2" %} -{% set sha256 = "a8a06fc60bd4c8fb380598097f644f02ed22051b5b30f4eb42b2474b170fe91d" %} +{% set version = "3.4.3" %} +{% set sha256 = "333a3c7234e72e41c6264194ef71f7766a900c44ce6c82d1b536af162d0c7c32" %} package: name: {{ name }} From becee418c3899247985e01c4093be9979a9f6dbc Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 29 Aug 2024 12:22:31 -0400 Subject: [PATCH 1282/1589] Update python-bioext to 0.21.9 (#50398) --- recipes/python-bioext/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/python-bioext/meta.yaml b/recipes/python-bioext/meta.yaml index 2682dd9d0bccb..0ea3844b07ae1 100644 --- a/recipes/python-bioext/meta.yaml +++ b/recipes/python-bioext/meta.yaml @@ -1,6 +1,6 @@ {% set name = "BioExt" %} -{% set version = "0.21.8" %} -{% set sha256 = "e19ccc6ba7dc1d2b4b13e1a0d6fa60fce626298c0b2e97012b5fc1a4535ea618" %} +{% set version = "0.21.9" %} +{% set sha256 = "21bf30eac79c5bc553f0870a119688adaab5a040ff72f9e8fdac46fec978130f" %} package: name: python-{{ name|lower }} @@ -14,7 +14,7 @@ source: - osx-freetype.patch # [osx] build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage("python-bioext", max_pin="x.x") }} @@ -81,4 +81,4 @@ about: extra: additional-platforms: - linux-aarch64 - - osx-arm64 \ No newline at end of file + - osx-arm64 From 8bf168251f1cd6da0d9c03a9e5d7b26804c94bfa Mon Sep 17 00:00:00 2001 From: Kez Cleal <42997789+kcleal@users.noreply.github.com> Date: Thu, 29 Aug 2024 17:54:28 +0100 Subject: [PATCH 1283/1589] GW v1.0.3 patch (#50372) * Update fix-linker-issues.patch Added patches to fix minor bugs * Update meta.yaml * Create fix-context.patch * Update fix-linker-issues.patch * Update build.sh * Update meta.yaml * Update fix-context.patch * Update fix-context.patch * Update build.sh * Update meta.yaml * Update build.sh * Update build.sh --- recipes/gw/build.sh | 8 +++----- recipes/gw/fix-context.patch | 9 +++++++++ recipes/gw/meta.yaml | 8 ++++++-- 3 files changed, 18 insertions(+), 7 deletions(-) create mode 100644 recipes/gw/fix-context.patch diff --git a/recipes/gw/build.sh b/recipes/gw/build.sh index f1d5fc6f43bff..41ea8b9fe293b 100644 --- a/recipes/gw/build.sh +++ b/recipes/gw/build.sh @@ -1,16 +1,14 @@ #!/usr/bin/bash set -e -export USE_GL=1 +# Get pre-compiled skia from jetbrains +USE_GL=1 make prep > /dev/null 2>&1 -# Modify Makefile and source files if not on macOS if [[ "$OSTYPE" != "darwin"* ]]; then - sed -i 's/-lEGL -lGLESv2/-lGL -lGLX/' Makefile + sed -i 's/-lEGL -lGLESv2/-lEGL -lGLESv2 -lGL -lGLX/' Makefile sed -i 's/GLFW_EGL_CONTEXT_API/GLFW_NATIVE_CONTEXT_API/' src/plot_manager.cpp fi -make prep > /dev/null 2>&1 - # Set flags conditionally based on the OS type if [[ "$OSTYPE" != "darwin"* ]]; then SYSROOT_FLAGS="--sysroot=${BUILD_PREFIX}/${HOST}/sysroot" diff --git a/recipes/gw/fix-context.patch b/recipes/gw/fix-context.patch new file mode 100644 index 0000000000000..6a5aa5d6a9e0c --- /dev/null +++ b/recipes/gw/fix-context.patch @@ -0,0 +1,9 @@ +--- a/src/plot_manager.cpp ++++ b/src/plot_manager.cpp +@@ -252,1 +252,1 @@ +- glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, (minor_v == -1) ? 1 : major_v); ++ glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, (minor_v == -1) ? 1 : minor_v); + +@@ -258,1 +258,1 @@ +- glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, (minor_v == -1) ? 1 : major_v); ++ glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, (minor_v == -1) ? 1 : minor_v); diff --git a/recipes/gw/meta.yaml b/recipes/gw/meta.yaml index ba0135f18a300..43a9a8d9d5963 100644 --- a/recipes/gw/meta.yaml +++ b/recipes/gw/meta.yaml @@ -10,19 +10,21 @@ source: sha256: {{ sha256 }} patches: - fix-linker-issues.patch # [linux] + - fix-context.patch build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('gw', max_pin="x") }} ignore_run_exports: - libglx # [linux] + - libgles # [linux] + - libegl # [linux] - xorg-libsm # [linux] - xorg-libice # [linux] - xorg-libx11 # [linux] - xorg-libxau # [linux] - xorg-libxext # [linux] - - libegl # [linux] - libxcb # [linux] - freetype # [osx] - fontconfig # [osx] @@ -54,6 +56,7 @@ requirements: - libegl-devel # [linux] - libgl-devel # [linux] - libglx-devel # [linux] + - libgles-devel # [linux] run: - glfw >=3.3 @@ -63,6 +66,7 @@ requirements: - xorg-libxfixes # [linux] - xorg-libxxf86vm # [linux] - xorg-libxdamage # [linux] + - mesalib # [linux] test: commands: From a0116807ecd33254dc662a249ae3c53d522ff18e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 29 Aug 2024 13:14:14 -0400 Subject: [PATCH 1284/1589] Update lotus2 to 2.34.1 (#50413) * Update lotus2 to 2.34.1 * Update lotus2 dependencies --------- Co-authored-by: Nicola Soranzo --- recipes/lotus2/meta.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/recipes/lotus2/meta.yaml b/recipes/lotus2/meta.yaml index 2ddeeeff9145d..bc46dd5be022e 100644 --- a/recipes/lotus2/meta.yaml +++ b/recipes/lotus2/meta.yaml @@ -1,6 +1,6 @@ {% set name = "lotus2" %} -{% set version = "2.34" %} -{% set sha256 = "d654f5ea445d43a9a4ed4dd21c64c2377f628b63f1745358539ad5e33823530e" %} +{% set version = "2.34.1" %} +{% set sha256 = "fdda62d3ab02e37e160c0b1c36aeee43247838c271c99733be71d0bfbeb77419" %} package: name: {{ name }} @@ -39,9 +39,10 @@ requirements: - r-dplyr - rdp_classifier - rtk - - sdm ==2.17 + - sdm ==2.18 - swarm - unzip + - usearch >=12.0_beta,<13 - vsearch - wget - zip # workaround for the Galaxy wrapper (mulled conda env creation fails) From c16e34955d3ea1f8c4c47c34194fe2d583983108 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Thu, 29 Aug 2024 12:33:39 -0500 Subject: [PATCH 1285/1589] Add recipe for cnmf v1.6.0 (#50414) --- recipes/cnmf/meta.yaml | 54 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 recipes/cnmf/meta.yaml diff --git a/recipes/cnmf/meta.yaml b/recipes/cnmf/meta.yaml new file mode 100644 index 0000000000000..42c0284e02d37 --- /dev/null +++ b/recipes/cnmf/meta.yaml @@ -0,0 +1,54 @@ +{% set name = "cnmf" %} +{% set version = "1.6.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.org/packages/source/{{ name[0] }}/{{ name }}/cnmf-{{ version }}.tar.gz + sha256: a38dfe82261087ed1945aac069a77a04fc12f5e8621bfa1c9b3e662339432c2a + +build: + number: 0 + noarch: python + entry_points: + - cnmf = cnmf:main + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + run_exports: + - {{ pin_subpackage('cnmf', max_pin="x") }} + +requirements: + host: + - python >=3.7 + - pip + run: + - python >=3.7 + - scikit-learn >=1.0 + - anndata >=0.9 + - scanpy + - pandas + - numpy + - fastcluster + - matplotlib-base + - palettable + - scipy + - pyyaml + +test: + imports: + - cnmf + commands: + - cnmf --help + +about: + home: https://github.com/dylkot/cNMF + summary: "Consensus NMF for scRNA-Seq data." + license: MIT + license_family: MIT + license_file: LICENSE + dev_url: https://github.com/dylkot/cNMF + +extra: + identifiers: + - doi:10.7554/eLife.43803 From 4b475358d8fefb6ae0a4826d9f1b40ad005e2d86 Mon Sep 17 00:00:00 2001 From: richard-burhans Date: Thu, 29 Aug 2024 14:40:30 -0400 Subject: [PATCH 1286/1589] Adding kegalign-full, where development for segalign-full and segalign-galaxy will continue (#50411) Co-authored-by: Richard C. Burhans --- recipes/kegalign-full/meta.yaml | 37 +++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 recipes/kegalign-full/meta.yaml diff --git a/recipes/kegalign-full/meta.yaml b/recipes/kegalign-full/meta.yaml new file mode 100644 index 0000000000000..85047fe074c54 --- /dev/null +++ b/recipes/kegalign-full/meta.yaml @@ -0,0 +1,37 @@ +{% set version = "0.1.2.7" %} + +package: + name: kegalign-full + version: {{ version }} + +build: + number: 0 + noarch: generic + run_exports: + - {{ pin_compatible('kegalign-full', max_pin='x.x') }} + +requirements: + run: + - kegalign ={{ version }} + - lastz + - mbuffer + - samtools + - ucsc-fatotwobit + +test: + commands: + - kegalign --help + - lastz --version 2>&1 | grep released + - which faToTwoBit + +about: + home: https://github.com/galaxyproject/KegAlign + summary: 'KegAlign: A Scalable GPU-Based Whole Genome Aligner' + description: | + KegAlign is a Scalable GPU System for Pairwise Whole Genome + Alignments based on LASTZ's seed-filter-extend paradigm. + license: MIT + license_family: MIT + license_url: https://github.com/galaxyproject/KegAlign/blob/main/LICENSE + doc_url: https://github.com/galaxyproject/KegAlign/blob/main/README.md + dev_url: https://github.com/galaxyproject/KegAlign From a74ec5860f3399ab16e4bf645faca0908669275c Mon Sep 17 00:00:00 2001 From: Lightning Auriga <8940921+lightning-auriga@users.noreply.github.com> Date: Thu, 29 Aug 2024 14:42:16 -0400 Subject: [PATCH 1287/1589] feat: update fastahack to 1.0.0 and modernize recipe style (#50410) --- recipes/fastahack/meta.yaml | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/recipes/fastahack/meta.yaml b/recipes/fastahack/meta.yaml index 2a41dfad0892d..ef6e52c82f7c8 100644 --- a/recipes/fastahack/meta.yaml +++ b/recipes/fastahack/meta.yaml @@ -1,22 +1,26 @@ +{% set name = "fastahack" %} +{% set version = "1.0.0" %} + + package: - name: fastahack - version: 2016.07.2 + name: {{ name }} + version: {{ version }} source: - url: https://github.com/ekg/fastahack/archive/bbc645f2f7966cb7b44446200c02627c3168b399.zip - md5: d32a9dee44a8da7477631930e92f5095 + url: https://github.com/ekg/fastahack/archive/refs/tags/v{{ version }}.tar.gz + sha256: cc1c04729b0c8ba3647cbb7e15e2b490ce701d73773f30f5892d68c36a1dceae build: - number: 6 + number: 0 skip: True # [osx] + run_exports: + - {{ pin_subpackage("fastahack", max_pin="x") }} requirements: build: - make - {{ compiler('cxx') }} - run: - test: commands: - fastahack 2>&1 | grep "usage" >/dev/null From 55e4a66d738db4725a6ba8af7286953e971b9164 Mon Sep 17 00:00:00 2001 From: bolduc Date: Thu, 29 Aug 2024 14:42:52 -0400 Subject: [PATCH 1288/1589] Initial commit (#50400) --- recipes/vcontact3/meta.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/recipes/vcontact3/meta.yaml b/recipes/vcontact3/meta.yaml index 7fe1af8435c22..908e3e0868885 100644 --- a/recipes/vcontact3/meta.yaml +++ b/recipes/vcontact3/meta.yaml @@ -1,5 +1,5 @@ {% set name = "vcontact3" %} -{% set version = "3.0.0.b38" %} +{% set version = "3.0.0.b65" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://bitbucket.org/MAVERICLab/vcontact3/get/{{ version }}.tar.gz" - sha256: fc56f0c3ae4d3016287e4ab9ad86847b089e7c8eca78fa393fe8eba965c182fc + sha256: 2f1bab1b332a2ece1f4eabceaaa431baa0c45c769efa725bc5a709dcb093f7f7 build: number: 0 @@ -48,6 +48,7 @@ requirements: - markupsafe >=2.0.1 - mmseqs2 >=15.6f452 - bioinfokit >=2.1.3 + - networkit >=11.0 test: commands: @@ -59,4 +60,4 @@ about: license_file: LICENSE license_family: GPL summary: Viral Contig Automatic Clustering and Taxonomy - doc_url: https://bitbucket.org/MAVERICLab/vcontact3/src/master/README.md \ No newline at end of file + doc_url: https://bitbucket.org/MAVERICLab/vcontact3/src/master/README.md From 45e87e3c0828bd96c7c4b4e6ce5baa9b5d94d567 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 30 Aug 2024 04:52:10 -0400 Subject: [PATCH 1289/1589] Update medicc2 to 1.1.1 (#50416) --- recipes/medicc2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/medicc2/meta.yaml b/recipes/medicc2/meta.yaml index 34c7f0f7d235e..c0c3674e51297 100644 --- a/recipes/medicc2/meta.yaml +++ b/recipes/medicc2/meta.yaml @@ -1,6 +1,6 @@ {% set name = "medicc2" %} -{% set version = "1.0.4" %} -{% set hash = "ed890c608b5d6ad08ea1e459af93a844242c1e12a02bd0f03b542a3654dcc720" %} +{% set version = "1.1.1" %} +{% set hash = "5ea0368f99d08ed9b4b6cece584f94295c742aeb5391859a4d031a41341285b8" %} package: From 23f84019946939cc6ec7fdedd6dacd493ed224b2 Mon Sep 17 00:00:00 2001 From: james hadfield Date: Fri, 30 Aug 2024 20:53:22 +1200 Subject: [PATCH 1290/1589] Update auspice version (#50418) Changelog via [GitHub release page](https://github.com/nextstrain/auspice/releases/tag/v2.57.0) --- recipes/auspice/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/auspice/meta.yaml b/recipes/auspice/meta.yaml index 074f6de8fabf9..86f89502075df 100644 --- a/recipes/auspice/meta.yaml +++ b/recipes/auspice/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.56.1" %} +{% set version = "2.57.0" %} {% set name = "auspice" %} package: @@ -7,7 +7,7 @@ package: source: url: https://registry.npmjs.org/{{ name }}/-/{{ name }}-{{ version }}.tgz - sha256: d100c0f6cc13ba1f9fe2b7bde5983b0383f523320dcc69a19cf9c86570febf03 + sha256: b959564d5249334f590081f2d273ae9a775652cb21f9e57175f5a6ba86d43473 build: number: 0 From 45fc075c707cba9ca21335475f3f72b357fca58f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 30 Aug 2024 04:53:33 -0400 Subject: [PATCH 1291/1589] Update binchicken to 0.12.2 (#50419) --- recipes/binchicken/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/binchicken/meta.yaml b/recipes/binchicken/meta.yaml index c19d5f3a24cf6..bd7f8d0c58682 100644 --- a/recipes/binchicken/meta.yaml +++ b/recipes/binchicken/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "0.12.1" %} +{% set version = "0.12.2" %} {% set name = "binchicken" %} -{% set sha256 = "99466aafa8037f683f02c5c68ffc689ba9137709e130cf434cd0d4b8a829a67f" %} +{% set sha256 = "17d5e4a83334047fa61d7db3a8e640ba734eb3583c7d014d0802264eb38d82db" %} package: name: {{ name }} From c9fdcc0f26f516d497f2a5e5d16f4d7bb2dfbf25 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 30 Aug 2024 04:53:44 -0400 Subject: [PATCH 1292/1589] Update metabolights-utils to 1.1.6 (#50420) --- recipes/metabolights-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/metabolights-utils/meta.yaml b/recipes/metabolights-utils/meta.yaml index eb899c33eb3da..b9c5b5350e56a 100644 --- a/recipes/metabolights-utils/meta.yaml +++ b/recipes/metabolights-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "metabolights-utils" %} -{% set version = "1.1.5" %} +{% set version = "1.1.6" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/metabolights_utils-{{ version }}.tar.gz - sha256: eafde551191dac729435067b37acefbd9c2b921f661a4f8253e6a618413a2c27 + sha256: c00e5cb8b51f9b79da7806345721a510f91c2b8ff0fa219be5405e5f9b9aaaa2 build: entry_points: From 62e81f5d89426d2e77a8f5562e5ddd44548ac161 Mon Sep 17 00:00:00 2001 From: Rlibouban <127295521+rlibouba@users.noreply.github.com> Date: Fri, 30 Aug 2024 10:54:10 +0200 Subject: [PATCH 1293/1589] add perl-db_file to the EVidenceModeler package (#50378) * add perl-db_file * fix number --- recipes/evidencemodeler/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/evidencemodeler/meta.yaml b/recipes/evidencemodeler/meta.yaml index f9e47e1f09777..d9a8365861794 100644 --- a/recipes/evidencemodeler/meta.yaml +++ b/recipes/evidencemodeler/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 3ee69ad822a35204ff02b670fe047d8b0da250cf9f43ebabbe33ce47f498e668 build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage('evidencemodeler', max_pin='x') }} @@ -27,6 +27,7 @@ requirements: - perl-carp - perl-uri - perl-dbi + - perl-db_file test: commands: From a479db72d38df1ae64b95749f41df2dfb87c163b Mon Sep 17 00:00:00 2001 From: Zechen Chong <1734434+czc@users.noreply.github.com> Date: Fri, 30 Aug 2024 04:17:37 -0500 Subject: [PATCH 1294/1589] Update inspector to 1.3.1 (#50417) * modified: recipes/inspector/meta.yaml * added exit 0 at the end * fprintf(stdout, " -- in %s -- %s:%d --\n", __FUNCTION__, __FILE__, __LINE__); modified: recipes/inspector/meta.yaml to fix missing_run_exports error * modified: recipes/inspector/build.sh - removed 'exit 0' modified: recipes/inspector/meta.yaml - removed channels and changed to 'x' * modified: recipes/inspector/meta.yaml - updated to lastest versions of dependencies * modified: recipes/inspector/meta.yaml - changed the version numbers to the latest * Bump the build number Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov --- recipes/inspector/meta.yaml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/recipes/inspector/meta.yaml b/recipes/inspector/meta.yaml index bba467348658e..81d97fd7ce491 100644 --- a/recipes/inspector/meta.yaml +++ b/recipes/inspector/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 2f1fa14ed4f504909183de09161681ae1a2dcfb3463b15fec09d227b69c51d0f build: - number: 0 + number: 1 noarch: generic run_exports: - {{ pin_subpackage('inspector', max_pin="x") }} @@ -17,11 +17,13 @@ build: requirements: run: - python - - minimap2 =2.15 - - pysam =0.16.0.1 - - statsmodels =0.10.1 - - samtools =1.9 - - flye =2.8.3 + - minimap2 >=2.28 + - pysam >=0.22.1 + - statsmodels >=0.14.2 + - numpy >=2.1.0 + - pandas >=2.2.2 + - samtools >=1.20 + - flye >=2.9.5 test: commands: From a3d36b631dc70ad4f3925bf61a6ba7bcc2decc89 Mon Sep 17 00:00:00 2001 From: Jody Phelan Date: Fri, 30 Aug 2024 10:32:45 +0100 Subject: [PATCH 1295/1589] update delly dependancies (#50412) * update dependancies * update build number * change version of boost-cpp * change version of boost-cpp --- recipes/delly/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/delly/meta.yaml b/recipes/delly/meta.yaml index 084b2579dcc44..fecd3a2f86db7 100644 --- a/recipes/delly/meta.yaml +++ b/recipes/delly/meta.yaml @@ -10,7 +10,7 @@ source: sha256: '{{ sha256 }}' build: - number: 3 + number: 4 run_exports: - {{ pin_subpackage("delly", max_pin="x.x") }} @@ -21,10 +21,10 @@ requirements: - wget host: - zlib - - boost-cpp >=1.85.0 + - boost-cpp =1.78.0 - htslib run: - - libboost >=1.85.0 + - boost-cpp =1.78.0 test: commands: From a652fab38451d2d726a8cb06ecad9c45183d9297 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 30 Aug 2024 06:14:31 -0400 Subject: [PATCH 1296/1589] Update pathogen-profiler to 4.4.0 (#50423) --- recipes/pathogen-profiler/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pathogen-profiler/meta.yaml b/recipes/pathogen-profiler/meta.yaml index 404ee9ae14a9d..db629d9a89746 100644 --- a/recipes/pathogen-profiler/meta.yaml +++ b/recipes/pathogen-profiler/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pathogen-profiler" %} -{% set version = "4.3.0" %} -{% set sha256 = "ca6d579308a045c7d433c71c6951293c2f7f7d4952ca37e80b1830a6e9be7fd4" %} +{% set version = "4.4.0" %} +{% set sha256 = "42a82777c01f26f1a5c85185960873e173329f9f84e081a1eef0fe66ac940f2e" %} package: name: {{name}} From 568b21533e2e707e9bfd167630c38d05d09d9a2d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 30 Aug 2024 07:08:57 -0400 Subject: [PATCH 1297/1589] Update pybiolib to 1.2.142 (#50422) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index c8c440c313edd..5d8b56b7704c5 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.2.122" %} +{% set version = "1.2.142" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: 12b54578a02d76ec5604b12ed6f5b000011cd749753cd994fb0dd9cc9a0ed921 + sha256: f1d59dab7399ab6533f3027b830003d6114ca79c451b12c0cacd2cf2caee9fa3 build: number: 0 From 36eec966cedd5581fad862744a615b7f1599dba1 Mon Sep 17 00:00:00 2001 From: aliciaaevans Date: Fri, 30 Aug 2024 09:26:00 -0400 Subject: [PATCH 1298/1589] ci: fix circleci syntax error --- .circleci/config.yml | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a136f28881c83..81ecb0653c316 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -243,8 +243,6 @@ jobs: # a basic unit of work in a run parameters: os: type: executor - runner: - type: integer executor: << parameters.os >> steps: - add_ssh_keys: @@ -329,11 +327,11 @@ workflows: runner: [0, 1, 2, 3, 4, 5] Nightly (ARM): - triggers: + triggers: - schedule: - cron: "0 0 * * *" - filters: - branches: + cron: "0 0 * * *" + filters: + branches: only: master jobs: - nightly_build: @@ -344,4 +342,4 @@ workflows: parameters: os: # - osx-arm64 Nightly is on GitHub Actions - - linux-aarch64 \ No newline at end of file + - linux-aarch64 From 05002dc04bcd34a1f9a84fac7cee70328b43259e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 30 Aug 2024 11:24:46 -0400 Subject: [PATCH 1299/1589] Update ntm-profiler to 0.5.0 (#50426) --- recipes/ntm-profiler/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ntm-profiler/meta.yaml b/recipes/ntm-profiler/meta.yaml index d920b448d61cc..deab8d25ca9f4 100644 --- a/recipes/ntm-profiler/meta.yaml +++ b/recipes/ntm-profiler/meta.yaml @@ -1,6 +1,6 @@ {% set name = "ntm-profiler" %} -{% set version = "0.4.0" %} -{% set sha256 = "6d9625d3b0ad2ee8a757cf6ab69381fd8d63c7d9adde76e56076b616f3039deb" %} +{% set version = "0.5.0" %} +{% set sha256 = "6dafd31f7a5ccf7b770481c0fffeb09509287a402ca4023ee88e0620d440c85b" %} package: name: {{name}} From 526ecbb721fa7b678c225f10df3c937bdef1ef88 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 30 Aug 2024 13:23:57 -0400 Subject: [PATCH 1300/1589] Update ezomero to 3.1.0 (#50428) --- recipes/ezomero/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ezomero/meta.yaml b/recipes/ezomero/meta.yaml index 97d8d21b17bb5..1ea7010c444ed 100644 --- a/recipes/ezomero/meta.yaml +++ b/recipes/ezomero/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "3.0.1" %} +{% set version = "3.1.0" %} {% set name = "ezomero" %} package: @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 2fc7c85626e013bb993d2da300d870bbfdf395d1574f72af086b12d182eebe95 + sha256: 4b681333d8d56077ac14062dc9109a0d5aad033d5287e14fc8c4c616b129e162 build: noarch: python From a486a9b1ba4ce68ea47c6aa4e47be44ac71f0837 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 30 Aug 2024 13:33:19 -0400 Subject: [PATCH 1301/1589] Update kleborate to 3.0.6 (#50427) --- recipes/kleborate/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/kleborate/meta.yaml b/recipes/kleborate/meta.yaml index 27fb373a71952..1244d48b098f7 100644 --- a/recipes/kleborate/meta.yaml +++ b/recipes/kleborate/meta.yaml @@ -1,5 +1,5 @@ {% set name = "kleborate" %} -{% set version = "3.0.5" %} +{% set version = "3.0.6" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/kleborate-{{ version }}.tar.gz" - sha256: 8f044b9422334912e4800003312ee112dca649a06533ad562681a2c162090a4e + sha256: 8dc3c88fcee916c22de57fca4d16b9c6336af94fe7322123d05b30149197dd53 build: number: 0 From 173cf0c37a8ab5d26a3b3f3cf372c7658a454ce2 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 30 Aug 2024 22:42:20 +0300 Subject: [PATCH 1302/1589] fastahack: add linux-aarch64 build (#50421) Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/fastahack/build.sh | 6 +++++- recipes/fastahack/meta.yaml | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/recipes/fastahack/build.sh b/recipes/fastahack/build.sh index 8ad0bf8e76ef4..a1bc7742e43c0 100644 --- a/recipes/fastahack/build.sh +++ b/recipes/fastahack/build.sh @@ -1,2 +1,6 @@ -make +#!/usr/bin/env bash + +set -xe + +make -j ${CPU_COUNT} make install \ No newline at end of file diff --git a/recipes/fastahack/meta.yaml b/recipes/fastahack/meta.yaml index ef6e52c82f7c8..dfb358e4aad19 100644 --- a/recipes/fastahack/meta.yaml +++ b/recipes/fastahack/meta.yaml @@ -11,7 +11,7 @@ source: sha256: cc1c04729b0c8ba3647cbb7e15e2b490ce701d73773f30f5892d68c36a1dceae build: - number: 0 + number: 1 skip: True # [osx] run_exports: - {{ pin_subpackage("fastahack", max_pin="x") }} @@ -30,3 +30,7 @@ about: license: MIT license_file: LICENSE summary: fastahack --- *fast* FASTA file indexing, subsequence and sequence extraction + +extra: + additional-platforms: + - linux-aarch64 From 2339ba01189a86ee63e450c9be8491f411dd172b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 30 Aug 2024 16:48:15 -0400 Subject: [PATCH 1303/1589] Update samestr to 1.2024.8 (#50415) * Update samestr to 1.2024.8 * bump mafft to 7.525 --------- Co-authored-by: mencian --- recipes/samestr/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/samestr/meta.yaml b/recipes/samestr/meta.yaml index 54f65bf516a7c..54a00dc7df83f 100644 --- a/recipes/samestr/meta.yaml +++ b/recipes/samestr/meta.yaml @@ -1,5 +1,5 @@ {% set name = "samestr" %} -{% set version = "1.2024.2.post1" %} +{% set version = "1.2024.8" %} package: name: "{{ name|lower }}" @@ -7,11 +7,11 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: d03c5f1fd89fd018409bcf332c3a95e752aca9fb47b88c617fad702581630bdd + sha256: e729a58652f019d5384f121565b2ca4faba19bee144af4d3bc88e6dfabc29a14 build: number: 0 - script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv" + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" noarch: python run_exports: - {{ pin_subpackage('samestr', max_pin=None) }} @@ -29,7 +29,7 @@ requirements: - scipy ==1.10.0 - blast >=2.6.0 - muscle ==3.8.1551 - - mafft ==7.515 + - mafft ==7.525 - samtools ==0.1.19 test: From 874e5cd86c6f38bdd5f2cd6117ff88245e2b6c36 Mon Sep 17 00:00:00 2001 From: Cheng-Hung Tsai Date: Fri, 30 Aug 2024 14:12:32 -0700 Subject: [PATCH 1304/1589] Update dbcanlight to 1.1.0 (#50429) * Update dbcanlight recipe to 1.1.0 * Fix space between package name and version * clean up recipe * clean up recipe --------- Co-authored-by: mencian --- recipes/dbcanlight/meta.yaml | 50 ++++++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 16 deletions(-) diff --git a/recipes/dbcanlight/meta.yaml b/recipes/dbcanlight/meta.yaml index feb9db4e3aac6..913d6bd54f1e3 100644 --- a/recipes/dbcanlight/meta.yaml +++ b/recipes/dbcanlight/meta.yaml @@ -1,5 +1,5 @@ -{% set name = "dbcanLight" %} -{% set version = "1.0.2" %} +{% set name = "dbcanlight" %} +{% set version = "1.1.0" %} package: name: {{ name|lower }} @@ -7,40 +7,58 @@ package: source: url: https://github.com/chtsai0105/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz - sha256: da8a46553010e625e0a8c5db218876b1b339a153750341f110f7883dd961c340 + sha256: dee95b9e8295fc749013283af43706b777646beb55d0881360b68b7efc7a60b6 build: number: 0 noarch: python - script: {{ PYTHON }} -m pip install . -vv + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv + entry_points: + - dbcanlight = dbcanlight.__main__:main + - dbcanlight-hmmparser = dbcanlight.hmmsearch_parser:main + - dbcanlight-subparser = dbcanlight.substrate_parser:main run_exports: - {{ pin_subpackage(name|lower, max_pin="x") }} requirements: host: - pip - - python - - setuptools + - python >=3.7 + - pytest >=6.0 run: - - biopython >=1.79 + - biopython >=1.81 + - importlib-metadata + - pyhmmer >=0.10.4 - python >=3.7 - - importlib_metadata - - pyhmmer >=0.10.2 test: commands: - - dbcanLight -h - - dbcanLight-hmmparser -h - - dbcanLight-subparser -h + - dbcanlight -h + - dbcanlight-hmmparser -h + - dbcanlight-subparser -h about: - home: https://github.com/chtsai0105/dbcanLight/tree/main + home: https://github.com/chtsai0105/dbcanlight license: MIT + license_family: MIT license_file: LICENSE - summary: A lightweight rewrite of run_dbcan + summary: A lightweight CAZyme annotation tool description: | - dbcanlight uses the hmmsearch module in pyhmmer to discover CAZymes and - potential substrates from a peptide sequences. + Dbcanlight is a lightweight rewrite of a widely used CAZyme annotation tool run_dbcan. It uses pyhmmer, a Cython bindings to + HMMER3, to instead the cli version of HMMER3 suite as the backend for the search processes, which improves the multithreading + performance. In addition, it also solves the inconvenience process in the run dbcan that the large sequence file required + manual splitting beforehand. + + The main program dbcanlight comprises 3 modules - build, search and conclude. The build module help to download the required + databases from dbcan website; the search module searches against protein HMM, substrate HMM or diamond databases and reports + the hits separately; and the conclude module gathers all the results made by each module and provides a brief overview. The + output of dbcanlight is resemble to run_dbcan with slight cleanup. Run_dbcan output the same substrate several times for a + gene that hits multiple profiles with the same substrate; in dbcanlight we only report it once. + + Dbcanlight only re-implemented the core features of run_dbcan, that is searching for CAZyme and substrate matches by + hmmer/diamond/dbcansub. Submodules like signalP, CGCFinder, etc. are not implemented. + dev_url: https://github.com/chtsai0105/dbcanlight + doc_url: https://github.com/chtsai0105/dbcanlight/blob/v{{ version }}/README.md extra: recipe-maintainers: From bede120079d1391a33fe0759203acb379a3f2288 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Fri, 30 Aug 2024 18:01:49 -0500 Subject: [PATCH 1305/1589] flye: add arm64 build (#50431) * flye: add arm64 build * add seemingly needed setuptools dependency for arm64 * add seemingly needed setuptools dependency for arm64 --- recipes/flye/build_failure.osx-arm64.yaml | 104 ---------------------- recipes/flye/meta.yaml | 3 +- 2 files changed, 2 insertions(+), 105 deletions(-) delete mode 100644 recipes/flye/build_failure.osx-arm64.yaml diff --git a/recipes/flye/build_failure.osx-arm64.yaml b/recipes/flye/build_failure.osx-arm64.yaml deleted file mode 100644 index 53425473597e7..0000000000000 --- a/recipes/flye/build_failure.osx-arm64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 172c692d9e3bfbb5893c55d2f193b4bf7850c328e906cbd3c7b3328854b86677 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - - changing mode of $PREFIX/bin/flye to 755 - Successfully installed flye-2.9.5 - Removed build tracker: '/private/tmp/pip-build-tracker-h4l5mldh' - - Resource usage statistics from building flye: - Process count: 12 - CPU time: Sys=0:00:02.8, User=0:00:52.1 - Memory: 1008.4M - Disk usage: 371.8K - Time elapsed: 0:00:44.4 - - - Packaging flye - Packaging flye-2.9.5-py312h321ceac_0 - /opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_build_env/bin/arm64-apple-darwin20.0.0-install_name_tool: warning: changes being made to the file will invalidate the code signature in: /opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/flye-samtools - [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/flye-samtools' - - /opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_build_env/bin/arm64-apple-darwin20.0.0-install_name_tool: warning: changes being made to the file will invalidate the code signature in: /opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/flye-samtools - [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/flye-samtools' - - /opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_build_env/bin/arm64-apple-darwin20.0.0-install_name_tool: warning: changes being made to the file will invalidate the code signature in: /opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/flye-samtools - [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/flye-samtools' - - /opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_build_env/bin/arm64-apple-darwin20.0.0-install_name_tool: warning: changes being made to the file will invalidate the code signature in: /opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/flye-minimap2 - [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/flye-minimap2' - - /opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_build_env/bin/arm64-apple-darwin20.0.0-install_name_tool: warning: changes being made to the file will invalidate the code signature in: /opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/flye-modules - [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/flye-modules' - - /opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_build_env/bin/arm64-apple-darwin20.0.0-install_name_tool: warning: changes being made to the file will invalidate the code signature in: /opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/flye-modules - [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/flye-modules' - - WARNING: Importing conda-verify failed. Please be sure to test your packages. conda install conda-verify to make this message go away. - compiling .pyc files... - number of files: 104 - INFO: sysroot: '/System/Library/Frameworks/' files: '['vmnet.framework/Versions/Current', 'vmnet.framework/Versions/A/_CodeSignature/CodeResources', 'vmnet.framework/Versions/A/Resources/version.plist', 'vmnet.framework/Versions/A/Resources/InfoPlist.loctable']' - INFO: sysroot: '/usr/lib/' files: '['zsh/5.9/zsh/zselect.so', 'zsh/5.9/zsh/zpty.so', 'zsh/5.9/zsh/zprof.so', 'zsh/5.9/zsh/zleparameter.so']' - INFO: sysroot: '/opt/X11/' files: '[]' - INFO (flye,bin/flye-samtools): Needed DSO lib/libz.1.dylib found in conda-forge/osx-arm64::libzlib==1.2.13=hfb2fe0b_6 - INFO (flye,bin/flye-samtools): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - INFO (flye,bin/flye-minimap2): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - INFO (flye,bin/flye-minimap2): Needed DSO lib/libz.1.dylib found in conda-forge/osx-arm64::libzlib==1.2.13=hfb2fe0b_6 - INFO (flye,bin/flye-modules): Needed DSO lib/libz.1.dylib found in conda-forge/osx-arm64::libzlib==1.2.13=hfb2fe0b_6 - INFO (flye,bin/flye-modules): Needed DSO lib/libc.1.dylib found in conda-forge/osx-arm64::libcxx==18.1.8=h3ed4263_6 - INFO (flye,bin/flye-modules): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - INFO (flye): Interpreted package 'flye' is interpreted by 'python' - Fixing permissions - Packaged license file/s. - INFO :: Time taken to mark (prefix) - 0 replacements in 0 files was 0.07 seconds - Files containing CONDA_PREFIX - ----------------------------- - bin/flye (text): Patching - TEST START: /opt/mambaforge/envs/bioconda/conda-bld/osx-arm64/flye-2.9.5-py312h321ceac_0.tar.bz2 - Renaming work directory '/opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/work' to '/opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/work_moved_flye-2.9.5-py312h321ceac_0_osx-arm64' - shutil.move(work)=/opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/work, dest=/opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/work_moved_flye-2.9.5-py312h321ceac_0_osx-arm64) - Reloading output folder (local): ...working... done - Solving environment (_test_env): ...working... done - - ## Package Plan ## - - environment location: /opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac - - - The following NEW packages will be INSTALLED: - - bzip2: 1.0.8-h99b78c6_7 conda-forge - ca-certificates: 2024.7.4-hf0a4a13_0 conda-forge - flye: 2.9.5-py312h321ceac_0 local - libcxx: 18.1.8-h3ed4263_6 conda-forge - libexpat: 2.6.2-hebf3989_0 conda-forge - libffi: 3.4.2-h3422bc3_5 conda-forge - libsqlite: 3.46.0-hfb93653_0 conda-forge - libzlib: 1.3.1-hfb2fe0b_1 conda-forge - ncurses: 6.5-h7bae524_1 conda-forge - openssl: 3.3.1-h8359307_3 conda-forge - python: 3.12.5-h30c5eda_0_cpython conda-forge - python_abi: 3.12-5_cp312 conda-forge - readline: 8.2-h92ec313_1 conda-forge - tk: 8.6.13-h5083fa2_1 conda-forge - tzdata: 2024a-h8827d51_1 conda-forge - xz: 5.2.6-h57fd34a_0 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - grep Assembly - flye -h - python -c 'import flye.tests.test_toy as t; t.main()' - Traceback (most recent call last): - File "", line 1, in - File "/opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.12/site-packages/flye/tests/test_toy.py", line 18, in - from distutils.spawn import find_executable - ModuleNotFoundError: No module named 'distutils' - WARNING: Tests failed for flye-2.9.5-py312h321ceac_0.tar.bz2 - moving package to /opt/mambaforge/envs/bioconda/conda-bld/broken - export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac - export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/flye_1724856988454/test_tmp - Assembly of long reads with repeat graphs - TESTS FAILED: flye-2.9.5-py312h321ceac_0.tar.bz2 -# Last 100 lines of the build log. diff --git a/recipes/flye/meta.yaml b/recipes/flye/meta.yaml index c3e7e7cef65fb..74f66f83a7c9b 100644 --- a/recipes/flye/meta.yaml +++ b/recipes/flye/meta.yaml @@ -13,7 +13,7 @@ source: - 0001-Makefile-aarch64.patch build: - number: 0 + number: 1 entry_points: - flye = flye.main:main run_exports: @@ -29,6 +29,7 @@ requirements: - zlib run: - python + - setuptools # [osx and arm64] test: commands: From ee0968ce2d85dedaee8d89d66af17a422fdedbc6 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Fri, 30 Aug 2024 18:04:12 -0500 Subject: [PATCH 1306/1589] sorted_nearest: add arm64 build (#50430) * sorted_nearest: add arm64 build * add seemingly needed setuptools dependency for arm64 --- .../build_failure.osx-arm64.yaml | 104 ------------------ recipes/sorted_nearest/meta.yaml | 3 +- 2 files changed, 2 insertions(+), 105 deletions(-) delete mode 100644 recipes/sorted_nearest/build_failure.osx-arm64.yaml diff --git a/recipes/sorted_nearest/build_failure.osx-arm64.yaml b/recipes/sorted_nearest/build_failure.osx-arm64.yaml deleted file mode 100644 index ee67068410442..0000000000000 --- a/recipes/sorted_nearest/build_failure.osx-arm64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 1c3cf3d76817af6019b65afe6c9e4eb74405f2c9c39c587fe2eef782febddabc # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |- - [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/sorted_nearest.cpython-38-darwin.so' - - /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_build_env/bin/arm64-apple-darwin20.0.0-install_name_tool: warning: changes being made to the file will invalidate the code signature in: /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/max_disjoint_intervals.cpython-38-darwin.so - [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/max_disjoint_intervals.cpython-38-darwin.so' - - /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_build_env/bin/arm64-apple-darwin20.0.0-install_name_tool: warning: changes being made to the file will invalidate the code signature in: /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/max_disjoint_intervals.cpython-38-darwin.so - [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/max_disjoint_intervals.cpython-38-darwin.so' - - /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_build_env/bin/arm64-apple-darwin20.0.0-install_name_tool: warning: changes being made to the file will invalidate the code signature in: /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/max_disjoint_intervals.cpython-38-darwin.so - [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/max_disjoint_intervals.cpython-38-darwin.so' - - /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_build_env/bin/arm64-apple-darwin20.0.0-install_name_tool: warning: changes being made to the file will invalidate the code signature in: /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/max_disjoint_intervals.cpython-38-darwin.so - [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/max_disjoint_intervals.cpython-38-darwin.so' - - /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_build_env/bin/arm64-apple-darwin20.0.0-install_name_tool: warning: changes being made to the file will invalidate the code signature in: /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/merge_by.cpython-38-darwin.so - [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/merge_by.cpython-38-darwin.so' - - /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_build_env/bin/arm64-apple-darwin20.0.0-install_name_tool: warning: changes being made to the file will invalidate the code signature in: /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/merge_by.cpython-38-darwin.so - [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/merge_by.cpython-38-darwin.so' - - /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_build_env/bin/arm64-apple-darwin20.0.0-install_name_tool: warning: changes being made to the file will invalidate the code signature in: /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/merge_by.cpython-38-darwin.so - [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/merge_by.cpython-38-darwin.so' - - /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_build_env/bin/arm64-apple-darwin20.0.0-install_name_tool: warning: changes being made to the file will invalidate the code signature in: /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/merge_by.cpython-38-darwin.so - [cctools-port]: generating fake signature for '/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/sorted_nearest/src/merge_by.cpython-38-darwin.so' - - WARNING: Importing conda-verify failed. Please be sure to test your packages. conda install conda-verify to make this message go away. - compiling .pyc files... - number of files: 57 - INFO: sysroot: '/System/Library/Frameworks/' files: '['vmnet.framework/Versions/Current', 'vmnet.framework/Versions/A/_CodeSignature/CodeResources', 'vmnet.framework/Versions/A/Resources/version.plist', 'vmnet.framework/Versions/A/Resources/InfoPlist.loctable']' - INFO: sysroot: '/usr/lib/' files: '['zsh/5.9/zsh/zselect.so', 'zsh/5.9/zsh/zpty.so', 'zsh/5.9/zsh/zprof.so', 'zsh/5.9/zsh/zleparameter.so']' - INFO: sysroot: '/opt/X11/' files: '[]' - INFO (sorted_nearest,lib/python3.8/site-packages/sorted_nearest/src/cluster_by.cpython-38-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - INFO (sorted_nearest,lib/python3.8/site-packages/sorted_nearest/src/annotate_clusters.cpython-38-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - INFO (sorted_nearest,lib/python3.8/site-packages/sorted_nearest/src/k_nearest.cpython-38-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - INFO (sorted_nearest,lib/python3.8/site-packages/sorted_nearest/src/clusters.cpython-38-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - INFO (sorted_nearest,lib/python3.8/site-packages/sorted_nearest/src/tiles.cpython-38-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - INFO (sorted_nearest,lib/python3.8/site-packages/sorted_nearest/src/k_nearest_ties.cpython-38-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - INFO (sorted_nearest,lib/python3.8/site-packages/sorted_nearest/src/windows.cpython-38-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - INFO (sorted_nearest,lib/python3.8/site-packages/sorted_nearest/src/introns.cpython-38-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - INFO (sorted_nearest,lib/python3.8/site-packages/sorted_nearest/src/sorted_nearest.cpython-38-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - INFO (sorted_nearest,lib/python3.8/site-packages/sorted_nearest/src/max_disjoint_intervals.cpython-38-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - INFO (sorted_nearest,lib/python3.8/site-packages/sorted_nearest/src/merge_by.cpython-38-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - WARNING (sorted_nearest): interpreter (Python) package conda-forge/osx-arm64::python==3.8.19=h2469fbe_0_cpython in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) - Fixing permissions - Packaged license file/s. - INFO :: Time taken to mark (prefix) - 0 replacements in 0 files was 0.05 seconds - TEST START: /opt/mambaforge/envs/bioconda/conda-bld/osx-arm64/sorted_nearest-0.0.39-py38h24147e2_3.tar.bz2 - Renaming work directory '/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/work' to '/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/work_moved_sorted_nearest-0.0.39-py38h24147e2_3_osx-arm64' - shutil.move(work)=/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/work, dest=/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/work_moved_sorted_nearest-0.0.39-py38h24147e2_3_osx-arm64) - Reloading output folder (local): ...working... done - Solving environment (_test_env): ...working... done - - ## Package Plan ## - - environment location: /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac - - - The following NEW packages will be INSTALLED: - - bzip2: 1.0.8-h99b78c6_7 conda-forge - ca-certificates: 2024.7.4-hf0a4a13_0 conda-forge - libblas: 3.9.0-23_osxarm64_openblas conda-forge - libcblas: 3.9.0-23_osxarm64_openblas conda-forge - libcxx: 18.1.8-h3ed4263_6 conda-forge - libffi: 3.4.2-h3422bc3_5 conda-forge - libgfortran: 5.0.0-13_2_0_hd922786_3 conda-forge - libgfortran5: 13.2.0-hf226fd6_3 conda-forge - liblapack: 3.9.0-23_osxarm64_openblas conda-forge - libopenblas: 0.3.27-openmp_h517c56d_1 conda-forge - libsqlite: 3.46.0-hfb93653_0 conda-forge - libzlib: 1.3.1-hfb2fe0b_1 conda-forge - llvm-openmp: 18.1.8-hde57baf_1 conda-forge - ncurses: 6.5-h7bae524_1 conda-forge - numpy: 1.24.4-py38ha84db1f_0 conda-forge - openssl: 3.3.1-h8359307_3 conda-forge - python: 3.8.19-h2469fbe_0_cpython conda-forge - python_abi: 3.8-5_cp38 conda-forge - readline: 8.2-h92ec313_1 conda-forge - sorted_nearest: 0.0.39-py38h24147e2_3 local - tk: 8.6.13-h5083fa2_1 conda-forge - xz: 5.2.6-h57fd34a_0 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - /opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py:544: UserWarning: The environment variable 'SETUPTOOLS_SCM_PRETEND_VERSION' is being passed through with value '0.0.39'. If you are splitting build and test phases with --no-test, please ensure that this value is also set similarly at test time. - warnings.warn( - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/test_tmp/run_test.py", line 2, in - import sorted_nearest - File "/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.8/site-packages/sorted_nearest/__init__.py", line 1, in - import pkg_resources - ModuleNotFoundError: No module named 'pkg_resources' - WARNING: Tests failed for sorted_nearest-0.0.39-py38h24147e2_3.tar.bz2 - moving package to /opt/mambaforge/envs/bioconda/conda-bld/broken - TESTS FAILED: sorted_nearest-0.0.39-py38h24147e2_3.tar.bz2 - export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac - export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1724855898495/test_tmp - import: 'sorted_nearest' -# Last 100 lines of the build log. diff --git a/recipes/sorted_nearest/meta.yaml b/recipes/sorted_nearest/meta.yaml index 6c2a719b9b627..24a8e58adac2b 100644 --- a/recipes/sorted_nearest/meta.yaml +++ b/recipes/sorted_nearest/meta.yaml @@ -13,7 +13,7 @@ source: '{{ hash_type }}': '{{ hash_value }}' build: - number: 3 + number: 4 script_env: - SETUPTOOLS_SCM_PRETEND_VERSION={{ version }} script: "{{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir" @@ -30,6 +30,7 @@ requirements: - setuptools-scm >=6.2 run: - python + - setuptools # [osx and arm64] - numpy test: From 1294166fbc2d0cb6d72b691d5689838c1d1b41f2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 31 Aug 2024 10:38:36 -0400 Subject: [PATCH 1307/1589] Update oarfish to 0.6.2 (#50435) --- recipes/oarfish/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/oarfish/meta.yaml b/recipes/oarfish/meta.yaml index e7735d01488bd..41e7e84dcf8ce 100644 --- a/recipes/oarfish/meta.yaml +++ b/recipes/oarfish/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.6.1" %} +{% set version = "0.6.2" %} package: name: oarfish @@ -11,7 +11,7 @@ build: source: url: https://github.com/COMBINE-lab/oarfish/archive/v{{ version }}.tar.gz - sha256: 43d123010c1abb813ffea785715b2fba39d730a708e7f8d7ea966422834e503d + sha256: 78b523fc459fec5ae3680395925862b4d367bd56d051120f28c689dd387e1758 requirements: build: From 15b0bafacf5eb0c5247b3ec8a382a3b77e332a9e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 31 Aug 2024 14:01:51 -0400 Subject: [PATCH 1308/1589] Update ropebwt3 to 3.5 (#50438) --- recipes/ropebwt3/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ropebwt3/meta.yaml b/recipes/ropebwt3/meta.yaml index 0ed874533c07e..111421ee27827 100644 --- a/recipes/ropebwt3/meta.yaml +++ b/recipes/ropebwt3/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ropebwt3" %} -{% set version = "3.4" %} +{% set version = "3.5" %} package: name: {{ name }} @@ -12,7 +12,7 @@ build: source: url: https://github.com/lh3/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz - sha256: 76741e110e6e5519c16709ddc2ca556ae5ecbb72d8678998b6210a53f1e7c18f + sha256: b1251c67ea939db5399b3635293cd45c43bd4b3c3418905a7fdc560c6775477d requirements: build: From 360f52768ae44353f362faa49b26377e09359a5b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 31 Aug 2024 23:04:14 -0400 Subject: [PATCH 1309/1589] Update skder to 1.2.5 (#50434) * Update skder to 1.2.5 * Update meta.yaml * Update build.sh * Update meta.yaml * Update build.sh * Update meta.yaml --------- Co-authored-by: Rauf Salamzade --- recipes/skder/build.sh | 7 ++++--- recipes/skder/meta.yaml | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/recipes/skder/build.sh b/recipes/skder/build.sh index 77291308f3479..0761399e03b08 100644 --- a/recipes/skder/build.sh +++ b/recipes/skder/build.sh @@ -4,9 +4,10 @@ $PYTHON -m pip install . --ignore-installed --no-deps -vv mkdir -p ${PREFIX}/bin -# (re)-compile C++ programs -${CXX} -std=c++11 -o ${PREFIX}/bin/skDERcore src/skDER/skDERcore.cpp -${CXX} -std=c++11 -o ${PREFIX}/bin/skDERsum src/skDER/skDERsum.cpp +export LDFLAGS= + +${CXX} -std=c++11 -Wl,-headerpad_max_install_names -o ${PREFIX}/bin/skDERsum src/skDER/skDERsum.cpp +${CXX} -std=c++11 -Wl,-headerpad_max_install_names -o ${PREFIX}/bin/skDERcore src/skDER/skDERcore.cpp chmod +x ${PREFIX}/bin/skDERcore chmod +x ${PREFIX}/bin/skDERsum diff --git a/recipes/skder/meta.yaml b/recipes/skder/meta.yaml index a5d04283eb8d2..6d91407ff46ae 100644 --- a/recipes/skder/meta.yaml +++ b/recipes/skder/meta.yaml @@ -1,5 +1,5 @@ {% set name = "skder" %} -{% set version = "1.2.4" %} +{% set version = "1.2.5" %} package: name: {{ name|lower }} @@ -7,13 +7,13 @@ package: source: url: https://github.com/raufs/skDER/archive/refs/tags/v{{ version }}.tar.gz - sha256: da1d6e4a9ce7b5ee1525cd9b87c876d66c8163b59b2a793392536ab0a043f655 + sha256: 80eb2467af244009adfc6359791cb3b54ff73555b14792f22ecffdaf6c832627 build: number: 0 skip: True # [py <= 39] run_exports: - - {{ pin_subpackage('skder', max_pin='x.x') }} + - {{ pin_subpackage('skder', max_pin='x') }} requirements: build: @@ -51,3 +51,4 @@ about: extra: additional-platforms: - linux-aarch64 + From d277cdef5af2a5b8e585a8b33d3e34114eea6966 Mon Sep 17 00:00:00 2001 From: Wei Shen Date: Sun, 1 Sep 2024 11:45:39 +0100 Subject: [PATCH 1310/1589] Add LexicMap (#50441) It should be fine. The release method is very similar to that of my previous tools. --- recipes/lexicmap/build.sh | 4 ++++ recipes/lexicmap/meta.yaml | 40 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 recipes/lexicmap/build.sh create mode 100644 recipes/lexicmap/meta.yaml diff --git a/recipes/lexicmap/build.sh b/recipes/lexicmap/build.sh new file mode 100644 index 0000000000000..fcf25512b98e6 --- /dev/null +++ b/recipes/lexicmap/build.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +mkdir -p $PREFIX/bin +cp lexicmap $PREFIX/bin diff --git a/recipes/lexicmap/meta.yaml b/recipes/lexicmap/meta.yaml new file mode 100644 index 0000000000000..d5488f59fd7f7 --- /dev/null +++ b/recipes/lexicmap/meta.yaml @@ -0,0 +1,40 @@ +{% set version = "0.4.0" %} + +package: + name: lexicmap + version: {{ version }} + +source: + url: https://github.com/shenwei356/LexicMap/releases/download/v{{ version }}/lexicmap_darwin_amd64.tar.gz # [osx] + md5: 631f54c4ddb655522728f7818778d080 # [osx] + + url: https://github.com/shenwei356/LexicMap/releases/download/v{{ version }}/lexicmap_darwin_arm64.tar.gz # [arm64] + md5: 2afe68c7d0f074291dd615d79bc5bc09 # [arm64] + + url: https://github.com/shenwei356/LexicMap/releases/download/v{{ version }}/lexicmap_linux_amd64.tar.gz # [linux] + md5: c2fca1f71e99b8e78d7b043ff82aa4e5 # [linux] + + url: https://github.com/shenwei356/LexicMap/releases/download/v{{ version }}/lexicmap_linux_arm64.tar.gz # [aarch64] + md5: ba006e38889489198fa703a5f7ebb805 # [aarch64] + +build: + number: 0 + run_exports: + - {{ pin_subpackage('lexicmap', max_pin='x.x') }} + +test: + commands: + - lexicmap version --help + +about: + home: https://github.com/shenwei356/LexicMap + summary: efficient sequence alignment against millions of prokaryotic genomes + license: MIT + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 + skip-lints: + - should_be_noarch_generic + - should_not_be_noarch_source From 72acc83c1eb6ec7d8f01c625a8573c8c83bedb3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20K=C3=B6nig?= <35546377+patrick-koenig@users.noreply.github.com> Date: Mon, 2 Sep 2024 20:41:58 +0200 Subject: [PATCH 1311/1589] Update blast2galaxy to 1.0.0 (#50451) --- recipes/blast2galaxy/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/blast2galaxy/meta.yaml b/recipes/blast2galaxy/meta.yaml index 91ee70dd020be..ffc343984a7bb 100644 --- a/recipes/blast2galaxy/meta.yaml +++ b/recipes/blast2galaxy/meta.yaml @@ -1,5 +1,5 @@ {% set name = "blast2galaxy" %} -{% set version = "0.1.0a1" %} +{% set version = "1.0.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.org/packages/source/{{ name[0] }}/{{ name }}/blast2galaxy-{{ version }}.tar.gz - sha256: ec1934a5a0e23a06175814790e6e9cefcbccadf52a7752f8278788b48b45eb4e + sha256: 6831f00319c18dc338df18fccd279c6a6dc8d725b4afc414f5bb34d16e8317f3 build: entry_points: @@ -44,7 +44,7 @@ about: license: MIT license_file: LICENSE home: "https://github.com/IPK-BIT/blast2galaxy" - doc_url: "https://ipk-bit.github.io/blast2galaxy/" + doc_url: "https://blast2galaxy.readthedocs.io/" dev_url: "https://github.com/IPK-BIT/blast2galaxy" extra: From 145b694caa82c6f20d80dee889ed487d8138b1e2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 2 Sep 2024 14:42:09 -0400 Subject: [PATCH 1312/1589] Update wfmash to 0.21.0 (#50450) --- recipes/wfmash/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/wfmash/meta.yaml b/recipes/wfmash/meta.yaml index f73b34171c1cf..980acc916dbe1 100644 --- a/recipes/wfmash/meta.yaml +++ b/recipes/wfmash/meta.yaml @@ -1,5 +1,5 @@ {% set name = "wfmash" %} -{% set version = "0.20.0" %} +{% set version = "0.21.0" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: https://github.com/waveygang/{{ name }}/releases/download/v{{ version }}/{{ name }}-v{{ version }}.tar.gz - sha256: 10e96f454bce8aa6dd3ec579f41c2bfc62667499005016071da19ab1c3754173 + sha256: fc1482c0098f36bb5fe4730ad4504ed7c8037c902e7fa3339b33d18e338e2f6d build: skip: True # [osx] From 7b243d63b82245be8fdbc91d1ab5ad98608cfd48 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 2 Sep 2024 14:44:25 -0400 Subject: [PATCH 1313/1589] Update diphase to 1.0.2 (#50440) --- recipes/diphase/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/diphase/meta.yaml b/recipes/diphase/meta.yaml index 16aa98b52ec4c..8ee5e1cbb687b 100644 --- a/recipes/diphase/meta.yaml +++ b/recipes/diphase/meta.yaml @@ -1,6 +1,6 @@ {% set name = "diphase" %} -{% set version = "1.0.1" %} -{% set sha256 = "64a65bcf026b9401797e92bf1a4ec0a8151f0e7e27f7308166cdb24c9f89f03a" %} +{% set version = "1.0.2" %} +{% set sha256 = "edf4a9cfee3563542f5608f5918ae0c3786d20e54e6c0d75da1ac03baeb772b5" %} package: name: {{ name }} From 3ee562d82dd2d4c4b968e3faff282152a43531dd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 2 Sep 2024 14:44:36 -0400 Subject: [PATCH 1314/1589] Update aviary to 0.9.2 (#50442) --- recipes/aviary/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/aviary/meta.yaml b/recipes/aviary/meta.yaml index 0b0c688982b3c..bc5287938478b 100644 --- a/recipes/aviary/meta.yaml +++ b/recipes/aviary/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "0.9.1" %} +{% set version = "0.9.2" %} {% set name = "aviary" %} -{% set sha256 = "51b7096f7e031e0d4cf465249ca6959eda28f66bd8ca24fd5e0989b131a6f9ce" %} +{% set sha256 = "83e18bbd2abf347ae7e0d83d81d671031a6a98324b01053e79c0d86b989c95ba" %} package: name: aviary From 47f55921cba7b9a287256c6265d07fd0d26e3998 Mon Sep 17 00:00:00 2001 From: Alexandra Weisberg Date: Mon, 2 Sep 2024 11:44:48 -0700 Subject: [PATCH 1315/1589] Update beav to v1.4.0 (#50443) * Update build.sh * added env variable in recipe --- recipes/beav/meta.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/recipes/beav/meta.yaml b/recipes/beav/meta.yaml index a677a34fc3bd4..6c2f22c6c1890 100644 --- a/recipes/beav/meta.yaml +++ b/recipes/beav/meta.yaml @@ -1,6 +1,6 @@ {% set name = "beav" %} -{% set version = "1.3.0" %} -{% set sha256 = "d691635cc861560c7ae272b4ee2023534e35b43e8764a8fb7f5691ab6202fe3e" %} +{% set version = "1.4.0" %} +{% set sha256 = "fb76843ea670121f901af3c1fb1c7742f0523b47c18dd633c3477802fc2d4c81" %} {% set dbscan_git = "condabeav0.5" %} {% set dbscan_sha256 = "2fe08873026fe63a9992bfb997e59fecce7facb903778983dc6917c962573463" %} {% set gapmind_git = "Beav0.5.1conda" %} @@ -64,6 +64,9 @@ requirements: - perl-file-spec - perl-ipc-run3 +variables: + BEAV_DIR: {{ PREFIX }}/share/{{ name }}-{{ version }} + test: commands: - beav -h From 8febf8615f4a23df83118252bbbe7f70aa8b4349 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 2 Sep 2024 14:45:02 -0400 Subject: [PATCH 1316/1589] Update galah to 0.4.1 (#50444) --- recipes/galah/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/galah/meta.yaml b/recipes/galah/meta.yaml index f90f03562e182..ba8d2510e0acd 100644 --- a/recipes/galah/meta.yaml +++ b/recipes/galah/meta.yaml @@ -1,13 +1,13 @@ -{% set version = "0.4.0" %} +{% set version = "0.4.1" %} {% set name = "galah" %} -{% set sha256 = "9b40cc805df15461e5b07fd3108663cc92d286030c17fefe5a33716b5b8fa10a" %} +{% set sha256 = "c48a04909b3ed52d09d5769122f831dfe216d131c8d20a21d1856c767126cc4d" %} package: name: {{ name }} version: {{ version }} build: - number: 1 + number: 0 skip: True # [osx] run_exports: - {{ pin_subpackage('galah', max_pin="x.x") }} From 6b8e60ccf47cedba1da84ca4651464363a27f6e6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 2 Sep 2024 14:45:41 -0400 Subject: [PATCH 1317/1589] Update mgnify-pipelines-toolkit to 0.1.6 (#50448) --- recipes/mgnify-pipelines-toolkit/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mgnify-pipelines-toolkit/meta.yaml b/recipes/mgnify-pipelines-toolkit/meta.yaml index fabcf79ac58da..7be89ec5a1ba8 100644 --- a/recipes/mgnify-pipelines-toolkit/meta.yaml +++ b/recipes/mgnify-pipelines-toolkit/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mgnify-pipelines-toolkit" %} -{% set version = "0.1.5" %} +{% set version = "0.1.6" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mgnify_pipelines_toolkit-{{ version }}.tar.gz - sha256: 5cbde5250ebb858ab463960fa7569274f6a1d118bcc365b1905ddce01b73129f + sha256: a89ad126b2b3e57552dddd1ddd935ed5a269376cd351328712eb30fb92006fc9 build: entry_points: From 991a06b9b061fc3174f143f3e77e6e1d1e39a5bc Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 2 Sep 2024 14:47:21 -0400 Subject: [PATCH 1318/1589] Update perl-graph to 0.9732 (#50449) --- recipes/perl-graph/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/perl-graph/meta.yaml b/recipes/perl-graph/meta.yaml index d8205c4edc8a4..802d75eb81ba1 100644 --- a/recipes/perl-graph/meta.yaml +++ b/recipes/perl-graph/meta.yaml @@ -1,10 +1,10 @@ package: name: perl-graph - version: "0.9731" + version: "0.9732" source: - url: https://cpan.metacpan.org/authors/id/E/ET/ETJ/Graph-0.9731.tar.gz - sha256: 0714ade6e6caf4681ed5cf0e746ae1e2a71b65e822fd7a0ea39591a96a66fe50 + url: https://cpan.metacpan.org/authors/id/E/ET/ETJ/Graph-0.9732.tar.gz + sha256: eafc9e519a04ac0a61a3eb34b6e18709411e5abde4bf1d9019c2e371aedf6c50 build: noarch: generic From 66c809b19344d7322e74375327bd1e4af323fb4e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 3 Sep 2024 03:41:48 -0400 Subject: [PATCH 1319/1589] Update hybracter to 0.8.0 (#50458) --- recipes/hybracter/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/hybracter/meta.yaml b/recipes/hybracter/meta.yaml index 15305a69002fc..0ed0b9a4d0672 100644 --- a/recipes/hybracter/meta.yaml +++ b/recipes/hybracter/meta.yaml @@ -1,5 +1,5 @@ {% set name = "hybracter" %} -{% set version = "0.7.3" %} +{% set version = "0.8.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/hybracter-{{ version }}.tar.gz - sha256: 01ee53bb84c37ba2a4c37431dd34ada4383cf29aab4127acb3131ab1be58adac + sha256: fc0f926e9470698976674f84ee4c9a1158cfdbaeb7eb4ddd1d9d827a4c08a86d build: number: 0 From 6af3088bfdabfb37e04c0087f79ea45701e92f2f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 3 Sep 2024 13:09:16 -0400 Subject: [PATCH 1320/1589] Update isoquant to 3.5.2 (#50466) --- recipes/isoquant/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/isoquant/meta.yaml b/recipes/isoquant/meta.yaml index 3909056b93f8d..b7ce9396ccb4a 100644 --- a/recipes/isoquant/meta.yaml +++ b/recipes/isoquant/meta.yaml @@ -1,6 +1,6 @@ {% set name = "IsoQuant" %} -{% set version = "3.5.1" %} -{% set sha256 = "3153389594062618012ec946512b81147af0ac4529466c46d79524cabeda6313" %} +{% set version = "3.5.2" %} +{% set sha256 = "8d62f76686fa8abe5530641ca6b638784d425be41b1bbc6b6d963e5e26025c2a" %} package: name: {{ name | lower }} From ea5be0af4da651f90f5c1dc16819fe21a3e22f60 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 3 Sep 2024 13:09:27 -0400 Subject: [PATCH 1321/1589] Update distle to 0.2.0 (#50463) --- recipes/distle/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/distle/meta.yaml b/recipes/distle/meta.yaml index 1cfe3807ac8aa..740d308b1d7e0 100644 --- a/recipes/distle/meta.yaml +++ b/recipes/distle/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.1.1" %} -{% set sha256 = "fd637102b8d305a50e76c3b2e8a88ffaa417a861ec23704c39902e5423a2e20e" %} +{% set version = "0.2.0" %} +{% set sha256 = "8e153099d18c3e7383f1f5a300732136a5161d2cd5bcbe152f03d02830d65175" %} package: name: distle @@ -35,4 +35,4 @@ extra: recipe-maintainers: - khajji - boasvdp - - ids-bioinformatics \ No newline at end of file + - ids-bioinformatics From 3ba911d31bb9a19fa714f9c0509f6ec6c45ca873 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 3 Sep 2024 13:11:44 -0400 Subject: [PATCH 1322/1589] Update argo to 0.1.1 (#50459) --- recipes/argo/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/argo/meta.yaml b/recipes/argo/meta.yaml index 60613f68a3217..321d4a53e99df 100644 --- a/recipes/argo/meta.yaml +++ b/recipes/argo/meta.yaml @@ -1,5 +1,5 @@ {% set name = "argo" %} -{% set version = "0.1.0" %} +{% set version = "0.1.1" %} package: name: '{{ name|lower }}' @@ -7,7 +7,7 @@ package: source: url: https://github.com/xinehc/argo/archive/refs/tags/v{{ version }}.tar.gz - sha256: 8dbe2606024c78ca471dea675e4aeaa88140cca0a2f989b2d40081cf6cd62cdc + sha256: 9ddc3bea602e3bdcd3518bb3ecd7795b680addaa513eff0fff83e1010ba4e253 build: noarch: python From ae18a78eda4ca42df3cb7834b80e369a4d10403d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 3 Sep 2024 13:12:20 -0400 Subject: [PATCH 1323/1589] Update galah to 0.4.2 (#50457) --- recipes/galah/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/galah/meta.yaml b/recipes/galah/meta.yaml index ba8d2510e0acd..be438161e898a 100644 --- a/recipes/galah/meta.yaml +++ b/recipes/galah/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "0.4.1" %} +{% set version = "0.4.2" %} {% set name = "galah" %} -{% set sha256 = "c48a04909b3ed52d09d5769122f831dfe216d131c8d20a21d1856c767126cc4d" %} +{% set sha256 = "6908d5038925032e8e2a2b2533bb5b1cb7ad2b51a89fe144b34bb57677ee287a" %} package: name: {{ name }} From 7f04f6fa5b285c58037953b06dc17c9f0e9c766f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 3 Sep 2024 13:12:38 -0400 Subject: [PATCH 1324/1589] Update mehari to 0.28.1 (#50456) --- recipes/mehari/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mehari/meta.yaml b/recipes/mehari/meta.yaml index a94f64f1be1ae..6584018563bc8 100644 --- a/recipes/mehari/meta.yaml +++ b/recipes/mehari/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.28.0" %} -{% set sha256 = "9ace8661cfa769dc2b1ec1ce47af329b92cb63a27453fb2cc23a385e6009b0b5" %} +{% set version = "0.28.1" %} +{% set sha256 = "b1bb238782036c05795b74fbb7e97ff998e234fd89f4501234b052d3f2a0d683" %} package: name: mehari From dea77a613c3cd2d0045ad175a7fbd50671d0e271 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 3 Sep 2024 13:15:49 -0400 Subject: [PATCH 1325/1589] Update kleborate to 3.0.8 (#50455) * Update kleborate to 3.0.7 * Update kleborate to 3.0.8 --- recipes/kleborate/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/kleborate/meta.yaml b/recipes/kleborate/meta.yaml index 1244d48b098f7..3944f45ce94f7 100644 --- a/recipes/kleborate/meta.yaml +++ b/recipes/kleborate/meta.yaml @@ -1,5 +1,5 @@ {% set name = "kleborate" %} -{% set version = "3.0.6" %} +{% set version = "3.0.8" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/kleborate-{{ version }}.tar.gz" - sha256: 8dc3c88fcee916c22de57fca4d16b9c6336af94fe7322123d05b30149197dd53 + sha256: d83da649c6a64922636602b93ea0cee8c09bd0faa30c6bb98617f0c26a8ef6c3 build: number: 0 From 6a6a9e5bea996044c4fccc8a284fda558e210bcd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 3 Sep 2024 14:30:03 -0400 Subject: [PATCH 1326/1589] Update freebayes to 1.3.8 (#47397) * Update freebayes to 1.3.8 * edit patch * edit patch * Fix assorted issues in bump/freebayes branch (#50399) * fix: update conda friendly patch for upstream changes to meson build * fix: use git_url for conda to support required, unpackaged submodules * build: exclude linting that blocks submodule support * fix: declare missing variable for wfa2lib in meson * fix: specify preceding v in version when pulling from github * build: add missing runtime * fix: correct issues with overridden linker settings * build: try to correct handling of wfa2-lib * build: fix specification of submodules in upstream * fix: restructure pulling of submodules and dependencies to avoid issues with upstream specification of submodules and old run exports * build: try removing zlib version pin and see if docker build can figure out a vcflib solution * build: adjust package deps to reflect fastahack lib defined by different linux distro --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Co-authored-by: mencian Co-authored-by: Lightning Auriga <8940921+lightning-auriga@users.noreply.github.com> --- ...0001-make-meson-build-conda-friendly.patch | 69 +++++++------------ .../0002-fix-intervaltree-include-path.patch | 9 ++- recipes/freebayes/0003-meson-macos.patch | 6 +- recipes/freebayes/build.sh | 1 + recipes/freebayes/meta.yaml | 30 +++++--- 5 files changed, 55 insertions(+), 60 deletions(-) diff --git a/recipes/freebayes/0001-make-meson-build-conda-friendly.patch b/recipes/freebayes/0001-make-meson-build-conda-friendly.patch index 98067c888dcb8..320213ecdd109 100644 --- a/recipes/freebayes/0001-make-meson-build-conda-friendly.patch +++ b/recipes/freebayes/0001-make-meson-build-conda-friendly.patch @@ -1,39 +1,23 @@ -From 62630d76f804c930753b0215ed09a33a02e1347e Mon Sep 17 00:00:00 2001 -From: Lightning Auriga -Date: Sat, 7 Oct 2023 12:25:42 -0400 -Subject: [PATCH 1/2] make meson build conda friendly - ---- - meson.build | 58 +++++++++-------------------------------------------- - 1 file changed, 9 insertions(+), 49 deletions(-) - diff --git a/meson.build b/meson.build -index 2a91caf..66b8016 100644 +index 9d727f9..9288fbb 100644 --- a/meson.build +++ b/meson.build -@@ -15,7 +15,7 @@ - # meson build -Dstatic=true -Dprefer_system_deps=false --buildtype release +@@ -23,14 +23,10 @@ static_build = get_option('static') - project('freebayes', ['cpp', 'c'], -- version : '1.3.6', -+ version : '1.3.7', - default_options : ['warning_level=1', 'cpp_std=c++17', 'optimization=3']) - static_build = get_option('static') + cc = meson.get_compiler('cpp') -@@ -24,21 +24,16 @@ cc = meson.get_compiler('cpp') - zlib_dep = dependency('zlib', static: static_build) +-# fastahack_dep = cc.find_library('libfastahack') lzma_dep = dependency('liblzma', static: static_build) - thread_dep = dependency('threads', static: static_build) + seqlib_dep = dependency('libseqlib', static: static_build, required: false) + # smithwaterman_dep = cc.find_library('libsmithwaterman') -tabixpp_dep = cc.find_library('tabixpp', required: false, static: static_build) + thread_dep = dependency('threads', static: static_build) +-vcflib_dep = cc.find_library('libvcflib') +-wfa2lib_dep = cc.find_library('libwfa2') + zlib_dep = dependency('zlib', static: static_build) # to compile htslib use - # meson build -Dprefer_system_deps=false - # otherwise it tries to pick up the local system libs - if get_option('prefer_system_deps') - htslib_dep = dependency('htslib', static: static_build, required: false) -- tabixpp_dep = cc.find_library('tabixpp', static: static_build, required: false) -- vcflib_dep = dependency('libvcflib', static: static_build, required: false) - seqlib_dep = dependency('libseqlib', static: static_build, required: false) +@@ -41,8 +37,6 @@ if get_option('prefer_system_deps') else # uses the local git submodules htslib_dep = dependency('', required : false) @@ -42,15 +26,13 @@ index 2a91caf..66b8016 100644 seqlib_dep = dependency('', required : false) endif -@@ -99,50 +94,15 @@ if not htslib_dep.found() +@@ -123,47 +114,16 @@ if not htslib_dep.found() htslib_dep = declare_dependency(link_with : htslib_lib, include_directories : htslib_inc) else - htslib_inc = [] -+ htslib_inc = [get_option('prefix') + '/include'] -+ htslib_lib = [get_option('prefix') + '/lib'] - endif - +-endif +- - -if not tabixpp_dep.found() - tabixpp_inc = include_directories('contrib/vcflib/contrib/tabixpp/') @@ -63,8 +45,13 @@ index 2a91caf..66b8016 100644 - include_directories : tabixpp_inc) -else - tabixpp_inc = [] --endif ++ htslib_inc = [get_option('prefix') + '/include'] ++ htslib_lib = [get_option('prefix') + '/lib'] + endif + +-vcflib_inc = include_directories() - +-# optionally build from source. As we unbundled just check out the vcflib repo in contrib. -if not vcflib_dep.found() - vcflib_inc = include_directories( - 'contrib/vcflib/src', @@ -78,12 +65,6 @@ index 2a91caf..66b8016 100644 - 'contrib/vcflib/src/allele.cpp', - 'contrib/vcflib/src/cigar.cpp', - 'contrib/vcflib/src/split.cpp', -- 'contrib/vcflib/contrib/fastahack/Fasta.cpp', -- 'contrib/vcflib/contrib/smithwaterman/SmithWatermanGotoh.cpp', -- 'contrib/vcflib/contrib/smithwaterman/disorder.cpp', -- 'contrib/vcflib/contrib/smithwaterman/Repeats.cpp', -- 'contrib/vcflib/contrib/smithwaterman/LeftAlign.cpp', -- 'contrib/vcflib/contrib/smithwaterman/IndelAllele.cpp', - ) - vcflib_lib = static_library('custom_vcflib', - vcflib_src, @@ -97,10 +78,11 @@ index 2a91caf..66b8016 100644 +vcflib_inc = [get_option('prefix') + '/include'] +vcflib_lib = [get_option('prefix') + '/lib'] +vcflib_dep = [] ++wfa2lib_dep = [] if not seqlib_dep.found() -@@ -227,7 +187,7 @@ freebayes_lib = static_library( +@@ -248,11 +208,11 @@ freebayes_lib = static_library( if static_build link_arguments = '-static' else @@ -109,6 +91,7 @@ index 2a91caf..66b8016 100644 endif executable('freebayes', --- -2.41.0 - + [freebayes_src,multichoose_src,fastahack_src,smithwaterman_src], + include_directories : [multichoose_inc, fastahack_inc, smithwaterman_inc, incdir], + cpp_args : extra_cpp_args, + link_args: link_arguments, diff --git a/recipes/freebayes/0002-fix-intervaltree-include-path.patch b/recipes/freebayes/0002-fix-intervaltree-include-path.patch index ad42bf6a166ac..45d1820b05fd7 100644 --- a/recipes/freebayes/0002-fix-intervaltree-include-path.patch +++ b/recipes/freebayes/0002-fix-intervaltree-include-path.patch @@ -9,31 +9,30 @@ Subject: [PATCH 2/2] fix intervaltree include path 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/BedReader.cpp b/src/BedReader.cpp -index 9dd79c7..ea79235 100644 +index dabd0af..ea79235 100644 --- a/src/BedReader.cpp +++ b/src/BedReader.cpp @@ -11,7 +11,7 @@ #include "Utility.h" #include "BedReader.h" #include "Logging.h" --#include "../intervaltree/IntervalTree.h" +-#include +#include "IntervalTree.h" using namespace std; diff --git a/src/BedReader.h b/src/BedReader.h -index 03abb3f..8777d53 100644 +index 5a44f29..8777d53 100644 --- a/src/BedReader.h +++ b/src/BedReader.h @@ -9,7 +9,7 @@ #include #include #include --#include "../intervaltree/IntervalTree.h" +-#include +#include "IntervalTree.h" #include "split.h" using namespace std; -- 2.41.0 - diff --git a/recipes/freebayes/0003-meson-macos.patch b/recipes/freebayes/0003-meson-macos.patch index 47e1176d8d7ad..9091480e20d24 100644 --- a/recipes/freebayes/0003-meson-macos.patch +++ b/recipes/freebayes/0003-meson-macos.patch @@ -1,13 +1,13 @@ diff --git a/meson.build b/meson.build -index 66b8016..bf0bf10 100644 +index 7fb0625..e0983af 100644 --- a/meson.build +++ b/meson.build @@ -16,7 +16,7 @@ project('freebayes', ['cpp', 'c'], - version : '1.3.7', + version : '1.3.8', - default_options : ['warning_level=1', 'cpp_std=c++17', 'optimization=3']) + default_options : ['warning_level=1', 'cpp_std=c++14', 'optimization=3']) static_build = get_option('static') - cc = meson.get_compiler('cpp') + # used by Debian: add_global_arguments('-D_GLIBCXX_ASSERTIONS=1', language : 'cpp') diff --git a/recipes/freebayes/build.sh b/recipes/freebayes/build.sh index a090a95414a3a..948a35f54cc10 100644 --- a/recipes/freebayes/build.sh +++ b/recipes/freebayes/build.sh @@ -1,5 +1,6 @@ #!/bin/bash +cd freebayes mkdir build mkdir -p ${PREFIX}/bin diff --git a/recipes/freebayes/meta.yaml b/recipes/freebayes/meta.yaml index f10c0fa32a4b2..a3a355b14afe0 100644 --- a/recipes/freebayes/meta.yaml +++ b/recipes/freebayes/meta.yaml @@ -1,20 +1,30 @@ {% set name = "freebayes" %} -{% set version = "1.3.7" %} +{% set version = "1.3.8" %} package: name: {{ name }} version: {{ version }} source: - url: https://github.com/freebayes/freebayes/archive/refs/tags/v{{ version }}.tar.gz - sha256: 89c2202aaa82925bc6a49e04df593e5ef3b1547b3b514efcbd490a54d8ad200b - patches: - - 0001-make-meson-build-conda-friendly.patch - - 0002-fix-intervaltree-include-path.patch - - 0003-meson-macos.patch # [osx] + - folder: freebayes + url: https://github.com/freebayes/freebayes/archive/refs/tags/v{{ version }}.tar.gz + sha256: d1c24b1d1b35277e7403cd67063557998218a105c916b01a745e7704715fce67 + patches: + - 0001-make-meson-build-conda-friendly.patch + - 0002-fix-intervaltree-include-path.patch + - 0003-meson-macos.patch # [osx] + - folder: freebayes/contrib/smithwaterman + url: https://github.com/ekg/smithwaterman/archive/2610e259611ae4cde8f03c72499d28f03f6d38a7.tar.gz + sha256: 8e1b37ab0e8cd9d3d5cbfdba80258c0ebd0862749b531e213f44cdfe2fc541d8 + - folder: freebayes/contrib/multichoose + url: https://github.com/vcflib/multichoose/archive/255192edd49cfe36557f7f4f0d2d6ee1c702ffbb.tar.gz + sha256: 0045051ee85d36435582151830efe0eefb466be0ec9aedbbc4465dca30d22102 + - folder: freebayes/contrib/fastahack + url: https://github.com/ekg/fastahack/archive/refs/tags/v1.0.0.tar.gz + sha256: cc1c04729b0c8ba3647cbb7e15e2b490ce701d73773f30f5892d68c36a1dceae build: - number: 2 + number: 0 run_exports: - {{ pin_subpackage("freebayes", max_pin="x") }} @@ -33,12 +43,14 @@ requirements: - vcflib - simde - zlib + - wfa2-lib run: - parallel - samtools - tabixpp - vcflib - zlib + - wfa2-lib test: commands: @@ -48,7 +60,7 @@ test: about: home: https://github.com/freebayes/freebayes license: MIT - license_file: LICENSE + license_file: freebayes/LICENSE license_family: MIT summary: Bayesian haplotype-based polymorphism discovery and genotyping dev_url: https://github.com/freebayes/freebayes From 8fbfde3601bfcbefd6ddbc5664b459d980b233ec Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 3 Sep 2024 14:36:52 -0400 Subject: [PATCH 1327/1589] Update ipyrad to 0.9.101 (#50470) --- recipes/ipyrad/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ipyrad/meta.yaml b/recipes/ipyrad/meta.yaml index 89cd34aaa2d02..2ba77cb7b89c0 100644 --- a/recipes/ipyrad/meta.yaml +++ b/recipes/ipyrad/meta.yaml @@ -1,6 +1,6 @@ {% set name = "ipyrad" %} -{% set version = "0.9.100" %} -{% set sha256 = "80abc1aa88ce0dda814a77c0c7531157aef3dba00ab74d1fb834700f7aaaf169" %} +{% set version = "0.9.101" %} +{% set sha256 = "0ba451356c2f4201b31b92d97d36d9fd0f20279c248ae0ba4d941ae1cbb20970" %} package: name: {{ name }} From effb4bd47ada44e67bd212c2e650e601d5a30b3a Mon Sep 17 00:00:00 2001 From: Pierre Lindenbaum <33838+lindenb@users.noreply.github.com> Date: Tue, 3 Sep 2024 21:30:08 +0200 Subject: [PATCH 1328/1589] Update meta.yaml with build/number 1 (#50465) trying to fix https://github.com/galaxyproject/galaxy/issues/18761 (build number should be increased ?) --- recipes/jvarkit/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/jvarkit/meta.yaml b/recipes/jvarkit/meta.yaml index 2aab4804abf41..e396de5f8c452 100644 --- a/recipes/jvarkit/meta.yaml +++ b/recipes/jvarkit/meta.yaml @@ -12,7 +12,7 @@ source: build: noarch: generic - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin=None) }} # it's date based (yyyy.mm.dd) there's no real semantic pinning, and breaking changes happen (e.g.: tools / libraries being removed) From 03ddb2ccbda1776750f7d34d37e2da2ccf6d73f2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 3 Sep 2024 15:30:35 -0400 Subject: [PATCH 1329/1589] Update locityper to 0.16.11 (#50460) --- recipes/locityper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/locityper/meta.yaml b/recipes/locityper/meta.yaml index babd01987113a..b2b848ee455bd 100644 --- a/recipes/locityper/meta.yaml +++ b/recipes/locityper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "locityper" %} -{% set version = "0.16.10" %} +{% set version = "0.16.11" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/tprodanov/locityper/archive/refs/tags/v{{ version }}.tar.gz - sha256: d8bedc3c4ac8526fc9a77f33819edda07e9fc73ff625adcc23565e670c5e1cfb + sha256: 616e7f38c77b9680ac61238d896b80011860dab70ee5986b5aefb5b7f16455c6 build: number: 0 From 6da32868a69f640fb3212d539f9599cdb6b69c3c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 3 Sep 2024 15:43:52 -0400 Subject: [PATCH 1330/1589] Update nextstrain-cli to 8.5.3 (#50471) --- recipes/nextstrain-cli/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/nextstrain-cli/meta.yaml b/recipes/nextstrain-cli/meta.yaml index 7d4034a370549..88f19b53e3497 100644 --- a/recipes/nextstrain-cli/meta.yaml +++ b/recipes/nextstrain-cli/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "8.5.2" %} +{% set version = "8.5.3" %} package: name: nextstrain-cli @@ -6,7 +6,7 @@ package: source: url: https://pypi.io/packages/source/n/nextstrain-cli/nextstrain_cli-{{ version }}.tar.gz - sha256: 1c7a1a0fac911c8b6e70b6be296e48e7abb3ff38262abc2f62d185f567ac24d6 + sha256: 5401fd3f1b60479cb3b8c0519917fa5df43fdaddd6007e158888283a5c872428 build: number: 0 From e542a7215bd87fd69e7af9aed1f8f039f61f92c5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 3 Sep 2024 15:44:00 -0400 Subject: [PATCH 1331/1589] Update augur to 25.4.0 (#50473) --- recipes/augur/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/augur/meta.yaml b/recipes/augur/meta.yaml index de58e8414ef84..65fabb910a19f 100644 --- a/recipes/augur/meta.yaml +++ b/recipes/augur/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "25.3.0" %} +{% set version = "25.4.0" %} package: name: augur @@ -6,7 +6,7 @@ package: source: url: https://github.com/nextstrain/augur/releases/download/{{ version }}/nextstrain_augur-{{ version }}.tar.gz - sha256: aff6de12fcbdb52f89da7cc6c8a7f1410b1b473882aa824fb3b40e8cea3d5d2a + sha256: 935eacb19853e7f6006814d060b5460b3e91501f470a6af88864c512b46b1c6a build: number: 0 From b7f3f0e5e5ff561c3380745ba694c2c692148a7f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 3 Sep 2024 15:44:20 -0400 Subject: [PATCH 1332/1589] Update spaln to 3.0.6 (#47896) * Update spaln to 3.0.5 * Update spaln to 3.0.6 * edit patches * skip osx for now --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Co-authored-by: mencian --- recipes/spaln/makefile.patch | 9 +++++---- recipes/spaln/meta.yaml | 7 +++++-- recipes/spaln/patch-makefile_ldflags | 25 ++++++++----------------- 3 files changed, 18 insertions(+), 23 deletions(-) diff --git a/recipes/spaln/makefile.patch b/recipes/spaln/makefile.patch index 05b4085926c03..e18b786e104b6 100644 --- a/recipes/spaln/makefile.patch +++ b/recipes/spaln/makefile.patch @@ -1,8 +1,8 @@ diff --git a/src/Makefile.in b/src/Makefile.in -index ed5cb96..2d837d0 100644 +index 7e0ab8d..bd09001 100644 --- a/src/Makefile.in +++ b/src/Makefile.in -@@ -1,19 +1,19 @@ +@@ -1,20 +1,20 @@ # Makefile.in for splan/sortgrcd # Copyright(c) Osamu Gotoh <> @@ -14,9 +14,10 @@ index ed5cb96..2d837d0 100644 +table_dir = $(PREFIX)/share/spaln/table +alndbs_dir = $(PREFIX)/share/spaln/alndbs +CXX = $(CXX) - #CXX = clang++ + # for MACOS uncomment below line + #CXX = clang++ -std=c++11 -CFLAGS = -O3 -march=native -+CFLAGS += -O3 ++CFLAGS = -O3 RANLIB = ranlib -LD = g++ +LD = $(CXX) diff --git a/recipes/spaln/meta.yaml b/recipes/spaln/meta.yaml index 98884708d7d91..897fbab3335c3 100644 --- a/recipes/spaln/meta.yaml +++ b/recipes/spaln/meta.yaml @@ -1,6 +1,6 @@ {% set name = "spaln" %} -{% set version = "3.0.4" %} -{% set sha256 = "6001a901e2e1ea5dbf19f34ee18b61ebd9afaf3a3c5107f937dd13e9b63ea870" %} +{% set version = "3.0.6" %} +{% set sha256 = "0b627609b69e0e1487cbb75ff564cfe3816c24da8552acbaf50bf19bce1c6490" %} package: name: {{ name|lower }} @@ -16,6 +16,7 @@ source: build: number: 0 + skip: True # [osx] run_exports: - {{ pin_subpackage('spaln', max_pin="x") }} @@ -58,3 +59,5 @@ extra: - doi:10.1093/nar/gks708 - doi:10.1093/bioinformatics/btl067 - usegalaxy-eu:spaln + additional-platforms: + - linux-aarch64 diff --git a/recipes/spaln/patch-makefile_ldflags b/recipes/spaln/patch-makefile_ldflags index 4b35645b7c204..fbf64ebdfc5fb 100644 --- a/recipes/spaln/patch-makefile_ldflags +++ b/recipes/spaln/patch-makefile_ldflags @@ -1,31 +1,22 @@ +diff --git a/src/Makefile.in b/src/Makefile.in +index 7e0ab8d..f6c7256 100644 --- a/src/Makefile.in +++ b/src/Makefile.in -@@ -23,8 +23,9 @@ PROG_F = fitild compild decompild plotild - PROG = $(PROG_B) $(PROG_A) $(PROG_F) - - STDH = stdtype.h --CLIB = clib.a -lpthread -lm -lz -+CLIB = clib.a - SLIB = sblib.a $(CLIB) -+LLIB = -lpthread -lm -lz - ULIB = ublib.a $(SLIB) - - BINDIR = $(DESTDIR)$(exec_prefix) -@@ -88,13 +89,13 @@ ls: +@@ -95,13 +95,13 @@ ls: ls $(SRC) $(HDR) spaln: spaln.cc blksrc.o $(SLIB) -- $(CXX) -o $@ spaln.cc blksrc.o $(SLIB) $(ILIB) +- $(CXX) -o $@ spaln.cc blksrc.o $(SLIB) $(LLIB) + $(CXX) $(LDFLAGS) -o $@ spaln.cc blksrc.o $(SLIB) $(LLIB) sortgrcd: sortgrcd.cc $(SLIB) -- $(CXX) -o $@ sortgrcd.cc $(SLIB) $(ILIB) +- $(CXX) -o $@ sortgrcd.cc $(SLIB) $(LLIB) + $(CXX) $(LDFLAGS) -o $@ sortgrcd.cc $(SLIB) $(LLIB) makdbs: makdbs.cc dbs.h seq.h bitpat.h $(SLIB) -- $(CXX) -o $@ makdbs.cc $(SLIB) $(ILIB) +- $(CXX) -o $@ makdbs.cc $(SLIB) $(LLIB) + $(CXX) $(LDFLAGS) -o $@ makdbs.cc $(SLIB) $(LLIB) makmdm: makmdm.cc mdm.h $(CLIB) -- $(CXX) -o $@ makmdm.cc $(CLIB) $(ILIB) +- $(CXX) -o $@ makmdm.cc $(CLIB) $(LLIB) + $(CXX) $(LDFLAGS) -o $@ makmdm.cc $(CLIB) $(LLIB) dvn: dvn.cc autocomp.h $(ULIB) - $(CXX) -o $@ dvn.cc $(ULIB) $(ILIB) + $(CXX) -o $@ dvn.cc $(ULIB) $(LLIB) From 114fcfad958fbaf26bd89c6c4b08e19c66bdc43f Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 3 Sep 2024 15:56:36 -0500 Subject: [PATCH 1333/1589] Update last to 1584 (#50474) --- recipes/last/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/last/meta.yaml b/recipes/last/meta.yaml index 6ebfe4a978db5..e4ced42950a1a 100644 --- a/recipes/last/meta.yaml +++ b/recipes/last/meta.yaml @@ -1,5 +1,5 @@ {% set name = "LAST" %} -{% set version = "1574" %} +{% set version = "1584" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: "https://gitlab.com/mcfrith/last/-/archive/{{ version }}/last-{{ version }}.tar.gz" - sha256: adcec227328ec74e47ca1851920d796807a530d2bb25be5d912e0abdd9694d5f + sha256: 5ed143d7311a1e2ea1fe2be87a2484612689a1498420e2a454762a6b3ab38ba3 build: number: 0 From 994e461c39be4637c117f52f433ebbedc9670073 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 3 Sep 2024 20:23:03 -0400 Subject: [PATCH 1334/1589] Update mtgrasp to 1.1.5 (#50478) --- recipes/mtgrasp/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/mtgrasp/meta.yaml b/recipes/mtgrasp/meta.yaml index 08bdd491afede..54505ac7d9a39 100644 --- a/recipes/mtgrasp/meta.yaml +++ b/recipes/mtgrasp/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.1.4" %} +{% set version = "1.1.5" %} {% set name = "mtGrasp" %} package: @@ -7,10 +7,10 @@ package: source: url: https://github.com/bcgsc/{{ name }}/releases/download/v{{ version }}/{{ name }}-v{{ version }}.tar.gz - sha256: 0145d9153153f58ff3e7a28f20bf238f7b8ead71700fb1add1aced6e0dbb0214 + sha256: 1f9f055af060c7762baf9d4bd7fa5fa51d1ae8de209bcce8be50fdf6038ca3b6 build: - number: 1 + number: 0 noarch: generic run_exports: - {{ pin_subpackage('mtgrasp', max_pin="x") }} From e2d4bba075442db0a7b983ba068c84d353e29c8f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 3 Sep 2024 20:23:12 -0400 Subject: [PATCH 1335/1589] Update binchicken to 0.12.4 (#50477) --- recipes/binchicken/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/binchicken/meta.yaml b/recipes/binchicken/meta.yaml index bd7f8d0c58682..70b5a8fce118d 100644 --- a/recipes/binchicken/meta.yaml +++ b/recipes/binchicken/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "0.12.2" %} +{% set version = "0.12.4" %} {% set name = "binchicken" %} -{% set sha256 = "17d5e4a83334047fa61d7db3a8e640ba734eb3583c7d014d0802264eb38d82db" %} +{% set sha256 = "d84bfa4b368b02ccfb45ecd1f0f79c268b6ad94b7f2ff5776ba338172e7510c4" %} package: name: {{ name }} From 119a709fef3c31f597de411e2b7aae13d983be35 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 3 Sep 2024 20:23:26 -0400 Subject: [PATCH 1336/1589] Update sawfish to 0.12.3 (#50476) --- recipes/sawfish/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sawfish/meta.yaml b/recipes/sawfish/meta.yaml index eb47681f4f5f8..cd44d6259767c 100644 --- a/recipes/sawfish/meta.yaml +++ b/recipes/sawfish/meta.yaml @@ -1,5 +1,5 @@ {% set name = "sawfish" %} -{% set version = "0.12.2" %} +{% set version = "0.12.3" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/PacificBiosciences/sawfish/releases/download/v{{ version }}/sawfish-v{{ version }}-x86_64-unknown-linux-gnu.tar.gz - sha256: 8ece74a9c288a19e3093f65199ab5d7d6511fd4f2a4f4556eedcc9673c5783cd + sha256: 6f4748e441ec72eab360a1deac7d3c91d5a0f4e5a76a231a547a2931c301b2fa build: number: 0 From 71b5554e2c563148c143090bb6622c2a4ffd558b Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Tue, 3 Sep 2024 20:24:13 -0400 Subject: [PATCH 1337/1589] pytrimal: remove osx-arm64 (failing tests) (#50469) * pytrimal: remove osx-arm64 (failing tests) * bump the build number --- recipes/pytrimal/meta.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/recipes/pytrimal/meta.yaml b/recipes/pytrimal/meta.yaml index 1fc319258a782..a1d08ae93515a 100644 --- a/recipes/pytrimal/meta.yaml +++ b/recipes/pytrimal/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 2331e67a74f3144d82373b6a79f42198f6632bd1b5025ab01cdd3eb527ef88cf build: - number: 0 + number: 1 script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir --use-pep517 -vvv" run_exports: - {{ pin_subpackage('pytrimal', max_pin="x.x") }} @@ -48,4 +48,3 @@ extra: - althonos additional-platforms: - linux-aarch64 - - osx-arm64 From ff5f4dda05766e51ff64a59ffc7ba1a4ba3562ee Mon Sep 17 00:00:00 2001 From: Sergey Koren Date: Tue, 3 Sep 2024 17:24:57 -0700 Subject: [PATCH 1338/1589] update to verkko v2.2 (#50475) --- recipes/verkko/build.sh | 4 ++ recipes/verkko/meta.yaml | 14 ++++--- recipes/verkko/osx_availability.patch | 55 +++++++++++++++++++-------- recipes/verkko/run_test.sh | 2 +- 4 files changed, 54 insertions(+), 21 deletions(-) diff --git a/recipes/verkko/build.sh b/recipes/verkko/build.sh index c03607f1ff961..c8c5821281933 100644 --- a/recipes/verkko/build.sh +++ b/recipes/verkko/build.sh @@ -10,7 +10,11 @@ if [ "$(uname)" == "Darwin" ]; then mkdir -p $HOME/.cargo/registry/index/ fi +# on osx we remove the built-in boost and make sure todepend on the system boost pushd src +if [ "$(uname)" == "Darwin" ]; then + rm -rf ./canu/src/utgcns/libboost/ +fi make clean && make -j$CPU_COUNT popd diff --git a/recipes/verkko/meta.yaml b/recipes/verkko/meta.yaml index 460a299b91ba7..e16ea34db298b 100644 --- a/recipes/verkko/meta.yaml +++ b/recipes/verkko/meta.yaml @@ -1,5 +1,5 @@ {% set name = "verkko" %} -{% set version = "2.1" %} +{% set version = "2.2" %} package: name: {{ name|lower }} @@ -7,10 +7,9 @@ package: source: url: https://github.com/marbl/{{ name }}/releases/download/v{{ version }}/{{ name }}-v{{ version }}.tar.gz - sha256: e989710a43cc6f721938f6393d20c8a674b110cd74a7c27f23f4d06a9dd78e9f + sha256: 77a6c8e041bc7dd61f724dcafa6ce6bf1ddc3aed163d17536e9612824293cfba patches: - - version.patch - osx_availability.patch # [osx] build: @@ -23,20 +22,25 @@ requirements: - make - llvm-openmp # [osx] - libgomp # [linux] + - htslib - {{ compiler('cxx') }} - rust >=1.74 host: + - boost-cpp >=1.56 #[osx] - llvm-openmp # [osx] - libgomp # [linux] - gsl - zlib + - htslib run: - - python >=3.7 + - python >=3.9 + - pulp <=2.7.0 - perl >=5.6 - seqtk - parasail-python >=1.3.3 - networkx >=2.6.3 - biopython + - pysam - snakemake-minimal >=7.8.0,<8.0 - graphaligner >=1.0.19 - findutils >=4.6.0 @@ -56,7 +60,7 @@ about: home: https://github.com/marbl/verkko license: CC0 license_file: README.licenses - summary: "A hybrid genome assembly pipeline developed for telomere-to-telomere assembly of PacBio HiFi or Oxford Nanopore Duplex and Oxford Nanopore simplex reads." + summary: "A hybrid genome assembly pipeline developed for telomere-to-telomere assembly of accurate (HiFi, ONT Duplex, ONT HERRO) and long (ONT UL) reads." dev_url: "https://github.com/marbl/verkko" doc_url: "https://github.com/marbl/verkko/blob/master/README.md" diff --git a/recipes/verkko/osx_availability.patch b/recipes/verkko/osx_availability.patch index 22bdc376bf98c..0386fd5187537 100644 --- a/recipes/verkko/osx_availability.patch +++ b/recipes/verkko/osx_availability.patch @@ -1,3 +1,43 @@ +diff --git a/src/Makefile.boilermake b/src/Makefile.boilermake +index 7e2b929..2dfc3b1 100644 +--- a/src/Makefile.boilermake ++++ b/src/Makefile.boilermake +@@ -160,11 +160,18 @@ endef + define ADD_FILE_COPY_RULE + doall: $${TARGET_DIR}/$2 + ifeq ($3,executable) ++ ifeq ($(suffix $(1)),.sh) + $${TARGET_DIR}/$2: $1 + @mkdir -p $$(dir $${TARGET_DIR}/$2) + cat $1 |sed s/'version=""'/'version="$(VERSION)"'/g > $${TARGET_DIR}/$2 + chmod +x $${TARGET_DIR}/$2 + else ++ $${TARGET_DIR}/$2: $1 ++ @mkdir -p $$(dir $${TARGET_DIR}/$2) ++ cp $1 $${TARGET_DIR}/$2 ++ chmod +x $${TARGET_DIR}/$2 ++ endif ++ else + $${TARGET_DIR}/$2: $1 + @mkdir -p $$(dir $${TARGET_DIR}/$2) + cp -pf $1 $${TARGET_DIR}/$2 +diff --git a/src/Makefile b/src/Makefile +index 67975ff..6a0d332 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -127,9 +127,9 @@ define SET_DEFAULT_FLAGS + else + TOOLCHAIN := LLVM + TOOLCHAINV := $$(shell ${CXX} -dumpversion) +- CFLAGS := -pthread -fopenmp -fPIC -std=c17 ${1} +- CXXFLAGS := -pthread -fopenmp -fPIC -std=c++20 ${1} +- LDFLAGS := -pthread -fopenmp ${2} -lm ++ CFLAGS := -DBOOST_NO_CXX98_FUNCTION_BASE -pthread -fopenmp -fPIC -std=c17 ${1} ++ CXXFLAGS := -DBOOST_NO_CXX98_FUNCTION_BASE -pthread -fopenmp -fPIC -std=c++20 ${1} ++ LDFLAGS := -DBOOST_NO_CXX98_FUNCTION_BASE -pthread -fopenmp ${2} -lm + endif + + # Build up our preferred set of flags. diff --git a/src/MBG/makefile b/src/MBG/makefile index 0c0113b..c6fd847 100644 --- a/src/MBG/makefile @@ -50,18 +90,3 @@ index 0bc9ee7..0f53de7 100644 VERSION := Branch $(shell git rev-parse --abbrev-ref HEAD) commit $(shell git rev-parse HEAD) $(shell git show -s --format=%ci) -diff --git a/src/verkko.sh b/src/verkko.sh -index 1744b4a..6016aea 100755 ---- a/src/verkko.sh -+++ b/src/verkko.sh -@@ -1324,8 +1324,8 @@ if [ "x$withhic" = "xTrue" -o "x$withporec" = "xTrue" ] ; then - fi - cp -p emptyfile ${newoutd}/emptyfile - cd $newoutd -- sed -i 's/runRukkiHIC/cnspath/g' snakemake.sh -- sed -i 's/HiC_rdnascaff/cnspath/g' snakemake.sh -+ sed -i.bak 's/runRukkiHIC/cnspath/g' snakemake.sh -+ sed -i.bak 's/HiC_rdnascaff/cnspath/g' snakemake.sh - ./snakemake.sh - cp *.fasta ../../ - cp *.layout ../../ diff --git a/recipes/verkko/run_test.sh b/recipes/verkko/run_test.sh index 95ed12e451477..abf76882b8363 100644 --- a/recipes/verkko/run_test.sh +++ b/recipes/verkko/run_test.sh @@ -40,7 +40,7 @@ if [ ! -s asm/assembly_circular.fasta ]; then exit 1 fi -verkko -d asm --hifi reference.fasta.gz $ONT --hic1 empty.fasta --hic2 empty.fasta +verkko -d asm --hifi reference.fasta.gz $ONT --porec reference.fasta.gz if [[ ! -s asm/assembly.unassigned.fasta || -s asm/assembly.haplotype1.fasta || -s asm/assembly.haplotype2.fasta ]]; then echo "Error: verkko hic assembly test failed!" From 6ca05b5f63af1f6d6db07ba405a2d575b363e0dd Mon Sep 17 00:00:00 2001 From: akrinos Date: Tue, 3 Sep 2024 21:09:15 -0400 Subject: [PATCH 1339/1589] Update EUKulele to v2.0.9 (#50464) * Update EUKulele to v2.0.9 Updating EUKulele package to most recent version * use pypi source URL --------- Co-authored-by: mencian --- recipes/eukulele/meta.yaml | 55 ++++++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 23 deletions(-) diff --git a/recipes/eukulele/meta.yaml b/recipes/eukulele/meta.yaml index 23dce68e05f3c..21ea41ffd4f6b 100644 --- a/recipes/eukulele/meta.yaml +++ b/recipes/eukulele/meta.yaml @@ -1,25 +1,21 @@ -{% set version = "2.0.7" %} -{% set sha256 = "e52ca613c92ef99a6f01e503674b1c35ee26de6c03c4cb58338278e3a348a394" %} +{% set name = "eukulele" %} +{% set version = "2.0.9" %} +{% set sha256 = "575ab81fd5453abbf092543caaf12116ab36cd5451caeb4c87086a93f12e7431" %} package: - name: eukulele - version: 2.0.7 + name: {{ name }} + version: {{ version }} + +source: + url: https://pypi.org/packages/source/{{ name[0] }}/{{ name }}/EUKulele-{{ version }}.tar.gz + sha256: {{ sha256 }} build: number: 0 noarch: python - script: "{{ PYTHON }} -m pip install . --no-deps" + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir --use-pep517 -vvv" run_exports: - - {{ pin_subpackage('eukulele', max_pin="2.0.7") }} - -source: - url: https://github.com/AlexanderLabWHOI/EUKulele/archive/refs/tags/v2.0.7_3.tar.gz - sha256: {{ sha256 }} - -test: - commands: - - EUKulele --version | grep '{{ version }}' - - EUKulele --help + - {{ pin_subpackage('eukulele', max_pin="x") }} requirements: host: @@ -28,21 +24,34 @@ requirements: - pytest-runner run: - python >=3.6 - - numpy ==1.19.5 - - biopython ==1.78 - - pandas ==1.2.0 + - numpy + - biopython + - pandas - seaborn-base - boost-cpp - chardet + - multiprocess - joblib - ujson + - python-coveralls - pyyaml - - matplotlib-base ==3.3.3 - - blast ==2.2.31 - - diamond ==0.9.24 + - matplotlib-base + - pytest-cov + - pytest-xdist + - sphinxcontrib-bibtex ==1.0.0 + - blast + - diamond + +test: + commands: + - EUKulele --version | grep '{{ version }}' + - EUKulele --help about: - home: https://github.com/AlexanderLabWHOI/EUKulele + home: "https://github.com/AlexanderLabWHOI/EUKulele" license: MIT + license_family: MIT license_file: LICENSE - summary: Easy taxonomic annotation for eukaryotic microbes + summary: "Easy taxonomic annotation for eukaryotic microbes." + dev_url: "https://github.com/AlexanderLabWHOI/EUKulele" + doc_url: "https://github.com/AlexanderLabWHOI/EUKulele/blob/{{ version }}/README.md" From 6d21066e0b48c5d1ef97dee12576f231ddc64b5b Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 3 Sep 2024 20:55:14 -0500 Subject: [PATCH 1340/1589] Add recipe for PopLDdecay v3.43 (#50472) * Add recipe for PopLDdecay v3.43 * edit build.sh * edit meta.yaml * edit meta.yaml * edit meta.yaml * edit meta.yaml --- recipes/poplddecay/build.sh | 20 +++++++++++++++ recipes/poplddecay/meta.yaml | 47 ++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 recipes/poplddecay/build.sh create mode 100644 recipes/poplddecay/meta.yaml diff --git a/recipes/poplddecay/build.sh b/recipes/poplddecay/build.sh new file mode 100644 index 0000000000000..da285f1095326 --- /dev/null +++ b/recipes/poplddecay/build.sh @@ -0,0 +1,20 @@ +#!/bin/bash -euo + +mkdir -p ${PREFIX}/bin + +export M4="${BUILD_PREFIX}/bin/m4" +export INCLUDES="-I${PREFIX}/include" +export LIBPATH="-L${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CXXFLAGS="${CXXFLAGS} -O3 -I${PREFIX}/include" + +autoreconf -if +./configure CXX="${CXX}" \ + CXXFLAGS="${CXXFLAGS}" \ + LDFLAGS="${LDFLAGS}" \ + --prefix="${PREFIX}" + +make -j"${CPU_COUNT}" + +chmod 0755 PopLDdecay +cp -rf PopLDdecay ${PREFIX}/bin diff --git a/recipes/poplddecay/meta.yaml b/recipes/poplddecay/meta.yaml new file mode 100644 index 0000000000000..ffdc88b4cf72e --- /dev/null +++ b/recipes/poplddecay/meta.yaml @@ -0,0 +1,47 @@ +{% set name = "PopLDdecay" %} +{% set version = "3.43" %} +{% set sha256 = "ce5b89005ac063e590d02f4a5922da646651fb2086c5708b280feda84c84dd72" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/BGI-shenzhen/PopLDdecay/archive/refs/tags/v{{ version }}.tar.gz + sha256: {{ sha256 }} + +build: + number: 0 + run_exports: + - {{ pin_subpackage('poplddecay', max_pin=None) }} + +requirements: + build: + - make + - {{ compiler('cxx') }} + - autoconf + - automake + - libtool + host: + - zlib + +test: + commands: + - 'PopLDdecay 2>&1 | grep "Usage: PopLDdecay"' + +about: + home: "https://github.com/BGI-shenzhen/PopLDdecay" + license: MIT + license_family: MIT + license_file: LICENSE + summary: "PopLDdecay: a fast and effective tool for linkage disequilibrium decay analysis based on variant call format (VCF) files." + dev_url: "https://github.com/BGI-shenzhen/PopLDdecay" + doc_url: "https://github.com/BGI-shenzhen/PopLDdecay/blob/v{{ version }}/README.md" + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 + identifiers: + - doi:10.1093/bioinformatics/bty875 + - biotools:PopLDdecay From b2e266e8d2f15e5640054bebc79fa8b104ac2911 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 3 Sep 2024 23:35:47 -0400 Subject: [PATCH 1341/1589] Update jbrowse2 to 2.15.0 (#50480) --- recipes/jbrowse2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/jbrowse2/meta.yaml b/recipes/jbrowse2/meta.yaml index 79a3e07bae78c..404699a6d0316 100644 --- a/recipes/jbrowse2/meta.yaml +++ b/recipes/jbrowse2/meta.yaml @@ -1,12 +1,12 @@ # When updating, check the @jbrowse/cli version in build.sh too -{% set version = "2.14.0" %} +{% set version = "2.15.0" %} package: name: jbrowse2 version: {{ version }} source: - sha256: 027eea356652c7adb1e0dbab9cd78bf2f277d065b5b1d5447256e0d2315c2ea1 + sha256: 9ff07be887c15d8f241f97fa537d62829d4f75f9dc0aaeda82f14ed4098f67b8 url: https://github.com/GMOD/jbrowse-components/releases/download/v{{ version }}/jbrowse-web-v{{ version }}.zip build: From 8c934f84938ff0a3f0c45bfe4f2a05e3ac4a0dcb Mon Sep 17 00:00:00 2001 From: ftegenfe Date: Wed, 4 Sep 2024 07:06:26 +0200 Subject: [PATCH 1342/1589] add orthologer pipeline (#50258) * added orthologer * WIP:orthologer * orthologer * version * minor * orthologer version * updated meta * orthologer 3.2.3 * updated sha256 * Fix SHA256 * minor * spdlog in meta * orthologer: updated cmake OpenMP detection * last macos fixes are now actually there * meta * updated brhclus - now compiles with clang * fix macos * meta/bash macos * even more clang * more cmake and macos issues * updated installer * update build and host section * clean up recipe --------- Co-authored-by: Martin Grigorov Co-authored-by: mencian --- recipes/orthologer/0001-install_pkg.patch | 24 ++++++++ recipes/orthologer/build.sh | 8 +++ recipes/orthologer/meta.yaml | 67 +++++++++++++++++++++++ 3 files changed, 99 insertions(+) create mode 100644 recipes/orthologer/0001-install_pkg.patch create mode 100644 recipes/orthologer/build.sh create mode 100644 recipes/orthologer/meta.yaml diff --git a/recipes/orthologer/0001-install_pkg.patch b/recipes/orthologer/0001-install_pkg.patch new file mode 100644 index 0000000000000..fcf9de92103de --- /dev/null +++ b/recipes/orthologer/0001-install_pkg.patch @@ -0,0 +1,24 @@ +diff --git a/install_pkg.sh b/install_pkg.sh +index 93cfe86..a5cde4a 100755 +--- a/install_pkg.sh ++++ b/install_pkg.sh +@@ -30,7 +30,7 @@ export SKIP_DIAMOND=${SKIP_DIAMOND=0} + export CPU_COUNT=${CPU_COUNT=$(nproc --ignore 1)} + + # destination prefic directory +-export PREFIX=${PREFIX="/usr/local"} ++export PREFIX="${PREFIX}" + + # get orthologer and brhclus + export DIR_ORTHOLOGER_PKG=$(find ./ -maxdepth 1 -name "ORTHOLOGER-*" -type d) +@@ -47,8 +47,8 @@ fi + DIR_ORTHOLOGER_PKG=$( cd -P $DIR_ORTHOLOGER_PKG && pwd) + DIR_BRHCLUS_PKG=$( cd -P $DIR_BRHCLUS_PKG && pwd) + +-export DIR_BRHCLUS_INSTALL="" +-export DIR_ORTHOLOGER_INSTALL="" ++export DIR_BRHCLUS_INSTALL="${PREFIX}" ++export DIR_ORTHOLOGER_INSTALL="${PREFIX}" + + print_config() { + echo "---------------------------------------------------------------" diff --git a/recipes/orthologer/build.sh b/recipes/orthologer/build.sh new file mode 100644 index 0000000000000..0741cbebb9195 --- /dev/null +++ b/recipes/orthologer/build.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +# flag installer that no external packages should be installed +# they are all installed by conda dependencies +export SKIP_EXTERNAL=1 + +# install ORTHOLOGER and BRHCLUS +./install_pkg.sh diff --git a/recipes/orthologer/meta.yaml b/recipes/orthologer/meta.yaml new file mode 100644 index 0000000000000..ca1b5e1e98886 --- /dev/null +++ b/recipes/orthologer/meta.yaml @@ -0,0 +1,67 @@ +{% set name = "orthologer" %} +{% set version = "3.3.1" %} +{% set sha256 = "efb86c202aca5d4fe54770d4ce7e5689bbad3edc13350d46eca5fc74b4783f93" %} + +package: + name: {{ name }} + version: {{ version }} + +build: + number: 0 + run_exports: + - {{ pin_subpackage('orthologer', max_pin="x") }} + +source: + url: https://data.orthodb.org/current/download/software/orthologer_{{ version }}.tgz + sha256: {{ sha256 }} + patches: + - 0001-install_pkg.patch + +requirements: + build: + - {{ compiler('cxx') }} + - {{ compiler('c') }} + - cmake + - make + host: + - llvm-openmp # [osx] + - libgomp # [linux] + - rsync + - wget + run: + - python >=3.4 + - llvm-openmp # [osx] + - libgomp # [linux] + - rsync + - wget + - blast + - mmseqs2 + - cd-hit + - diamond + - biopython + - numpy + +test: + commands: + - ALLOW_RUNAS_ROOT=1 orthologer -h + +about: + home: https://orthologer.ezlab.org + license: MIT + license_family: MIT + license_file: LICENSE + summary: "Assessment of assembly completeness using Universal Single Copy Orthologs." + description: compute orthology + dev_url: https://gitlab.com/ezlab/orthologer_container + doc_url: https://orthologer.ezlab.org/#on-orthodb-data + +extra: + container: + # Necessary to allow Orthologer to download files from the internet when used with Singularity + # and default bind paths (see also https://github.com/bioconda/bioconda-recipes/issues/11583). + # Should be removed again when the base container is fixed. Not yet... + extended-base: True + identifiers: + - biotools:orthologer + recipe-maintainers: + - ftegenfe From 9916f6a835d15846b4f78765e8afac4bf24b70cf Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 4 Sep 2024 05:06:07 -0400 Subject: [PATCH 1343/1589] Update pydeseq2 to 0.4.11 (#50482) --- recipes/pydeseq2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pydeseq2/meta.yaml b/recipes/pydeseq2/meta.yaml index 4bcdcbc360961..466847c774fb9 100644 --- a/recipes/pydeseq2/meta.yaml +++ b/recipes/pydeseq2/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pydeseq2" %} -{% set version = "0.4.10" %} +{% set version = "0.4.11" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pydeseq2-{{ version }}.tar.gz - sha256: 8a296938c565035f2c219c870d8e0138e699d71b30f2add04a647b4fbd0b8b6a + sha256: 3eb9ae8fd586c04c03e0fa49f274c2db65d0fad19c91803dda09dccb7aaf598c build: noarch: python From 4d289f29d2e5b807dc9aa2d35d5ca19843730094 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 4 Sep 2024 05:45:36 -0400 Subject: [PATCH 1344/1589] Update beacon2-import to 2.2.4 (#50484) --- recipes/beacon2-import/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/beacon2-import/meta.yaml b/recipes/beacon2-import/meta.yaml index f660dbc9b3253..e82608f48d1d5 100644 --- a/recipes/beacon2-import/meta.yaml +++ b/recipes/beacon2-import/meta.yaml @@ -1,5 +1,5 @@ {% set name = "beacon2-import" %} -{% set version = "2.2.3" %} +{% set version = "2.2.4" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/beacon2_import-{{ version }}.tar.gz - sha256: 18b57e015b84d5352ce4e1336e73b204283ec8c1f1183aa916789a1f09f6ad77 + sha256: 238fe76cc0a82ff1c3881ea4a376f664885761e0e211477064147209442f7201 build: entry_points: From 615f4a8881b56c18a8c764954d6e63515a79e58a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 4 Sep 2024 11:26:52 -0400 Subject: [PATCH 1345/1589] Update pyrodigal to 3.5.2 (#50488) --- recipes/pyrodigal/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pyrodigal/meta.yaml b/recipes/pyrodigal/meta.yaml index 00f628aa03c5c..76cfdde6e5ea3 100644 --- a/recipes/pyrodigal/meta.yaml +++ b/recipes/pyrodigal/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pyrodigal" %} -{% set version = "3.5.1" %} +{% set version = "3.5.2" %} package: name: "{{ name|lower }}" @@ -7,10 +7,10 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 20af59a6d968c88910b99d5f647bb7dd22d49e440ead95fe715cdd2c49f36e9f + sha256: 2a40eb6113e720ada51c326958b295944cdc33ecee9f25d5bad4e9a8e6e6f7f5 build: - number: 1 + number: 0 script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir --use-pep517 -vvv" entry_points: - pyrodigal = pyrodigal.cli:main From af9a65f624dac0fec06f2764b8f85393ad6163f5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 4 Sep 2024 12:35:30 -0400 Subject: [PATCH 1346/1589] Update flexi-formatter to 0.0.2 (#50494) --- recipes/flexi-formatter/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/flexi-formatter/meta.yaml b/recipes/flexi-formatter/meta.yaml index 2f44c096358a5..497fd0006fc48 100644 --- a/recipes/flexi-formatter/meta.yaml +++ b/recipes/flexi-formatter/meta.yaml @@ -1,5 +1,5 @@ {% set name = "flexi-formatter" %} -{% set version = "0.0.1" %} +{% set version = "0.0.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/flexi_formatter-{{ version }}.tar.gz - sha256: 25e973b73a571d5e3cc23e7da9da616e8484b15c788e83cb1211a5ce8b0cbe16 + sha256: c3a054fe1b8a3f9ccb307559ef125236d3f6f134dd35be4f3862e8b136ebd8bd build: entry_points: From 3846623eb659210186e04c38016606199c0b5841 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 4 Sep 2024 12:58:19 -0400 Subject: [PATCH 1347/1589] Update biobox_add_taxid to 0.5 (#50496) --- recipes/biobox_add_taxid/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/biobox_add_taxid/meta.yaml b/recipes/biobox_add_taxid/meta.yaml index 58b40f8d0412a..57c92435ee17f 100644 --- a/recipes/biobox_add_taxid/meta.yaml +++ b/recipes/biobox_add_taxid/meta.yaml @@ -1,6 +1,6 @@ {% set name = "biobox_add_taxid" %} -{% set version = "0.4" %} -{% set sha256 = "2df4de457494ef85b8ca38326629f2705499564a360a7156871d5d2281df1086" %} +{% set version = "0.5" %} +{% set sha256 = "87a1e7f346487453c132a218040dd842a25273ea2312293dea5704e313e03e99" %} package: name: {{ name|lower }} From 07ae1c405ff97e80ebe03b39984ab497114c2276 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 4 Sep 2024 13:52:01 -0400 Subject: [PATCH 1348/1589] Update skder to 1.2.6 (#50495) --- recipes/skder/meta.yaml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/recipes/skder/meta.yaml b/recipes/skder/meta.yaml index 6d91407ff46ae..488354d3b05f6 100644 --- a/recipes/skder/meta.yaml +++ b/recipes/skder/meta.yaml @@ -1,5 +1,5 @@ {% set name = "skder" %} -{% set version = "1.2.5" %} +{% set version = "1.2.6" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/raufs/skDER/archive/refs/tags/v{{ version }}.tar.gz - sha256: 80eb2467af244009adfc6359791cb3b54ff73555b14792f22ecffdaf6c832627 + sha256: a7d950d7470187b57d35fa8e403ff245a140a49dd2b553c78769e6f199f18abe build: number: 0 @@ -32,6 +32,7 @@ requirements: - wget - seaborn - matplotlib-base + - python-igraph - pandas - pyrodigal - cd-hit @@ -45,10 +46,11 @@ about: license: BSD-3-Clause license license_file: LICENSE license_family: BSD - summary: "skDER: efficient & high-resolution dereplication of microbial genomes" + summary: "skDER & CiDDER: efficient & high-resolution dereplication methods for microbial genomes" dev_url: https://github.com/raufs/skDER extra: additional-platforms: - linux-aarch64 - + recipe-maintainers: + - raufs From 01837094991e0bea5cf4b96ee5fa8f392ed9137b Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 4 Sep 2024 14:45:39 -0500 Subject: [PATCH 1349/1589] Update poplddecay recipe (#50497) --- recipes/poplddecay/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/poplddecay/meta.yaml b/recipes/poplddecay/meta.yaml index ffdc88b4cf72e..6c2d6e9728491 100644 --- a/recipes/poplddecay/meta.yaml +++ b/recipes/poplddecay/meta.yaml @@ -11,9 +11,9 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 run_exports: - - {{ pin_subpackage('poplddecay', max_pin=None) }} + - {{ pin_subpackage('poplddecay', max_pin="x") }} requirements: build: From 303eda0aaa94fe5e8ce31d517e7d29b15ffbbd2f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 4 Sep 2024 15:46:54 -0400 Subject: [PATCH 1350/1589] Update ensembl-utils to 0.4.3 (#50498) --- recipes/ensembl-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ensembl-utils/meta.yaml b/recipes/ensembl-utils/meta.yaml index c686e848afbdb..9494b8bff12ed 100644 --- a/recipes/ensembl-utils/meta.yaml +++ b/recipes/ensembl-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ensembl-utils" %} -{% set version = "0.4.2" %} +{% set version = "0.4.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/ensembl_utils-{{ version }}.tar.gz - sha256: 32dda9b5f7d95cdc98518e0a6d668b8a7c7c0908f150e4eb0c8efae6ced9956f + sha256: 081c805202087fa4853408688a92bbbfc14001ffd938cb422dcf7688aa56c709 build: entry_points: From 973b7f6a6ac2fe31721674b86e9fdd92f292abbe Mon Sep 17 00:00:00 2001 From: Tom L Kaufmann <17513791+tlkaufmann@users.noreply.github.com> Date: Wed, 4 Sep 2024 22:00:21 +0200 Subject: [PATCH 1351/1589] Changes to MEDICC2 recipe for version 1.1.2 (#50486) --- recipes/medicc2/build_failure.osx-64.yaml | 104 ---------------------- recipes/medicc2/meta.yaml | 30 ++++--- 2 files changed, 18 insertions(+), 116 deletions(-) delete mode 100644 recipes/medicc2/build_failure.osx-64.yaml diff --git a/recipes/medicc2/build_failure.osx-64.yaml b/recipes/medicc2/build_failure.osx-64.yaml deleted file mode 100644 index d85b0fa5a17f6..0000000000000 --- a/recipes/medicc2/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 21d3865430842e65e74a078a26c2e14e555ea2c30cb3d453e0b42d65d25d1072 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - python_abi 3.7.* *_cp37m, which can be installed; - ncls [0.0.63|0.0.64|0.0.65|0.0.66] would require - python_abi 3.8.* *_cp38, which can be installed; - ncls [0.0.63|0.0.64|0.0.65|0.0.66] would require - python_abi 3.9.* *_cp39, which can be installed; - ncls [0.0.65|0.0.66] would require - python_abi 3.10.* *_cp310, which can be installed; - sorted_nearest >=0.0.33 , which can be installed (as previously explained); - python >=3.11,<3.12.0a0 is not installable because it requires - python_abi 3.11.* *_cp311, which conflicts with any installable versions previously reported. - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build - create_build_envs(top_level_pkg, notest) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs - raise e - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs - environ.get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions - precs = _install_actions(prefix, index, specs)["LINK"] - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions - txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction - unlink_precs, link_precs = self.solve_for_diff( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff - final_precs = self.solve_final_state( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state - out_state = self._solving_loop(in_state, out_state, index) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop - solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt - new_conflicts = self._maybe_raise_for_problems( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("pyranges==0.0.39=py37h1de35cc_0"), MatchSpec("python[version='>=3.7,<3.8.0a0']")} - Encountered problems while solving: - - package pyranges-0.0.39-py37h1de35cc_0 requires python >=3.7,<3.8.0a0, but none of the providers can be installed - - Could not solve for environment specs - The following packages are incompatible - pyranges is installable with the potential options - pyranges [0.0.39|0.0.40|...|0.0.52] would require - python >=3.7,<3.8.0a0 , which can be installed; - pyranges [0.0.51|0.0.52] would require - python >=3.6,<3.7.0a0 , which can be installed; - pyranges [0.0.100|0.0.101|...|0.0.99] would require - sorted_nearest [>=0.0.28 |>=0.0.30 ] with the potential options - sorted_nearest [0.0.28|0.0.29|0.0.30|0.0.31] would require - python >=2.7,<2.8.0a0 , which can be installed; - sorted_nearest [0.0.28|0.0.29|0.0.30|0.0.31] would require - python >=3.6,<3.7.0a0 , which can be installed; - sorted_nearest [0.0.28|0.0.29|0.0.30|0.0.31] would require - python >=3.7,<3.8.0a0 , which can be installed; - sorted_nearest [0.0.31|0.0.32|0.0.33|0.0.37] would require - python_abi 2.7.* *_cp27m, which can be installed; - sorted_nearest [0.0.31|0.0.32|0.0.33|0.0.37] would require - python_abi 3.6.* *_cp36m, which can be installed; - sorted_nearest [0.0.31|0.0.32|0.0.33|0.0.37] would require - python_abi 3.7.* *_cp37m, which can be installed; - sorted_nearest [0.0.31|0.0.32|0.0.33|0.0.37|0.0.39] would require - python_abi 3.8.* *_cp38, which can be installed; - sorted_nearest [0.0.32|0.0.33|0.0.37|0.0.39] would require - python_abi 3.9.* *_cp39, which can be installed; - sorted_nearest [0.0.37|0.0.39] would require - python_abi 3.10.* *_cp310, which can be installed; - pyranges [0.0.125|0.0.127|0.0.128|0.0.129] would require - ncls >=0.0.63 with the potential options - ncls [0.0.63|0.0.64|0.0.65|0.0.66] would require - python_abi 2.7.* *_cp27m, which can be installed; - ncls [0.0.63|0.0.64|0.0.65|0.0.66] would require - python_abi 3.6.* *_cp36m, which can be installed; - ncls [0.0.63|0.0.64|0.0.65|0.0.66] would require - python_abi 3.7.* *_cp37m, which can be installed; - ncls [0.0.63|0.0.64|0.0.65|0.0.66] would require - python_abi 3.8.* *_cp38, which can be installed; - ncls [0.0.63|0.0.64|0.0.65|0.0.66] would require - python_abi 3.9.* *_cp39, which can be installed; - ncls [0.0.65|0.0.66] would require - python_abi 3.10.* *_cp310, which can be installed; - sorted_nearest >=0.0.33 , which can be installed (as previously explained); - python >=3.11,<3.12.0a0 is not installable because it requires - python_abi 3.11.* *_cp311, which conflicts with any installable versions previously reported. -# Last 100 lines of the build log. diff --git a/recipes/medicc2/meta.yaml b/recipes/medicc2/meta.yaml index c0c3674e51297..a994a9c9b558f 100644 --- a/recipes/medicc2/meta.yaml +++ b/recipes/medicc2/meta.yaml @@ -1,6 +1,6 @@ {% set name = "medicc2" %} -{% set version = "1.1.1" %} -{% set hash = "5ea0368f99d08ed9b4b6cece584f94295c742aeb5391859a4d031a41341285b8" %} +{% set version = "1.1.2" %} +{% set hash = "13cb58099d5e4b79b4169b8ccc8f2543863b1dab0a43fafb5e146bfd9d9adc97" %} package: @@ -13,47 +13,53 @@ source: build: number: 0 + skip: True # [py < 38 or py >= 311] run_exports: - {{ pin_subpackage("medicc2", max_pin="x") }} - script: {{ PYTHON }} -m pip install . -vv + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv requirements: build: - {{ compiler('c') }} - {{ compiler("cxx") }} host: - - python >=3.8,<3.11 + - python - pip # The following are needed for building the Cython extension - numpy >=1.20.1 - openfst ==1.8.2 - setuptools - cython ==0.29.* + - pathlib2 run: - - python >=3.8,<3.11 + - python - numpy >=1.20.1,<2.0 - pyyaml >=5.4.1 - {{ pin_compatible('openfst', max_pin='x.x.x') }} - - pandas >=1.2.2,<2.1 + - pandas >=1.2,<2.1 - joblib >=1.0.1 - biopython >=1.78 - scipy >=1.7 - - matplotlib-base >=3.3 + - matplotlib-base >=3.3.4 - pyranges test: commands: - medicc2 --help -extra: - recipe-maintainers: - - tlkaufmann - about: home: https://bitbucket.org/schwarzlab/medicc2 - license: GPL-3 + license: GPL-3.0-or-later + license_family: GPL3 license_file: LICENSE summary: Whole-genome doubling-aware copy number phylogenies for cancer evolution description: | For more information see the accompanying biorxiv preprint "Kaufmann et al. Whole-genome doubling-aware copy number phylogenies for cancer evolution with MEDICC2." + dev_url: https://bitbucket.org/schwarzlab/medicc2 + +extra: + recipe-maintainers: + - tlkaufmann + identifiers: + - doi:10.1186/s13059-022-02794-9 From 7f12437640a7a7cec23ebad4a5e16a5475863ffc Mon Sep 17 00:00:00 2001 From: lmfaber <43934950+lmfaber@users.noreply.github.com> Date: Thu, 5 Sep 2024 11:13:13 +0200 Subject: [PATCH 1352/1589] Pin biopython version for bcbiogff (#50491) * Pin biopython version. * Increase build number. --------- Co-authored-by: lmfaber --- recipes/bcbio-gff/0.6.2/meta.yaml | 4 ++-- recipes/bcbio-gff/0.6.4/meta.yaml | 4 ++-- recipes/bcbio-gff/meta.yaml | 5 +++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/recipes/bcbio-gff/0.6.2/meta.yaml b/recipes/bcbio-gff/0.6.2/meta.yaml index 9a88bf7a0c348..97d545454cf69 100644 --- a/recipes/bcbio-gff/0.6.2/meta.yaml +++ b/recipes/bcbio-gff/0.6.2/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 2 noarch: python script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed --no-cache-dir -vvv" @@ -22,7 +22,7 @@ requirements: run: - python - six - - biopython + - biopython <=1.78 - bx-python test: diff --git a/recipes/bcbio-gff/0.6.4/meta.yaml b/recipes/bcbio-gff/0.6.4/meta.yaml index 293650e9cf2de..11ad4bd1be87a 100644 --- a/recipes/bcbio-gff/0.6.4/meta.yaml +++ b/recipes/bcbio-gff/0.6.4/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 2 noarch: python script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed --no-cache-dir -vvv" @@ -22,7 +22,7 @@ requirements: run: - python - six - - biopython + - biopython <=1.78 - bx-python test: diff --git a/recipes/bcbio-gff/meta.yaml b/recipes/bcbio-gff/meta.yaml index cceb7684f852b..24d4a1716f553 100644 --- a/recipes/bcbio-gff/meta.yaml +++ b/recipes/bcbio-gff/meta.yaml @@ -10,7 +10,7 @@ source: sha256: d1dc3294147b95baced6033f6386a0fed45c43767ef02d1223df5ef497e9cca6 build: - number: 1 + number: 2 noarch: python run_exports: - {{ pin_subpackage(name|lower, max_pin="x.x") }} @@ -23,12 +23,13 @@ requirements: run: - python - six - - biopython + - biopython <=1.86 - bx-python test: imports: - BCBio.GFF + about: home: https://github.com/chapmanb/bcbb/tree/master/gff license: Biopython License Agreement From 936a5472c3f3ffdad7cb3ffe2362e0a0eb75f62d Mon Sep 17 00:00:00 2001 From: Alexander Peltzer Date: Thu, 5 Sep 2024 11:50:10 +0200 Subject: [PATCH 1353/1589] Dedup 0.12.9 (#50489) * Dedup 0.12.9 * Fix linting * Add noarch back * Add license * Update dedup.py --- recipes/dedup/LICENSE | 674 ++++++++++++++++++++++++++++++++++++++++ recipes/dedup/dedup.py | 2 +- recipes/dedup/meta.yaml | 9 +- 3 files changed, 681 insertions(+), 4 deletions(-) create mode 100644 recipes/dedup/LICENSE diff --git a/recipes/dedup/LICENSE b/recipes/dedup/LICENSE new file mode 100644 index 0000000000000..9cecc1d4669ee --- /dev/null +++ b/recipes/dedup/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + {one line to give the program's name and a brief idea of what it does.} + Copyright (C) {year} {name of author} + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + {project} Copyright (C) {year} {fullname} + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/recipes/dedup/dedup.py b/recipes/dedup/dedup.py index eb372e90b3c0f..3ae3773987d7b 100755 --- a/recipes/dedup/dedup.py +++ b/recipes/dedup/dedup.py @@ -11,7 +11,7 @@ import sys import subprocess from os import access, getenv, X_OK -jar_file = 'DeDup-0.12.8.jar' +jar_file = 'DeDup-0.12.9.jar' default_jvm_mem_opts = ['-Xms512m', '-Xmx1g'] diff --git a/recipes/dedup/meta.yaml b/recipes/dedup/meta.yaml index 25bf9cf7d20cd..8c9d2229145cc 100644 --- a/recipes/dedup/meta.yaml +++ b/recipes/dedup/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.12.8" %} +{% set version = "0.12.9" %} package: name: dedup @@ -6,11 +6,13 @@ package: source: url: https://github.com/apeltzer/dedup/releases/download/{{ version }}/DeDup-{{ version }}.jar - md5: 2a5fdca4754de6a3526740f4c55fb8dc + md5: 5c398758f28e77c3544cdeadade31d6d build: noarch: generic - number: 1 + number: 0 + run_exports: + - {{ pin_subpackage('dedup', max_pin="x") }} requirements: run: @@ -25,4 +27,5 @@ test: about: home: https://github.com/apeltzer/dedup license: GPLv3 + license_file: LICENSE summary: "DeDup is a tool for read deduplication in paired-end read merging (e.g. for ancient DNA experiments)." From 3a0cff6c6ab19b4f4728d0b23ce127a755e85a3b Mon Sep 17 00:00:00 2001 From: Alexander Peltzer Date: Thu, 5 Sep 2024 11:50:32 +0200 Subject: [PATCH 1354/1589] Update ClipAndMerge (#50490) * Update meta.yaml * Fix linting * Add noarch back * Add files via upload Add Licence * Update clipandmerge.py * Update meta.yaml --- recipes/clipandmerge/LICENSE | 674 +++++++++++++++++++++++++++ recipes/clipandmerge/clipandmerge.py | 2 +- recipes/clipandmerge/meta.yaml | 11 +- 3 files changed, 682 insertions(+), 5 deletions(-) create mode 100644 recipes/clipandmerge/LICENSE diff --git a/recipes/clipandmerge/LICENSE b/recipes/clipandmerge/LICENSE new file mode 100644 index 0000000000000..9cecc1d4669ee --- /dev/null +++ b/recipes/clipandmerge/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + {one line to give the program's name and a brief idea of what it does.} + Copyright (C) {year} {name of author} + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + {project} Copyright (C) {year} {fullname} + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/recipes/clipandmerge/clipandmerge.py b/recipes/clipandmerge/clipandmerge.py index 4ee16451cc972..7c28c1f5f1081 100755 --- a/recipes/clipandmerge/clipandmerge.py +++ b/recipes/clipandmerge/clipandmerge.py @@ -11,7 +11,7 @@ import sys import subprocess from os import access, getenv, X_OK -jar_file = 'ClipAndMerge-1.7.8.jar' +jar_file = 'ClipAndMerge-1.7.9.jar' default_jvm_mem_opts = ['-Xms512m', '-Xmx1g'] diff --git a/recipes/clipandmerge/meta.yaml b/recipes/clipandmerge/meta.yaml index 85cd37f69f1ed..285ccf03cd358 100644 --- a/recipes/clipandmerge/meta.yaml +++ b/recipes/clipandmerge/meta.yaml @@ -1,16 +1,18 @@ -{% set version = "1.7.8" %} +{% set version = "1.7.9" %} package: name: clipandmerge version: {{ version }} source: - url: https://github.com/apeltzer/ClipAndMerge/releases/download/v{{ version }}/ClipAndMerge-{{ version }}.jar - md5: 548e403bf12d9709949fd74236205a01 + url: https://github.com/apeltzer/ClipAndMerge/releases/download/{{ version }}/ClipAndMerge-{{ version }}.jar + md5: 2951ba364b4a5add18caf21459291cfe build: noarch: generic - number: 2 + number: 0 + run_exports: + - {{ pin_subpackage('clipandmerge', max_pin="x") }} requirements: run: @@ -24,4 +26,5 @@ test: about: home: https://github.com/apeltzer/ClipAndMerge license: GPLv3 + license_file: LICENSE summary: Clip&Merge is a tool to clip off adapters from sequencing reads and merge overlapping paired end reads together. From a7c89d2b4ab365f4a5b226ea8cbfef3b93d2a44b Mon Sep 17 00:00:00 2001 From: Marcel Martin Date: Thu, 5 Sep 2024 16:04:28 +0200 Subject: [PATCH 1355/1589] Update minute to 0.8.0 (#50512) --- recipes/minute/meta.yaml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/recipes/minute/meta.yaml b/recipes/minute/meta.yaml index 7de1dc0076d35..f6537caa53407 100644 --- a/recipes/minute/meta.yaml +++ b/recipes/minute/meta.yaml @@ -1,12 +1,12 @@ -{% set version = "0.6.0" %} +{% set version = "0.8.0" %} package: name: minute version: {{ version }} source: - url: https://github.com/NBISweden/minute/archive/refs/tags/v{{ version }}.tar.gz - sha256: 168077b9bc369d8e4bbda51133d00a344dc33716e2a070311cfacaf792b131d7 + url: https://github.com/elsasserlab/minute/archive/refs/tags/v{{ version }}.tar.gz + sha256: dc73acfae6ffcbd47382381abe13bf35faf741dda87b5731b119f634ed0f9d36 build: number: 0 @@ -18,10 +18,9 @@ build: requirements: host: - pip - - python >=3.7 + - python >=3.8 run: - - python >=3.7 - - importlib-metadata # [py==37] + - python >=3.8 - ruamel.yaml - snakemake-minimal >=7.22.0 - samtools >=1.13 @@ -33,7 +32,7 @@ requirements: - picard >=2.26.0 - fastqc >=0.11.9 - bedtools >=2.30.0 - - multiqc =1.13 + - multiqc =1.17 - xopen >=1.2.0 - sra-tools >=2.11.0 - r-base >=4.0.0 From 7bebbfa54b1933ae7ce6e642995c26b551176ffe Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 5 Sep 2024 11:00:31 -0400 Subject: [PATCH 1356/1589] Update harpy to 1.8.0 (#50499) --- recipes/harpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index 9625e80c0fb41..1b6bdf4ce62cc 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.7.0" %} -{% set sha256 = "d9c7d2e36a358e2d13d7d0d5984a0cea2d7ae1224c3f11a4d01968a22efc07a6" %} +{% set version = "1.8.0" %} +{% set sha256 = "e62c5183d371be8f8fe56242cb7dd4eda855bc4f30018d26710c98bca5e4169d" %} package: name: harpy From 474fc7fa626e78d27e4ac9f4991320a36e1c10de Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 5 Sep 2024 11:01:51 -0400 Subject: [PATCH 1357/1589] Update allo to 1.2.0 (#50502) --- recipes/allo/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/allo/meta.yaml b/recipes/allo/meta.yaml index f87b34e141165..f32eb8805468a 100644 --- a/recipes/allo/meta.yaml +++ b/recipes/allo/meta.yaml @@ -1,5 +1,5 @@ {% set name = "allo" %} -{% set version = "1.1.2" %} +{% set version = "1.2.0" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/b/bio-{{ name }}/bio_allo-{{ version }}.tar.gz - sha256: 116390a306d76ae8986762292b51e85de710a36e56d532ae7e3cc4df5796befc + sha256: d5ec3b33975743022447ac4cefb9f2b75d188b6f8ece0e8073b636ce6c969f3d build: run_exports: From 36eabded77edded0f8dbfc5cc8068328e490c71c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 5 Sep 2024 11:03:06 -0400 Subject: [PATCH 1358/1589] Update micom to 0.36.4 (#50514) --- recipes/micom/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/micom/meta.yaml b/recipes/micom/meta.yaml index 952d0e627826a..d1e2706fe4be5 100644 --- a/recipes/micom/meta.yaml +++ b/recipes/micom/meta.yaml @@ -1,5 +1,5 @@ {% set name = "micom" %} -{% set version = "0.36.3" %} +{% set version = "0.36.4" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 7fca46cd7886683d1e19587703b0f8ac80deea051f0d010c824e99e1c21b695d + sha256: d7db4035fd8f70ab4d1b424206bada1c3dc25a64ca3ac2be893f6f69d3f91e2d build: number: 0 From 17c7f6620364c5914bab5e7063bc8fb0b427c9f7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 5 Sep 2024 11:03:34 -0400 Subject: [PATCH 1359/1589] Update piranha-polio to 1.3.1 (#50513) --- recipes/piranha-polio/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/piranha-polio/meta.yaml b/recipes/piranha-polio/meta.yaml index d86440e1fc31c..8e3b1be9c9df3 100644 --- a/recipes/piranha-polio/meta.yaml +++ b/recipes/piranha-polio/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.3" %} +{% set version = "1.3.1" %} package: name: piranha-polio @@ -6,7 +6,7 @@ package: source: url: https://github.com/polio-nanopore/piranha/archive/refs/tags/{{ version }}.tar.gz - sha256: 99f845059fa92a87476d1e0d661459548b69c02921e3c397d5362b469a0f58ba + sha256: a2786e24459e4d9d5a45cc7c7b76853b433944bc5d17929fa12c0c99e2d89b22 build: number: 0 From e3f50ee33d0956bd9b5f57815b08f47d5504922b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 5 Sep 2024 11:03:42 -0400 Subject: [PATCH 1360/1589] Update psm-utils to 1.1.0 (#50510) --- recipes/psm-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/psm-utils/meta.yaml b/recipes/psm-utils/meta.yaml index 1e6ac303ee92f..4028389aac18a 100644 --- a/recipes/psm-utils/meta.yaml +++ b/recipes/psm-utils/meta.yaml @@ -1,6 +1,6 @@ {% set name = "psm-utils" %} -{% set version = "1.0.1" %} -{% set sha256 = "56ed80a363f87a49ab3c712f8f8f6aae8d2fad777920428d3a321f52a8494cff" %} +{% set version = "1.1.0" %} +{% set sha256 = "b950ef8b4415b76c8d9b41023a93d65a3c66826524459e34c4faef1092a3f87f" %} package: name: {{ name|lower }} From 2f546119555d5fdfd0cb87326743ea6bda0c6a3e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 5 Sep 2024 11:04:37 -0400 Subject: [PATCH 1361/1589] Update python-edlib to 1.3.9.post1 (#50501) --- recipes/python-edlib/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/python-edlib/meta.yaml b/recipes/python-edlib/meta.yaml index aedfbb654230e..468f2b9a27044 100644 --- a/recipes/python-edlib/meta.yaml +++ b/recipes/python-edlib/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.3.9" %} +{% set version = "1.3.9.post1" %} package: name: python-edlib @@ -6,10 +6,10 @@ package: source: url: https://pypi.io/packages/source/e/edlib/edlib-{{ version }}.tar.gz - sha256: 64c3dfab3ebe3e759565a0cc71eb4df23cf3ce1713fd558af3c473dddc2a3766 + sha256: b0fb6e85882cab02208ccd6daa46f80cb9ff1d05764e91bf22920a01d7a6fbfa build: - number: 8 + number: 0 script: "EDLIB_USE_CYTHON=1 {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" run_exports: - {{ pin_subpackage("python-edlib", max_pin="x") }} From 41c6b9a5c979edba265861d55b6e4eede03d8d0c Mon Sep 17 00:00:00 2001 From: Baoxing Song Date: Thu, 5 Sep 2024 23:05:30 +0800 Subject: [PATCH 1362/1589] V1.2.5 (#50506) --- recipes/anchorwave/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/anchorwave/meta.yaml b/recipes/anchorwave/meta.yaml index d4e34368db76c..7e9ee0a0d0817 100644 --- a/recipes/anchorwave/meta.yaml +++ b/recipes/anchorwave/meta.yaml @@ -1,7 +1,7 @@ {% set name = "anchorwave" %} -{% set version = "1.2.3" %} -{% set tag = "v1.2.3" %} -{% set sha256 = "1f689c06f9bbc8e1ed64c0addf4aaf5d172a2fea1e55660b8d3f6dfdffe3f157" %} +{% set version = "1.2.5" %} +{% set tag = "v1.2.5" %} +{% set sha256 = "440e233739582f1e3d7a3847a421919b4c426d4f4332f4d812ea4d23b9958cfa" %} package: name: {{ name }} From a5a96fc61a8d51dcf7609ef550381535ad1fce6a Mon Sep 17 00:00:00 2001 From: Jean Mainguy Date: Thu, 5 Sep 2024 17:09:49 +0200 Subject: [PATCH 1363/1589] update binette recipe to version 1.0.2 (#50505) --- recipes/binette/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/binette/meta.yaml b/recipes/binette/meta.yaml index 7c516ff19ef72..9e3f94dfe7e32 100644 --- a/recipes/binette/meta.yaml +++ b/recipes/binette/meta.yaml @@ -1,12 +1,12 @@ {% set name = "Binette" %} -{% set version = "1.0.1" %} +{% set version = "1.0.2" %} package: name: {{ name|lower }} version: {{ version }} source: url: https://github.com/genotoul-bioinfo/{{ name|lower }}/archive/refs/tags/v{{ version }}.tar.gz - sha256: 968c6568b862f4586388fbc63d8fd6054fb2dd0b177d5594099235f48ddea7ab + sha256: 2ed4b5927d7d523db752bdd2ed9e6654e672963ead7a562e0dc2252cbf402191 build: noarch: python From 584f05eaa4d214dd912ed8585b7b2189e377ac98 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 5 Sep 2024 11:56:22 -0400 Subject: [PATCH 1364/1589] Update cagee to 1.2 (#50517) --- recipes/cagee/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/cagee/meta.yaml b/recipes/cagee/meta.yaml index df3e506dd1ad6..cdc593579ee6c 100755 --- a/recipes/cagee/meta.yaml +++ b/recipes/cagee/meta.yaml @@ -1,6 +1,6 @@ {% set name = "CAGEE" %} -{% set version = "1.1.1" %} -{% set sha256 = "b282b954249491f5379c27e36ad0c7b7d5cd120c798e11e6e355b13b5849dfc3" %} +{% set version = "1.2" %} +{% set sha256 = "fc1db60d8d9478ef53b38f310a687453c6f8f2f50d3c68ec6a0747e822c2a481" %} package: name: {{ name|lower }} From 9330e3a891f5a661766e70c30291e60bf0d1ed62 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 5 Sep 2024 12:28:38 -0400 Subject: [PATCH 1365/1589] Update annotsv to 3.4.4 (#50516) Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/annotsv/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/annotsv/meta.yaml b/recipes/annotsv/meta.yaml index 43fccf13b060f..16048ac117689 100644 --- a/recipes/annotsv/meta.yaml +++ b/recipes/annotsv/meta.yaml @@ -1,6 +1,6 @@ {% set name = "annotsv" %} -{% set version = "3.4.3" %} -{% set sha256 = "333a3c7234e72e41c6264194ef71f7766a900c44ce6c82d1b536af162d0c7c32" %} +{% set version = "3.4.4" %} +{% set sha256 = "ab7afcdddc1aa1215d3d77cdab74d6db4f24f2c56de9b820a6bbf668f48b1d88" %} package: name: {{ name }} From 2830a5d79a8a768d1daa5750e95e1c5906c6cbe3 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 5 Sep 2024 12:47:23 -0400 Subject: [PATCH 1366/1589] Update handyreadgenotyper to 0.1.24 (#50511) --- recipes/handyreadgenotyper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/handyreadgenotyper/meta.yaml b/recipes/handyreadgenotyper/meta.yaml index 7460e9d78995f..eab10ed133b51 100644 --- a/recipes/handyreadgenotyper/meta.yaml +++ b/recipes/handyreadgenotyper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "HandyReadGenotyper" %} -{% set version = "0.1.22" %} +{% set version = "0.1.24" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/AntonS-bio/HandyReadGenotyper/archive/{{ version }}.tar.gz - sha256: e969f57238a517c6483de0eabdad57e0359168ac6a6be1ebed34c03cffb2d48d + sha256: 11970c9bff8b4b7569e7a124030ccc9a0c53a70bb55fe49fcda735857781a731 build: noarch: python From 925b428f7729fd1d3c4e530e69276bc785351f5c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 5 Sep 2024 12:47:42 -0400 Subject: [PATCH 1367/1589] Update ensembl-utils to 0.4.4 (#50518) --- recipes/ensembl-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ensembl-utils/meta.yaml b/recipes/ensembl-utils/meta.yaml index 9494b8bff12ed..3bb007e3b72d9 100644 --- a/recipes/ensembl-utils/meta.yaml +++ b/recipes/ensembl-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ensembl-utils" %} -{% set version = "0.4.3" %} +{% set version = "0.4.4" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/ensembl_utils-{{ version }}.tar.gz - sha256: 081c805202087fa4853408688a92bbbfc14001ffd938cb422dcf7688aa56c709 + sha256: d2cb0a7ef76145bc72313e90ab3302927ad2cce442d60b0a5c8eaf00a3c0da61 build: entry_points: From d67723785887b8db3b6be34c29deb22fd4702cd7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 5 Sep 2024 15:40:03 -0400 Subject: [PATCH 1368/1589] Update thapbi-pict to 1.0.15 (#50519) --- recipes/thapbi-pict/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/thapbi-pict/meta.yaml b/recipes/thapbi-pict/meta.yaml index 47d868ee8633a..c545a18f21178 100644 --- a/recipes/thapbi-pict/meta.yaml +++ b/recipes/thapbi-pict/meta.yaml @@ -1,5 +1,5 @@ {% set name = "thapbi-pict" %} -{% set version = "1.0.14" %} +{% set version = "1.0.15" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name | replace("-", "_") }}/{{ name | replace("-", "_") }}-{{ version }}.tar.gz - sha256: 6c1b397d608b8aa7999445de09977e727698adbdb2d8b7fe43db7e8b19b748ed + sha256: 09d621c0186f46a6ea0b7d4439aa6bbc214b3e8deea54f47f2dacac1a332039d build: noarch: python From 223733e9af56332c1aef0313588fa747bd5f4a3d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 5 Sep 2024 16:29:35 -0400 Subject: [PATCH 1369/1589] Update telometer to 1.0 (#50272) * Update telometer to 0.95 * Update telometer to 1.0 * add scipy --------- Co-authored-by: mencian --- recipes/telometer/meta.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/recipes/telometer/meta.yaml b/recipes/telometer/meta.yaml index 2480b9109616a..24585a29ff6d1 100644 --- a/recipes/telometer/meta.yaml +++ b/recipes/telometer/meta.yaml @@ -1,5 +1,5 @@ {% set name = "telometer" %} -{% set version = "0.81" %} +{% set version = "1.0" %} package: name: "{{ name|lower }}" @@ -7,13 +7,13 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/telometer-{{ version }}.tar.gz" - sha256: 88e3f4d0c4018d83f6406be6ecf772a9ea232eab774a8a268bb3b0d427707da3 + sha256: ce8d12d5239280e830d3678930d6ba49a42b636c05c5ebb801da522901b8ddc3 build: number: 0 noarch: python entry_points: - - telometer=telometer:calculate_telomere_length + - telometer=telometer:run_telometer script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" run_exports: - {{ pin_subpackage(name, max_pin='x') }} @@ -27,6 +27,9 @@ requirements: - pysam - pandas - regex + - samtools + - minimap2 + - scipy test: imports: @@ -38,13 +41,10 @@ about: home: https://github.com/santiago-es/Telometer license: MIT license_family: MIT - license_file: LICENSE.txt + license_file: "LICENSE.txt" summary: "A simple regular expression based method for measuring individual, chromosome-specific telomere lengths from long-read sequencing data." dev_url: https://github.com/santiago-es/Telometer - - - extra: recipe-maintainers: - santiago-es From acb0c4c4731cfa208387a147e42d9c2aea02d483 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Thu, 5 Sep 2024 15:30:52 -0500 Subject: [PATCH 1370/1589] Add recipe for starcatpy v1.0.8 (#50520) --- recipes/starcatpy/meta.yaml | 47 +++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 recipes/starcatpy/meta.yaml diff --git a/recipes/starcatpy/meta.yaml b/recipes/starcatpy/meta.yaml new file mode 100644 index 0000000000000..9e1f0b2f4600e --- /dev/null +++ b/recipes/starcatpy/meta.yaml @@ -0,0 +1,47 @@ +{% set name = "starcatpy" %} +{% set version = "1.0.8" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.org/packages/source/{{ name[0] }}/{{ name }}/starcatpy-{{ version }}.tar.gz + sha256: 7ebdc81623cef595ef8a9eaa2bc2a1cc04addcf4238367e83f2f35c01fc5baba + +build: + entry_points: + - starcat = starcat:main + noarch: python + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + number: 0 + run_exports: + - {{ pin_subpackage('starcatpy', max_pin="x") }} + +requirements: + host: + - python + - pip + run: + - python + - scikit-learn >=1.0 + - anndata + - pandas + - numpy + - scipy + - pyyaml + - requests + +test: + imports: + - starcat + commands: + - starcat --help + +about: + home: https://github.com/immunogenomics/starCAT + summary: "Implements *CellAnnotator (aka *CAT/starCAT), annotating scRNA-Seq with predefined gene expression programs." + license: MIT + license_family: MIT + license_file: LICENSE + dev_url: https://github.com/immunogenomics/starCAT From 32dc8d9455a4bb4f8e603052ff39de34be1b0689 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 5 Sep 2024 17:20:13 -0400 Subject: [PATCH 1371/1589] Update skder to 1.2.7 (#50522) --- recipes/skder/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/skder/meta.yaml b/recipes/skder/meta.yaml index 488354d3b05f6..2e14329b862dd 100644 --- a/recipes/skder/meta.yaml +++ b/recipes/skder/meta.yaml @@ -1,5 +1,5 @@ {% set name = "skder" %} -{% set version = "1.2.6" %} +{% set version = "1.2.7" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/raufs/skDER/archive/refs/tags/v{{ version }}.tar.gz - sha256: a7d950d7470187b57d35fa8e403ff245a140a49dd2b553c78769e6f199f18abe + sha256: 283e4a05d27afcff65564450d15150e6a9ad393b0a29b61802b6ab7e05197347 build: number: 0 From 26fcb76eb31eadce4c4e7c4ec251c376b10fd3f1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 5 Sep 2024 17:35:06 -0400 Subject: [PATCH 1372/1589] Update strucvis to 0.9 (#50524) --- recipes/strucvis/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/strucvis/meta.yaml b/recipes/strucvis/meta.yaml index 679eba2dab7d6..14469db9d4f0b 100644 --- a/recipes/strucvis/meta.yaml +++ b/recipes/strucvis/meta.yaml @@ -1,6 +1,6 @@ {% set name = "strucVis" %} -{% set version = "0.8" %} -{% set sha256 = "bf14366b9e1b9b983d531de4c6b894adbc9a446461aa7c8c4ce7627f02f88903" %} +{% set version = "0.9" %} +{% set sha256 = "a10a0a7d3fd66bf8e9966fd76ef521c33e8bba0fcb5b474f30a8a6c6533d93d8" %} package: name: {{ name|lower }} From 9388168295ca93f0a8bf9d13e85e66690b5b0585 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 5 Sep 2024 19:21:47 -0400 Subject: [PATCH 1373/1589] Update r-anndata to 0.7.5.6 (#50521) * Update r-anndata to 0.7.5.6 * add run_exports --------- Co-authored-by: mencian --- recipes/r-anndata/build.sh | 1 - recipes/r-anndata/meta.yaml | 13 ++++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) delete mode 100644 recipes/r-anndata/build.sh diff --git a/recipes/r-anndata/build.sh b/recipes/r-anndata/build.sh deleted file mode 100644 index bec411402e62f..0000000000000 --- a/recipes/r-anndata/build.sh +++ /dev/null @@ -1 +0,0 @@ -$R CMD INSTALL --build . \ No newline at end of file diff --git a/recipes/r-anndata/meta.yaml b/recipes/r-anndata/meta.yaml index ce8403f580d3d..0d2095fcfb869 100644 --- a/recipes/r-anndata/meta.yaml +++ b/recipes/r-anndata/meta.yaml @@ -1,20 +1,22 @@ -{% set version = "0.7.5.4" %} +{% set version = "0.7.5.6" %} package: name: r-anndata version: {{ version }} source: - url: - - https://github.com/dynverse/anndata/archive/refs/tags/{{ version }}.tar.gz - sha256: 35561748978b82739eb75b64e0532919b122eccebf8cc765c964e549884a56cd + url: https://github.com/dynverse/anndata/archive/refs/tags/{{ version }}.tar.gz + sha256: 1a4dc28c5a99a1d816d0b6cf7eabc6388a61af03b53b38297cfce304ae6c8bcb build: - number: 2 + number: 0 noarch: generic rpaths: - lib/R/lib/ - lib/ + script: ${R} CMD INSTALL --build . ${R_ARGS} + run_exports: + - {{ pin_subpackage('r-anndata', max_pin="x.x") }} requirements: host: @@ -41,6 +43,7 @@ about: summary: "A 'reticulate' wrapper for the Python package 'anndata'. Provides a scalable way of keeping track of data and learned annotations. Used to read from and write to the h5ad file format." license_family: MIT license_file: '{{ environ["PREFIX"] }}/lib/R/share/licenses/MIT' + dev_url: https://github.com/dynverse/anndata extra: recipe-maintainers: From daa929864bff53fa05224598f3025a2c22f6b8a9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 5 Sep 2024 19:32:44 -0400 Subject: [PATCH 1374/1589] Update shorttracks to 1.2 (#50523) * Update shorttracks to 1.2 * add run_exports --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Co-authored-by: mencian --- recipes/shorttracks/meta.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/recipes/shorttracks/meta.yaml b/recipes/shorttracks/meta.yaml index 197302af4a89e..75081b308d1cb 100644 --- a/recipes/shorttracks/meta.yaml +++ b/recipes/shorttracks/meta.yaml @@ -1,6 +1,6 @@ {% set name = "ShortTracks" %} -{% set version = "1.1" %} -{% set sha256 = "3cdc1f74c417f88d53c5d097f19dc341a6038b13190b7966f1e6be8624f66f0e" %} +{% set version = "1.2" %} +{% set sha256 = "e29ab660736a2da98eb7161e97636cf16d0c0b3161ed4e2e0d1b0914bddeccc6" %} package: name: {{ name|lower }} @@ -13,6 +13,8 @@ source: build: noarch: generic number: 0 + run_exports: + - {{ pin_subpackage('shorttracks', max_pin="x") }} requirements: run: @@ -31,4 +33,4 @@ about: license_family: MIT license_file: LICENSE summary: 'ShortTracks : Useful length- and strand-based coverage files (bigwig) from small RNA-seq alignments (BAM)' - + dev_url: https://github.com/MikeAxtell/ShortTracks From f2388061c83455562f1de722a6fed45fe1f47d90 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 5 Sep 2024 21:17:00 -0400 Subject: [PATCH 1375/1589] Update binchicken to 0.12.5 (#50526) --- recipes/binchicken/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/binchicken/meta.yaml b/recipes/binchicken/meta.yaml index 70b5a8fce118d..b770c8cd7694e 100644 --- a/recipes/binchicken/meta.yaml +++ b/recipes/binchicken/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "0.12.4" %} +{% set version = "0.12.5" %} {% set name = "binchicken" %} -{% set sha256 = "d84bfa4b368b02ccfb45ecd1f0f79c268b6ad94b7f2ff5776ba338172e7510c4" %} +{% set sha256 = "80e39d2aae136dc949e504923c270314d60023124499214e30a4669d88c26add" %} package: name: {{ name }} From 0afeb5288a1aa53aeee659c5c80d433fe95834aa Mon Sep 17 00:00:00 2001 From: Kez Cleal <42997789+kcleal@users.noreply.github.com> Date: Fri, 6 Sep 2024 15:44:37 +0100 Subject: [PATCH 1376/1589] Update meta.yaml (#50532) --- recipes/gw/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/gw/meta.yaml b/recipes/gw/meta.yaml index 43a9a8d9d5963..562f04150aa38 100644 --- a/recipes/gw/meta.yaml +++ b/recipes/gw/meta.yaml @@ -13,7 +13,7 @@ source: - fix-context.patch build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('gw', max_pin="x") }} ignore_run_exports: @@ -57,6 +57,7 @@ requirements: - libgl-devel # [linux] - libglx-devel # [linux] - libgles-devel # [linux] + - wayland # [linux] run: - glfw >=3.3 @@ -67,6 +68,7 @@ requirements: - xorg-libxxf86vm # [linux] - xorg-libxdamage # [linux] - mesalib # [linux] + - wayland # [linux] test: commands: From 0733388da8e11be609c687dce06b6d5c6babcd00 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 6 Sep 2024 10:45:16 -0400 Subject: [PATCH 1377/1589] Update varvamp to 1.2.1 (#50533) --- recipes/varvamp/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/varvamp/meta.yaml b/recipes/varvamp/meta.yaml index f058276c11216..ef8d005799c0f 100644 --- a/recipes/varvamp/meta.yaml +++ b/recipes/varvamp/meta.yaml @@ -1,5 +1,5 @@ {% set name = "varvamp" %} -{% set version = "1.2.0" %} +{% set version = "1.2.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/varvamp-{{ version }}.tar.gz - sha256: 5c9fe4f1c458812808a1d08ce2e6f5166b5bc5f136f15bdcde99a496f05fd07b + sha256: 335707c71b1c834f0f548001bc18485b2dd6e93368434137607ecaec58f66ff5 build: entry_points: From fb722dbe6642ccd9e682a378527434bfe00967f4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 6 Sep 2024 10:45:25 -0400 Subject: [PATCH 1378/1589] Update pybiolib to 1.2.166 (#50534) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index 5d8b56b7704c5..a5b1a3e3da0ee 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.2.142" %} +{% set version = "1.2.166" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: f1d59dab7399ab6533f3027b830003d6114ca79c451b12c0cacd2cf2caee9fa3 + sha256: 233642ae986bbef980ce30d06d1ac6a57d55e5f0a6fa5e0ef85ba03e01c50c13 build: number: 0 From b39a2d88b26121c0e7368df7c1fcaf47ba3a74f8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 6 Sep 2024 10:49:17 -0400 Subject: [PATCH 1379/1589] Update cami-amber to 2.0.7 (#50535) --- recipes/cami-amber/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/cami-amber/meta.yaml b/recipes/cami-amber/meta.yaml index 4326d2805dc2c..65e1b263966d8 100644 --- a/recipes/cami-amber/meta.yaml +++ b/recipes/cami-amber/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.0.6" %} +{% set version = "2.0.7" %} package: name: cami-amber @@ -6,7 +6,7 @@ package: source: url: https://pypi.io/packages/source/c/cami-amber/cami-amber-{{ version }}.tar.gz - sha256: d2d3d13a135f7ce4dff6bc1aab014945b0e5249b02f9afff3e6df1d82ef45d5a + sha256: 01f11fbab7cb0f24497932669b00981292b1dc0df2ce6cd4b707a7ddd675bf8d build: noarch: python From 0476e6411d753fadb4feb95f5f6b05f06d3a5f72 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 6 Sep 2024 10:49:27 -0400 Subject: [PATCH 1380/1589] Update oakvar to 2.11.9 (#50536) --- recipes/oakvar/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/oakvar/meta.yaml b/recipes/oakvar/meta.yaml index 55b4d4c0bad61..021ea4f7df913 100644 --- a/recipes/oakvar/meta.yaml +++ b/recipes/oakvar/meta.yaml @@ -1,6 +1,6 @@ {% set name = "OakVar" %} -{% set version = "2.11.8" %} -{% set sha256 = "c863dd431b4fd2f754e226d1519914ff698a88ea1dd766cb267902219f5947c8" %} +{% set version = "2.11.9" %} +{% set sha256 = "9721f4a3383b7e4354058b6755dcffdf753fb86fcb0a83a5dd8b81acf5aeb4e0" %} package: name: {{ name|lower }} From ecbce78368fefcb2cc3d399de0eb840a1c504f40 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 6 Sep 2024 10:49:33 -0400 Subject: [PATCH 1381/1589] Update dxpy to 0.382.0 (#50542) --- recipes/dxpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/dxpy/meta.yaml b/recipes/dxpy/meta.yaml index d9db812fe9085..e6c81569ec1ac 100644 --- a/recipes/dxpy/meta.yaml +++ b/recipes/dxpy/meta.yaml @@ -1,5 +1,5 @@ {% set name = "dxpy" %} -{% set version = "0.381.0" %} +{% set version = "0.382.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 84fea9b33be93b97ce2d92ff0f5b0eaa63920c43776df3cdf0abb099c117c6cc + sha256: c8427fdc2d293622e2fa250afe6e51fc85a21c5abed697be863eb7a644c502e7 build: number: 0 From 41e8d1974ece515ec5a43011ce854695e1dd4992 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 6 Sep 2024 10:49:41 -0400 Subject: [PATCH 1382/1589] Update clinvar-this to 0.18.0 (#50537) --- recipes/clinvar-this/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/clinvar-this/meta.yaml b/recipes/clinvar-this/meta.yaml index e073332a1cf96..3ae2261e70389 100644 --- a/recipes/clinvar-this/meta.yaml +++ b/recipes/clinvar-this/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.17.1" %} -{% set sha256 = "9fc21858d673a9f4daa459741a5425790402ad7ef12544d62c13e750d73888af" %} +{% set version = "0.18.0" %} +{% set sha256 = "5303b64c86d93c012b0f23fac887d0c8ce0585255f2a3e89720e568ad13ee0a4" %} package: name: clinvar-this From 2ea21bf089a8d4bc9786c318a37d1f640acd5da2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 6 Sep 2024 10:49:49 -0400 Subject: [PATCH 1383/1589] Update annonars to 0.41.0 (#50538) --- recipes/annonars/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/annonars/meta.yaml b/recipes/annonars/meta.yaml index f0329a528357d..c6fd696b3a026 100644 --- a/recipes/annonars/meta.yaml +++ b/recipes/annonars/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.40.0" %} +{% set version = "0.41.0" %} package: name: annonars @@ -12,7 +12,7 @@ build: source: url: https://github.com/varfish-org/annonars/archive/refs/tags/v{{ version }}.tar.gz - sha256: 1860e69f89935aa5d5456e55070d4c172cd4b29bdf07ad16b6b4dcf95b4ef7b2 + sha256: 11cf6d760c9a4f5896c5a6883fda2bd39b734862a6acf6af004704edb0752569 requirements: build: From 541652a92b4686af1a9c819955801b6dfe65fc3c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 6 Sep 2024 10:49:57 -0400 Subject: [PATCH 1384/1589] Update egglib to 3.3.4 (#50539) --- recipes/egglib/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/egglib/meta.yaml b/recipes/egglib/meta.yaml index 459f58ae40dbb..5d52f0a65b5c6 100644 --- a/recipes/egglib/meta.yaml +++ b/recipes/egglib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "egglib" %} -{% set version = "3.3.3" %} +{% set version = "3.3.4" %} package: name: "{{ name|lower }}" @@ -7,10 +7,10 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/EggLib-{{ version }}.zip - sha256: 8f788e1d40243a7e489c71a20581a5e842e0f49bca87096fcee572c087865fc2 + sha256: 685acf514c2b14d3cc4e21e6ca03951599c77b9c0f6530c417cd717d813fafd7 build: - number: 1 + number: 0 skip: True # [osx] script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv entry_points: From fc955539fb5c0a4f025fbd246d302202120f400b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 6 Sep 2024 10:50:06 -0400 Subject: [PATCH 1385/1589] Update treesimulator to 0.2.0 (#50540) --- recipes/treesimulator/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/treesimulator/meta.yaml b/recipes/treesimulator/meta.yaml index 247f0a7959257..2e652c8857735 100644 --- a/recipes/treesimulator/meta.yaml +++ b/recipes/treesimulator/meta.yaml @@ -1,5 +1,5 @@ {% set name = "treesimulator" %} -{% set version = "0.1.22" %} +{% set version = "0.2.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 2ea8d07b1ef98590b1477c322d8a06efabf63f39ac7d9ff0f75f6063e48898c8 + sha256: 599507b62cce4d8f77a850fc0f84d003d13530ec39960afdf1efcf356df16176 build: number: 0 From 888041e3890df1cd67c1be50c29e5d642cc19c8e Mon Sep 17 00:00:00 2001 From: ftegenfe Date: Fri, 6 Sep 2024 18:16:00 +0200 Subject: [PATCH 1386/1589] fix current version (#50508) * added orthologer * WIP:orthologer * orthologer * version * minor * orthologer version * updated meta * orthologer 3.2.3 * updated sha256 * Fix SHA256 * minor * spdlog in meta * orthologer: updated cmake OpenMP detection * last macos fixes are now actually there * meta * updated brhclus - now compiles with clang * fix macos * meta/bash macos * even more clang * more cmake and macos issues * updated installer * update build and host section * clean up recipe * updated to new version * path not needed with new version * updated build number * patch not needed anymore * patch not needed anymore * update for new package with macos fix * updated tests and macos fix * new sha256sum * orthologer 3.3.2 * orthologer 3.3.2 - build number reset * sed macos, do not do in place edit * require bash 4.1 - will this work for macos? * orthologer 3.3.2 - bash shebang update (macos) --------- Co-authored-by: Martin Grigorov Co-authored-by: mencian --- recipes/orthologer/0001-install_pkg.patch | 24 ----------------------- recipes/orthologer/meta.yaml | 11 ++++++----- 2 files changed, 6 insertions(+), 29 deletions(-) delete mode 100644 recipes/orthologer/0001-install_pkg.patch diff --git a/recipes/orthologer/0001-install_pkg.patch b/recipes/orthologer/0001-install_pkg.patch deleted file mode 100644 index fcf9de92103de..0000000000000 --- a/recipes/orthologer/0001-install_pkg.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/install_pkg.sh b/install_pkg.sh -index 93cfe86..a5cde4a 100755 ---- a/install_pkg.sh -+++ b/install_pkg.sh -@@ -30,7 +30,7 @@ export SKIP_DIAMOND=${SKIP_DIAMOND=0} - export CPU_COUNT=${CPU_COUNT=$(nproc --ignore 1)} - - # destination prefic directory --export PREFIX=${PREFIX="/usr/local"} -+export PREFIX="${PREFIX}" - - # get orthologer and brhclus - export DIR_ORTHOLOGER_PKG=$(find ./ -maxdepth 1 -name "ORTHOLOGER-*" -type d) -@@ -47,8 +47,8 @@ fi - DIR_ORTHOLOGER_PKG=$( cd -P $DIR_ORTHOLOGER_PKG && pwd) - DIR_BRHCLUS_PKG=$( cd -P $DIR_BRHCLUS_PKG && pwd) - --export DIR_BRHCLUS_INSTALL="" --export DIR_ORTHOLOGER_INSTALL="" -+export DIR_BRHCLUS_INSTALL="${PREFIX}" -+export DIR_ORTHOLOGER_INSTALL="${PREFIX}" - - print_config() { - echo "---------------------------------------------------------------" diff --git a/recipes/orthologer/meta.yaml b/recipes/orthologer/meta.yaml index ca1b5e1e98886..ce0bf855a4e94 100644 --- a/recipes/orthologer/meta.yaml +++ b/recipes/orthologer/meta.yaml @@ -1,6 +1,6 @@ {% set name = "orthologer" %} -{% set version = "3.3.1" %} -{% set sha256 = "efb86c202aca5d4fe54770d4ce7e5689bbad3edc13350d46eca5fc74b4783f93" %} +{% set version = "3.3.2" %} +{% set sha256 = "a872e7454b4503b984235705d6097a6c9e40590681423b496ce5a673a453a27c" %} package: name: {{ name }} @@ -14,21 +14,22 @@ build: source: url: https://data.orthodb.org/current/download/software/orthologer_{{ version }}.tgz sha256: {{ sha256 }} - patches: - - 0001-install_pkg.patch requirements: build: - {{ compiler('cxx') }} - {{ compiler('c') }} - cmake - - make + - make + - bash >=4.1 host: - llvm-openmp # [osx] - libgomp # [linux] - rsync - wget + - bash >=4.1 run: + - bash >=4.1 - python >=3.4 - llvm-openmp # [osx] - libgomp # [linux] From e538933889b0b0149e77018c90896b942461a4d1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 6 Sep 2024 16:15:42 -0400 Subject: [PATCH 1387/1589] Update ipyrad to 0.9.102 (#50543) --- recipes/ipyrad/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ipyrad/meta.yaml b/recipes/ipyrad/meta.yaml index 2ba77cb7b89c0..e03997c92935e 100644 --- a/recipes/ipyrad/meta.yaml +++ b/recipes/ipyrad/meta.yaml @@ -1,6 +1,6 @@ {% set name = "ipyrad" %} -{% set version = "0.9.101" %} -{% set sha256 = "0ba451356c2f4201b31b92d97d36d9fd0f20279c248ae0ba4d941ae1cbb20970" %} +{% set version = "0.9.102" %} +{% set sha256 = "2a8dc210d69cdedd34ac92715f23a9c3b7b4593a97b0d16851a566eacf33ef42" %} package: name: {{ name }} From 7e91f22a6ea996ff9fbecaf0b70e938361600409 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 6 Sep 2024 16:15:54 -0400 Subject: [PATCH 1388/1589] Update nanomotif to 0.4.12 (#50529) --- recipes/nanomotif/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/nanomotif/meta.yaml b/recipes/nanomotif/meta.yaml index aa336929dc77c..5d47a1df0d838 100644 --- a/recipes/nanomotif/meta.yaml +++ b/recipes/nanomotif/meta.yaml @@ -1,5 +1,5 @@ {% set name = "nanomotif" %} -{% set version = "0.4.11" %} +{% set version = "0.4.12" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/nanomotif-{{ version }}.tar.gz - sha256: 822a74f70748cdb0539dd990955adeceb76c8e4e858ecee5e0097a31fac34ceb + sha256: 9dc1df33f9e9c38ef9d47eadccd58bbfc012ff65ee73f7cd30e61bb05df5f4db build: entry_points: From 907333b3cfe1c85f32b238551d06d2ce1298cfee Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 6 Sep 2024 16:40:39 -0400 Subject: [PATCH 1389/1589] Update perl-mce to 1.899 (#50527) --- recipes/perl-mce/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/perl-mce/meta.yaml b/recipes/perl-mce/meta.yaml index 2d8a8a3f6cd5b..930604778a96d 100644 --- a/recipes/perl-mce/meta.yaml +++ b/recipes/perl-mce/meta.yaml @@ -1,13 +1,13 @@ {% set name = "perl-mce" %} -{% set version = "1.898" %} -{% set sha256 = "c3e9c35dfdbb96073285c450ae10f747e46a4d0416f7d30a1b659dcc3e78a668" %} +{% set version = "1.899" %} +{% set sha256 = "67aa5932f983b3bca26932f8b9ebbcda8bb003ebbd9ce61cef36f98fc8117256" %} package: name: {{ name }} version: {{ version }} source: - url: https://cpan.metacpan.org/authors/id/M/MA/MARIOROY/MCE-1.898.tar.gz + url: https://cpan.metacpan.org/authors/id/M/MA/MARIOROY/MCE-1.899.tar.gz sha256: {{ sha256 }} build: From b4afe3c320b31b0f91d6cc47c445e644c7fbc84e Mon Sep 17 00:00:00 2001 From: Nikita Tikhomirov <48451969+taprs@users.noreply.github.com> Date: Fri, 6 Sep 2024 23:18:27 +0200 Subject: [PATCH 1390/1589] Add piawka (#50515) * add piawka * add run_exports statement * add noarch statement * fix sha256 * fix test * fix test path * polyglotize awk scripts not to rely on * switch from awk to echo for adding polyglot shebangs * fix quotes * revise recipe --- recipes/piawka/build.sh | 19 +++++++++++++++++ recipes/piawka/meta.yaml | 46 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 recipes/piawka/build.sh create mode 100644 recipes/piawka/meta.yaml diff --git a/recipes/piawka/build.sh b/recipes/piawka/build.sh new file mode 100644 index 0000000000000..036594907f2e1 --- /dev/null +++ b/recipes/piawka/build.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +# increase verbosity for debugging +set -x + +mkdir -p $PREFIX/bin + +# Replace `mawk -f` shebangs with "polyglot shebangs" +# as per https://unix.stackexchange.com/a/361796/605705 +# not to rely on non-standard `env -S` option +polyglot1='#!/bin/sh'; polyglot2='"exec" "mawk" "-f" "$0" "$@" && 0 {}' +for f in $SRC_DIR/scripts/*; do + t="$PREFIX/bin/$(basename $f)" + head -n 1 $f | grep awk && ( echo "$polyglot1" > $t && echo "$polyglot2" >> $t ) + cat $f >> $t +done + +chmod +x $PREFIX/bin/* + diff --git a/recipes/piawka/meta.yaml b/recipes/piawka/meta.yaml new file mode 100644 index 0000000000000..46510a8351bc5 --- /dev/null +++ b/recipes/piawka/meta.yaml @@ -0,0 +1,46 @@ +{% set name = "piawka" %} +{% set version = "0.7.10" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/novikovalab/{{ name }}/archive/refs/tags/{{ version }}.tar.gz + sha256: 511859b69525db7dc988ae55556e6fd31e2709f0e3a4de404f87abfadb97a273 + +build: + noarch: generic + number: 0 + run_exports: + - {{ pin_subpackage('piawka', max_pin="x.x") }} + +requirements: + run: + - mawk =1.3.4 + - parallel + - bash + - tabix + +test: + commands: + - piawka_par.sh -h + +about: + home: https://github.com/novikovalab/piawka + license: MIT + license_family: MIT + license_file: LICENSE + summary: 'The powerful AWK script to calculate population statistics in VCF files with support for varying ploidy and missing data' + description: | + The powerful awk script to calculate π, Dxy (or πxy, or Nei's D) + and some more simple stats (Fst, Tajima's D, Ronfort's rho) in VCF files in the command line. + Developed to analyze arbitrary-ploidy groups with substantial amounts of missing data. + Largely inspired by https://github.com/ksamuk/pixy + dev_url: https://github.com/novikovalab/piawka + doc_url: https://github.com/novikovalab/piawka/wiki + doc_source_url: https://github.com/novikovalab/piawka/blob/main/README.md + +extra: + recipe-maintainers: + - taprs From 362c6679973a94710f605a1ea8d74e40b73243c0 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 6 Sep 2024 17:24:10 -0400 Subject: [PATCH 1391/1589] Update cogent3 to 2024.7.19a6 (#50530) * Update cogent3 to 2024.7.19a6 * add loky --------- Co-authored-by: mencian --- recipes/cogent3/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/cogent3/meta.yaml b/recipes/cogent3/meta.yaml index e92074697c06d..9e74412a866f8 100644 --- a/recipes/cogent3/meta.yaml +++ b/recipes/cogent3/meta.yaml @@ -1,5 +1,5 @@ {% set name = "cogent3" %} -{% set version = "2024.7.19a5" %} +{% set version = "2024.7.19a6" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 6bd7c16b7662a09f65295a4256b1aa7034c9f872e1359cfd7047b22c86bc8d5a + sha256: dae78c99be59e4a2283cd1e60ea1e35029132296c1b2c4fc750a5f28f809a72b build: noarch: python @@ -26,6 +26,7 @@ requirements: - charset-normalizer - scipy - chardet + - loky - numpy - numba >0.53.0 - scitrack From cf4ccc7f660feb5efbc63cdc2dba8b9097dfca25 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 6 Sep 2024 17:24:19 -0400 Subject: [PATCH 1392/1589] Update scnic to 0.6.6 (#50525) * Update scnic to 0.6.6 * add run_exports * edit license --------- Co-authored-by: mencian --- recipes/scnic/build.sh | 2 -- recipes/scnic/meta.yaml | 25 +++++++++++++++---------- 2 files changed, 15 insertions(+), 12 deletions(-) delete mode 100644 recipes/scnic/build.sh diff --git a/recipes/scnic/build.sh b/recipes/scnic/build.sh deleted file mode 100644 index 601dac5b69ee5..0000000000000 --- a/recipes/scnic/build.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -$PYTHON setup.py install --single-version-externally-managed --record=/tmp/record.txt diff --git a/recipes/scnic/meta.yaml b/recipes/scnic/meta.yaml index 0694dc9b3d05e..29ce63c9daa93 100644 --- a/recipes/scnic/meta.yaml +++ b/recipes/scnic/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.6.3" %} +{% set version = "0.6.6" %} package: name: scnic @@ -6,45 +6,50 @@ package: source: url: https://github.com/lozuponelab/SCNIC/archive/{{ version }}.tar.gz - sha256: b0b6f9a1ba83e94d599e2ae5ca262acba2ad632512f6b179740e98d71a01236e + sha256: 754490880a31b067434a94c0bd4cbee6f067010511e5d7760b9ccbcbbddf0353 build: number: 0 noarch: python + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + run_exports: + - {{ pin_subpackage('scnic', max_pin="x.x") }} requirements: host: - python >=3 - - setuptools + - pip - pytest-runner run: - python >=3 - numpy - - scipy - - pandas + - scipy >=1.9.0,<=1.10.1 + - pandas >=1 - statsmodels - h5py - biom-format - - networkx >2 + - networkx >=2 - scikit-bio - fastspar - tqdm - matplotlib-base - - seaborn + - seaborn-base test: + imports: + - SCNIC command: - SCNIC_analysis.py --help - fastspar --help # verify fastspar working correctly about: home: https://github.com/lozuponelab/SCNIC - license: BSD + license: "BSD-3-Clause" + license_family: BSD license_file: LICENSE summary: "SCNIC: Sparse Cooccurence Network Investigation for Compositional data" + dev_url: https://github.com/lozuponelab/SCNIC extra: recipe-maintainers: - lozuponelab - skip-lints: - - missing_tests From bfa7082061794563e8da9d8d3f23ef734e7a9df9 Mon Sep 17 00:00:00 2001 From: Lexi Morrissey <46540607+anmorrissey@users.noreply.github.com> Date: Sat, 7 Sep 2024 08:54:54 -0400 Subject: [PATCH 1393/1589] Updating tensorflow dependency for new version of Allo (#50503) --- recipes/allo/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/allo/meta.yaml b/recipes/allo/meta.yaml index f32eb8805468a..5b5ad70173d76 100644 --- a/recipes/allo/meta.yaml +++ b/recipes/allo/meta.yaml @@ -24,7 +24,7 @@ requirements: - python >=3.10 - numpy - joblib - - tensorflow >=2.11 + - tensorflow >=2.17 - pysam test: From b0195eaa618126ff72bd861aad85cdb8ebb7174a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 7 Sep 2024 08:55:19 -0400 Subject: [PATCH 1394/1589] Update grenedalf to 0.6.1 (#50545) --- recipes/grenedalf/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/grenedalf/meta.yaml b/recipes/grenedalf/meta.yaml index 63645f633c571..d43de1cd86b10 100644 --- a/recipes/grenedalf/meta.yaml +++ b/recipes/grenedalf/meta.yaml @@ -1,6 +1,6 @@ package: name: grenedalf - version: "0.6.0" + version: "0.6.1" build: number: 0 @@ -9,8 +9,8 @@ build: - {{ pin_subpackage('grenedalf', max_pin='x.x') }} source: - url: https://github.com/lczech/grenedalf/archive/refs/tags/v0.6.0.tar.gz - sha256: 43f7654d9b67fdce0b65096e0b1a4ac6160d838664a65151d44ea382d2489a3f + url: https://github.com/lczech/grenedalf/archive/refs/tags/v0.6.1.tar.gz + sha256: 513add0ffba86bd3ff6ed1bf21d3b1763bd7e8d35a923bd2b597d71cdb8d4d91 requirements: build: From eb6d96f76fa4d730ab339740730ac174884a741e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 7 Sep 2024 08:56:10 -0400 Subject: [PATCH 1395/1589] Update clinvar-this to 0.18.2 (#50546) --- recipes/clinvar-this/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/clinvar-this/meta.yaml b/recipes/clinvar-this/meta.yaml index 3ae2261e70389..7902d97a06e40 100644 --- a/recipes/clinvar-this/meta.yaml +++ b/recipes/clinvar-this/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.18.0" %} -{% set sha256 = "5303b64c86d93c012b0f23fac887d0c8ce0585255f2a3e89720e568ad13ee0a4" %} +{% set version = "0.18.2" %} +{% set sha256 = "b3064769e3cf62bd19d12523d391496bce96ce2c057df2b49e53f922ef1369fb" %} package: name: clinvar-this From cc756d87e8c38ae752c7e6005c617f9559cd736d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 8 Sep 2024 05:09:08 -0400 Subject: [PATCH 1396/1589] Update ont-modkit to 0.3.3 (#50548) --- recipes/ont-modkit/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ont-modkit/meta.yaml b/recipes/ont-modkit/meta.yaml index 88e0459b50b17..c825fb4335790 100644 --- a/recipes/ont-modkit/meta.yaml +++ b/recipes/ont-modkit/meta.yaml @@ -1,6 +1,6 @@ {% set name = "ont-modkit" %} -{% set version = "0.3.2" %} -{% set sha256 = "9d3e56ec103f11d5d24d0e814afd83b8556b8288e012d410500e127d1652aba7" %} +{% set version = "0.3.3" %} +{% set sha256 = "f61674c48ef6b9e3ebd547067d693e128c1da66761ddda08d479d58d52017b2b" %} package: name: {{ name }} From 71df12c063a0dd1298f05b7460b2206a0af187f6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 8 Sep 2024 05:14:29 -0400 Subject: [PATCH 1397/1589] Update biobox_add_taxid to 0.6 (#50549) --- recipes/biobox_add_taxid/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/biobox_add_taxid/meta.yaml b/recipes/biobox_add_taxid/meta.yaml index 57c92435ee17f..2fb85616b6e75 100644 --- a/recipes/biobox_add_taxid/meta.yaml +++ b/recipes/biobox_add_taxid/meta.yaml @@ -1,6 +1,6 @@ {% set name = "biobox_add_taxid" %} -{% set version = "0.5" %} -{% set sha256 = "87a1e7f346487453c132a218040dd842a25273ea2312293dea5704e313e03e99" %} +{% set version = "0.6" %} +{% set sha256 = "9ca7fca41aa53c3ae26d15328944954419b894e1ee7a4745222c808b5e4ff147" %} package: name: {{ name|lower }} From 17b3f0565c05e39f60967f738c4b1ee432417ce7 Mon Sep 17 00:00:00 2001 From: Konstantinn Bonnet <50845450+qwx9@users.noreply.github.com> Date: Sun, 8 Sep 2024 21:37:05 +0200 Subject: [PATCH 1398/1589] update strangepg and its requirements (#50552) update strangepg tests and bump for for usage message formatting --- recipes/strangepg/meta.yaml | 25 ++++++++++++------------- recipes/strangepg/run_test.sh | 6 ++++++ 2 files changed, 18 insertions(+), 13 deletions(-) create mode 100644 recipes/strangepg/run_test.sh diff --git a/recipes/strangepg/meta.yaml b/recipes/strangepg/meta.yaml index 6889a4d933a92..ed51626a06e44 100644 --- a/recipes/strangepg/meta.yaml +++ b/recipes/strangepg/meta.yaml @@ -1,6 +1,6 @@ {% set name = "strangepg" %} -{% set version = "0.8.2" %} -{% set ref = "7fbd2957cf1bf0295b6c4bd95fcfc9f1970ecb13" %} +{% set version = "0.8.3" %} +{% set ref = "567ed9d583766ab7cdb4e28261c8a611334a7472" %} package: name: {{ name }} @@ -8,13 +8,19 @@ package: source: url: https://github.com/qwx9/{{ name }}/archive/{{ ref }}.tar.gz - sha256: bac0f9bbce7fdee6a555cca37536ed7f41b8c594aa16ff92212345e2664b7f67 + sha256: d33869f687fad3b8756565da727014a2cdf2dea3d7197816a8af1a8390e113cd build: number: 0 skip: True # [not linux] run_exports: - {{ pin_subpackage('strangepg', max_pin=None) }} + ignore_run_exports: + - libxcb + - xorg-libxau + - xorg-libxdmcp + - xorg-libxext + - xorg-libxfixes requirements: build: @@ -27,18 +33,12 @@ requirements: - {{ cdt('libglvnd-glx') }} # [cdt_name != 'cos6'] host: - xorg-libx11 - - xorg-libxau - - xorg-libxcb - xorg-libxcursor - - xorg-libxdmcp - - xorg-libxext - - xorg-libxfixes - xorg-libxi - - xorg-libxrandr run: + - libxcb - xorg-libx11 - xorg-libxau - - xorg-libxcb - xorg-libxcursor - xorg-libxdmcp - xorg-libxext @@ -47,9 +47,8 @@ requirements: - xorg-libxrandr test: - commands: - - which strpg - - which strawk + source_files: + - cmd/main.awk about: home: https://github.com/qwx9/{{ name }} diff --git a/recipes/strangepg/run_test.sh b/recipes/strangepg/run_test.sh new file mode 100644 index 0000000000000..1f8f7099292a5 --- /dev/null +++ b/recipes/strangepg/run_test.sh @@ -0,0 +1,6 @@ +#!/bin/sh -e +# https://github.com/bioconda/bioconda-recipes/pull/29042#issuecomment-864465780 + +strpg -h 2>/dev/null +strpg /dev/mordor 2>/dev/null || [[ $? == 1 ]] +echo | strawk -f cmd/main.awk From be1abb74788357a93b515583428a34a2486e4c62 Mon Sep 17 00:00:00 2001 From: Samuel Aroney <41124903+AroneyS@users.noreply.github.com> Date: Mon, 9 Sep 2024 14:14:18 +1000 Subject: [PATCH 1399/1589] Update binchicken recipe (#50553) * Fix binchicken recipe * bump build version --- recipes/binchicken/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/binchicken/meta.yaml b/recipes/binchicken/meta.yaml index b770c8cd7694e..b64097ecd7181 100644 --- a/recipes/binchicken/meta.yaml +++ b/recipes/binchicken/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 noarch: python script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" entry_points: @@ -32,7 +32,7 @@ requirements: - bird_tool_utils_python - extern - ruamel.yaml >=0.15.99 - - polars =0.20.31 + - polars =1.2.* - pigz - pyarrow - parallel From 9e9c33c223f8ef530ee5c46811b60f64d07426ef Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 9 Sep 2024 02:46:49 -0400 Subject: [PATCH 1400/1589] Update snakemake-executor-plugin-kubernetes to 0.2.1 (#50551) --- recipes/snakemake-executor-plugin-kubernetes/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-executor-plugin-kubernetes/meta.yaml b/recipes/snakemake-executor-plugin-kubernetes/meta.yaml index b8549963e466a..f302f655b0d07 100644 --- a/recipes/snakemake-executor-plugin-kubernetes/meta.yaml +++ b/recipes/snakemake-executor-plugin-kubernetes/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-executor-plugin-kubernetes" %} -{% set version = "0.2.0" %} +{% set version = "0.2.1" %} # Upon version update, requirements have to be checked! package: @@ -8,7 +8,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_executor_plugin_kubernetes-{{ version }}.tar.gz - sha256: 83981ad405515880b1b311129fd442c1e17902ee0a673ca14bab5b8ba31d7fbf + sha256: 476c423cb33b71bff2ed11d2ec0aace8bb76e1b9667b408880bcbe2c7fdbe6ef build: noarch: python From 3ca0b76c38c94903188700e975f22bcccda4873c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 9 Sep 2024 02:47:07 -0400 Subject: [PATCH 1401/1589] Update snakemake-executor-plugin-drmaa to 0.1.5 (#50550) --- recipes/snakemake-executor-plugin-drmaa/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-executor-plugin-drmaa/meta.yaml b/recipes/snakemake-executor-plugin-drmaa/meta.yaml index 7937a06afe146..dd409935a535d 100644 --- a/recipes/snakemake-executor-plugin-drmaa/meta.yaml +++ b/recipes/snakemake-executor-plugin-drmaa/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-executor-plugin-drmaa" %} -{% set version = "0.1.4" %} +{% set version = "0.1.5" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_executor_plugin_drmaa-{{ version }}.tar.gz - sha256: 93ddefc3fcb5ee2241e4622d04fd1ffcfc58776ff9e723e958a0da2cc2c5fcb7 + sha256: 24fe16fc1f1e7ef75bc213cdb960b674bb130ec918a9f6106511a667ffc661b2 build: noarch: python From 48e9e8d9db70d3f1dd9353b66c4ed339f07b3f36 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 9 Sep 2024 03:53:56 -0400 Subject: [PATCH 1402/1589] Update snakemake to 8.20.1 (#50401) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update snakemake to 8.19.0 * bump deps * Update snakemake to 8.19.1 * trigger rerun because of checksum failure * Update snakemake to 8.19.2 * Update snakemake to 8.19.3 * trigger rerun * trigger rerun * Update snakemake to 8.20.0 * Update snakemake to 8.20.1 * remove outdated dependency --------- Co-authored-by: mencian Co-authored-by: Johannes Koester Co-authored-by: Johannes Köster --- recipes/snakemake/meta.yaml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/recipes/snakemake/meta.yaml b/recipes/snakemake/meta.yaml index d14b6c0f29e59..2ce56f5e9125f 100644 --- a/recipes/snakemake/meta.yaml +++ b/recipes/snakemake/meta.yaml @@ -1,7 +1,7 @@ # Attention: when upgrading the version, please compare below dependencies with # https://github.com/snakemake/snakemake/blob/{version}/setup.cfg {% set name = "snakemake" %} -{% set version = "8.18.2" %} +{% set version = "8.20.1" %} package: name: {{ name }} @@ -9,7 +9,7 @@ package: source: url: https://pypi.io/packages/source/s/{{ name }}/snakemake-{{ version }}.tar.gz - sha256: 7dc8cdc3c836444c2bc3d67a4a7f4d703557c1bf96a90da18f312f4df9daefc4 + sha256: 69d370200d73fd3c16b1ad2041be2102c52f1c89e3777d2c9b5758297bef5f2f build: number: 0 @@ -103,11 +103,10 @@ outputs: - requests >=2.8.1 - reretry - smart_open >=4.0,<8.0 - - snakemake-interface-executor-plugins >=9.1.0,<10.0.0 + - snakemake-interface-executor-plugins >=9.2.0,<10.0.0 - snakemake-interface-common >=1.17.0,<2.0 - - snakemake-interface-storage-plugins >=3.1.0,<4.0 + - snakemake-interface-storage-plugins >=3.2.3,<4.0 - snakemake-interface-report-plugins >=1.0.0,<2.0.0 - - stopit - tabulate - throttler - toposort >=1.10,<2.0 From a60daf45e0c79027d36a85c49b57bcd364dd1717 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Plaza=20O=C3=B1ate?= <4588656+fplazaonate@users.noreply.github.com> Date: Mon, 9 Sep 2024 13:32:40 +0200 Subject: [PATCH 1403/1589] Update vcflib (#50531) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Disable EXTRA_FLAGS that set march=native optimisations * Bump build version * Add comment line about disabling EXTRA_FLAGS * Update recipes/vcflib/build.sh Co-authored-by: Björn Grüning --------- Co-authored-by: Björn Grüning --- recipes/vcflib/build.sh | 3 ++- recipes/vcflib/meta.yaml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/vcflib/build.sh b/recipes/vcflib/build.sh index ac929087a86e7..bd7be785432e0 100644 --- a/recipes/vcflib/build.sh +++ b/recipes/vcflib/build.sh @@ -40,6 +40,7 @@ cmake -S . -B build \ -DZIG=ON -DOPENMP=ON -DWFA_GITMODULE=OFF \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ - -DCMAKE_CXX_FLAGS="${CXXFLAGS}" + -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ + -DEXTRA_FLAGS="" # Disable march=native to build a generic executable, see https://github.com/vcflib/vcflib/issues/401 cmake --build build/ --target install -j 4 -v diff --git a/recipes/vcflib/meta.yaml b/recipes/vcflib/meta.yaml index 03b091e5953c1..8a6274880daf7 100644 --- a/recipes/vcflib/meta.yaml +++ b/recipes/vcflib/meta.yaml @@ -25,7 +25,7 @@ source: folder: zig-macos-x86_64-0.10.1 # [osx] build: - number: 6 + number: 7 run_exports: - {{ pin_subpackage('vcflib', max_pin="x") }} From c3a78396692cfc3338515a1fbce8f36d7d0c7816 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 9 Sep 2024 07:33:43 -0400 Subject: [PATCH 1404/1589] Update thapbi-pict to 1.0.16 (#50559) --- recipes/thapbi-pict/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/thapbi-pict/meta.yaml b/recipes/thapbi-pict/meta.yaml index c545a18f21178..1451e942c5aca 100644 --- a/recipes/thapbi-pict/meta.yaml +++ b/recipes/thapbi-pict/meta.yaml @@ -1,5 +1,5 @@ {% set name = "thapbi-pict" %} -{% set version = "1.0.15" %} +{% set version = "1.0.16" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name | replace("-", "_") }}/{{ name | replace("-", "_") }}-{{ version }}.tar.gz - sha256: 09d621c0186f46a6ea0b7d4439aa6bbc214b3e8deea54f47f2dacac1a332039d + sha256: 85cf6d180db38166bb7ccd14af8c3813e2b3fa0d5026cac76bce8867492563f7 build: noarch: python From 3d336b6f7d3e644aac3cbeae473e579505586cb1 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 9 Sep 2024 16:08:17 +0300 Subject: [PATCH 1405/1589] eigensoft: add aarch64/arm64 builds (#50561) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/eigensoft/build.sh | 4 +++- recipes/eigensoft/meta.yaml | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/recipes/eigensoft/build.sh b/recipes/eigensoft/build.sh index e5d538abac1ba..85a00b34850ed 100644 --- a/recipes/eigensoft/build.sh +++ b/recipes/eigensoft/build.sh @@ -1,6 +1,8 @@ +#!/usr/bin/env bash + set -xeuo pipefail cd src -make all +make -j ${CPU_COUNT} all # Install (makefile install has hard-coded destination, so have to do this manually) mkdir -p $PREFIX/bin diff --git a/recipes/eigensoft/meta.yaml b/recipes/eigensoft/meta.yaml index 346ef87b9d9b4..8f1bc6a86354b 100644 --- a/recipes/eigensoft/meta.yaml +++ b/recipes/eigensoft/meta.yaml @@ -14,7 +14,7 @@ source: - 0003-remove-wrong-cflag.patch # [osx] build: - number: 4 + number: 5 run_exports: - {{ pin_subpackage('eigensoft', max_pin='x.x') }} @@ -44,6 +44,9 @@ about: summary: The EIGENSOFT package implements methods for analzing population structure and performing stratification correction extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 identifiers: - biotools:Eigensoft - doi:10.1371/journal.pgen.0020190 From f6614e8c09a9521864cfe11f98b4ad59c60a0137 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 9 Sep 2024 11:25:40 -0400 Subject: [PATCH 1406/1589] Update truvari to 4.3.1 (#50569) --- recipes/truvari/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/truvari/meta.yaml b/recipes/truvari/meta.yaml index a87cbf94c0803..12ca13de958ae 100644 --- a/recipes/truvari/meta.yaml +++ b/recipes/truvari/meta.yaml @@ -1,6 +1,6 @@ {% set name = "truvari" %} -{% set version = "4.3.0" %} -{% set sha256 = "cb25b3e8163584b51dec06356b89f193674e4388891e29b56c7e5b6f4bb63779" %} +{% set version = "4.3.1" %} +{% set sha256 = "aeb1bec08ad5fbd6a515c76806dfc4c3e67240fb89825049288f29935d49cf54" %} package: name: {{ name|lower }} From bac94ed34e9e00a8bea48dd66d38d3ae3e418a99 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 9 Sep 2024 11:25:51 -0400 Subject: [PATCH 1407/1589] Update f5c to 1.5 (#50567) --- recipes/f5c/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/f5c/meta.yaml b/recipes/f5c/meta.yaml index 7b31342809f0d..2a8ff3789ee82 100644 --- a/recipes/f5c/meta.yaml +++ b/recipes/f5c/meta.yaml @@ -1,5 +1,5 @@ {% set name = "f5c" %} -{% set version = "1.4" %} +{% set version = "1.5" %} package: name: {{ name }} @@ -7,10 +7,10 @@ package: source: url: https://github.com/hasindu2008/f5c/releases/download/v{{ version }}/f5c-v{{ version }}-release.tar.gz - sha256: 9336b35caf6486f9fffc791591ef7b40bea9156ecfb1d315fe222b6e9957d632 + sha256: 3354813a0523ae3fead68cc3ec5859fa745576b5dc88758a9de172184fac20ab build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('f5c', max_pin="x") }} From 3326f5eeabff2a6546941d22f76e30cf4d798087 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 9 Sep 2024 18:53:01 +0300 Subject: [PATCH 1408/1589] seqwish: add linux-aarch64 build (#50563) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/seqwish/build.sh | 17 +++++++++++++++-- recipes/seqwish/meta.yaml | 4 +++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/recipes/seqwish/build.sh b/recipes/seqwish/build.sh index 0b621bb26f65d..699332a22fd00 100644 --- a/recipes/seqwish/build.sh +++ b/recipes/seqwish/build.sh @@ -1,4 +1,7 @@ #!/bin/bash + +set -xe + export LIBRARY_PATH=${PREFIX}/lib export LD_LIBRARY_PATH=${PREFIX}/lib export CPATH=${PREFIX}/include @@ -6,7 +9,17 @@ export C_INCLUDE_PATH=${PREFIX}/include export CPLUS_INCLUDE_PATH=${PREFIX}/include export CPP_INCLUDE_PATH=${PREFIX}/include export CXX_INCLUDE_PATH=${PREFIX}/include -cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=Generic -DEXTRA_FLAGS='-march=sandybridge -Ofast' -cmake --build build + +EXTRA_FLAGS="-Ofast" + +case $(uname -m) in + x86_64) + EXTRA_FLAGS="${EXTRA_FLAGS} -march=sandybridge" + ;; + *) ;; +esac + +cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=Generic -DEXTRA_FLAGS="${EXTRA_FLAGS}" +cmake --build build -j ${CPU_COUNT} mkdir -p $PREFIX/bin mv bin/* $PREFIX/bin diff --git a/recipes/seqwish/meta.yaml b/recipes/seqwish/meta.yaml index 61ad99d0a7389..04cdcf32616b4 100644 --- a/recipes/seqwish/meta.yaml +++ b/recipes/seqwish/meta.yaml @@ -13,7 +13,7 @@ build: skip: True # [osx] run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} - number: 0 + number: 1 requirements: build: @@ -40,6 +40,8 @@ about: summary: Alignment to variation graph inducer extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - AndreaGuarracino skip-lints: From f0234de1ed2d685a3971b52ec8d6fb634005ef8e Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 9 Sep 2024 18:53:20 +0300 Subject: [PATCH 1409/1589] graphmap: add linux-aarch64 build (#50560) Update to 0.6.4 Signed-off-by: Martin Tzvetanov Grigorov --- recipes/graphmap/build.sh | 6 +- recipes/graphmap/graphmap2-aarch64.patch | 9034 ++++++++++++++++++++++ recipes/graphmap/meta.yaml | 12 +- 3 files changed, 9048 insertions(+), 4 deletions(-) create mode 100644 recipes/graphmap/graphmap2-aarch64.patch diff --git a/recipes/graphmap/build.sh b/recipes/graphmap/build.sh index 84d5270b03c2f..8d0b68e45a2ef 100644 --- a/recipes/graphmap/build.sh +++ b/recipes/graphmap/build.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -xe + export CPP_INCLUDE_PATH=${PREFIX}/include export CPLUS_INCLUDE_PATH=${PREFIX}/include export CXX_INCLUDE_PATH=${PREFIX}/include @@ -10,10 +12,10 @@ mkdir -p $PREFIX/bin make modules if [ "$(uname)" == "Darwin" ]; then echo "Installing GraphMap for OSX." - make mac GCC=$CXX GCC_MAC=$CXX + make -j ${CPU_COUNT} mac GCC=$CXX GCC_MAC=$CXX cp bin/Mac/graphmap $PREFIX/bin/graphmap2 else echo "Installing GraphMap for UNIX/Linux." - make GCC=$CXX LD_FLAGS="$LDFLAGS -static-libgcc -static-libstdc++ -m64 -ffreestanding" + make -j ${CPU_COUNT} GCC=$CXX LD_FLAGS="$LDFLAGS -static-libgcc -static-libstdc++ -ffreestanding" cp bin/Linux-x64/graphmap2 $PREFIX/bin fi diff --git a/recipes/graphmap/graphmap2-aarch64.patch b/recipes/graphmap/graphmap2-aarch64.patch new file mode 100644 index 0000000000000..48899e5c02618 --- /dev/null +++ b/recipes/graphmap/graphmap2-aarch64.patch @@ -0,0 +1,9034 @@ +diff --git c/Makefile i/Makefile +index b709f1c..ac14179 100755 +--- c/Makefile ++++ i/Makefile +@@ -44,12 +44,12 @@ CC_LIBS = -static-libgcc -static-libstdc++ -D__cplusplus=201103L + # INCLUDE = -I"./src/" -I"/usr/include/" -I"src/libs/seqan-library-1.4.2/include" + INCLUDE = -I"./src/" -I"/usr/include/" -I"$(CODEBASE)/seqlib/src/libs/seqan-library-2.0.1/include" -I"$(CODEBASE)/seqlib/src/libs/libdivsufsort-2.0.1-64bit/" $(CODEBASE_SRC_FOLDERS) + +-CC_FLAGS_DEBUG = -O3 -g -rdynamic -c -fmessage-length=0 -ffreestanding -fopenmp -m64 -std=c++11 -Werror=return-type -pthread -march=native +-CC_FLAGS_RELEASE = -DRELEASE_VERSION -g -O3 -fdata-sections -ffunction-sections -c -fmessage-length=0 -ffreestanding -fopenmp -m64 -std=c++11 -Werror=return-type -pthread # -march=native +-CC_FLAGS_EXTCIGAR = -DRELEASE_VERSION -DUSE_EXTENDED_CIGAR_FORMAT -g -O3 -fdata-sections -ffunction-sections -c -fmessage-length=0 -ffreestanding -fopenmp -m64 -std=c++11 -Werror=return-type -pthread -march=native +-CC_FLAGS_NOT_RELEASE = -g -O3 -fdata-sections -ffunction-sections -c -fmessage-length=0 -ffreestanding -fopenmp -m64 -std=c++11 -Werror=return-type -Wuninitialized -pthread -march=native +-CC_FLAGS_NOT_RELEASE_EXT = -g -O3 -DUSE_EXTENDED_CIGAR_FORMAT -fdata-sections -ffunction-sections -c -fmessage-length=0 -ffreestanding -fopenmp -m64 -std=c++11 -Werror=return-type -Wuninitialized -pthread -march=native +-LD_FLAGS = -static-libgcc -static-libstdc++ -m64 -ffreestanding ++CC_FLAGS_DEBUG = -O3 -g -rdynamic -c -fmessage-length=0 -ffreestanding -fopenmp -std=c++11 -Werror=return-type -pthread -march=native ++CC_FLAGS_RELEASE = -DRELEASE_VERSION -g -O3 -fdata-sections -ffunction-sections -c -fmessage-length=0 -ffreestanding -fopenmp -std=c++11 -Werror=return-type -pthread # -march=native ++CC_FLAGS_EXTCIGAR = -DRELEASE_VERSION -DUSE_EXTENDED_CIGAR_FORMAT -g -O3 -fdata-sections -ffunction-sections -c -fmessage-length=0 -ffreestanding -fopenmp -std=c++11 -Werror=return-type -pthread -march=native ++CC_FLAGS_NOT_RELEASE = -g -O3 -fdata-sections -ffunction-sections -c -fmessage-length=0 -ffreestanding -fopenmp -std=c++11 -Werror=return-type -Wuninitialized -pthread -march=native ++CC_FLAGS_NOT_RELEASE_EXT = -g -O3 -DUSE_EXTENDED_CIGAR_FORMAT -fdata-sections -ffunction-sections -c -fmessage-length=0 -ffreestanding -fopenmp -std=c++11 -Werror=return-type -Wuninitialized -pthread -march=native ++LD_FLAGS = -static-libgcc -static-libstdc++ -ffreestanding + # LD_LIBS = -lpthread -lgomp -lm -lz -ldivsufsort64 + LD_LIBS = -lpthread -lgomp -lm -lz + +diff --git c/src/ksw2/ksw2_extd2_sse.cc i/src/ksw2/ksw2_extd2_sse.cc +index 56cd8cd..85da803 100644 +--- c/src/ksw2/ksw2_extd2_sse.cc ++++ i/src/ksw2/ksw2_extd2_sse.cc +@@ -3,13 +3,25 @@ + #include + #include "ksw2.h" + +-#ifdef __SSE2__ +-#include ++#ifdef __x86_64__ ++ #ifdef __SSE2__ ++ #include ++ #define KSW_EXTD2_SSE_SUPPORTED 1 ++ #endif // __SSE2__ + +-#ifdef __SSE4_1__ +-#include +-#endif ++ #ifdef __SSE4_1__ ++ #include ++ #endif ++#else ++ #define SSE2NEON_PRECISE_MINMAX 1 ++ #define SSE2NEON_PRECISE_DIV 1 ++ #define SSE2NEON_PRECISE_SQRT 1 ++ #define SSE2NEON_PRECISE_DP 1 ++ #include "sse2neon.h" ++ #define KSW_EXTD2_SSE_SUPPORTED 1 ++#endif //__x86_64__ + ++#ifdef KSW_EXTD2_SSE_SUPPORTED + void ksw_extd2_sse(void *km, int qlen, const uint8_t *query, int tlen, const uint8_t *target, int8_t m, const int8_t *mat, + int8_t q, int8_t e, int8_t q2, int8_t e2, int w, int zdrop, int flag, ksw_extz_t *ez) + { +@@ -371,4 +383,4 @@ void ksw_extd2_sse(void *km, int qlen, const uint8_t *query, int tlen, const uin + kfree(km, mem2); kfree(km, off); + } + } +-#endif // __SSE2__ ++#endif // KSW_EXTD2_SSE_SUPPORTED +diff --git c/src/ksw2/ksw2_exts2_sse.cc i/src/ksw2/ksw2_exts2_sse.cc +index 6decd2d..3191355 100644 +--- c/src/ksw2/ksw2_exts2_sse.cc ++++ i/src/ksw2/ksw2_exts2_sse.cc +@@ -3,13 +3,25 @@ + #include + #include "ksw2.h" + +-#ifdef __SSE2__ +-#include ++#ifdef __x86_64__ ++ #ifdef __SSE2__ ++ #include ++ #define KSW_EXTS2_SSE_SUPPORTED 1 ++ #endif // __SSE2__ + +-#ifdef __SSE4_1__ +-#include +-#endif ++ #ifdef __SSE4_1__ ++ #include ++ #endif ++#else ++ #define SSE2NEON_PRECISE_MINMAX 1 ++ #define SSE2NEON_PRECISE_DIV 1 ++ #define SSE2NEON_PRECISE_SQRT 1 ++ #define SSE2NEON_PRECISE_DP 1 ++ #include "sse2neon.h" ++ #define KSW_EXTS2_SSE_SUPPORTED 1 ++#endif //__x86_64__ + ++#ifdef KSW_EXTS2_SSE_SUPPORTED + void ksw_exts2_sse(void *km, int qlen, const uint8_t *query, int tlen, const uint8_t *target, int8_t m, const int8_t *mat, + int8_t q, int8_t e, int8_t q2, int8_t noncan, int zdrop, int flag, ksw_extz_t *ez) + { +@@ -354,4 +366,4 @@ void ksw_exts2_sse(void *km, int qlen, const uint8_t *query, int tlen, const uin + kfree(km, mem2); kfree(km, off); + } + } +-#endif // __SSE2__ ++#endif // KSW_EXTS2_SSE_SUPPORTED +diff --git c/src/ksw2/ksw2_extz2_sse.cc i/src/ksw2/ksw2_extz2_sse.cc +index f21f184..6df4b64 100644 +--- c/src/ksw2/ksw2_extz2_sse.cc ++++ i/src/ksw2/ksw2_extz2_sse.cc +@@ -2,13 +2,26 @@ + #include + #include "ksw2.h" + +-#ifdef __SSE2__ +-#include + +-#ifdef __SSE4_1__ +-#include +-#endif ++#ifdef __x86_64__ ++ #ifdef __SSE2__ ++ #include ++ #define KSW_EXTZ2_SSE_SUPPORTED 1 ++ #endif // __SSE2__ ++ ++ #ifdef __SSE4_1__ ++ #include ++ #endif ++#else ++ #define SSE2NEON_PRECISE_MINMAX 1 ++ #define SSE2NEON_PRECISE_DIV 1 ++ #define SSE2NEON_PRECISE_SQRT 1 ++ #define SSE2NEON_PRECISE_DP 1 ++ #include "sse2neon.h" ++ #define KSW_EXTZ2_SSE_SUPPORTED 1 ++#endif //__x86_64__ + ++#ifdef KSW_EXTZ2_SSE_SUPPORTED + void ksw_extz2_sse(void *km, int qlen, const uint8_t *query, int tlen, const uint8_t *target, int8_t m, const int8_t *mat, int8_t q, int8_t e, int w, int zdrop, int flag, ksw_extz_t *ez) + { + #define __dp_code_block1 \ +@@ -284,4 +297,4 @@ void ksw_extz2_sse(void *km, int qlen, const uint8_t *query, int tlen, const uin + kfree(km, mem2); kfree(km, off); + } + } +-#endif // __SSE2__ ++#endif // KSW_EXTZ2_SSE_SUPPORTED +diff --git c/src/ksw2/ksw2_ll_sse.cc i/src/ksw2/ksw2_ll_sse.cc +index 6e13049..e2d49bf 100644 +--- c/src/ksw2/ksw2_ll_sse.cc ++++ i/src/ksw2/ksw2_ll_sse.cc +@@ -1,16 +1,26 @@ + #include + #include + #include +-#include + #include "ksw2.h" + ++#ifdef __x86_64__ ++ #include ++ ++#else ++ #define SSE2NEON_PRECISE_MINMAX 1 ++ #define SSE2NEON_PRECISE_DIV 1 ++ #define SSE2NEON_PRECISE_SQRT 1 ++ #define SSE2NEON_PRECISE_DP 1 ++ #include "sse2neon.h" ++#endif //__x86_64__ ++ + #ifdef __GNUC__ + #define LIKELY(x) __builtin_expect((x),1) + #define UNLIKELY(x) __builtin_expect((x),0) + #else + #define LIKELY(x) (x) + #define UNLIKELY(x) (x) +-#endif ++#endif // __GNUC__ + + typedef struct { + int qlen, slen; +diff --git c/src/sse2neon.h i/src/sse2neon.h +new file mode 100644 +index 0000000..44d26af +--- /dev/null ++++ i/src/sse2neon.h +@@ -0,0 +1,8848 @@ ++#ifndef SSE2NEON_H ++#define SSE2NEON_H ++ ++// This header file provides a simple API translation layer ++// between SSE intrinsics to their corresponding Arm/Aarch64 NEON versions ++// ++// This header file does not yet translate all of the SSE intrinsics. ++// ++// Contributors to this work are: ++// John W. Ratcliff ++// Brandon Rowlett ++// Ken Fast ++// Eric van Beurden ++// Alexander Potylitsin ++// Hasindu Gamaarachchi ++// Jim Huang ++// Mark Cheng ++// Malcolm James MacLeod ++// Devin Hussey (easyaspi314) ++// Sebastian Pop ++// Developer Ecosystem Engineering ++// Danila Kutenin ++// François Turban (JishinMaster) ++// Pei-Hsuan Hung ++// Yang-Hao Yuan ++// Syoyo Fujita ++// Brecht Van Lommel ++ ++/* ++ * sse2neon is freely redistributable under the MIT License. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a copy ++ * of this software and associated documentation files (the "Software"), to deal ++ * in the Software without restriction, including without limitation the rights ++ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ++ * copies of the Software, and to permit persons to whom the Software is ++ * furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice shall be included in ++ * all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++ * SOFTWARE. ++ */ ++ ++/* Tunable configurations */ ++ ++/* Enable precise implementation of math operations ++ * This would slow down the computation a bit, but gives consistent result with ++ * x86 SSE. (e.g. would solve a hole or NaN pixel in the rendering result) ++ */ ++/* _mm_min|max_ps|ss|pd|sd */ ++#ifndef SSE2NEON_PRECISE_MINMAX ++#define SSE2NEON_PRECISE_MINMAX (0) ++#endif ++/* _mm_rcp_ps and _mm_div_ps */ ++#ifndef SSE2NEON_PRECISE_DIV ++#define SSE2NEON_PRECISE_DIV (0) ++#endif ++/* _mm_sqrt_ps and _mm_rsqrt_ps */ ++#ifndef SSE2NEON_PRECISE_SQRT ++#define SSE2NEON_PRECISE_SQRT (0) ++#endif ++/* _mm_dp_pd */ ++#ifndef SSE2NEON_PRECISE_DP ++#define SSE2NEON_PRECISE_DP (0) ++#endif ++ ++/* compiler specific definitions */ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma push_macro("FORCE_INLINE") ++#pragma push_macro("ALIGN_STRUCT") ++#define FORCE_INLINE static inline __attribute__((always_inline)) ++#define ALIGN_STRUCT(x) __attribute__((aligned(x))) ++#define _sse2neon_likely(x) __builtin_expect(!!(x), 1) ++#define _sse2neon_unlikely(x) __builtin_expect(!!(x), 0) ++#else /* non-GNU / non-clang compilers */ ++#warning "Macro name collisions may happen with unsupported compiler." ++#ifndef FORCE_INLINE ++#define FORCE_INLINE static inline ++#endif ++#ifndef ALIGN_STRUCT ++#define ALIGN_STRUCT(x) __declspec(align(x)) ++#endif ++#define _sse2neon_likely(x) (x) ++#define _sse2neon_unlikely(x) (x) ++#endif ++ ++/* C language does not allow initializing a variable with a function call. */ ++#ifdef __cplusplus ++#define _sse2neon_const static const ++#else ++#define _sse2neon_const const ++#endif ++ ++#include ++#include ++ ++/* Architecture-specific build options */ ++/* FIXME: #pragma GCC push_options is only available on GCC */ ++#if defined(__GNUC__) ++#if defined(__arm__) && __ARM_ARCH == 7 ++/* According to ARM C Language Extensions Architecture specification, ++ * __ARM_NEON is defined to a value indicating the Advanced SIMD (NEON) ++ * architecture supported. ++ */ ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error "You must enable NEON instructions (e.g. -mfpu=neon) to use SSE2NEON." ++#endif ++#if !defined(__clang__) ++#pragma GCC push_options ++#pragma GCC target("fpu=neon") ++#endif ++#elif defined(__aarch64__) ++#if !defined(__clang__) ++#pragma GCC push_options ++#pragma GCC target("+simd") ++#endif ++#elif __ARM_ARCH == 8 ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error \ ++ "You must enable NEON instructions (e.g. -mfpu=neon-fp-armv8) to use SSE2NEON." ++#endif ++#if !defined(__clang__) ++#pragma GCC push_options ++#endif ++#else ++#error "Unsupported target. Must be either ARMv7-A+NEON or ARMv8-A." ++#endif ++#endif ++ ++#include ++#if !defined(__aarch64__) && (__ARM_ARCH == 8) ++#if defined __has_include && __has_include() ++#include ++#endif ++#endif ++ ++/* Rounding functions require either Aarch64 instructions or libm failback */ ++#if !defined(__aarch64__) ++#include ++#endif ++ ++/* On ARMv7, some registers, such as PMUSERENR and PMCCNTR, are read-only ++ * or even not accessible in user mode. ++ * To write or access to these registers in user mode, ++ * we have to perform syscall instead. ++ */ ++#if !defined(__aarch64__) ++#include ++#endif ++ ++/* "__has_builtin" can be used to query support for built-in functions ++ * provided by gcc/clang and other compilers that support it. ++ */ ++#ifndef __has_builtin /* GCC prior to 10 or non-clang compilers */ ++/* Compatibility with gcc <= 9 */ ++#if defined(__GNUC__) && (__GNUC__ <= 9) ++#define __has_builtin(x) HAS##x ++#define HAS__builtin_popcount 1 ++#define HAS__builtin_popcountll 1 ++#else ++#define __has_builtin(x) 0 ++#endif ++#endif ++ ++/** ++ * MACRO for shuffle parameter for _mm_shuffle_ps(). ++ * Argument fp3 is a digit[0123] that represents the fp from argument "b" ++ * of mm_shuffle_ps that will be placed in fp3 of result. fp2 is the same ++ * for fp2 in result. fp1 is a digit[0123] that represents the fp from ++ * argument "a" of mm_shuffle_ps that will be places in fp1 of result. ++ * fp0 is the same for fp0 of result. ++ */ ++#define _MM_SHUFFLE(fp3, fp2, fp1, fp0) \ ++ (((fp3) << 6) | ((fp2) << 4) | ((fp1) << 2) | ((fp0))) ++ ++/* Rounding mode macros. */ ++#define _MM_FROUND_TO_NEAREST_INT 0x00 ++#define _MM_FROUND_TO_NEG_INF 0x01 ++#define _MM_FROUND_TO_POS_INF 0x02 ++#define _MM_FROUND_TO_ZERO 0x03 ++#define _MM_FROUND_CUR_DIRECTION 0x04 ++#define _MM_FROUND_NO_EXC 0x08 ++#define _MM_FROUND_RAISE_EXC 0x00 ++#define _MM_FROUND_NINT (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_FLOOR (_MM_FROUND_TO_NEG_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_CEIL (_MM_FROUND_TO_POS_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_TRUNC (_MM_FROUND_TO_ZERO | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_RINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_NEARBYINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_NO_EXC) ++#define _MM_ROUND_NEAREST 0x0000 ++#define _MM_ROUND_DOWN 0x2000 ++#define _MM_ROUND_UP 0x4000 ++#define _MM_ROUND_TOWARD_ZERO 0x6000 ++/* Flush zero mode macros. */ ++#define _MM_FLUSH_ZERO_MASK 0x8000 ++#define _MM_FLUSH_ZERO_ON 0x8000 ++#define _MM_FLUSH_ZERO_OFF 0x0000 ++/* Denormals are zeros mode macros. */ ++#define _MM_DENORMALS_ZERO_MASK 0x0040 ++#define _MM_DENORMALS_ZERO_ON 0x0040 ++#define _MM_DENORMALS_ZERO_OFF 0x0000 ++ ++/* indicate immediate constant argument in a given range */ ++#define __constrange(a, b) const ++ ++/* A few intrinsics accept traditional data types like ints or floats, but ++ * most operate on data types that are specific to SSE. ++ * If a vector type ends in d, it contains doubles, and if it does not have ++ * a suffix, it contains floats. An integer vector type can contain any type ++ * of integer, from chars to shorts to unsigned long longs. ++ */ ++typedef int64x1_t __m64; ++typedef float32x4_t __m128; /* 128-bit vector containing 4 floats */ ++// On ARM 32-bit architecture, the float64x2_t is not supported. ++// The data type __m128d should be represented in a different way for related ++// intrinsic conversion. ++#if defined(__aarch64__) ++typedef float64x2_t __m128d; /* 128-bit vector containing 2 doubles */ ++#else ++typedef float32x4_t __m128d; ++#endif ++typedef int64x2_t __m128i; /* 128-bit vector containing integers */ ++ ++// __int64 is defined in the Intrinsics Guide which maps to different datatype ++// in different data model ++#if !(defined(_WIN32) || defined(_WIN64) || defined(__int64)) ++#if (defined(__x86_64__) || defined(__i386__)) ++#define __int64 long long ++#else ++#define __int64 int64_t ++#endif ++#endif ++ ++/* type-safe casting between types */ ++ ++#define vreinterpretq_m128_f16(x) vreinterpretq_f32_f16(x) ++#define vreinterpretq_m128_f32(x) (x) ++#define vreinterpretq_m128_f64(x) vreinterpretq_f32_f64(x) ++ ++#define vreinterpretq_m128_u8(x) vreinterpretq_f32_u8(x) ++#define vreinterpretq_m128_u16(x) vreinterpretq_f32_u16(x) ++#define vreinterpretq_m128_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128_s8(x) vreinterpretq_f32_s8(x) ++#define vreinterpretq_m128_s16(x) vreinterpretq_f32_s16(x) ++#define vreinterpretq_m128_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_f16_m128(x) vreinterpretq_f16_f32(x) ++#define vreinterpretq_f32_m128(x) (x) ++#define vreinterpretq_f64_m128(x) vreinterpretq_f64_f32(x) ++ ++#define vreinterpretq_u8_m128(x) vreinterpretq_u8_f32(x) ++#define vreinterpretq_u16_m128(x) vreinterpretq_u16_f32(x) ++#define vreinterpretq_u32_m128(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_s8_m128(x) vreinterpretq_s8_f32(x) ++#define vreinterpretq_s16_m128(x) vreinterpretq_s16_f32(x) ++#define vreinterpretq_s32_m128(x) vreinterpretq_s32_f32(x) ++#define vreinterpretq_s64_m128(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_m128i_s8(x) vreinterpretq_s64_s8(x) ++#define vreinterpretq_m128i_s16(x) vreinterpretq_s64_s16(x) ++#define vreinterpretq_m128i_s32(x) vreinterpretq_s64_s32(x) ++#define vreinterpretq_m128i_s64(x) (x) ++ ++#define vreinterpretq_m128i_u8(x) vreinterpretq_s64_u8(x) ++#define vreinterpretq_m128i_u16(x) vreinterpretq_s64_u16(x) ++#define vreinterpretq_m128i_u32(x) vreinterpretq_s64_u32(x) ++#define vreinterpretq_m128i_u64(x) vreinterpretq_s64_u64(x) ++ ++#define vreinterpretq_f32_m128i(x) vreinterpretq_f32_s64(x) ++#define vreinterpretq_f64_m128i(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_s8_m128i(x) vreinterpretq_s8_s64(x) ++#define vreinterpretq_s16_m128i(x) vreinterpretq_s16_s64(x) ++#define vreinterpretq_s32_m128i(x) vreinterpretq_s32_s64(x) ++#define vreinterpretq_s64_m128i(x) (x) ++ ++#define vreinterpretq_u8_m128i(x) vreinterpretq_u8_s64(x) ++#define vreinterpretq_u16_m128i(x) vreinterpretq_u16_s64(x) ++#define vreinterpretq_u32_m128i(x) vreinterpretq_u32_s64(x) ++#define vreinterpretq_u64_m128i(x) vreinterpretq_u64_s64(x) ++ ++#define vreinterpret_m64_s8(x) vreinterpret_s64_s8(x) ++#define vreinterpret_m64_s16(x) vreinterpret_s64_s16(x) ++#define vreinterpret_m64_s32(x) vreinterpret_s64_s32(x) ++#define vreinterpret_m64_s64(x) (x) ++ ++#define vreinterpret_m64_u8(x) vreinterpret_s64_u8(x) ++#define vreinterpret_m64_u16(x) vreinterpret_s64_u16(x) ++#define vreinterpret_m64_u32(x) vreinterpret_s64_u32(x) ++#define vreinterpret_m64_u64(x) vreinterpret_s64_u64(x) ++ ++#define vreinterpret_m64_f16(x) vreinterpret_s64_f16(x) ++#define vreinterpret_m64_f32(x) vreinterpret_s64_f32(x) ++#define vreinterpret_m64_f64(x) vreinterpret_s64_f64(x) ++ ++#define vreinterpret_u8_m64(x) vreinterpret_u8_s64(x) ++#define vreinterpret_u16_m64(x) vreinterpret_u16_s64(x) ++#define vreinterpret_u32_m64(x) vreinterpret_u32_s64(x) ++#define vreinterpret_u64_m64(x) vreinterpret_u64_s64(x) ++ ++#define vreinterpret_s8_m64(x) vreinterpret_s8_s64(x) ++#define vreinterpret_s16_m64(x) vreinterpret_s16_s64(x) ++#define vreinterpret_s32_m64(x) vreinterpret_s32_s64(x) ++#define vreinterpret_s64_m64(x) (x) ++ ++#define vreinterpret_f32_m64(x) vreinterpret_f32_s64(x) ++ ++#if defined(__aarch64__) ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f64_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f64_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) vreinterpretq_f64_f32(x) ++#define vreinterpretq_m128d_f64(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f64(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f64(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f64(x) ++ ++#define vreinterpretq_f64_m128d(x) (x) ++#define vreinterpretq_f32_m128d(x) vreinterpretq_f32_f64(x) ++#else ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_m128d_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_f32_m128d(x) (x) ++#endif ++ ++// A struct is defined in this header file called 'SIMDVec' which can be used ++// by applications which attempt to access the contents of an __m128 struct ++// directly. It is important to note that accessing the __m128 struct directly ++// is bad coding practice by Microsoft: @see: ++// https://docs.microsoft.com/en-us/cpp/cpp/m128 ++// ++// However, some legacy source code may try to access the contents of an __m128 ++// struct directly so the developer can use the SIMDVec as an alias for it. Any ++// casting must be done manually by the developer, as you cannot cast or ++// otherwise alias the base NEON data type for intrinsic operations. ++// ++// union intended to allow direct access to an __m128 variable using the names ++// that the MSVC compiler provides. This union should really only be used when ++// trying to access the members of the vector as integer values. GCC/clang ++// allow native access to the float members through a simple array access ++// operator (in C since 4.6, in C++ since 4.8). ++// ++// Ideally direct accesses to SIMD vectors should not be used since it can cause ++// a performance hit. If it really is needed however, the original __m128 ++// variable can be aliased with a pointer to this union and used to access ++// individual components. The use of this union should be hidden behind a macro ++// that is used throughout the codebase to access the members instead of always ++// declaring this type of variable. ++typedef union ALIGN_STRUCT(16) SIMDVec { ++ float m128_f32[4]; // as floats - DON'T USE. Added for convenience. ++ int8_t m128_i8[16]; // as signed 8-bit integers. ++ int16_t m128_i16[8]; // as signed 16-bit integers. ++ int32_t m128_i32[4]; // as signed 32-bit integers. ++ int64_t m128_i64[2]; // as signed 64-bit integers. ++ uint8_t m128_u8[16]; // as unsigned 8-bit integers. ++ uint16_t m128_u16[8]; // as unsigned 16-bit integers. ++ uint32_t m128_u32[4]; // as unsigned 32-bit integers. ++ uint64_t m128_u64[2]; // as unsigned 64-bit integers. ++} SIMDVec; ++ ++// casting using SIMDVec ++#define vreinterpretq_nth_u64_m128i(x, n) (((SIMDVec *) &x)->m128_u64[n]) ++#define vreinterpretq_nth_u32_m128i(x, n) (((SIMDVec *) &x)->m128_u32[n]) ++#define vreinterpretq_nth_u8_m128i(x, n) (((SIMDVec *) &x)->m128_u8[n]) ++ ++/* SSE macros */ ++#define _MM_GET_FLUSH_ZERO_MODE _sse2neon_mm_get_flush_zero_mode ++#define _MM_SET_FLUSH_ZERO_MODE _sse2neon_mm_set_flush_zero_mode ++#define _MM_GET_DENORMALS_ZERO_MODE _sse2neon_mm_get_denormals_zero_mode ++#define _MM_SET_DENORMALS_ZERO_MODE _sse2neon_mm_set_denormals_zero_mode ++ ++// Function declaration ++// SSE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(); ++FORCE_INLINE __m128 _mm_move_ss(__m128, __m128); ++FORCE_INLINE __m128 _mm_or_ps(__m128, __m128); ++FORCE_INLINE __m128 _mm_set_ps1(float); ++FORCE_INLINE __m128 _mm_setzero_ps(void); ++// SSE2 ++FORCE_INLINE __m128i _mm_and_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_castps_si128(__m128); ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128); ++FORCE_INLINE __m128d _mm_move_sd(__m128d, __m128d); ++FORCE_INLINE __m128i _mm_or_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_set_epi32(int, int, int, int); ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t, int64_t); ++FORCE_INLINE __m128d _mm_set_pd(double, double); ++FORCE_INLINE __m128i _mm_set1_epi32(int); ++FORCE_INLINE __m128i _mm_setzero_si128(); ++// SSE4.1 ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d); ++FORCE_INLINE __m128 _mm_ceil_ps(__m128); ++FORCE_INLINE __m128d _mm_floor_pd(__m128d); ++FORCE_INLINE __m128 _mm_floor_ps(__m128); ++FORCE_INLINE __m128d _mm_round_pd(__m128d, int); ++FORCE_INLINE __m128 _mm_round_ps(__m128, int); ++// SSE4.2 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t, uint8_t); ++ ++/* Backwards compatibility for compilers with lack of specific type support */ ++ ++// Older gcc does not define vld1q_u8_x4 type ++#if defined(__GNUC__) && !defined(__clang__) && \ ++ ((__GNUC__ <= 11 && defined(__arm__)) || \ ++ (__GNUC__ == 10 && __GNUC_MINOR__ < 3 && defined(__aarch64__)) || \ ++ (__GNUC__ <= 9 && defined(__aarch64__))) ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ uint8x16x4_t ret; ++ ret.val[0] = vld1q_u8(p + 0); ++ ret.val[1] = vld1q_u8(p + 16); ++ ret.val[2] = vld1q_u8(p + 32); ++ ret.val[3] = vld1q_u8(p + 48); ++ return ret; ++} ++#else ++// Wraps vld1q_u8_x4 ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ return vld1q_u8_x4(p); ++} ++#endif ++ ++/* Function Naming Conventions ++ * The naming convention of SSE intrinsics is straightforward. A generic SSE ++ * intrinsic function is given as follows: ++ * _mm__ ++ * ++ * The parts of this format are given as follows: ++ * 1. describes the operation performed by the intrinsic ++ * 2. identifies the data type of the function's primary arguments ++ * ++ * This last part, , is a little complicated. It identifies the ++ * content of the input values, and can be set to any of the following values: ++ * + ps - vectors contain floats (ps stands for packed single-precision) ++ * + pd - vectors cantain doubles (pd stands for packed double-precision) ++ * + epi8/epi16/epi32/epi64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * signed integers ++ * + epu8/epu16/epu32/epu64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * unsigned integers ++ * + si128 - unspecified 128-bit vector or 256-bit vector ++ * + m128/m128i/m128d - identifies input vector types when they are different ++ * than the type of the returned vector ++ * ++ * For example, _mm_setzero_ps. The _mm implies that the function returns ++ * a 128-bit vector. The _ps at the end implies that the argument vectors ++ * contain floats. ++ * ++ * A complete example: Byte Shuffle - pshufb (_mm_shuffle_epi8) ++ * // Set packed 16-bit integers. 128 bits, 8 short, per 16 bits ++ * __m128i v_in = _mm_setr_epi16(1, 2, 3, 4, 5, 6, 7, 8); ++ * // Set packed 8-bit integers ++ * // 128 bits, 16 chars, per 8 bits ++ * __m128i v_perm = _mm_setr_epi8(1, 0, 2, 3, 8, 9, 10, 11, ++ * 4, 5, 12, 13, 6, 7, 14, 15); ++ * // Shuffle packed 8-bit integers ++ * __m128i v_out = _mm_shuffle_epi8(v_in, v_perm); // pshufb ++ * ++ * Data (Number, Binary, Byte Index): ++ +------+------+-------------+------+------+-------------+ ++ | 1 | 2 | 3 | 4 | Number ++ +------+------+------+------+------+------+------+------+ ++ | 0000 | 0001 | 0000 | 0010 | 0000 | 0011 | 0000 | 0100 | Binary ++ +------+------+------+------+------+------+------+------+ ++ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Index ++ +------+------+------+------+------+------+------+------+ ++ ++ +------+------+------+------+------+------+------+------+ ++ | 5 | 6 | 7 | 8 | Number ++ +------+------+------+------+------+------+------+------+ ++ | 0000 | 0101 | 0000 | 0110 | 0000 | 0111 | 0000 | 1000 | Binary ++ +------+------+------+------+------+------+------+------+ ++ | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | Index ++ +------+------+------+------+------+------+------+------+ ++ * Index (Byte Index): ++ +------+------+------+------+------+------+------+------+ ++ | 1 | 0 | 2 | 3 | 8 | 9 | 10 | 11 | ++ +------+------+------+------+------+------+------+------+ ++ ++ +------+------+------+------+------+------+------+------+ ++ | 4 | 5 | 12 | 13 | 6 | 7 | 14 | 15 | ++ +------+------+------+------+------+------+------+------+ ++ * Result: ++ +------+------+------+------+------+------+------+------+ ++ | 1 | 0 | 2 | 3 | 8 | 9 | 10 | 11 | Index ++ +------+------+------+------+------+------+------+------+ ++ | 0001 | 0000 | 0000 | 0010 | 0000 | 0101 | 0000 | 0110 | Binary ++ +------+------+------+------+------+------+------+------+ ++ | 256 | 2 | 5 | 6 | Number ++ +------+------+------+------+------+------+------+------+ ++ ++ +------+------+------+------+------+------+------+------+ ++ | 4 | 5 | 12 | 13 | 6 | 7 | 14 | 15 | Index ++ +------+------+------+------+------+------+------+------+ ++ | 0000 | 0011 | 0000 | 0111 | 0000 | 0100 | 0000 | 1000 | Binary ++ +------+------+------+------+------+------+------+------+ ++ | 3 | 7 | 4 | 8 | Number ++ +------+------+------+------+------+------+-------------+ ++ */ ++ ++/* Constants for use with _mm_prefetch. */ ++enum _mm_hint { ++ _MM_HINT_NTA = 0, /* load data to L1 and L2 cache, mark it as NTA */ ++ _MM_HINT_T0 = 1, /* load data to L1 and L2 cache */ ++ _MM_HINT_T1 = 2, /* load data to L2 cache only */ ++ _MM_HINT_T2 = 3, /* load data to L2 cache only, mark it as NTA */ ++ _MM_HINT_ENTA = 4, /* exclusive version of _MM_HINT_NTA */ ++ _MM_HINT_ET0 = 5, /* exclusive version of _MM_HINT_T0 */ ++ _MM_HINT_ET1 = 6, /* exclusive version of _MM_HINT_T1 */ ++ _MM_HINT_ET2 = 7 /* exclusive version of _MM_HINT_T2 */ ++}; ++ ++// The bit field mapping to the FPCR(floating-point control register) ++typedef struct { ++ uint16_t res0; ++ uint8_t res1 : 6; ++ uint8_t bit22 : 1; ++ uint8_t bit23 : 1; ++ uint8_t bit24 : 1; ++ uint8_t res2 : 7; ++#if defined(__aarch64__) ++ uint32_t res3; ++#endif ++} fpcr_bitfield; ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of b and places it into the high end of the result. ++FORCE_INLINE __m128 _mm_shuffle_ps_1032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in high ++// end of result takes the higher two 32 bit values from b and swaps them and ++// places in low end of result. ++FORCE_INLINE __m128 _mm_shuffle_ps_2301(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b23 = vrev64_f32(vget_high_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b23)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0321(__m128 a, __m128 b) ++{ ++ float32x2_t a21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a21, b03)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2103(__m128 a, __m128 b) ++{ ++ float32x2_t a03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a03, b21)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0101(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b01)); ++} ++ ++// keeps the low 64 bits of b in the low and puts the high 64 bits of a in the ++// high ++FORCE_INLINE __m128 _mm_shuffle_ps_3210(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0011(__m128 a, __m128 b) ++{ ++ float32x2_t a11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a11, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0022(__m128 a, __m128 b) ++{ ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a22, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2200(__m128 a, __m128 b) ++{ ++ float32x2_t a00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a00, b22)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_3202(__m128 a, __m128 b) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t a02 = vset_lane_f32(a0, a22, 1); /* TODO: use vzip ?*/ ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a02, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1133(__m128 a, __m128 b) ++{ ++ float32x2_t a33 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a33, b11)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b20)); ++} ++ ++// Kahan summation for accurate summation of floating-point numbers. ++// http://blog.zachbjornson.com/2019/08/11/fast-float-summation.html ++FORCE_INLINE void _sse2neon_kadd_f32(float *sum, float *c, float y) ++{ ++ y -= *c; ++ float t = *sum + y; ++ *c = (t - *sum) - y; ++ *sum = t; ++} ++ ++#if defined(__ARM_FEATURE_CRYPTO) && \ ++ (defined(__aarch64__) || __has_builtin(__builtin_arm_crypto_vmullp64)) ++// Wraps vmull_p64 ++FORCE_INLINE uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly64_t a = vget_lane_p64(vreinterpret_p64_u64(_a), 0); ++ poly64_t b = vget_lane_p64(vreinterpret_p64_u64(_b), 0); ++ return vreinterpretq_u64_p128(vmull_p64(a, b)); ++} ++#else // ARMv7 polyfill ++// ARMv7/some A64 lacks vmull_p64, but it has vmull_p8. ++// ++// vmull_p8 calculates 8 8-bit->16-bit polynomial multiplies, but we need a ++// 64-bit->128-bit polynomial multiply. ++// ++// It needs some work and is somewhat slow, but it is still faster than all ++// known scalar methods. ++// ++// Algorithm adapted to C from ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/, which is adapted ++// from "Fast Software Polynomial Multiplication on ARM Processors Using the ++// NEON Engine" by Danilo Camara, Conrado Gouvea, Julio Lopez and Ricardo Dahab ++// (https://hal.inria.fr/hal-01506572) ++static uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly8x8_t a = vreinterpret_p8_u64(_a); ++ poly8x8_t b = vreinterpret_p8_u64(_b); ++ ++ // Masks ++ uint8x16_t k48_32 = vcombine_u8(vcreate_u8(0x0000ffffffffffff), ++ vcreate_u8(0x00000000ffffffff)); ++ uint8x16_t k16_00 = vcombine_u8(vcreate_u8(0x000000000000ffff), ++ vcreate_u8(0x0000000000000000)); ++ ++ // Do the multiplies, rotating with vext to get all combinations ++ uint8x16_t d = vreinterpretq_u8_p16(vmull_p8(a, b)); // D = A0 * B0 ++ uint8x16_t e = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 1))); // E = A0 * B1 ++ uint8x16_t f = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 1), b)); // F = A1 * B0 ++ uint8x16_t g = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 2))); // G = A0 * B2 ++ uint8x16_t h = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 2), b)); // H = A2 * B0 ++ uint8x16_t i = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 3))); // I = A0 * B3 ++ uint8x16_t j = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 3), b)); // J = A3 * B0 ++ uint8x16_t k = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 4))); // L = A0 * B4 ++ ++ // Add cross products ++ uint8x16_t l = veorq_u8(e, f); // L = E + F ++ uint8x16_t m = veorq_u8(g, h); // M = G + H ++ uint8x16_t n = veorq_u8(i, j); // N = I + J ++ ++ // Interleave. Using vzip1 and vzip2 prevents Clang from emitting TBL ++ // instructions. ++#if defined(__aarch64__) ++ uint8x16_t lm_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t lm_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t nk_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++ uint8x16_t nk_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++#else ++ uint8x16_t lm_p0 = vcombine_u8(vget_low_u8(l), vget_low_u8(m)); ++ uint8x16_t lm_p1 = vcombine_u8(vget_high_u8(l), vget_high_u8(m)); ++ uint8x16_t nk_p0 = vcombine_u8(vget_low_u8(n), vget_low_u8(k)); ++ uint8x16_t nk_p1 = vcombine_u8(vget_high_u8(n), vget_high_u8(k)); ++#endif ++ // t0 = (L) (P0 + P1) << 8 ++ // t1 = (M) (P2 + P3) << 16 ++ uint8x16_t t0t1_tmp = veorq_u8(lm_p0, lm_p1); ++ uint8x16_t t0t1_h = vandq_u8(lm_p1, k48_32); ++ uint8x16_t t0t1_l = veorq_u8(t0t1_tmp, t0t1_h); ++ ++ // t2 = (N) (P4 + P5) << 24 ++ // t3 = (K) (P6 + P7) << 32 ++ uint8x16_t t2t3_tmp = veorq_u8(nk_p0, nk_p1); ++ uint8x16_t t2t3_h = vandq_u8(nk_p1, k16_00); ++ uint8x16_t t2t3_l = veorq_u8(t2t3_tmp, t2t3_h); ++ ++ // De-interleave ++#if defined(__aarch64__) ++ uint8x16_t t0 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t1 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t2 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++ uint8x16_t t3 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++#else ++ uint8x16_t t1 = vcombine_u8(vget_high_u8(t0t1_l), vget_high_u8(t0t1_h)); ++ uint8x16_t t0 = vcombine_u8(vget_low_u8(t0t1_l), vget_low_u8(t0t1_h)); ++ uint8x16_t t3 = vcombine_u8(vget_high_u8(t2t3_l), vget_high_u8(t2t3_h)); ++ uint8x16_t t2 = vcombine_u8(vget_low_u8(t2t3_l), vget_low_u8(t2t3_h)); ++#endif ++ // Shift the cross products ++ uint8x16_t t0_shift = vextq_u8(t0, t0, 15); // t0 << 8 ++ uint8x16_t t1_shift = vextq_u8(t1, t1, 14); // t1 << 16 ++ uint8x16_t t2_shift = vextq_u8(t2, t2, 13); // t2 << 24 ++ uint8x16_t t3_shift = vextq_u8(t3, t3, 12); // t3 << 32 ++ ++ // Accumulate the products ++ uint8x16_t cross1 = veorq_u8(t0_shift, t1_shift); ++ uint8x16_t cross2 = veorq_u8(t2_shift, t3_shift); ++ uint8x16_t mix = veorq_u8(d, cross1); ++ uint8x16_t r = veorq_u8(mix, cross2); ++ return vreinterpretq_u64_u8(r); ++} ++#endif // ARMv7 polyfill ++ ++// C equivalent: ++// __m128i _mm_shuffle_epi32_default(__m128i a, ++// __constrange(0, 255) int imm) { ++// __m128i ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = a[(imm >> 4) & 0x03]; ret[3] = a[(imm >> 6) & 0x03]; ++// return ret; ++// } ++#define _mm_shuffle_epi32_default(a, imm) \ ++ __extension__({ \ ++ int32x4_t ret; \ ++ ret = vmovq_n_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm) & (0x3))); \ ++ ret = vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 2) & 0x3), \ ++ ret, 1); \ ++ ret = vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 4) & 0x3), \ ++ ret, 2); \ ++ ret = vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 6) & 0x3), \ ++ ret, 3); \ ++ vreinterpretq_m128i_s32(ret); \ ++ }) ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of a and places it into the high end of the result. ++FORCE_INLINE __m128i _mm_shuffle_epi_1032(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in low end ++// of result takes the higher two 32 bit values from a and swaps them and places ++// in high end of result. ++FORCE_INLINE __m128i _mm_shuffle_epi_2301(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a23 = vrev64_s32(vget_high_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a23)); ++} ++ ++// rotates the least significant 32 bits into the most significant 32 bits, and ++// shifts the rest down ++FORCE_INLINE __m128i _mm_shuffle_epi_0321(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 1)); ++} ++ ++// rotates the most significant 32 bits into the least significant 32 bits, and ++// shifts the rest up ++FORCE_INLINE __m128i _mm_shuffle_epi_2103(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 3)); ++} ++ ++// gets the lower 64 bits of a, and places it in the upper 64 bits ++// gets the lower 64 bits of a and places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1010(__m128i a) ++{ ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a10, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements, and places it in the ++// lower 64 bits gets the lower 64 bits of a, and places it in the upper 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1001(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements and places it in the ++// upper 64 bits gets the lower 64 bits of a, swaps the 0 and 1 elements, and ++// places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_0101(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_2211(__m128i a) ++{ ++ int32x2_t a11 = vdup_lane_s32(vget_low_s32(vreinterpretq_s32_m128i(a)), 1); ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ return vreinterpretq_m128i_s32(vcombine_s32(a11, a22)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_0122(__m128i a) ++{ ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a22, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_3332(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a33 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 1); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a33)); ++} ++ ++// FORCE_INLINE __m128i _mm_shuffle_epi32_splat(__m128i a, __constrange(0,255) ++// int imm) ++#if defined(__aarch64__) ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ __extension__({ \ ++ vreinterpretq_m128i_s32( \ ++ vdupq_laneq_s32(vreinterpretq_s32_m128i(a), (imm))); \ ++ }) ++#else ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ __extension__({ \ ++ vreinterpretq_m128i_s32( \ ++ vdupq_n_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)))); \ ++ }) ++#endif ++ ++// NEON does not support a general purpose permute intrinsic ++// Selects four specific single-precision, floating-point values from a and b, ++// based on the mask i. ++// ++// C equivalent: ++// __m128 _mm_shuffle_ps_default(__m128 a, __m128 b, ++// __constrange(0, 255) int imm) { ++// __m128 ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = b[(imm >> 4) & 0x03]; ret[3] = b[(imm >> 6) & 0x03]; ++// return ret; ++// } ++// ++// https://msdn.microsoft.com/en-us/library/vstudio/5f0858x0(v=vs.100).aspx ++#define _mm_shuffle_ps_default(a, b, imm) \ ++ __extension__({ \ ++ float32x4_t ret; \ ++ ret = vmovq_n_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), (imm) & (0x3))); \ ++ ret = vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), ((imm) >> 2) & 0x3), \ ++ ret, 1); \ ++ ret = vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 4) & 0x3), \ ++ ret, 2); \ ++ ret = vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 6) & 0x3), \ ++ ret, 3); \ ++ vreinterpretq_m128_f32(ret); \ ++ }) ++ ++// Shuffles the lower 4 signed or unsigned 16-bit integers in a as specified ++// by imm. ++// https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/y41dkk37(v=vs.100) ++// FORCE_INLINE __m128i _mm_shufflelo_epi16_function(__m128i a, ++// __constrange(0,255) int ++// imm) ++#define _mm_shufflelo_epi16_function(a, imm) \ ++ __extension__({ \ ++ int16x8_t ret = vreinterpretq_s16_m128i(a); \ ++ int16x4_t lowBits = vget_low_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, (imm) & (0x3)), ret, 0); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ vreinterpretq_m128i_s16(ret); \ ++ }) ++ ++// Shuffles the upper 4 signed or unsigned 16-bit integers in a as specified ++// by imm. ++// https://msdn.microsoft.com/en-us/library/13ywktbs(v=vs.100).aspx ++// FORCE_INLINE __m128i _mm_shufflehi_epi16_function(__m128i a, ++// __constrange(0,255) int ++// imm) ++#define _mm_shufflehi_epi16_function(a, imm) \ ++ __extension__({ \ ++ int16x8_t ret = vreinterpretq_s16_m128i(a); \ ++ int16x4_t highBits = vget_high_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, (imm) & (0x3)), ret, 4); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 2) & 0x3), ret, \ ++ 5); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 4) & 0x3), ret, \ ++ 6); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 6) & 0x3), ret, \ ++ 7); \ ++ vreinterpretq_m128i_s16(ret); \ ++ }) ++ ++/* MMX */ ++ ++//_mm_empty is a no-op on arm ++FORCE_INLINE void _mm_empty(void) {} ++ ++/* SSE */ ++ ++// Adds the four single-precision, floating-point values of a and b. ++// ++// r0 := a0 + b0 ++// r1 := a1 + b1 ++// r2 := a2 + b2 ++// r3 := a3 + b3 ++// ++// https://msdn.microsoft.com/en-us/library/vstudio/c9848chc(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_add_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// adds the scalar single-precision floating point values of a and b. ++// https://msdn.microsoft.com/en-us/library/be94x2y6(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_add_ss(__m128 a, __m128 b) ++{ ++ float32_t b0 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++ float32x4_t value = vsetq_lane_f32(b0, vdupq_n_f32(0), 0); ++ // the upper values in the result must be the remnants of . ++ return vreinterpretq_m128_f32(vaddq_f32(a, value)); ++} ++ ++// Computes the bitwise AND of the four single-precision, floating-point values ++// of a and b. ++// ++// r0 := a0 & b0 ++// r1 := a1 & b1 ++// r2 := a2 & b2 ++// r3 := a3 & b3 ++// ++// https://msdn.microsoft.com/en-us/library/vstudio/73ck1xc5(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_and_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vandq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Computes the bitwise AND-NOT of the four single-precision, floating-point ++// values of a and b. ++// ++// r0 := ~a0 & b0 ++// r1 := ~a1 & b1 ++// r2 := ~a2 & b2 ++// r3 := ~a3 & b3 ++// ++// https://msdn.microsoft.com/en-us/library/vstudio/68h7wd02(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_andnot_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vbicq_s32(vreinterpretq_s32_m128(b), ++ vreinterpretq_s32_m128(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// ++// FOR j := 0 to 3 ++// i := j*16 ++// dst[i+15:i] := (a[i+15:i] + b[i+15:i] + 1) >> 1 ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_avg_pu16 ++FORCE_INLINE __m64 _mm_avg_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16( ++ vrhadd_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// ++// FOR j := 0 to 7 ++// i := j*8 ++// dst[i+7:i] := (a[i+7:i] + b[i+7:i] + 1) >> 1 ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_avg_pu8 ++FORCE_INLINE __m64 _mm_avg_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vrhadd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compares for equality. ++// https://msdn.microsoft.com/en-us/library/vstudio/36aectz5(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_cmpeq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compares for equality. ++// https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/k423z28e(v=vs.100) ++FORCE_INLINE __m128 _mm_cmpeq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpeq_ps(a, b)); ++} ++ ++// Compares for greater than or equal. ++// https://msdn.microsoft.com/en-us/library/vstudio/fs813y2t(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_cmpge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compares for greater than or equal. ++// https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/kesh3ddc(v=vs.100) ++FORCE_INLINE __m128 _mm_cmpge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpge_ps(a, b)); ++} ++ ++// Compares for greater than. ++// ++// r0 := (a0 > b0) ? 0xffffffff : 0x0 ++// r1 := (a1 > b1) ? 0xffffffff : 0x0 ++// r2 := (a2 > b2) ? 0xffffffff : 0x0 ++// r3 := (a3 > b3) ? 0xffffffff : 0x0 ++// ++// https://msdn.microsoft.com/en-us/library/vstudio/11dy102s(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_cmpgt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compares for greater than. ++// https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/1xyyyy9e(v=vs.100) ++FORCE_INLINE __m128 _mm_cmpgt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpgt_ps(a, b)); ++} ++ ++// Compares for less than or equal. ++// ++// r0 := (a0 <= b0) ? 0xffffffff : 0x0 ++// r1 := (a1 <= b1) ? 0xffffffff : 0x0 ++// r2 := (a2 <= b2) ? 0xffffffff : 0x0 ++// r3 := (a3 <= b3) ? 0xffffffff : 0x0 ++// ++// https://msdn.microsoft.com/en-us/library/vstudio/1s75w83z(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_cmple_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compares for less than or equal. ++// https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/a7x0hbhw(v=vs.100) ++FORCE_INLINE __m128 _mm_cmple_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmple_ps(a, b)); ++} ++ ++// Compares for less than ++// https://msdn.microsoft.com/en-us/library/vstudio/f330yhc8(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_cmplt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compares for less than ++// https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/fy94wye7(v=vs.100) ++FORCE_INLINE __m128 _mm_cmplt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmplt_ps(a, b)); ++} ++ ++// Compares for inequality. ++// https://msdn.microsoft.com/en-us/library/sf44thbx(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_cmpneq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compares for inequality. ++// https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/ekya8fh4(v=vs.100) ++FORCE_INLINE __m128 _mm_cmpneq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpneq_ps(a, b)); ++} ++ ++// Compares for not greater than or equal. ++// https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/wsexys62(v=vs.100) ++FORCE_INLINE __m128 _mm_cmpnge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compares for not greater than or equal. ++// https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/fk2y80s8(v=vs.100) ++FORCE_INLINE __m128 _mm_cmpnge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnge_ps(a, b)); ++} ++ ++// Compares for not greater than. ++// https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/d0xh7w0s(v=vs.100) ++FORCE_INLINE __m128 _mm_cmpngt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compares for not greater than. ++// https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/z7x9ydwh(v=vs.100) ++FORCE_INLINE __m128 _mm_cmpngt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpngt_ps(a, b)); ++} ++ ++// Compares for not less than or equal. ++// https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/6a330kxw(v=vs.100) ++FORCE_INLINE __m128 _mm_cmpnle_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compares for not less than or equal. ++// https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/z7x9ydwh(v=vs.100) ++FORCE_INLINE __m128 _mm_cmpnle_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnle_ps(a, b)); ++} ++ ++// Compares for not less than. ++// https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/4686bbdw(v=vs.100) ++FORCE_INLINE __m128 _mm_cmpnlt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compares for not less than. ++// https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/56b9z2wf(v=vs.100) ++FORCE_INLINE __m128 _mm_cmpnlt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnlt_ps(a, b)); ++} ++ ++// Compares the four 32-bit floats in a and b to check if any values are NaN. ++// Ordered compare between each value returns true for "orderable" and false for ++// "not orderable" (NaN). ++// https://msdn.microsoft.com/en-us/library/vstudio/0h9w00fx(v=vs.100).aspx see ++// also: ++// http://stackoverflow.com/questions/8627331/what-does-ordered-unordered-comparison-mean ++// http://stackoverflow.com/questions/29349621/neon-isnanval-intrinsics ++FORCE_INLINE __m128 _mm_cmpord_ps(__m128 a, __m128 b) ++{ ++ // Note: NEON does not have ordered compare builtin ++ // Need to compare a eq a and b eq b to check for NaN ++ // Do AND of results to get final ++ uint32x4_t ceqaa = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t ceqbb = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vandq_u32(ceqaa, ceqbb)); ++} ++ ++// Compares for ordered. ++// https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/343t62da(v=vs.100) ++FORCE_INLINE __m128 _mm_cmpord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpord_ps(a, b)); ++} ++ ++// Compares for unordered. ++// https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/khy6fk1t(v=vs.100) ++FORCE_INLINE __m128 _mm_cmpunord_ps(__m128 a, __m128 b) ++{ ++ uint32x4_t f32a = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t f32b = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vmvnq_u32(vandq_u32(f32a, f32b))); ++} ++ ++// Compares for unordered. ++// https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/2as2387b(v=vs.100) ++FORCE_INLINE __m128 _mm_cmpunord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpunord_ps(a, b)); ++} ++ ++// Compares the lower single-precision floating point scalar values of a and b ++// using an equality operation. : ++// https://msdn.microsoft.com/en-us/library/93yx2h2b(v=vs.100).aspx ++FORCE_INLINE int _mm_comieq_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_eq_b = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_eq_b, 0) & 0x1; ++} ++ ++// Compares the lower single-precision floating point scalar values of a and b ++// using a greater than or equal operation. : ++// https://msdn.microsoft.com/en-us/library/8t80des6(v=vs.100).aspx ++FORCE_INLINE int _mm_comige_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_ge_b = ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_ge_b, 0) & 0x1; ++} ++ ++// Compares the lower single-precision floating point scalar values of a and b ++// using a greater than operation. : ++// https://msdn.microsoft.com/en-us/library/b0738e0t(v=vs.100).aspx ++FORCE_INLINE int _mm_comigt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_gt_b = ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_gt_b, 0) & 0x1; ++} ++ ++// Compares the lower single-precision floating point scalar values of a and b ++// using a less than or equal operation. : ++// https://msdn.microsoft.com/en-us/library/1w4t7c57(v=vs.90).aspx ++FORCE_INLINE int _mm_comile_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_le_b = ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_le_b, 0) & 0x1; ++} ++ ++// Compares the lower single-precision floating point scalar values of a and b ++// using a less than operation. : ++// https://msdn.microsoft.com/en-us/library/2kwe606b(v=vs.90).aspx Important ++// note!! The documentation on MSDN is incorrect! If either of the values is a ++// NAN the docs say you will get a one, but in fact, it will return a zero!! ++FORCE_INLINE int _mm_comilt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_lt_b = ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_lt_b, 0) & 0x1; ++} ++ ++// Compares the lower single-precision floating point scalar values of a and b ++// using an inequality operation. : ++// https://msdn.microsoft.com/en-us/library/bafh5e0a(v=vs.90).aspx ++FORCE_INLINE int _mm_comineq_ss(__m128 a, __m128 b) ++{ ++ return !_mm_comieq_ss(a, b); ++} ++ ++// Convert packed signed 32-bit integers in b to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, and copy the upper 2 packed elements from a to the upper elements of ++// dst. ++// ++// dst[31:0] := Convert_Int32_To_FP32(b[31:0]) ++// dst[63:32] := Convert_Int32_To_FP32(b[63:32]) ++// dst[95:64] := a[95:64] ++// dst[127:96] := a[127:96] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvt_pi2ps ++FORCE_INLINE __m128 _mm_cvt_pi2ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// ++// FOR j := 0 to 1 ++// i := 32*j ++// dst[i+31:i] := Convert_FP32_To_Int32(a[i+31:i]) ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvt_ps2pi ++FORCE_INLINE __m64 _mm_cvt_ps2pi(__m128 a) ++{ ++#if defined(__aarch64__) || defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))))); ++#else ++ return vreinterpret_m64_s32(vcvt_s32_f32(vget_low_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION))))); ++#endif ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// ++// dst[31:0] := Convert_Int32_To_FP32(b[31:0]) ++// dst[127:32] := a[127:32] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvt_si2ss ++FORCE_INLINE __m128 _mm_cvt_si2ss(__m128 a, int b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvt_ss2si ++FORCE_INLINE int _mm_cvt_ss2si(__m128 a) ++{ ++#if defined(__aarch64__) || defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vgetq_lane_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))), ++ 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int32_t) data; ++#endif ++} ++ ++// Convert packed 16-bit integers in a to packed single-precision (32-bit) ++// floating-point elements, and store the results in dst. ++// ++// FOR j := 0 to 3 ++// i := j*16 ++// m := j*32 ++// dst[m+31:m] := Convert_Int16_To_FP32(a[i+15:i]) ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtpi16_ps ++FORCE_INLINE __m128 _mm_cvtpi16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vmovl_s16(vreinterpret_s16_m64(a)))); ++} ++ ++// Convert packed 32-bit integers in b to packed single-precision (32-bit) ++// floating-point elements, store the results in the lower 2 elements of dst, ++// and copy the upper 2 packed elements from a to the upper elements of dst. ++// ++// dst[31:0] := Convert_Int32_To_FP32(b[31:0]) ++// dst[63:32] := Convert_Int32_To_FP32(b[63:32]) ++// dst[95:64] := a[95:64] ++// dst[127:96] := a[127:96] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtpi32_ps ++FORCE_INLINE __m128 _mm_cvtpi32_ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, then convert the packed signed 32-bit integers in b to ++// single-precision (32-bit) floating-point element, and store the results in ++// the upper 2 elements of dst. ++// ++// dst[31:0] := Convert_Int32_To_FP32(a[31:0]) ++// dst[63:32] := Convert_Int32_To_FP32(a[63:32]) ++// dst[95:64] := Convert_Int32_To_FP32(b[31:0]) ++// dst[127:96] := Convert_Int32_To_FP32(b[63:32]) ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtpi32x2_ps ++FORCE_INLINE __m128 _mm_cvtpi32x2_ps(__m64 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vcombine_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b)))); ++} ++ ++// Convert the lower packed 8-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// ++// FOR j := 0 to 3 ++// i := j*8 ++// m := j*32 ++// dst[m+31:m] := Convert_Int8_To_FP32(a[i+7:i]) ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtpi8_ps ++FORCE_INLINE __m128 _mm_cvtpi8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vmovl_s16(vget_low_s16(vmovl_s8(vreinterpret_s8_m64(a)))))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 16-bit integers, and store the results in dst. Note: this intrinsic ++// will generate 0x7FFF, rather than 0x8000, for input values between 0x7FFF and ++// 0x7FFFFFFF. ++// ++// FOR j := 0 to 3 ++// i := 16*j ++// k := 32*j ++// IF a[k+31:k] >= FP32(0x7FFF) && a[k+31:k] <= FP32(0x7FFFFFFF) ++// dst[i+15:i] := 0x7FFF ++// ELSE ++// dst[i+15:i] := Convert_FP32_To_Int16(a[k+31:k]) ++// FI ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtps_pi16 ++FORCE_INLINE __m64 _mm_cvtps_pi16(__m128 a) ++{ ++ const __m128 i16Min = _mm_set_ps1((float) INT16_MIN); ++ const __m128 i16Max = _mm_set_ps1((float) INT16_MAX); ++ const __m128 i32Max = _mm_set_ps1((float) INT32_MAX); ++ const __m128i maxMask = _mm_castps_si128( ++ _mm_and_ps(_mm_cmpge_ps(a, i16Max), _mm_cmple_ps(a, i32Max))); ++ const __m128i betweenMask = _mm_castps_si128( ++ _mm_and_ps(_mm_cmpgt_ps(a, i16Min), _mm_cmplt_ps(a, i16Max))); ++ const __m128i minMask = _mm_cmpeq_epi32(_mm_or_si128(maxMask, betweenMask), ++ _mm_setzero_si128()); ++ __m128i max = _mm_and_si128(maxMask, _mm_set1_epi32(INT16_MAX)); ++ __m128i min = _mm_and_si128(minMask, _mm_set1_epi32(INT16_MIN)); ++ __m128i cvt = _mm_and_si128(betweenMask, _mm_cvtps_epi32(a)); ++ __m128i res32 = _mm_or_si128(_mm_or_si128(max, min), cvt); ++ return vreinterpret_m64_s16(vmovn_s32(vreinterpretq_s32_m128i(res32))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// ++// FOR j := 0 to 1 ++// i := 32*j ++// dst[i+31:i] := Convert_FP32_To_Int32(a[i+31:i]) ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtps_pi32 ++#define _mm_cvtps_pi32(a) _mm_cvt_ps2pi(a) ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 8-bit integers, and store the results in lower 4 elements of dst. ++// Note: this intrinsic will generate 0x7F, rather than 0x80, for input values ++// between 0x7F and 0x7FFFFFFF. ++// ++// FOR j := 0 to 3 ++// i := 8*j ++// k := 32*j ++// IF a[k+31:k] >= FP32(0x7F) && a[k+31:k] <= FP32(0x7FFFFFFF) ++// dst[i+7:i] := 0x7F ++// ELSE ++// dst[i+7:i] := Convert_FP32_To_Int8(a[k+31:k]) ++// FI ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtps_pi8 ++FORCE_INLINE __m64 _mm_cvtps_pi8(__m128 a) ++{ ++ const __m128 i8Min = _mm_set_ps1((float) INT8_MIN); ++ const __m128 i8Max = _mm_set_ps1((float) INT8_MAX); ++ const __m128 i32Max = _mm_set_ps1((float) INT32_MAX); ++ const __m128i maxMask = _mm_castps_si128( ++ _mm_and_ps(_mm_cmpge_ps(a, i8Max), _mm_cmple_ps(a, i32Max))); ++ const __m128i betweenMask = _mm_castps_si128( ++ _mm_and_ps(_mm_cmpgt_ps(a, i8Min), _mm_cmplt_ps(a, i8Max))); ++ const __m128i minMask = _mm_cmpeq_epi32(_mm_or_si128(maxMask, betweenMask), ++ _mm_setzero_si128()); ++ __m128i max = _mm_and_si128(maxMask, _mm_set1_epi32(INT8_MAX)); ++ __m128i min = _mm_and_si128(minMask, _mm_set1_epi32(INT8_MIN)); ++ __m128i cvt = _mm_and_si128(betweenMask, _mm_cvtps_epi32(a)); ++ __m128i res32 = _mm_or_si128(_mm_or_si128(max, min), cvt); ++ int16x4_t res16 = vmovn_s32(vreinterpretq_s32_m128i(res32)); ++ int8x8_t res8 = vmovn_s16(vcombine_s16(res16, res16)); ++ static const uint32_t bitMask[2] = {0xFFFFFFFF, 0}; ++ int8x8_t mask = vreinterpret_s8_u32(vld1_u32(bitMask)); ++ ++ return vreinterpret_m64_s8(vorr_s8(vand_s8(mask, res8), vdup_n_s8(0))); ++} ++ ++// Convert packed unsigned 16-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// ++// FOR j := 0 to 3 ++// i := j*16 ++// m := j*32 ++// dst[m+31:m] := Convert_UInt16_To_FP32(a[i+15:i]) ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtpu16_ps ++FORCE_INLINE __m128 _mm_cvtpu16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_u32(vmovl_u16(vreinterpret_u16_m64(a)))); ++} ++ ++// Convert the lower packed unsigned 8-bit integers in a to packed ++// single-precision (32-bit) floating-point elements, and store the results in ++// dst. ++// ++// FOR j := 0 to 3 ++// i := j*8 ++// m := j*32 ++// dst[m+31:m] := Convert_UInt8_To_FP32(a[i+7:i]) ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtpu8_ps ++FORCE_INLINE __m128 _mm_cvtpu8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_u32( ++ vmovl_u16(vget_low_u16(vmovl_u8(vreinterpret_u8_m64(a)))))); ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// ++// dst[31:0] := Convert_Int32_To_FP32(b[31:0]) ++// dst[127:32] := a[127:32] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtsi32_ss ++#define _mm_cvtsi32_ss(a, b) _mm_cvt_si2ss(a, b) ++ ++// Convert the signed 64-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// ++// dst[31:0] := Convert_Int64_To_FP32(b[63:0]) ++// dst[127:32] := a[127:32] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtsi64_ss ++FORCE_INLINE __m128 _mm_cvtsi64_ss(__m128 a, int64_t b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Copy the lower single-precision (32-bit) floating-point element of a to dst. ++// ++// dst[31:0] := a[31:0] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtss_f32 ++FORCE_INLINE float _mm_cvtss_f32(__m128 a) ++{ ++ return vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// ++// dst[31:0] := Convert_FP32_To_Int32(a[31:0]) ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtss_si32 ++#define _mm_cvtss_si32(a) _mm_cvt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// ++// dst[63:0] := Convert_FP32_To_Int64(a[31:0]) ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtss_si64 ++FORCE_INLINE int64_t _mm_cvtss_si64(__m128 a) ++{ ++#if defined(__aarch64__) || defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return (int64_t) vgetq_lane_f32(vrndiq_f32(vreinterpretq_f32_m128(a)), 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int64_t) data; ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// ++// FOR j := 0 to 1 ++// i := 32*j ++// dst[i+31:i] := Convert_FP32_To_Int32_Truncate(a[i+31:i]) ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtt_ps2pi ++FORCE_INLINE __m64 _mm_cvtt_ps2pi(__m128 a) ++{ ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// ++// dst[31:0] := Convert_FP32_To_Int32_Truncate(a[31:0]) ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtt_ss2si ++FORCE_INLINE int _mm_cvtt_ss2si(__m128 a) ++{ ++ return vgetq_lane_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)), 0); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// ++// FOR j := 0 to 1 ++// i := 32*j ++// dst[i+31:i] := Convert_FP32_To_Int32_Truncate(a[i+31:i]) ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvttps_pi32 ++#define _mm_cvttps_pi32(a) _mm_cvtt_ps2pi(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// ++// dst[31:0] := Convert_FP32_To_Int32_Truncate(a[31:0]) ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvttss_si32 ++#define _mm_cvttss_si32(a) _mm_cvtt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// ++// dst[63:0] := Convert_FP32_To_Int64_Truncate(a[31:0]) ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvttss_si64 ++FORCE_INLINE int64_t _mm_cvttss_si64(__m128 a) ++{ ++ return (int64_t) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Divides the four single-precision, floating-point values of a and b. ++// ++// r0 := a0 / b0 ++// r1 := a1 / b1 ++// r2 := a2 / b2 ++// r3 := a3 / b3 ++// ++// https://msdn.microsoft.com/en-us/library/edaw8147(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_div_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) && !SSE2NEON_PRECISE_DIV ++ return vreinterpretq_m128_f32( ++ vdivq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(b)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++#if SSE2NEON_PRECISE_DIV ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++#endif ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(a), recip)); ++#endif ++} ++ ++// Divides the scalar single-precision floating point value of a by b. ++// https://msdn.microsoft.com/en-us/library/4y73xa49(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_div_ss(__m128 a, __m128 b) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_div_ps(a, b)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_extract_pi16 ++#define _mm_extract_pi16(a, imm) \ ++ (int32_t) vget_lane_u16(vreinterpret_u16_m64(a), (imm)) ++ ++// Free aligned memory that was allocated with _mm_malloc. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_free ++FORCE_INLINE void _mm_free(void *addr) ++{ ++ free(addr); ++} ++ ++// Macro: Get the flush zero bits from the MXCSR control and status register. ++// The flush zero may contain any of the following flags: _MM_FLUSH_ZERO_ON or ++// _MM_FLUSH_ZERO_OFF ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_MM_GET_FLUSH_ZERO_MODE ++FORCE_INLINE unsigned int _sse2neon_mm_get_flush_zero_mode() ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) ++ __asm__ __volatile__("mrs %0, FPCR" : "=r"(r.value)); /* read */ ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_FLUSH_ZERO_ON : _MM_FLUSH_ZERO_OFF; ++} ++ ++// Macro: Get the rounding mode bits from the MXCSR control and status register. ++// The rounding mode may contain any of the following flags: _MM_ROUND_NEAREST, ++// _MM_ROUND_DOWN, _MM_ROUND_UP, _MM_ROUND_TOWARD_ZERO ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_MM_GET_ROUNDING_MODE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE() ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) ++ __asm__ __volatile__("mrs %0, FPCR" : "=r"(r.value)); /* read */ ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ if (r.field.bit22) { ++ return r.field.bit23 ? _MM_ROUND_TOWARD_ZERO : _MM_ROUND_UP; ++ } else { ++ return r.field.bit23 ? _MM_ROUND_DOWN : _MM_ROUND_NEAREST; ++ } ++} ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_insert_pi16 ++#define _mm_insert_pi16(a, b, imm) \ ++ __extension__({ \ ++ vreinterpret_m64_s16( \ ++ vset_lane_s16((b), vreinterpret_s16_m64(a), (imm))); \ ++ }) ++ ++// Loads four single-precision, floating-point values. ++// https://msdn.microsoft.com/en-us/library/vstudio/zzd50xxt(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_load_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// ++// dst[31:0] := MEM[mem_addr+31:mem_addr] ++// dst[63:32] := MEM[mem_addr+31:mem_addr] ++// dst[95:64] := MEM[mem_addr+31:mem_addr] ++// dst[127:96] := MEM[mem_addr+31:mem_addr] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_load_ps1 ++#define _mm_load_ps1 _mm_load1_ps ++ ++// Loads an single - precision, floating - point value into the low word and ++// clears the upper three words. ++// https://msdn.microsoft.com/en-us/library/548bb9h4%28v=vs.90%29.aspx ++FORCE_INLINE __m128 _mm_load_ss(const float *p) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(*p, vdupq_n_f32(0), 0)); ++} ++ ++// Loads a single single-precision, floating-point value, copying it into all ++// four words ++// https://msdn.microsoft.com/en-us/library/vstudio/5cdkf716(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_load1_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_dup_f32(p)); ++} ++ ++// Sets the upper two single-precision, floating-point values with 64 ++// bits of data loaded from the address p; the lower two values are passed ++// through from a. ++// ++// r0 := a0 ++// r1 := a1 ++// r2 := *p0 ++// r3 := *p1 ++// ++// https://msdn.microsoft.com/en-us/library/w92wta0x(v%3dvs.100).aspx ++FORCE_INLINE __m128 _mm_loadh_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vget_low_f32(a), vld1_f32((const float32_t *) p))); ++} ++ ++// Sets the lower two single-precision, floating-point values with 64 ++// bits of data loaded from the address p; the upper two values are passed ++// through from a. ++// ++// Return Value ++// r0 := *p0 ++// r1 := *p1 ++// r2 := a2 ++// r3 := a3 ++// ++// https://msdn.microsoft.com/en-us/library/s57cyak2(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_loadl_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vld1_f32((const float32_t *) p), vget_high_f32(a))); ++} ++ ++// Load 4 single-precision (32-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// ++// dst[31:0] := MEM[mem_addr+127:mem_addr+96] ++// dst[63:32] := MEM[mem_addr+95:mem_addr+64] ++// dst[95:64] := MEM[mem_addr+63:mem_addr+32] ++// dst[127:96] := MEM[mem_addr+31:mem_addr] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_loadr_ps ++FORCE_INLINE __m128 _mm_loadr_ps(const float *p) ++{ ++ float32x4_t v = vrev64q_f32(vld1q_f32(p)); ++ return vreinterpretq_m128_f32(vextq_f32(v, v, 2)); ++} ++ ++// Loads four single-precision, floating-point values. ++// https://msdn.microsoft.com/en-us/library/x1b16s7z%28v=vs.90%29.aspx ++FORCE_INLINE __m128 _mm_loadu_ps(const float *p) ++{ ++ // for neon, alignment doesn't matter, so _mm_load_ps and _mm_loadu_ps are ++ // equivalent for neon ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load unaligned 16-bit integer from memory into the first element of dst. ++// ++// dst[15:0] := MEM[mem_addr+15:mem_addr] ++// dst[MAX:16] := 0 ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_loadu_si16 ++FORCE_INLINE __m128i _mm_loadu_si16(const void *p) ++{ ++ return vreinterpretq_m128i_s16( ++ vsetq_lane_s16(*(const int16_t *) p, vdupq_n_s16(0), 0)); ++} ++ ++// Load unaligned 64-bit integer from memory into the first element of dst. ++// ++// dst[63:0] := MEM[mem_addr+63:mem_addr] ++// dst[MAX:64] := 0 ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_loadu_si64 ++FORCE_INLINE __m128i _mm_loadu_si64(const void *p) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vld1_s64((const int64_t *) p), vdup_n_s64(0))); ++} ++ ++// Allocate aligned blocks of memory. ++// https://software.intel.com/en-us/ ++// cpp-compiler-developer-guide-and-reference-allocating-and-freeing-aligned-memory-blocks ++FORCE_INLINE void *_mm_malloc(size_t size, size_t align) ++{ ++ void *ptr; ++ if (align == 1) ++ return malloc(size); ++ if (align == 2 || (sizeof(void *) == 8 && align == 4)) ++ align = sizeof(void *); ++ if (!posix_memalign(&ptr, align, size)) ++ return ptr; ++ return NULL; ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_maskmove_si64 ++FORCE_INLINE void _mm_maskmove_si64(__m64 a, __m64 mask, char *mem_addr) ++{ ++ int8x8_t shr_mask = vshr_n_s8(vreinterpret_s8_m64(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x8_t masked = ++ vbsl_s8(vreinterpret_u8_s8(shr_mask), vreinterpret_s8_m64(a), ++ vreinterpret_s8_u64(vget_low_u64(vreinterpretq_u64_m128(b)))); ++ vst1_s8((int8_t *) mem_addr, masked); ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_m_maskmovq ++#define _m_maskmovq(a, mask, mem_addr) _mm_maskmove_si64(a, mask, mem_addr) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// ++// FOR j := 0 to 3 ++// i := j*16 ++// dst[i+15:i] := MAX(a[i+15:i], b[i+15:i]) ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_max_pi16 ++FORCE_INLINE __m64 _mm_max_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmax_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Computes the maximums of the four single-precision, floating-point values of ++// a and b. ++// https://msdn.microsoft.com/en-us/library/vstudio/ff5d607a(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_max_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcgtq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vmaxq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// ++// FOR j := 0 to 7 ++// i := j*8 ++// dst[i+7:i] := MAX(a[i+7:i], b[i+7:i]) ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_max_pu8 ++FORCE_INLINE __m64 _mm_max_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmax_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Computes the maximum of the two lower scalar single-precision floating point ++// values of a and b. ++// https://msdn.microsoft.com/en-us/library/s6db5esz(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_max_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_max_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// ++// FOR j := 0 to 3 ++// i := j*16 ++// dst[i+15:i] := MIN(a[i+15:i], b[i+15:i]) ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_min_pi16 ++FORCE_INLINE __m64 _mm_min_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmin_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Computes the minima of the four single-precision, floating-point values of a ++// and b. ++// https://msdn.microsoft.com/en-us/library/vstudio/wh13kadz(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_min_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcltq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vminq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// ++// FOR j := 0 to 7 ++// i := j*8 ++// dst[i+7:i] := MIN(a[i+7:i], b[i+7:i]) ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_min_pu8 ++FORCE_INLINE __m64 _mm_min_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmin_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Computes the minimum of the two lower scalar single-precision floating point ++// values of a and b. ++// https://msdn.microsoft.com/en-us/library/0a9y7xaa(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_min_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_min_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Sets the low word to the single-precision, floating-point value of b ++// https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/35hdzazd(v=vs.100) ++FORCE_INLINE __m128 _mm_move_ss(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(vgetq_lane_f32(vreinterpretq_f32_m128(b), 0), ++ vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Moves the upper two values of B into the lower two values of A. ++// ++// r3 := a3 ++// r2 := a2 ++// r1 := b3 ++// r0 := b2 ++FORCE_INLINE __m128 _mm_movehl_ps(__m128 __A, __m128 __B) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(__A)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(__B)); ++ return vreinterpretq_m128_f32(vcombine_f32(b32, a32)); ++} ++ ++// Moves the lower two values of B into the upper two values of A. ++// ++// r3 := b1 ++// r2 := b0 ++// r1 := a1 ++// r0 := a0 ++FORCE_INLINE __m128 _mm_movelh_ps(__m128 __A, __m128 __B) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(__A)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(__B)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_movemask_pi8 ++FORCE_INLINE int _mm_movemask_pi8(__m64 a) ++{ ++ uint8x8_t input = vreinterpret_u8_m64(a); ++#if defined(__aarch64__) ++ static const int8x8_t shift = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint8x8_t tmp = vshr_n_u8(input, 7); ++ return vaddv_u8(vshl_u8(tmp, shift)); ++#else ++ // Refer the implementation of `_mm_movemask_epi8` ++ uint16x4_t high_bits = vreinterpret_u16_u8(vshr_n_u8(input, 7)); ++ uint32x2_t paired16 = ++ vreinterpret_u32_u16(vsra_n_u16(high_bits, high_bits, 7)); ++ uint8x8_t paired32 = ++ vreinterpret_u8_u32(vsra_n_u32(paired16, paired16, 14)); ++ return vget_lane_u8(paired32, 0) | ((int) vget_lane_u8(paired32, 4) << 4); ++#endif ++} ++ ++// NEON does not provide this method ++// Creates a 4-bit mask from the most significant bits of the four ++// single-precision, floating-point values. ++// https://msdn.microsoft.com/en-us/library/vstudio/4490ys29(v=vs.100).aspx ++FORCE_INLINE int _mm_movemask_ps(__m128 a) ++{ ++ uint32x4_t input = vreinterpretq_u32_m128(a); ++#if defined(__aarch64__) ++ static const int32x4_t shift = {0, 1, 2, 3}; ++ uint32x4_t tmp = vshrq_n_u32(input, 31); ++ return vaddvq_u32(vshlq_u32(tmp, shift)); ++#else ++ // Uses the exact same method as _mm_movemask_epi8, see that for details. ++ // Shift out everything but the sign bits with a 32-bit unsigned shift ++ // right. ++ uint64x2_t high_bits = vreinterpretq_u64_u32(vshrq_n_u32(input, 31)); ++ // Merge the two pairs together with a 64-bit unsigned shift right + add. ++ uint8x16_t paired = ++ vreinterpretq_u8_u64(vsraq_n_u64(high_bits, high_bits, 31)); ++ // Extract the result. ++ return vgetq_lane_u8(paired, 0) | (vgetq_lane_u8(paired, 8) << 2); ++#endif ++} ++ ++// Multiplies the four single-precision, floating-point values of a and b. ++// ++// r0 := a0 * b0 ++// r1 := a1 * b1 ++// r2 := a2 * b2 ++// r3 := a3 * b3 ++// ++// https://msdn.microsoft.com/en-us/library/vstudio/22kbk6t9(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_mul_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vmulq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Multiply the lower single-precision (32-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// ++// dst[31:0] := a[31:0] * b[31:0] ++// dst[127:32] := a[127:32] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_mul_ss ++FORCE_INLINE __m128 _mm_mul_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_mul_ps(a, b)); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_mulhi_pu16 ++FORCE_INLINE __m64 _mm_mulhi_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16(vshrn_n_u32( ++ vmull_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b)), 16)); ++} ++ ++// Computes the bitwise OR of the four single-precision, floating-point values ++// of a and b. ++// https://msdn.microsoft.com/en-us/library/vstudio/7ctdsyy0(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_or_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vorrq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// ++// FOR j := 0 to 7 ++// i := j*8 ++// dst[i+7:i] := (a[i+7:i] + b[i+7:i] + 1) >> 1 ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_m_pavgb ++#define _m_pavgb(a, b) _mm_avg_pu8(a, b) ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// ++// FOR j := 0 to 3 ++// i := j*16 ++// dst[i+15:i] := (a[i+15:i] + b[i+15:i] + 1) >> 1 ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_m_pavgw ++#define _m_pavgw(a, b) _mm_avg_pu16(a, b) ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_m_pextrw ++#define _m_pextrw(a, imm) _mm_extract_pi16(a, imm) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=m_pinsrw ++#define _m_pinsrw(a, i, imm) _mm_insert_pi16(a, i, imm) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_m_pmaxsw ++#define _m_pmaxsw(a, b) _mm_max_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_m_pmaxub ++#define _m_pmaxub(a, b) _mm_max_pu8(a, b) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_m_pminsw ++#define _m_pminsw(a, b) _mm_min_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_m_pminub ++#define _m_pminub(a, b) _mm_min_pu8(a, b) ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_m_pmovmskb ++#define _m_pmovmskb(a) _mm_movemask_pi8(a) ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_m_pmulhuw ++#define _m_pmulhuw(a, b) _mm_mulhi_pu16(a, b) ++ ++// Loads one cache line of data from address p to a location closer to the ++// processor. https://msdn.microsoft.com/en-us/library/84szxsww(v=vs.100).aspx ++FORCE_INLINE void _mm_prefetch(const void *p, int i) ++{ ++ (void) i; ++ __builtin_prefetch(p); ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=m_psadbw ++#define _m_psadbw(a, b) _mm_sad_pu8(a, b) ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_m_pshufw ++#define _m_pshufw(a, imm) _mm_shuffle_pi16(a, imm) ++ ++// Compute the approximate reciprocal of packed single-precision (32-bit) ++// floating-point elements in a, and store the results in dst. The maximum ++// relative error for this approximation is less than 1.5*2^-12. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_rcp_ps ++FORCE_INLINE __m128 _mm_rcp_ps(__m128 in) ++{ ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(in)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#if SSE2NEON_PRECISE_DIV ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#endif ++ return vreinterpretq_m128_f32(recip); ++} ++ ++// Compute the approximate reciprocal of the lower single-precision (32-bit) ++// floating-point element in a, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// ++// dst[31:0] := (1.0 / a[31:0]) ++// dst[127:32] := a[127:32] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_rcp_ss ++FORCE_INLINE __m128 _mm_rcp_ss(__m128 a) ++{ ++ return _mm_move_ss(a, _mm_rcp_ps(a)); ++} ++ ++// Computes the approximations of the reciprocal square roots of the four ++// single-precision floating point values of in. ++// The current precision is 1% error. ++// https://msdn.microsoft.com/en-us/library/22hfsh53(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_rsqrt_ps(__m128 in) ++{ ++ float32x4_t out = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++#if SSE2NEON_PRECISE_SQRT ++ // Additional Netwon-Raphson iteration for accuracy ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#endif ++ return vreinterpretq_m128_f32(out); ++} ++ ++// Compute the approximate reciprocal square root of the lower single-precision ++// (32-bit) floating-point element in a, store the result in the lower element ++// of dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_rsqrt_ss ++FORCE_INLINE __m128 _mm_rsqrt_ss(__m128 in) ++{ ++ return vsetq_lane_f32(vgetq_lane_f32(_mm_rsqrt_ps(in), 0), in, 0); ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_sad_pu8 ++FORCE_INLINE __m64 _mm_sad_pu8(__m64 a, __m64 b) ++{ ++ uint64x1_t t = vpaddl_u32(vpaddl_u16( ++ vpaddl_u8(vabd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))))); ++ return vreinterpret_m64_u16( ++ vset_lane_u16(vget_lane_u64(t, 0), vdup_n_u16(0), 0)); ++} ++ ++// Macro: Set the flush zero bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The flush zero may contain any of the ++// following flags: _MM_FLUSH_ZERO_ON or _MM_FLUSH_ZERO_OFF ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_MM_SET_FLUSH_ZERO_MODE ++FORCE_INLINE void _sse2neon_mm_set_flush_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) ++ __asm__ __volatile__("mrs %0, FPCR" : "=r"(r.value)); /* read */ ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_FLUSH_ZERO_MASK) == _MM_FLUSH_ZERO_ON; ++ ++#if defined(__aarch64__) ++ __asm__ __volatile__("msr FPCR, %0" ::"r"(r)); /* write */ ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Sets the four single-precision, floating-point values to the four inputs. ++// https://msdn.microsoft.com/en-us/library/vstudio/afh0zf75(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_set_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {x, y, z, w}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Sets the four single-precision, floating-point values to w. ++// https://msdn.microsoft.com/en-us/library/vstudio/2x1se8ha(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_set_ps1(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Macro: Set the rounding mode bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The rounding mode may contain any of ++// the following flags: _MM_ROUND_NEAREST, _MM_ROUND_DOWN, _MM_ROUND_UP, ++// _MM_ROUND_TOWARD_ZERO ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_MM_SET_ROUNDING_MODE ++FORCE_INLINE void _MM_SET_ROUNDING_MODE(int rounding) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) ++ __asm__ __volatile__("mrs %0, FPCR" : "=r"(r.value)); /* read */ ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ switch (rounding) { ++ case _MM_ROUND_TOWARD_ZERO: ++ r.field.bit22 = 1; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_DOWN: ++ r.field.bit22 = 0; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_UP: ++ r.field.bit22 = 1; ++ r.field.bit23 = 0; ++ break; ++ default: //_MM_ROUND_NEAREST ++ r.field.bit22 = 0; ++ r.field.bit23 = 0; ++ } ++ ++#if defined(__aarch64__) ++ __asm__ __volatile__("msr FPCR, %0" ::"r"(r)); /* write */ ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Copy single-precision (32-bit) floating-point element a to the lower element ++// of dst, and zero the upper 3 elements. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_set_ss ++FORCE_INLINE __m128 _mm_set_ss(float a) ++{ ++ float ALIGN_STRUCT(16) data[4] = {a, 0, 0, 0}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Sets the four single-precision, floating-point values to w. ++// ++// r0 := r1 := r2 := r3 := w ++// ++// https://msdn.microsoft.com/en-us/library/vstudio/2x1se8ha(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_set1_ps(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// FIXME: _mm_setcsr() implementation supports changing the rounding mode only. ++FORCE_INLINE void _mm_setcsr(unsigned int a) ++{ ++ _MM_SET_ROUNDING_MODE(a); ++} ++ ++// FIXME: _mm_getcsr() implementation supports reading the rounding mode only. ++FORCE_INLINE unsigned int _mm_getcsr() ++{ ++ return _MM_GET_ROUNDING_MODE(); ++} ++ ++// Sets the four single-precision, floating-point values to the four inputs in ++// reverse order. ++// https://msdn.microsoft.com/en-us/library/vstudio/d2172ct3(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_setr_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {w, z, y, x}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Clears the four single-precision, floating-point values. ++// https://msdn.microsoft.com/en-us/library/vstudio/tk1t2tbz(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_setzero_ps(void) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(0)); ++} ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_shuffle_pi16 ++#if __has_builtin(__builtin_shufflevector) ++#define _mm_shuffle_pi16(a, imm) \ ++ __extension__({ \ ++ vreinterpret_m64_s16(__builtin_shufflevector( \ ++ vreinterpret_s16_m64(a), vreinterpret_s16_m64(a), (imm & 0x3), \ ++ ((imm >> 2) & 0x3), ((imm >> 4) & 0x3), ((imm >> 6) & 0x3))); \ ++ }) ++#else ++#define _mm_shuffle_pi16(a, imm) \ ++ __extension__({ \ ++ int16x4_t ret; \ ++ ret = \ ++ vmov_n_s16(vget_lane_s16(vreinterpret_s16_m64(a), (imm) & (0x3))); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(a), ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(a), ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(a), ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ vreinterpret_m64_s16(ret); \ ++ }) ++#endif ++ ++// Guarantees that every preceding store is globally visible before any ++// subsequent store. ++// https://msdn.microsoft.com/en-us/library/5h2w73d1%28v=vs.90%29.aspx ++FORCE_INLINE void _mm_sfence(void) ++{ ++ __sync_synchronize(); ++} ++ ++// FORCE_INLINE __m128 _mm_shuffle_ps(__m128 a, __m128 b, __constrange(0,255) ++// int imm) ++#if __has_builtin(__builtin_shufflevector) ++#define _mm_shuffle_ps(a, b, imm) \ ++ __extension__({ \ ++ float32x4_t _input1 = vreinterpretq_f32_m128(a); \ ++ float32x4_t _input2 = vreinterpretq_f32_m128(b); \ ++ float32x4_t _shuf = __builtin_shufflevector( \ ++ _input1, _input2, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ (((imm) >> 4) & 0x3) + 4, (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128_f32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_ps(a, b, imm) \ ++ __extension__({ \ ++ __m128 ret; \ ++ switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_1032((a), (b)); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_ps_2301((a), (b)); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_ps_0321((a), (b)); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_ps_2103((a), (b)); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_movelh_ps((a), (b)); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_1001((a), (b)); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_ps_0101((a), (b)); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 1, 0): \ ++ ret = _mm_shuffle_ps_3210((a), (b)); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 1, 1): \ ++ ret = _mm_shuffle_ps_0011((a), (b)); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 2, 2): \ ++ ret = _mm_shuffle_ps_0022((a), (b)); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 0, 0): \ ++ ret = _mm_shuffle_ps_2200((a), (b)); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 0, 2): \ ++ ret = _mm_shuffle_ps_3202((a), (b)); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 3, 2): \ ++ ret = _mm_movehl_ps((b), (a)); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 3, 3): \ ++ ret = _mm_shuffle_ps_1133((a), (b)); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 1, 0): \ ++ ret = _mm_shuffle_ps_2010((a), (b)); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_2001((a), (b)); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_2032((a), (b)); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_ps_default((a), (b), (imm)); \ ++ break; \ ++ } \ ++ ret; \ ++ }) ++#endif ++ ++// Computes the approximations of square roots of the four single-precision, ++// floating-point values of a. First computes reciprocal square roots and then ++// reciprocals of the four values. ++// ++// r0 := sqrt(a0) ++// r1 := sqrt(a1) ++// r2 := sqrt(a2) ++// r3 := sqrt(a3) ++// ++// https://msdn.microsoft.com/en-us/library/vstudio/8z67bwwk(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_sqrt_ps(__m128 in) ++{ ++#if SSE2NEON_PRECISE_SQRT ++ float32x4_t recip = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Test for vrsqrteq_f32(0) -> positive infinity case. ++ // Change to zero, so that s * 1/sqrt(s) result is zero too. ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t div_by_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(recip)); ++ recip = vreinterpretq_f32_u32( ++ vandq_u32(vmvnq_u32(div_by_zero), vreinterpretq_u32_f32(recip))); ++ ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ ++ // sqrt(s) = s * 1/sqrt(s) ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(in), recip)); ++#elif defined(__aarch64__) ++ return vreinterpretq_m128_f32(vsqrtq_f32(vreinterpretq_f32_m128(in))); ++#else ++ float32x4_t recipsq = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ float32x4_t sq = vrecpeq_f32(recipsq); ++ return vreinterpretq_m128_f32(sq); ++#endif ++} ++ ++// Computes the approximation of the square root of the scalar single-precision ++// floating point value of in. ++// https://msdn.microsoft.com/en-us/library/ahfsc22d(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_sqrt_ss(__m128 in) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_sqrt_ps(in)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(in), 0)); ++} ++ ++// Stores four single-precision, floating-point values. ++// https://msdn.microsoft.com/en-us/library/vstudio/s3h4ay6y(v=vs.100).aspx ++FORCE_INLINE void _mm_store_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// ++// MEM[mem_addr+31:mem_addr] := a[31:0] ++// MEM[mem_addr+63:mem_addr+32] := a[31:0] ++// MEM[mem_addr+95:mem_addr+64] := a[31:0] ++// MEM[mem_addr+127:mem_addr+96] := a[31:0] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_store_ps1 ++FORCE_INLINE void _mm_store_ps1(float *p, __m128 a) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ vst1q_f32(p, vdupq_n_f32(a0)); ++} ++ ++// Stores the lower single - precision, floating - point value. ++// https://msdn.microsoft.com/en-us/library/tzz10fbx(v=vs.100).aspx ++FORCE_INLINE void _mm_store_ss(float *p, __m128 a) ++{ ++ vst1q_lane_f32(p, vreinterpretq_f32_m128(a), 0); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// ++// MEM[mem_addr+31:mem_addr] := a[31:0] ++// MEM[mem_addr+63:mem_addr+32] := a[31:0] ++// MEM[mem_addr+95:mem_addr+64] := a[31:0] ++// MEM[mem_addr+127:mem_addr+96] := a[31:0] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_store1_ps ++#define _mm_store1_ps _mm_store_ps1 ++ ++// Stores the upper two single-precision, floating-point values of a to the ++// address p. ++// ++// *p0 := a2 ++// *p1 := a3 ++// ++// https://msdn.microsoft.com/en-us/library/a7525fs8(v%3dvs.90).aspx ++FORCE_INLINE void _mm_storeh_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_high_f32(a)); ++} ++ ++// Stores the lower two single-precision floating point values of a to the ++// address p. ++// ++// *p0 := a0 ++// *p1 := a1 ++// ++// https://msdn.microsoft.com/en-us/library/h54t98ks(v=vs.90).aspx ++FORCE_INLINE void _mm_storel_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_low_f32(a)); ++} ++ ++// Store 4 single-precision (32-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// ++// MEM[mem_addr+31:mem_addr] := a[127:96] ++// MEM[mem_addr+63:mem_addr+32] := a[95:64] ++// MEM[mem_addr+95:mem_addr+64] := a[63:32] ++// MEM[mem_addr+127:mem_addr+96] := a[31:0] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_storer_ps ++FORCE_INLINE void _mm_storer_ps(float *p, __m128 a) ++{ ++ float32x4_t tmp = vrev64q_f32(vreinterpretq_f32_m128(a)); ++ float32x4_t rev = vextq_f32(tmp, tmp, 2); ++ vst1q_f32(p, rev); ++} ++ ++// Stores four single-precision, floating-point values. ++// https://msdn.microsoft.com/en-us/library/44e30x22(v=vs.100).aspx ++FORCE_INLINE void _mm_storeu_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Stores 16-bits of integer data a at the address p. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_storeu_si16 ++FORCE_INLINE void _mm_storeu_si16(void *p, __m128i a) ++{ ++ vst1q_lane_s16((int16_t *) p, vreinterpretq_s16_m128i(a), 0); ++} ++ ++// Stores 64-bits of integer data a at the address p. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_storeu_si64 ++FORCE_INLINE void _mm_storeu_si64(void *p, __m128i a) ++{ ++ vst1q_lane_s64((int64_t *) p, vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Store 64-bits of integer data from a into memory using a non-temporal memory ++// hint. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_stream_pi ++FORCE_INLINE void _mm_stream_pi(__m64 *p, __m64 a) ++{ ++ vst1_s64((int64_t *) p, vreinterpret_s64_m64(a)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating- ++// point elements) from a into memory using a non-temporal memory hint. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_stream_ps ++FORCE_INLINE void _mm_stream_ps(float *p, __m128 a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (float32x4_t *) p); ++#else ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++#endif ++} ++ ++// Subtracts the four single-precision, floating-point values of a and b. ++// ++// r0 := a0 - b0 ++// r1 := a1 - b1 ++// r2 := a2 - b2 ++// r3 := a3 - b3 ++// ++// https://msdn.microsoft.com/en-us/library/vstudio/1zad2k61(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_sub_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Subtract the lower single-precision (32-bit) floating-point element in b from ++// the lower single-precision (32-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper 3 packed elements from ++// a to the upper elements of dst. ++// ++// dst[31:0] := a[31:0] - b[31:0] ++// dst[127:32] := a[127:32] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_sub_ss ++FORCE_INLINE __m128 _mm_sub_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_sub_ps(a, b)); ++} ++ ++// Macro: Transpose the 4x4 matrix formed by the 4 rows of single-precision ++// (32-bit) floating-point elements in row0, row1, row2, and row3, and store the ++// transposed matrix in these vectors (row0 now contains column 0, etc.). ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=MM_TRANSPOSE4_PS ++#define _MM_TRANSPOSE4_PS(row0, row1, row2, row3) \ ++ do { \ ++ float32x4x2_t ROW01 = vtrnq_f32(row0, row1); \ ++ float32x4x2_t ROW23 = vtrnq_f32(row2, row3); \ ++ row0 = vcombine_f32(vget_low_f32(ROW01.val[0]), \ ++ vget_low_f32(ROW23.val[0])); \ ++ row1 = vcombine_f32(vget_low_f32(ROW01.val[1]), \ ++ vget_low_f32(ROW23.val[1])); \ ++ row2 = vcombine_f32(vget_high_f32(ROW01.val[0]), \ ++ vget_high_f32(ROW23.val[0])); \ ++ row3 = vcombine_f32(vget_high_f32(ROW01.val[1]), \ ++ vget_high_f32(ROW23.val[1])); \ ++ } while (0) ++ ++// according to the documentation, these intrinsics behave the same as the ++// non-'u' versions. We'll just alias them here. ++#define _mm_ucomieq_ss _mm_comieq_ss ++#define _mm_ucomige_ss _mm_comige_ss ++#define _mm_ucomigt_ss _mm_comigt_ss ++#define _mm_ucomile_ss _mm_comile_ss ++#define _mm_ucomilt_ss _mm_comilt_ss ++#define _mm_ucomineq_ss _mm_comineq_ss ++ ++// Return vector of type __m128i with undefined elements. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=mm_undefined_si128 ++FORCE_INLINE __m128i _mm_undefined_si128(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128i a; ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Return vector of type __m128 with undefined elements. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_undefined_ps ++FORCE_INLINE __m128 _mm_undefined_ps(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128 a; ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Selects and interleaves the upper two single-precision, floating-point values ++// from a and b. ++// ++// r0 := a2 ++// r1 := b2 ++// r2 := a3 ++// r3 := b3 ++// ++// https://msdn.microsoft.com/en-us/library/skccxx7d%28v=vs.90%29.aspx ++FORCE_INLINE __m128 _mm_unpackhi_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128_f32( ++ vzip2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Selects and interleaves the lower two single-precision, floating-point values ++// from a and b. ++// ++// r0 := a0 ++// r1 := b0 ++// r2 := a1 ++// r3 := b1 ++// ++// https://msdn.microsoft.com/en-us/library/25st103b%28v=vs.90%29.aspx ++FORCE_INLINE __m128 _mm_unpacklo_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128_f32( ++ vzip1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Computes bitwise EXOR (exclusive-or) of the four single-precision, ++// floating-point values of a and b. ++// https://msdn.microsoft.com/en-us/library/ss6k3wk8(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_xor_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ veorq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++/* SSE2 */ ++ ++// Adds the 8 signed or unsigned 16-bit integers in a to the 8 signed or ++// unsigned 16-bit integers in b. ++// https://msdn.microsoft.com/en-us/library/fceha5k4(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_add_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Adds the 4 signed or unsigned 32-bit integers in a to the 4 signed or ++// unsigned 32-bit integers in b. ++// ++// r0 := a0 + b0 ++// r1 := a1 + b1 ++// r2 := a2 + b2 ++// r3 := a3 + b3 ++// ++// https://msdn.microsoft.com/en-us/library/vstudio/09xs4fkk(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_add_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vaddq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Adds the 4 signed or unsigned 64-bit integers in a to the 4 signed or ++// unsigned 32-bit integers in b. ++// https://msdn.microsoft.com/en-us/library/vstudio/09xs4fkk(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_add_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vaddq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Adds the 16 signed or unsigned 8-bit integers in a to the 16 signed or ++// unsigned 8-bit integers in b. ++// https://technet.microsoft.com/en-us/subscriptions/yc7tcyzs(v=vs.90) ++FORCE_INLINE __m128i _mm_add_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed double-precision (64-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_add_pd ++FORCE_INLINE __m128d _mm_add_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_f64( ++ vaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1] + db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add the lower double-precision (64-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper element from ++// a to the upper element of dst. ++// ++// dst[63:0] := a[63:0] + b[63:0] ++// dst[127:64] := a[127:64] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_add_sd ++FORCE_INLINE __m128d _mm_add_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return _mm_move_sd(a, _mm_add_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add 64-bit integers a and b, and store the result in dst. ++// ++// dst[63:0] := a[63:0] + b[63:0] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_add_si64 ++FORCE_INLINE __m64 _mm_add_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vadd_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Adds the 8 signed 16-bit integers in a to the 8 signed 16-bit integers in b ++// and saturates. ++// ++// r0 := SignedSaturate(a0 + b0) ++// r1 := SignedSaturate(a1 + b1) ++// ... ++// r7 := SignedSaturate(a7 + b7) ++// ++// https://msdn.microsoft.com/en-us/library/1a306ef8(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_adds_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed signed 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// ++// FOR j := 0 to 15 ++// i := j*8 ++// dst[i+7:i] := Saturate8( a[i+7:i] + b[i+7:i] ) ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_adds_epi8 ++FORCE_INLINE __m128i _mm_adds_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed unsigned 16-bit integers in a and b using saturation, and store ++// the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_adds_epu16 ++FORCE_INLINE __m128i _mm_adds_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqaddq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Adds the 16 unsigned 8-bit integers in a to the 16 unsigned 8-bit integers in ++// b and saturates.. ++// https://msdn.microsoft.com/en-us/library/9hahyddy(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_adds_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compute the bitwise AND of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// ++// FOR j := 0 to 1 ++// i := j*64 ++// dst[i+63:i] := a[i+63:i] AND b[i+63:i] ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_and_pd ++FORCE_INLINE __m128d _mm_and_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vandq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Computes the bitwise AND of the 128-bit value in a and the 128-bit value in ++// b. ++// ++// r := a & b ++// ++// https://msdn.microsoft.com/en-us/library/vstudio/6d1txsa8(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_and_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vandq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compute the bitwise NOT of packed double-precision (64-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// ++// FOR j := 0 to 1 ++// i := j*64 ++// dst[i+63:i] := ((NOT a[i+63:i]) AND b[i+63:i]) ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_andnot_pd ++FORCE_INLINE __m128d _mm_andnot_pd(__m128d a, __m128d b) ++{ ++ // *NOTE* argument swap ++ return vreinterpretq_m128d_s64( ++ vbicq_s64(vreinterpretq_s64_m128d(b), vreinterpretq_s64_m128d(a))); ++} ++ ++// Computes the bitwise AND of the 128-bit value in b and the bitwise NOT of the ++// 128-bit value in a. ++// ++// r := (~a) & b ++// ++// https://msdn.microsoft.com/en-us/library/vstudio/1beaceh8(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_andnot_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vbicq_s32(vreinterpretq_s32_m128i(b), ++ vreinterpretq_s32_m128i(a))); // *NOTE* argument swap ++} ++ ++// Computes the average of the 8 unsigned 16-bit integers in a and the 8 ++// unsigned 16-bit integers in b and rounds. ++// ++// r0 := (a0 + b0) / 2 ++// r1 := (a1 + b1) / 2 ++// ... ++// r7 := (a7 + b7) / 2 ++// ++// https://msdn.microsoft.com/en-us/library/vstudio/y13ca3c8(v=vs.90).aspx ++FORCE_INLINE __m128i _mm_avg_epu16(__m128i a, __m128i b) ++{ ++ return (__m128i) vrhaddq_u16(vreinterpretq_u16_m128i(a), ++ vreinterpretq_u16_m128i(b)); ++} ++ ++// Computes the average of the 16 unsigned 8-bit integers in a and the 16 ++// unsigned 8-bit integers in b and rounds. ++// ++// r0 := (a0 + b0) / 2 ++// r1 := (a1 + b1) / 2 ++// ... ++// r15 := (a15 + b15) / 2 ++// ++// https://msdn.microsoft.com/en-us/library/vstudio/8zwh554a(v%3dvs.90).aspx ++FORCE_INLINE __m128i _mm_avg_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vrhaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_bslli_si128 ++#define _mm_bslli_si128(a, imm) _mm_slli_si128(a, imm) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_bsrli_si128 ++#define _mm_bsrli_si128(a, imm) _mm_srli_si128(a, imm) ++ ++// Cast vector of type __m128d to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_castpd_ps ++FORCE_INLINE __m128 _mm_castpd_ps(__m128d a) ++{ ++ return vreinterpretq_m128_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128d to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_castpd_si128 ++FORCE_INLINE __m128i _mm_castpd_si128(__m128d a) ++{ ++ return vreinterpretq_m128i_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128 to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_castps_pd ++FORCE_INLINE __m128d _mm_castps_pd(__m128 a) ++{ ++ return vreinterpretq_m128d_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Applies a type cast to reinterpret four 32-bit floating point values passed ++// in as a 128-bit parameter as packed 32-bit integers. ++// https://msdn.microsoft.com/en-us/library/bb514099.aspx ++FORCE_INLINE __m128i _mm_castps_si128(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128i to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_castsi128_pd ++FORCE_INLINE __m128d _mm_castsi128_pd(__m128i a) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_f64(vreinterpretq_f64_m128i(a)); ++#else ++ return vreinterpretq_m128d_f32(vreinterpretq_f32_m128i(a)); ++#endif ++} ++ ++// Applies a type cast to reinterpret four 32-bit integers passed in as a ++// 128-bit parameter as packed 32-bit floating point values. ++// https://msdn.microsoft.com/en-us/library/bb514029.aspx ++FORCE_INLINE __m128 _mm_castsi128_ps(__m128i a) ++{ ++ return vreinterpretq_m128_s32(vreinterpretq_s32_m128i(a)); ++} ++ ++// Cache line containing p is flushed and invalidated from all caches in the ++// coherency domain. : ++// https://msdn.microsoft.com/en-us/library/ba08y07y(v=vs.100).aspx ++FORCE_INLINE void _mm_clflush(void const *p) ++{ ++ (void) p; ++ // no corollary for Neon? ++} ++ ++// Compares the 8 signed or unsigned 16-bit integers in a and the 8 signed or ++// unsigned 16-bit integers in b for equality. ++// https://msdn.microsoft.com/en-us/library/2ay060te(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_cmpeq_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vceqq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed 32-bit integers in a and b for equality, and store the results ++// in dst ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vceqq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compares the 16 signed or unsigned 8-bit integers in a and the 16 signed or ++// unsigned 8-bit integers in b for equality. ++// https://msdn.microsoft.com/en-us/library/windows/desktop/bz5xk21a(v=vs.90).aspx ++FORCE_INLINE __m128i _mm_cmpeq_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vceqq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cmpeq_pd ++FORCE_INLINE __m128d _mm_cmpeq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cmpeq_sd ++FORCE_INLINE __m128d _mm_cmpeq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpeq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cmpge_pd ++FORCE_INLINE __m128d _mm_cmpge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) >= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cmpge_sd ++FORCE_INLINE __m128d _mm_cmpge_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return _mm_move_sd(a, _mm_cmpge_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compares the 8 signed 16-bit integers in a and the 8 signed 16-bit integers ++// in b for greater than. ++// ++// r0 := (a0 > b0) ? 0xffff : 0x0 ++// r1 := (a1 > b1) ? 0xffff : 0x0 ++// ... ++// r7 := (a7 > b7) ? 0xffff : 0x0 ++// ++// https://technet.microsoft.com/en-us/library/xd43yfsa(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_cmpgt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcgtq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compares the 4 signed 32-bit integers in a and the 4 signed 32-bit integers ++// in b for greater than. ++// https://msdn.microsoft.com/en-us/library/vstudio/1s9f2z0y(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_cmpgt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcgtq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compares the 16 signed 8-bit integers in a and the 16 signed 8-bit integers ++// in b for greater than. ++// ++// r0 := (a0 > b0) ? 0xff : 0x0 ++// r1 := (a1 > b1) ? 0xff : 0x0 ++// ... ++// r15 := (a15 > b15) ? 0xff : 0x0 ++// ++// https://msdn.microsoft.com/zh-tw/library/wf45zt2b(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_cmpgt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcgtq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cmpgt_pd ++FORCE_INLINE __m128d _mm_cmpgt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cmpgt_sd ++FORCE_INLINE __m128d _mm_cmpgt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return _mm_move_sd(a, _mm_cmpgt_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cmple_pd ++FORCE_INLINE __m128d _mm_cmple_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) <= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cmple_sd ++FORCE_INLINE __m128d _mm_cmple_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return _mm_move_sd(a, _mm_cmple_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compares the 8 signed 16-bit integers in a and the 8 signed 16-bit integers ++// in b for less than. ++// ++// r0 := (a0 < b0) ? 0xffff : 0x0 ++// r1 := (a1 < b1) ? 0xffff : 0x0 ++// ... ++// r7 := (a7 < b7) ? 0xffff : 0x0 ++// ++// https://technet.microsoft.com/en-us/library/t863edb2(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_cmplt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcltq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++ ++// Compares the 4 signed 32-bit integers in a and the 4 signed 32-bit integers ++// in b for less than. ++// https://msdn.microsoft.com/en-us/library/vstudio/4ak0bf5d(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_cmplt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcltq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compares the 16 signed 8-bit integers in a and the 16 signed 8-bit integers ++// in b for lesser than. ++// https://msdn.microsoft.com/en-us/library/windows/desktop/9s46csht(v=vs.90).aspx ++FORCE_INLINE __m128i _mm_cmplt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcltq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cmplt_pd ++FORCE_INLINE __m128d _mm_cmplt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cmplt_sd ++FORCE_INLINE __m128d _mm_cmplt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return _mm_move_sd(a, _mm_cmplt_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cmpneq_pd ++FORCE_INLINE __m128d _mm_cmpneq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_s32(vmvnq_s32(vreinterpretq_s32_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vmvnq_u32(vandq_u32(cmp, swapped))); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cmpneq_sd ++FORCE_INLINE __m128d _mm_cmpneq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpneq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cmpnge_pd ++FORCE_INLINE __m128d _mm_cmpnge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) >= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) >= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper element from a to the upper element of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cmpnge_sd ++FORCE_INLINE __m128d _mm_cmpnge_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnge_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_cmpngt_pd ++FORCE_INLINE __m128d _mm_cmpngt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) > (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) > (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cmpngt_sd ++FORCE_INLINE __m128d _mm_cmpngt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpngt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cmpnle_pd ++FORCE_INLINE __m128d _mm_cmpnle_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) <= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) <= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cmpnle_sd ++FORCE_INLINE __m128d _mm_cmpnle_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnle_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cmpnlt_pd ++FORCE_INLINE __m128d _mm_cmpnlt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) < (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) < (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cmpnlt_sd ++FORCE_INLINE __m128d _mm_cmpnlt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnlt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cmpord_pd ++FORCE_INLINE __m128d _mm_cmpord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ // Excluding NaNs, any two floating point numbers can be compared. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_u64(vandq_u64(not_nan_a, not_nan_b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cmpord_sd ++FORCE_INLINE __m128d _mm_cmpord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return _mm_move_sd(a, _mm_cmpord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cmpunord_pd ++FORCE_INLINE __m128d _mm_cmpunord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ // Two NaNs are not equal in comparison operation. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_s32( ++ vmvnq_s32(vreinterpretq_s32_u64(vandq_u64(not_nan_a, not_nan_b)))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cmpunord_sd ++FORCE_INLINE __m128d _mm_cmpunord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return _mm_move_sd(a, _mm_cmpunord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_comige_sd ++FORCE_INLINE int _mm_comige_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return vgetq_lane_u64(vcgeq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 >= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_comigt_sd ++FORCE_INLINE int _mm_comigt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return vgetq_lane_u64(vcgtq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 > *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_comile_sd ++FORCE_INLINE int _mm_comile_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return vgetq_lane_u64(vcleq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 <= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_comilt_sd ++FORCE_INLINE int _mm_comilt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return vgetq_lane_u64(vcltq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 < *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_comieq_sd ++FORCE_INLINE int _mm_comieq_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return vgetq_lane_u64(vceqq_f64(a, b), 0) & 0x1; ++#else ++ uint32x4_t a_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(a)); ++ uint32x4_t b_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(b), vreinterpretq_u32_m128d(b)); ++ uint32x4_t a_and_b_not_nan = vandq_u32(a_not_nan, b_not_nan); ++ uint32x4_t a_eq_b = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint64x2_t and_results = vandq_u64(vreinterpretq_u64_u32(a_and_b_not_nan), ++ vreinterpretq_u64_u32(a_eq_b)); ++ return vgetq_lane_u64(and_results, 0) & 0x1; ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_comineq_sd ++FORCE_INLINE int _mm_comineq_sd(__m128d a, __m128d b) ++{ ++ return !_mm_comieq_sd(a, b); ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// ++// FOR j := 0 to 1 ++// i := j*32 ++// m := j*64 ++// dst[m+63:m] := Convert_Int32_To_FP64(a[i+31:i]) ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtepi32_pd ++FORCE_INLINE __m128d _mm_cvtepi32_pd(__m128i a) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a))))); ++#else ++ double a0 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++ double a1 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Converts the four signed 32-bit integer values of a to single-precision, ++// floating-point values ++// https://msdn.microsoft.com/en-us/library/vstudio/36bwxcx5(v=vs.100).aspx ++FORCE_INLINE __m128 _mm_cvtepi32_ps(__m128i a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// ++// FOR j := 0 to 1 ++// i := 32*j ++// k := 64*j ++// dst[i+31:i] := Convert_FP64_To_Int32(a[k+63:k]) ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtpd_epi32 ++FORCE_INLINE __m128i _mm_cvtpd_epi32(__m128d a) ++{ ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) d1, (int32_t) d0); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// ++// FOR j := 0 to 1 ++// i := 32*j ++// k := 64*j ++// dst[i+31:i] := Convert_FP64_To_Int32(a[k+63:k]) ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtpd_pi32 ++FORCE_INLINE __m64 _mm_cvtpd_pi32(__m128d a) ++{ ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) d0, (int32_t) d1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed single-precision (32-bit) floating-point elements, and store the ++// results in dst. ++// ++// FOR j := 0 to 1 ++// i := 32*j ++// k := 64*j ++// dst[i+31:i] := Convert_FP64_To_FP32(a[k+64:k]) ++// ENDFOR ++// dst[127:64] := 0 ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtpd_ps ++FORCE_INLINE __m128 _mm_cvtpd_ps(__m128d a) ++{ ++#if defined(__aarch64__) ++ float32x2_t tmp = vcvt_f32_f64(vreinterpretq_f64_m128d(a)); ++ return vreinterpretq_m128_f32(vcombine_f32(tmp, vdup_n_f32(0))); ++#else ++ float a0 = (float) ((double *) &a)[0]; ++ float a1 = (float) ((double *) &a)[1]; ++ return _mm_set_ps(0, 0, a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// ++// FOR j := 0 to 1 ++// i := j*32 ++// m := j*64 ++// dst[m+63:m] := Convert_Int32_To_FP64(a[i+31:i]) ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtpi32_pd ++FORCE_INLINE __m128d _mm_cvtpi32_pd(__m64 a) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vreinterpret_s32_m64(a)))); ++#else ++ double a0 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 0); ++ double a1 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Converts the four single-precision, floating-point values of a to signed ++// 32-bit integer values. ++// ++// r0 := (int) a0 ++// r1 := (int) a1 ++// r2 := (int) a2 ++// r3 := (int) a3 ++// ++// https://msdn.microsoft.com/en-us/library/vstudio/xdc42k5e(v=vs.100).aspx ++// *NOTE*. The default rounding mode on SSE is 'round to even', which ARMv7-A ++// does not support! It is supported on ARMv8-A however. ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128 a) ++{ ++#if defined(__aarch64__) || defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: ++ return vreinterpretq_m128i_s32(vcvtnq_s32_f32(a)); ++ case _MM_ROUND_DOWN: ++ return vreinterpretq_m128i_s32(vcvtmq_s32_f32(a)); ++ case _MM_ROUND_UP: ++ return vreinterpretq_m128i_s32(vcvtpq_s32_f32(a)); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(a)); ++ } ++#else ++ float *f = (float *) &a; ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128i_s32( ++ vbslq_s32(is_delta_half, r_even, r_normal)); ++ } ++ case _MM_ROUND_DOWN: ++ return _mm_set_epi32(floorf(f[3]), floorf(f[2]), floorf(f[1]), ++ floorf(f[0])); ++ case _MM_ROUND_UP: ++ return _mm_set_epi32(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ++ ceilf(f[0])); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return _mm_set_epi32((int32_t) f[3], (int32_t) f[2], (int32_t) f[1], ++ (int32_t) f[0]); ++ } ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed double-precision (64-bit) floating-point elements, and store the ++// results in dst. ++// ++// FOR j := 0 to 1 ++// i := 64*j ++// k := 32*j ++// dst[i+63:i] := Convert_FP32_To_FP64(a[k+31:k]) ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtps_pd ++FORCE_INLINE __m128d _mm_cvtps_pd(__m128 a) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_f64( ++ vcvt_f64_f32(vget_low_f32(vreinterpretq_f32_m128(a)))); ++#else ++ double a0 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ double a1 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Copy the lower double-precision (64-bit) floating-point element of a to dst. ++// ++// dst[63:0] := a[63:0] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtsd_f64 ++FORCE_INLINE double _mm_cvtsd_f64(__m128d a) ++{ ++#if defined(__aarch64__) ++ return (double) vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0); ++#else ++ return ((double *) &a)[0]; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// ++// dst[31:0] := Convert_FP64_To_Int32(a[63:0]) ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtsd_si32 ++FORCE_INLINE int32_t _mm_cvtsd_si32(__m128d a) ++{ ++#if defined(__aarch64__) ++ return (int32_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int32_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// ++// dst[63:0] := Convert_FP64_To_Int64(a[63:0]) ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtsd_si64 ++FORCE_INLINE int64_t _mm_cvtsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) ++ return (int64_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// ++// dst[63:0] := Convert_FP64_To_Int64(a[63:0]) ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtsd_si64x ++#define _mm_cvtsd_si64x _mm_cvtsd_si64 ++ ++// Convert the lower double-precision (64-bit) floating-point element in b to a ++// single-precision (32-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtsd_ss ++FORCE_INLINE __m128 _mm_cvtsd_ss(__m128 a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128_f32(vsetq_lane_f32( ++ vget_lane_f32(vcvt_f32_f64(vreinterpretq_f64_m128d(b)), 0), ++ vreinterpretq_f32_m128(a), 0)); ++#else ++ return vreinterpretq_m128_f32(vsetq_lane_f32((float) ((double *) &b)[0], ++ vreinterpretq_f32_m128(a), 0)); ++#endif ++} ++ ++// Copy the lower 32-bit integer in a to dst. ++// ++// dst[31:0] := a[31:0] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtsi128_si32 ++FORCE_INLINE int _mm_cvtsi128_si32(__m128i a) ++{ ++ return vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// ++// dst[63:0] := a[63:0] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtsi128_si64 ++FORCE_INLINE int64_t _mm_cvtsi128_si64(__m128i a) ++{ ++ return vgetq_lane_s64(vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Convert the signed 32-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtsi32_sd ++FORCE_INLINE __m128d _mm_cvtsi32_sd(__m128d a, int32_t b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// ++// dst[63:0] := a[63:0] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Moves 32-bit integer a to the least significant 32 bits of an __m128 object, ++// zero extending the upper bits. ++// ++// r0 := a ++// r1 := 0x0 ++// r2 := 0x0 ++// r3 := 0x0 ++// ++// https://msdn.microsoft.com/en-us/library/ct3539ha%28v=vs.90%29.aspx ++FORCE_INLINE __m128i _mm_cvtsi32_si128(int a) ++{ ++ return vreinterpretq_m128i_s32(vsetq_lane_s32(a, vdupq_n_s32(0), 0)); ++} ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtsi64_sd ++FORCE_INLINE __m128d _mm_cvtsi64_sd(__m128d a, int64_t b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Moves 64-bit integer a to the least significant 64 bits of an __m128 object, ++// zero extending the upper bits. ++// ++// r0 := a ++// r1 := 0x0 ++FORCE_INLINE __m128i _mm_cvtsi64_si128(int64_t a) ++{ ++ return vreinterpretq_m128i_s64(vsetq_lane_s64(a, vdupq_n_s64(0), 0)); ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtsi64x_si128 ++#define _mm_cvtsi64x_si128(a) _mm_cvtsi64_si128(a) ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtsi64x_sd ++#define _mm_cvtsi64x_sd(a, b) _mm_cvtsi64_sd(a, b) ++ ++// Convert the lower single-precision (32-bit) floating-point element in b to a ++// double-precision (64-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// ++// dst[63:0] := Convert_FP32_To_FP64(b[31:0]) ++// dst[127:64] := a[127:64] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtss_sd ++FORCE_INLINE __m128d _mm_cvtss_sd(__m128d a, __m128 b) ++{ ++ double d = (double) vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(d, vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &d, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvttpd_epi32 ++FORCE_INLINE __m128i _mm_cvttpd_epi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) a1, (int32_t) a0); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvttpd_pi32 ++FORCE_INLINE __m64 _mm_cvttpd_pi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) a0, (int32_t) a1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Converts the four single-precision, floating-point values of a to signed ++// 32-bit integer values using truncate. ++// https://msdn.microsoft.com/en-us/library/vstudio/1h005y6x(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_cvttps_epi32(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a))); ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// ++// dst[63:0] := Convert_FP64_To_Int32_Truncate(a[63:0]) ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvttsd_si32 ++FORCE_INLINE int32_t _mm_cvttsd_si32(__m128d a) ++{ ++ double ret = *((double *) &a); ++ return (int32_t) ret; ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// ++// dst[63:0] := Convert_FP64_To_Int64_Truncate(a[63:0]) ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvttsd_si64 ++FORCE_INLINE int64_t _mm_cvttsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) ++ return vgetq_lane_s64(vcvtq_s64_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ double ret = *((double *) &a); ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// ++// dst[63:0] := Convert_FP64_To_Int64_Truncate(a[63:0]) ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvttsd_si64x ++#define _mm_cvttsd_si64x(a) _mm_cvttsd_si64(a) ++ ++// Divide packed double-precision (64-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// ++// FOR j := 0 to 1 ++// i := 64*j ++// dst[i+63:i] := a[i+63:i] / b[i+63:i] ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_div_pd ++FORCE_INLINE __m128d _mm_div_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_f64( ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] / db[0]; ++ c[1] = da[1] / db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Divide the lower double-precision (64-bit) floating-point element in a by the ++// lower double-precision (64-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper element from a to the upper ++// element of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_div_sd ++FORCE_INLINE __m128d _mm_div_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ float64x2_t tmp = ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1), tmp, 1)); ++#else ++ return _mm_move_sd(a, _mm_div_pd(a, b)); ++#endif ++} ++ ++// Extracts the selected signed or unsigned 16-bit integer from a and zero ++// extends. ++// https://msdn.microsoft.com/en-us/library/6dceta0c(v=vs.100).aspx ++// FORCE_INLINE int _mm_extract_epi16(__m128i a, __constrange(0,8) int imm) ++#define _mm_extract_epi16(a, imm) \ ++ vgetq_lane_u16(vreinterpretq_u16_m128i(a), (imm)) ++ ++// Inserts the least significant 16 bits of b into the selected 16-bit integer ++// of a. ++// https://msdn.microsoft.com/en-us/library/kaze8hz1%28v=vs.100%29.aspx ++// FORCE_INLINE __m128i _mm_insert_epi16(__m128i a, int b, ++// __constrange(0,8) int imm) ++#define _mm_insert_epi16(a, b, imm) \ ++ __extension__({ \ ++ vreinterpretq_m128i_s16( \ ++ vsetq_lane_s16((b), vreinterpretq_s16_m128i(a), (imm))); \ ++ }) ++ ++// Loads two double-precision from 16-byte aligned memory, floating-point ++// values. ++// ++// dst[127:0] := MEM[mem_addr+127:mem_addr] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_load_pd ++FORCE_INLINE __m128d _mm_load_pd(const double *p) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_f64(vld1q_f64(p)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], fp[2], fp[3]}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// ++// dst[63:0] := MEM[mem_addr+63:mem_addr] ++// dst[127:64] := MEM[mem_addr+63:mem_addr] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_load_pd1 ++#define _mm_load_pd1 _mm_load1_pd ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower of dst, and zero the upper element. mem_addr does not need to be ++// aligned on any particular boundary. ++// ++// dst[63:0] := MEM[mem_addr+63:mem_addr] ++// dst[127:64] := 0 ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_load_sd ++FORCE_INLINE __m128d _mm_load_sd(const double *p) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(*p, vdupq_n_f64(0), 0)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], 0, 0}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Loads 128-bit value. : ++// https://msdn.microsoft.com/en-us/library/atzzad1h(v=vs.80).aspx ++FORCE_INLINE __m128i _mm_load_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const int32_t *) p)); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// ++// dst[63:0] := MEM[mem_addr+63:mem_addr] ++// dst[127:64] := MEM[mem_addr+63:mem_addr] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_load1_pd ++FORCE_INLINE __m128d _mm_load1_pd(const double *p) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_f64(vld1q_dup_f64(p)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(const int64_t *) p)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// upper element of dst, and copy the lower element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// ++// dst[63:0] := a[63:0] ++// dst[127:64] := MEM[mem_addr+63:mem_addr] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_loadh_pd ++FORCE_INLINE __m128d _mm_loadh_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vget_low_f64(vreinterpretq_f64_m128d(a)), vld1_f64(p))); ++#else ++ return vreinterpretq_m128d_f32(vcombine_f32( ++ vget_low_f32(vreinterpretq_f32_m128d(a)), vld1_f32((const float *) p))); ++#endif ++} ++ ++// Load 64-bit integer from memory into the first element of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_loadl_epi64 ++FORCE_INLINE __m128i _mm_loadl_epi64(__m128i const *p) ++{ ++ /* Load the lower 64 bits of the value pointed to by p into the ++ * lower 64 bits of the result, zeroing the upper 64 bits of the result. ++ */ ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vld1_s32((int32_t const *) p), vcreate_s32(0))); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower element of dst, and copy the upper element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// ++// dst[63:0] := MEM[mem_addr+63:mem_addr] ++// dst[127:64] := a[127:64] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_loadl_pd ++FORCE_INLINE __m128d _mm_loadl_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vld1_f64(p), vget_high_f64(vreinterpretq_f64_m128d(a)))); ++#else ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vld1_f32((const float *) p), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++#endif ++} ++ ++// Load 2 double-precision (64-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// ++// dst[63:0] := MEM[mem_addr+127:mem_addr+64] ++// dst[127:64] := MEM[mem_addr+63:mem_addr] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_loadr_pd ++FORCE_INLINE __m128d _mm_loadr_pd(const double *p) ++{ ++#if defined(__aarch64__) ++ float64x2_t v = vld1q_f64(p); ++ return vreinterpretq_m128d_f64(vextq_f64(v, v, 1)); ++#else ++ int64x2_t v = vld1q_s64((const int64_t *) p); ++ return vreinterpretq_m128d_s64(vextq_s64(v, v, 1)); ++#endif ++} ++ ++// Loads two double-precision from unaligned memory, floating-point values. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_loadu_pd ++FORCE_INLINE __m128d _mm_loadu_pd(const double *p) ++{ ++ return _mm_load_pd(p); ++} ++ ++// Loads 128-bit value. : ++// https://msdn.microsoft.com/zh-cn/library/f4k12ae8(v=vs.90).aspx ++FORCE_INLINE __m128i _mm_loadu_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const int32_t *) p)); ++} ++ ++// Load unaligned 32-bit integer from memory into the first element of dst. ++// ++// dst[31:0] := MEM[mem_addr+31:mem_addr] ++// dst[MAX:32] := 0 ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_loadu_si32 ++FORCE_INLINE __m128i _mm_loadu_si32(const void *p) ++{ ++ return vreinterpretq_m128i_s32( ++ vsetq_lane_s32(*(const int32_t *) p, vdupq_n_s32(0), 0)); ++} ++ ++// Multiplies the 8 signed 16-bit integers from a by the 8 signed 16-bit ++// integers from b. ++// ++// r0 := (a0 * b0) + (a1 * b1) ++// r1 := (a2 * b2) + (a3 * b3) ++// r2 := (a4 * b4) + (a5 * b5) ++// r3 := (a6 * b6) + (a7 * b7) ++// https://msdn.microsoft.com/en-us/library/yht36sa6(v=vs.90).aspx ++FORCE_INLINE __m128i _mm_madd_epi16(__m128i a, __m128i b) ++{ ++ int32x4_t low = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int32x4_t high = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ int32x2_t low_sum = vpadd_s32(vget_low_s32(low), vget_high_s32(low)); ++ int32x2_t high_sum = vpadd_s32(vget_low_s32(high), vget_high_s32(high)); ++ ++ return vreinterpretq_m128i_s32(vcombine_s32(low_sum, high_sum)); ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. mem_addr does not need to be aligned ++// on any particular boundary. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_maskmoveu_si128 ++FORCE_INLINE void _mm_maskmoveu_si128(__m128i a, __m128i mask, char *mem_addr) ++{ ++ int8x16_t shr_mask = vshrq_n_s8(vreinterpretq_s8_m128i(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x16_t masked = ++ vbslq_s8(vreinterpretq_u8_s8(shr_mask), vreinterpretq_s8_m128i(a), ++ vreinterpretq_s8_m128(b)); ++ vst1q_s8((int8_t *) mem_addr, masked); ++} ++ ++// Computes the pairwise maxima of the 8 signed 16-bit integers from a and the 8 ++// signed 16-bit integers from b. ++// https://msdn.microsoft.com/en-us/LIBRary/3x060h7c(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_max_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmaxq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Computes the pairwise maxima of the 16 unsigned 8-bit integers from a and the ++// 16 unsigned 8-bit integers from b. ++// https://msdn.microsoft.com/en-us/library/st6634za(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_max_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vmaxq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_max_pd ++FORCE_INLINE __m128d _mm_max_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcgtq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vmaxq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? a1 : b1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_max_sd ++FORCE_INLINE __m128d _mm_max_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return _mm_move_sd(a, _mm_max_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] > db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Computes the pairwise minima of the 8 signed 16-bit integers from a and the 8 ++// signed 16-bit integers from b. ++// https://msdn.microsoft.com/en-us/library/vstudio/6te997ew(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_min_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vminq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Computes the pairwise minima of the 16 unsigned 8-bit integers from a and the ++// 16 unsigned 8-bit integers from b. ++// https://msdn.microsoft.com/ko-kr/library/17k8cf58(v=vs.100).aspxx ++FORCE_INLINE __m128i _mm_min_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vminq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_min_pd ++FORCE_INLINE __m128d _mm_min_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcltq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vminq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? a1 : b1; ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_min_sd ++FORCE_INLINE __m128d _mm_min_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return _mm_move_sd(a, _mm_min_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] < db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to the lower element of dst, and zero the ++// upper element. ++// ++// dst[63:0] := a[63:0] ++// dst[127:64] := 0 ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_move_epi64 ++FORCE_INLINE __m128i _mm_move_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(0, vreinterpretq_s64_m128i(a), 1)); ++} ++ ++// Move the lower double-precision (64-bit) floating-point element from b to the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// ++// dst[63:0] := b[63:0] ++// dst[127:64] := a[127:64] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_move_sd ++FORCE_INLINE __m128d _mm_move_sd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vget_low_f32(vreinterpretq_f32_m128d(b)), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++} ++ ++// NEON does not provide a version of this function. ++// Creates a 16-bit mask from the most significant bits of the 16 signed or ++// unsigned 8-bit integers in a and zero extends the upper bits. ++// https://msdn.microsoft.com/en-us/library/vstudio/s090c8fk(v=vs.100).aspx ++FORCE_INLINE int _mm_movemask_epi8(__m128i a) ++{ ++ // Use increasingly wide shifts+adds to collect the sign bits ++ // together. ++ // Since the widening shifts would be rather confusing to follow in little ++ // endian, everything will be illustrated in big endian order instead. This ++ // has a different result - the bits would actually be reversed on a big ++ // endian machine. ++ ++ // Starting input (only half the elements are shown): ++ // 89 ff 1d c0 00 10 99 33 ++ uint8x16_t input = vreinterpretq_u8_m128i(a); ++ ++ // Shift out everything but the sign bits with an unsigned shift right. ++ // ++ // Bytes of the vector:: ++ // 89 ff 1d c0 00 10 99 33 ++ // \ \ \ \ \ \ \ \ high_bits = (uint16x4_t)(input >> 7) ++ // | | | | | | | | ++ // 01 01 00 01 00 00 01 00 ++ // ++ // Bits of first important lane(s): ++ // 10001001 (89) ++ // \______ ++ // | ++ // 00000001 (01) ++ uint16x8_t high_bits = vreinterpretq_u16_u8(vshrq_n_u8(input, 7)); ++ ++ // Merge the even lanes together with a 16-bit unsigned shift right + add. ++ // 'xx' represents garbage data which will be ignored in the final result. ++ // In the important bytes, the add functions like a binary OR. ++ // ++ // 01 01 00 01 00 00 01 00 ++ // \_ | \_ | \_ | \_ | paired16 = (uint32x4_t)(input + (input >> 7)) ++ // \| \| \| \| ++ // xx 03 xx 01 xx 00 xx 02 ++ // ++ // 00000001 00000001 (01 01) ++ // \_______ | ++ // \| ++ // xxxxxxxx xxxxxx11 (xx 03) ++ uint32x4_t paired16 = ++ vreinterpretq_u32_u16(vsraq_n_u16(high_bits, high_bits, 7)); ++ ++ // Repeat with a wider 32-bit shift + add. ++ // xx 03 xx 01 xx 00 xx 02 ++ // \____ | \____ | paired32 = (uint64x1_t)(paired16 + (paired16 >> ++ // 14)) ++ // \| \| ++ // xx xx xx 0d xx xx xx 02 ++ // ++ // 00000011 00000001 (03 01) ++ // \\_____ || ++ // '----.\|| ++ // xxxxxxxx xxxx1101 (xx 0d) ++ uint64x2_t paired32 = ++ vreinterpretq_u64_u32(vsraq_n_u32(paired16, paired16, 14)); ++ ++ // Last, an even wider 64-bit shift + add to get our result in the low 8 bit ++ // lanes. xx xx xx 0d xx xx xx 02 ++ // \_________ | paired64 = (uint8x8_t)(paired32 + (paired32 >> ++ // 28)) ++ // \| ++ // xx xx xx xx xx xx xx d2 ++ // ++ // 00001101 00000010 (0d 02) ++ // \ \___ | | ++ // '---. \| | ++ // xxxxxxxx 11010010 (xx d2) ++ uint8x16_t paired64 = ++ vreinterpretq_u8_u64(vsraq_n_u64(paired32, paired32, 28)); ++ ++ // Extract the low 8 bits from each 64-bit lane with 2 8-bit extracts. ++ // xx xx xx xx xx xx xx d2 ++ // || return paired64[0] ++ // d2 ++ // Note: Little endian would return the correct value 4b (01001011) instead. ++ return vgetq_lane_u8(paired64, 0) | ((int) vgetq_lane_u8(paired64, 8) << 8); ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed double-precision (64-bit) floating-point element in a. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_movemask_pd ++FORCE_INLINE int _mm_movemask_pd(__m128d a) ++{ ++ uint64x2_t input = vreinterpretq_u64_m128d(a); ++ uint64x2_t high_bits = vshrq_n_u64(input, 63); ++ return vgetq_lane_u64(high_bits, 0) | (vgetq_lane_u64(high_bits, 1) << 1); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// ++// dst[63:0] := a[63:0] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_movepi64_pi64 ++FORCE_INLINE __m64 _mm_movepi64_pi64(__m128i a) ++{ ++ return vreinterpret_m64_s64(vget_low_s64(vreinterpretq_s64_m128i(a))); ++} ++ ++// Copy the 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// ++// dst[63:0] := a[63:0] ++// dst[127:64] := 0 ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_movpi64_epi64 ++FORCE_INLINE __m128i _mm_movpi64_epi64(__m64 a) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vreinterpret_s64_m64(a), vdup_n_s64(0))); ++} ++ ++// Multiply the low unsigned 32-bit integers from each packed 64-bit element in ++// a and b, and store the unsigned 64-bit results in dst. ++// ++// r0 := (a0 & 0xFFFFFFFF) * (b0 & 0xFFFFFFFF) ++// r1 := (a2 & 0xFFFFFFFF) * (b2 & 0xFFFFFFFF) ++FORCE_INLINE __m128i _mm_mul_epu32(__m128i a, __m128i b) ++{ ++ // vmull_u32 upcasts instead of masking, so we downcast. ++ uint32x2_t a_lo = vmovn_u64(vreinterpretq_u64_m128i(a)); ++ uint32x2_t b_lo = vmovn_u64(vreinterpretq_u64_m128i(b)); ++ return vreinterpretq_m128i_u64(vmull_u32(a_lo, b_lo)); ++} ++ ++// Multiply packed double-precision (64-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_mul_pd ++FORCE_INLINE __m128d _mm_mul_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_f64( ++ vmulq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] * db[0]; ++ c[1] = da[1] * db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Multiply the lower double-precision (64-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper element ++// from a to the upper element of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=mm_mul_sd ++FORCE_INLINE __m128d _mm_mul_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_mul_pd(a, b)); ++} ++ ++// Multiply the low unsigned 32-bit integers from a and b, and store the ++// unsigned 64-bit result in dst. ++// ++// dst[63:0] := a[31:0] * b[31:0] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_mul_su32 ++FORCE_INLINE __m64 _mm_mul_su32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u64(vget_low_u64( ++ vmull_u32(vreinterpret_u32_m64(a), vreinterpret_u32_m64(b)))); ++} ++ ++// Multiplies the 8 signed 16-bit integers from a by the 8 signed 16-bit ++// integers from b. ++// ++// r0 := (a0 * b0)[31:16] ++// r1 := (a1 * b1)[31:16] ++// ... ++// r7 := (a7 * b7)[31:16] ++// ++// https://msdn.microsoft.com/en-us/library/vstudio/59hddw1d(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_mulhi_epi16(__m128i a, __m128i b) ++{ ++ /* FIXME: issue with large values because of result saturation */ ++ // int16x8_t ret = vqdmulhq_s16(vreinterpretq_s16_m128i(a), ++ // vreinterpretq_s16_m128i(b)); /* =2*a*b */ return ++ // vreinterpretq_m128i_s16(vshrq_n_s16(ret, 1)); ++ int16x4_t a3210 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b3210 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab3210 = vmull_s16(a3210, b3210); /* 3333222211110000 */ ++ int16x4_t a7654 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b7654 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab7654 = vmull_s16(a7654, b7654); /* 7777666655554444 */ ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_s32(ab3210), vreinterpretq_u16_s32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_mulhi_epu16 ++FORCE_INLINE __m128i _mm_mulhi_epu16(__m128i a, __m128i b) ++{ ++ uint16x4_t a3210 = vget_low_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b3210 = vget_low_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab3210 = vmull_u16(a3210, b3210); ++#if defined(__aarch64__) ++ uint32x4_t ab7654 = ++ vmull_high_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ uint16x8_t r = vuzp2q_u16(vreinterpretq_u16_u32(ab3210), ++ vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r); ++#else ++ uint16x4_t a7654 = vget_high_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b7654 = vget_high_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab7654 = vmull_u16(a7654, b7654); ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_u32(ab3210), vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++#endif ++} ++ ++// Multiplies the 8 signed or unsigned 16-bit integers from a by the 8 signed or ++// unsigned 16-bit integers from b. ++// ++// r0 := (a0 * b0)[15:0] ++// r1 := (a1 * b1)[15:0] ++// ... ++// r7 := (a7 * b7)[15:0] ++// ++// https://msdn.microsoft.com/en-us/library/vstudio/9ks1472s(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_mullo_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmulq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compute the bitwise OR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=mm_or_pd ++FORCE_INLINE __m128d _mm_or_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vorrq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Computes the bitwise OR of the 128-bit value in a and the 128-bit value in b. ++// ++// r := a | b ++// ++// https://msdn.microsoft.com/en-us/library/vstudio/ew8ty0db(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_or_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vorrq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Packs the 16 signed 16-bit integers from a and b into 8-bit integers and ++// saturates. ++// https://msdn.microsoft.com/en-us/library/k4y4f7w5%28v=vs.90%29.aspx ++FORCE_INLINE __m128i _mm_packs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vqmovn_s16(vreinterpretq_s16_m128i(a)), ++ vqmovn_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Packs the 8 signed 32-bit integers from a and b into signed 16-bit integers ++// and saturates. ++// ++// r0 := SignedSaturate(a0) ++// r1 := SignedSaturate(a1) ++// r2 := SignedSaturate(a2) ++// r3 := SignedSaturate(a3) ++// r4 := SignedSaturate(b0) ++// r5 := SignedSaturate(b1) ++// r6 := SignedSaturate(b2) ++// r7 := SignedSaturate(b3) ++// ++// https://msdn.microsoft.com/en-us/library/393t56f9%28v=vs.90%29.aspx ++FORCE_INLINE __m128i _mm_packs_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vqmovn_s32(vreinterpretq_s32_m128i(a)), ++ vqmovn_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Packs the 16 signed 16 - bit integers from a and b into 8 - bit unsigned ++// integers and saturates. ++// ++// r0 := UnsignedSaturate(a0) ++// r1 := UnsignedSaturate(a1) ++// ... ++// r7 := UnsignedSaturate(a7) ++// r8 := UnsignedSaturate(b0) ++// r9 := UnsignedSaturate(b1) ++// ... ++// r15 := UnsignedSaturate(b7) ++// ++// https://msdn.microsoft.com/en-us/library/07ad1wx4(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_packus_epi16(const __m128i a, const __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcombine_u8(vqmovun_s16(vreinterpretq_s16_m128i(a)), ++ vqmovun_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Pause the processor. This is typically used in spin-wait loops and depending ++// on the x86 processor typical values are in the 40-100 cycle range. The ++// 'yield' instruction isn't a good fit because it's effectively a nop on most ++// Arm cores. Experience with several databases has shown has shown an 'isb' is ++// a reasonable approximation. ++FORCE_INLINE void _mm_pause() ++{ ++ __asm__ __volatile__("isb\n"); ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce two ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of 64-bit elements in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_sad_epu8 ++FORCE_INLINE __m128i _mm_sad_epu8(__m128i a, __m128i b) ++{ ++ uint16x8_t t = vpaddlq_u8(vabdq_u8((uint8x16_t) a, (uint8x16_t) b)); ++ return vreinterpretq_m128i_u64(vpaddlq_u32(vpaddlq_u16(t))); ++} ++ ++// Sets the 8 signed 16-bit integer values. ++// https://msdn.microsoft.com/en-au/library/3e0fek84(v=vs.90).aspx ++FORCE_INLINE __m128i _mm_set_epi16(short i7, ++ short i6, ++ short i5, ++ short i4, ++ short i3, ++ short i2, ++ short i1, ++ short i0) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {i0, i1, i2, i3, i4, i5, i6, i7}; ++ return vreinterpretq_m128i_s16(vld1q_s16(data)); ++} ++ ++// Sets the 4 signed 32-bit integer values. ++// https://msdn.microsoft.com/en-us/library/vstudio/019beekt(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_set_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i0, i1, i2, i3}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Returns the __m128i structure with its two 64-bit integer values ++// initialized to the values of the two 64-bit integers passed in. ++// https://msdn.microsoft.com/en-us/library/dk2sdw0h(v=vs.120).aspx ++FORCE_INLINE __m128i _mm_set_epi64(__m64 i1, __m64 i2) ++{ ++ return _mm_set_epi64x((int64_t) i1, (int64_t) i2); ++} ++ ++// Returns the __m128i structure with its two 64-bit integer values ++// initialized to the values of the two 64-bit integers passed in. ++// https://msdn.microsoft.com/en-us/library/dk2sdw0h(v=vs.120).aspx ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t i1, int64_t i2) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vcreate_s64(i2), vcreate_s64(i1))); ++} ++ ++// Sets the 16 signed 8-bit integer values. ++// https://msdn.microsoft.com/en-us/library/x0cx8zd3(v=vs.90).aspx ++FORCE_INLINE __m128i _mm_set_epi8(signed char b15, ++ signed char b14, ++ signed char b13, ++ signed char b12, ++ signed char b11, ++ signed char b10, ++ signed char b9, ++ signed char b8, ++ signed char b7, ++ signed char b6, ++ signed char b5, ++ signed char b4, ++ signed char b3, ++ signed char b2, ++ signed char b1, ++ signed char b0) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_set_pd ++FORCE_INLINE __m128d _mm_set_pd(double e1, double e0) ++{ ++ double ALIGN_STRUCT(16) data[2] = {e0, e1}; ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_f64(vld1q_f64((float64_t *) data)); ++#else ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) data)); ++#endif ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_set_pd1 ++#define _mm_set_pd1 _mm_set1_pd ++ ++// Copy double-precision (64-bit) floating-point element a to the lower element ++// of dst, and zero the upper element. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_set_sd ++FORCE_INLINE __m128d _mm_set_sd(double a) ++{ ++ return _mm_set_pd(0, a); ++} ++ ++// Sets the 8 signed 16-bit integer values to w. ++// ++// r0 := w ++// r1 := w ++// ... ++// r7 := w ++// ++// https://msdn.microsoft.com/en-us/library/k0ya3x0e(v=vs.90).aspx ++FORCE_INLINE __m128i _mm_set1_epi16(short w) ++{ ++ return vreinterpretq_m128i_s16(vdupq_n_s16(w)); ++} ++ ++// Sets the 4 signed 32-bit integer values to i. ++// ++// r0 := i ++// r1 := i ++// r2 := i ++// r3 := I ++// ++// https://msdn.microsoft.com/en-us/library/vstudio/h4xscxat(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_set1_epi32(int _i) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(_i)); ++} ++ ++// Sets the 2 signed 64-bit integer values to i. ++// https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/whtfzhzk(v=vs.100) ++FORCE_INLINE __m128i _mm_set1_epi64(__m64 _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_n_s64((int64_t) _i)); ++} ++ ++// Sets the 2 signed 64-bit integer values to i. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_set1_epi64x ++FORCE_INLINE __m128i _mm_set1_epi64x(int64_t _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_n_s64(_i)); ++} ++ ++// Sets the 16 signed 8-bit integer values to b. ++// ++// r0 := b ++// r1 := b ++// ... ++// r15 := b ++// ++// https://msdn.microsoft.com/en-us/library/6e14xhyf(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_set1_epi8(signed char w) ++{ ++ return vreinterpretq_m128i_s8(vdupq_n_s8(w)); ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_set1_pd ++FORCE_INLINE __m128d _mm_set1_pd(double d) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(d)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(int64_t *) &d)); ++#endif ++} ++ ++// Sets the 8 signed 16-bit integer values in reverse order. ++// ++// Return Value ++// r0 := w0 ++// r1 := w1 ++// ... ++// r7 := w7 ++FORCE_INLINE __m128i _mm_setr_epi16(short w0, ++ short w1, ++ short w2, ++ short w3, ++ short w4, ++ short w5, ++ short w6, ++ short w7) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {w0, w1, w2, w3, w4, w5, w6, w7}; ++ return vreinterpretq_m128i_s16(vld1q_s16((int16_t *) data)); ++} ++ ++// Sets the 4 signed 32-bit integer values in reverse order ++// https://technet.microsoft.com/en-us/library/security/27yb3ee5(v=vs.90).aspx ++FORCE_INLINE __m128i _mm_setr_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i3, i2, i1, i0}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values in reverse order. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_setr_epi64 ++FORCE_INLINE __m128i _mm_setr_epi64(__m64 e1, __m64 e0) ++{ ++ return vreinterpretq_m128i_s64(vcombine_s64(e1, e0)); ++} ++ ++// Sets the 16 signed 8-bit integer values in reverse order. ++// https://msdn.microsoft.com/en-us/library/2khb9c7k(v=vs.90).aspx ++FORCE_INLINE __m128i _mm_setr_epi8(signed char b0, ++ signed char b1, ++ signed char b2, ++ signed char b3, ++ signed char b4, ++ signed char b5, ++ signed char b6, ++ signed char b7, ++ signed char b8, ++ signed char b9, ++ signed char b10, ++ signed char b11, ++ signed char b12, ++ signed char b13, ++ signed char b14, ++ signed char b15) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_setr_pd ++FORCE_INLINE __m128d _mm_setr_pd(double e1, double e0) ++{ ++ return _mm_set_pd(e0, e1); ++} ++ ++// Return vector of type __m128d with all elements set to zero. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_setzero_pd ++FORCE_INLINE __m128d _mm_setzero_pd(void) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(0)); ++#else ++ return vreinterpretq_m128d_f32(vdupq_n_f32(0)); ++#endif ++} ++ ++// Sets the 128-bit value to zero ++// https://msdn.microsoft.com/en-us/library/vstudio/ys7dw0kh(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_setzero_si128(void) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(0)); ++} ++ ++// Shuffles the 4 signed or unsigned 32-bit integers in a as specified by imm. ++// https://msdn.microsoft.com/en-us/library/56f67xbk%28v=vs.90%29.aspx ++// FORCE_INLINE __m128i _mm_shuffle_epi32(__m128i a, ++// __constrange(0,255) int imm) ++#if __has_builtin(__builtin_shufflevector) ++#define _mm_shuffle_epi32(a, imm) \ ++ __extension__({ \ ++ int32x4_t _input = vreinterpretq_s32_m128i(a); \ ++ int32x4_t _shuf = __builtin_shufflevector( \ ++ _input, _input, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ ((imm) >> 4) & 0x3, ((imm) >> 6) & 0x3); \ ++ vreinterpretq_m128i_s32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_epi32(a, imm) \ ++ __extension__({ \ ++ __m128i ret; \ ++ switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_epi_1032((a)); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_epi_2301((a)); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_epi_0321((a)); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_epi_2103((a)); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_shuffle_epi_1010((a)); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_epi_1001((a)); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_epi_0101((a)); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 1, 1): \ ++ ret = _mm_shuffle_epi_2211((a)); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 2, 2): \ ++ ret = _mm_shuffle_epi_0122((a)); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 2): \ ++ ret = _mm_shuffle_epi_3332((a)); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 0, 0): \ ++ ret = _mm_shuffle_epi32_splat((a), 0); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 1, 1): \ ++ ret = _mm_shuffle_epi32_splat((a), 1); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 2, 2): \ ++ ret = _mm_shuffle_epi32_splat((a), 2); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 3): \ ++ ret = _mm_shuffle_epi32_splat((a), 3); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_epi32_default((a), (imm)); \ ++ break; \ ++ } \ ++ ret; \ ++ }) ++#endif ++ ++// Shuffle double-precision (64-bit) floating-point elements using the control ++// in imm8, and store the results in dst. ++// ++// dst[63:0] := (imm8[0] == 0) ? a[63:0] : a[127:64] ++// dst[127:64] := (imm8[1] == 0) ? b[63:0] : b[127:64] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_shuffle_pd ++#if __has_builtin(__builtin_shufflevector) ++#define _mm_shuffle_pd(a, b, imm8) \ ++ vreinterpretq_m128d_s64(__builtin_shufflevector( \ ++ vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b), imm8 & 0x1, \ ++ ((imm8 & 0x2) >> 1) + 2)) ++#else ++#define _mm_shuffle_pd(a, b, imm8) \ ++ _mm_castsi128_pd(_mm_set_epi64x( \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(b), (imm8 & 0x2) >> 1), \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(a), imm8 & 0x1))) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflehi_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if __has_builtin(__builtin_shufflevector) ++#define _mm_shufflehi_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = __builtin_shufflevector( \ ++ _input, _input, 0, 1, 2, 3, ((imm) & (0x3)) + 4, \ ++ (((imm) >> 2) & 0x3) + 4, (((imm) >> 4) & 0x3) + 4, \ ++ (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflehi_epi16(a, imm) _mm_shufflehi_epi16_function((a), (imm)) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflelo_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if __has_builtin(__builtin_shufflevector) ++#define _mm_shufflelo_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = __builtin_shufflevector( \ ++ _input, _input, ((imm) & (0x3)), (((imm) >> 2) & 0x3), \ ++ (((imm) >> 4) & 0x3), (((imm) >> 6) & 0x3), 4, 5, 6, 7); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflelo_epi16(a, imm) _mm_shufflelo_epi16_function((a), (imm)) ++#endif ++ ++// Shift packed 16-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// ++// FOR j := 0 to 7 ++// i := j*16 ++// IF count[63:0] > 15 ++// dst[i+15:i] := 0 ++// ELSE ++// dst[i+15:i] := ZeroExtend16(a[i+15:i] << count[63:0]) ++// FI ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_sll_epi16 ++FORCE_INLINE __m128i _mm_sll_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16((int16_t) c); ++ return vreinterpretq_m128i_s16(vshlq_s16(vreinterpretq_s16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// ++// FOR j := 0 to 3 ++// i := j*32 ++// IF count[63:0] > 31 ++// dst[i+31:i] := 0 ++// ELSE ++// dst[i+31:i] := ZeroExtend32(a[i+31:i] << count[63:0]) ++// FI ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_sll_epi32 ++FORCE_INLINE __m128i _mm_sll_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32((int32_t) c); ++ return vreinterpretq_m128i_s32(vshlq_s32(vreinterpretq_s32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// ++// FOR j := 0 to 1 ++// i := j*64 ++// IF count[63:0] > 63 ++// dst[i+63:i] := 0 ++// ELSE ++// dst[i+63:i] := ZeroExtend64(a[i+63:i] << count[63:0]) ++// FI ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_sll_epi64 ++FORCE_INLINE __m128i _mm_sll_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64((int64_t) c); ++ return vreinterpretq_m128i_s64(vshlq_s64(vreinterpretq_s64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// ++// FOR j := 0 to 7 ++// i := j*16 ++// IF imm8[7:0] > 15 ++// dst[i+15:i] := 0 ++// ELSE ++// dst[i+15:i] := ZeroExtend16(a[i+15:i] << imm8[7:0]) ++// FI ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_slli_epi16 ++FORCE_INLINE __m128i _mm_slli_epi16(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~15)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16(vreinterpretq_s16_m128i(a), vdupq_n_s16(imm))); ++} ++ ++// Shift packed 32-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// ++// FOR j := 0 to 3 ++// i := j*32 ++// IF imm8[7:0] > 31 ++// dst[i+31:i] := 0 ++// ELSE ++// dst[i+31:i] := ZeroExtend32(a[i+31:i] << imm8[7:0]) ++// FI ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_slli_epi32 ++FORCE_INLINE __m128i _mm_slli_epi32(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~31)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32(vreinterpretq_s32_m128i(a), vdupq_n_s32(imm))); ++} ++ ++// Shift packed 64-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// ++// FOR j := 0 to 1 ++// i := j*64 ++// IF imm8[7:0] > 63 ++// dst[i+63:i] := 0 ++// ELSE ++// dst[i+63:i] := ZeroExtend64(a[i+63:i] << imm8[7:0]) ++// FI ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_slli_epi64 ++FORCE_INLINE __m128i _mm_slli_epi64(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~63)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s64( ++ vshlq_s64(vreinterpretq_s64_m128i(a), vdupq_n_s64(imm))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// ++// tmp := imm8[7:0] ++// IF tmp > 15 ++// tmp := 16 ++// FI ++// dst[127:0] := a[127:0] << (tmp*8) ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_slli_si128 ++FORCE_INLINE __m128i _mm_slli_si128(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~15)) ++ return _mm_setzero_si128(); ++ uint8x16_t tmp[2] = {vdupq_n_u8(0), vreinterpretq_u8_m128i(a)}; ++ return vreinterpretq_m128i_u8( ++ vld1q_u8(((uint8_t const *) tmp) + (16 - imm))); ++} ++ ++// Compute the square root of packed double-precision (64-bit) floating-point ++// elements in a, and store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_sqrt_pd ++FORCE_INLINE __m128d _mm_sqrt_pd(__m128d a) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_f64(vsqrtq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double a0 = sqrt(((double *) &a)[0]); ++ double a1 = sqrt(((double *) &a)[1]); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Compute the square root of the lower double-precision (64-bit) floating-point ++// element in b, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_sqrt_sd ++FORCE_INLINE __m128d _mm_sqrt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return _mm_move_sd(a, _mm_sqrt_pd(b)); ++#else ++ return _mm_set_pd(((double *) &a)[1], sqrt(((double *) &b)[0])); ++#endif ++} ++ ++// Shift packed 16-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// ++// FOR j := 0 to 7 ++// i := j*16 ++// IF count[63:0] > 15 ++// dst[i+15:i] := (a[i+15] ? 0xFFFF : 0x0) ++// ELSE ++// dst[i+15:i] := SignExtend16(a[i+15:i] >> count[63:0]) ++// FI ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_sra_epi16 ++FORCE_INLINE __m128i _mm_sra_epi16(__m128i a, __m128i count) ++{ ++ int64_t c = (int64_t) vget_low_s64((int64x2_t) count); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_cmplt_epi16(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s16(vshlq_s16((int16x8_t) a, vdupq_n_s16(-c))); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// ++// FOR j := 0 to 3 ++// i := j*32 ++// IF count[63:0] > 31 ++// dst[i+31:i] := (a[i+31] ? 0xFFFFFFFF : 0x0) ++// ELSE ++// dst[i+31:i] := SignExtend32(a[i+31:i] >> count[63:0]) ++// FI ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_sra_epi32 ++FORCE_INLINE __m128i _mm_sra_epi32(__m128i a, __m128i count) ++{ ++ int64_t c = (int64_t) vget_low_s64((int64x2_t) count); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_cmplt_epi32(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s32(vshlq_s32((int32x4_t) a, vdupq_n_s32(-c))); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in sign ++// bits, and store the results in dst. ++// ++// FOR j := 0 to 7 ++// i := j*16 ++// IF imm8[7:0] > 15 ++// dst[i+15:i] := (a[i+15] ? 0xFFFF : 0x0) ++// ELSE ++// dst[i+15:i] := SignExtend16(a[i+15:i] >> imm8[7:0]) ++// FI ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_srai_epi16 ++FORCE_INLINE __m128i _mm_srai_epi16(__m128i a, int imm) ++{ ++ const int count = (imm & ~15) ? 15 : imm; ++ return (__m128i) vshlq_s16((int16x8_t) a, vdupq_n_s16(-count)); ++} ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in sign bits, ++// and store the results in dst. ++// ++// FOR j := 0 to 3 ++// i := j*32 ++// IF imm8[7:0] > 31 ++// dst[i+31:i] := (a[i+31] ? 0xFFFFFFFF : 0x0) ++// ELSE ++// dst[i+31:i] := SignExtend32(a[i+31:i] >> imm8[7:0]) ++// FI ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_srai_epi32 ++// FORCE_INLINE __m128i _mm_srai_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srai_epi32(a, imm) \ ++ __extension__({ \ ++ __m128i ret; \ ++ if (_sse2neon_unlikely((imm) == 0)) { \ ++ ret = a; \ ++ } else if (_sse2neon_likely(0 < (imm) && (imm) < 32)) { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshlq_s32(vreinterpretq_s32_m128i(a), vdupq_n_s32(-(imm)))); \ ++ } else { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshrq_n_s32(vreinterpretq_s32_m128i(a), 31)); \ ++ } \ ++ ret; \ ++ }) ++ ++// Shift packed 16-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// ++// FOR j := 0 to 7 ++// i := j*16 ++// IF count[63:0] > 15 ++// dst[i+15:i] := 0 ++// ELSE ++// dst[i+15:i] := ZeroExtend16(a[i+15:i] >> count[63:0]) ++// FI ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_srl_epi16 ++FORCE_INLINE __m128i _mm_srl_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16(-(int16_t) c); ++ return vreinterpretq_m128i_u16(vshlq_u16(vreinterpretq_u16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// ++// FOR j := 0 to 3 ++// i := j*32 ++// IF count[63:0] > 31 ++// dst[i+31:i] := 0 ++// ELSE ++// dst[i+31:i] := ZeroExtend32(a[i+31:i] >> count[63:0]) ++// FI ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_srl_epi32 ++FORCE_INLINE __m128i _mm_srl_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32(-(int32_t) c); ++ return vreinterpretq_m128i_u32(vshlq_u32(vreinterpretq_u32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// ++// FOR j := 0 to 1 ++// i := j*64 ++// IF count[63:0] > 63 ++// dst[i+63:i] := 0 ++// ELSE ++// dst[i+63:i] := ZeroExtend64(a[i+63:i] >> count[63:0]) ++// FI ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_srl_epi64 ++FORCE_INLINE __m128i _mm_srl_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64(-(int64_t) c); ++ return vreinterpretq_m128i_u64(vshlq_u64(vreinterpretq_u64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// ++// FOR j := 0 to 7 ++// i := j*16 ++// IF imm8[7:0] > 15 ++// dst[i+15:i] := 0 ++// ELSE ++// dst[i+15:i] := ZeroExtend16(a[i+15:i] >> imm8[7:0]) ++// FI ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_srli_epi16 ++#define _mm_srli_epi16(a, imm) \ ++ __extension__({ \ ++ __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~15)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u16( \ ++ vshlq_u16(vreinterpretq_u16_m128i(a), vdupq_n_s16(-(imm)))); \ ++ } \ ++ ret; \ ++ }) ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// ++// FOR j := 0 to 3 ++// i := j*32 ++// IF imm8[7:0] > 31 ++// dst[i+31:i] := 0 ++// ELSE ++// dst[i+31:i] := ZeroExtend32(a[i+31:i] >> imm8[7:0]) ++// FI ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_srli_epi32 ++// FORCE_INLINE __m128i _mm_srli_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srli_epi32(a, imm) \ ++ __extension__({ \ ++ __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u32( \ ++ vshlq_u32(vreinterpretq_u32_m128i(a), vdupq_n_s32(-(imm)))); \ ++ } \ ++ ret; \ ++ }) ++ ++// Shift packed 64-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// ++// FOR j := 0 to 1 ++// i := j*64 ++// IF imm8[7:0] > 63 ++// dst[i+63:i] := 0 ++// ELSE ++// dst[i+63:i] := ZeroExtend64(a[i+63:i] >> imm8[7:0]) ++// FI ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_srli_epi64 ++#define _mm_srli_epi64(a, imm) \ ++ __extension__({ \ ++ __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~63)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u64( \ ++ vshlq_u64(vreinterpretq_u64_m128i(a), vdupq_n_s64(-(imm)))); \ ++ } \ ++ ret; \ ++ }) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// ++// tmp := imm8[7:0] ++// IF tmp > 15 ++// tmp := 16 ++// FI ++// dst[127:0] := a[127:0] >> (tmp*8) ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_srli_si128 ++FORCE_INLINE __m128i _mm_srli_si128(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~15)) ++ return _mm_setzero_si128(); ++ uint8x16_t tmp[2] = {vreinterpretq_u8_m128i(a), vdupq_n_u8(0)}; ++ return vreinterpretq_m128i_u8(vld1q_u8(((uint8_t const *) tmp) + imm)); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_store_pd ++FORCE_INLINE void _mm_store_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) ++ vst1q_f64((float64_t *) mem_addr, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_f32((float32_t *) mem_addr, vreinterpretq_f32_m128d(a)); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_store_pd1 ++FORCE_INLINE void _mm_store_pd1(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) ++ float64x1_t a_low = vget_low_f64(vreinterpretq_f64_m128d(a)); ++ vst1q_f64((float64_t *) mem_addr, ++ vreinterpretq_f64_m128d(vcombine_f64(a_low, a_low))); ++#else ++ float32x2_t a_low = vget_low_f32(vreinterpretq_f32_m128d(a)); ++ vst1q_f32((float32_t *) mem_addr, ++ vreinterpretq_f32_m128d(vcombine_f32(a_low, a_low))); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=mm_store_sd ++FORCE_INLINE void _mm_store_sd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_u64((uint64_t *) mem_addr, vget_low_u64(vreinterpretq_u64_m128d(a))); ++#endif ++} ++ ++// Stores four 32-bit integer values as (as a __m128i value) at the address p. ++// https://msdn.microsoft.com/en-us/library/vstudio/edk11s13(v=vs.100).aspx ++FORCE_INLINE void _mm_store_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#expand=9,526,5601&text=_mm_store1_pd ++#define _mm_store1_pd _mm_store_pd1 ++ ++// Store the upper double-precision (64-bit) floating-point element from a into ++// memory. ++// ++// MEM[mem_addr+63:mem_addr] := a[127:64] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_storeh_pd ++FORCE_INLINE void _mm_storeh_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) ++ vst1_f64((float64_t *) mem_addr, vget_high_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_high_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Reads the lower 64 bits of b and stores them into the lower 64 bits of a. ++// https://msdn.microsoft.com/en-us/library/hhwf428f%28v=vs.90%29.aspx ++FORCE_INLINE void _mm_storel_epi64(__m128i *a, __m128i b) ++{ ++ vst1_u64((uint64_t *) a, vget_low_u64(vreinterpretq_u64_m128i(b))); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. ++// ++// MEM[mem_addr+63:mem_addr] := a[63:0] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_storel_pd ++FORCE_INLINE void _mm_storel_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_low_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 2 double-precision (64-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// ++// MEM[mem_addr+63:mem_addr] := a[127:64] ++// MEM[mem_addr+127:mem_addr+64] := a[63:0] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_storer_pd ++FORCE_INLINE void _mm_storer_pd(double *mem_addr, __m128d a) ++{ ++ float32x4_t f = vreinterpretq_f32_m128d(a); ++ _mm_store_pd(mem_addr, vreinterpretq_m128d_f32(vextq_f32(f, f, 2))); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_storeu_pd ++FORCE_INLINE void _mm_storeu_pd(double *mem_addr, __m128d a) ++{ ++ _mm_store_pd(mem_addr, a); ++} ++ ++// Stores 128-bits of integer data a at the address p. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_storeu_si128 ++FORCE_INLINE void _mm_storeu_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Stores 32-bits of integer data a at the address p. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_storeu_si32 ++FORCE_INLINE void _mm_storeu_si32(void *p, __m128i a) ++{ ++ vst1q_lane_s32((int32_t *) p, vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory using a non-temporal memory hint. mem_addr must ++// be aligned on a 16-byte boundary or a general-protection exception may be ++// generated. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_stream_pd ++FORCE_INLINE void _mm_stream_pd(double *p, __m128d a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (float32x4_t *) p); ++#elif defined(__aarch64__) ++ vst1q_f64(p, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128d(a)); ++#endif ++} ++ ++// Stores the data in a to the address p without polluting the caches. If the ++// cache line containing address p is already in the cache, the cache will be ++// updated. ++// https://msdn.microsoft.com/en-us/library/ba08y07y%28v=vs.90%29.aspx ++FORCE_INLINE void _mm_stream_si128(__m128i *p, __m128i a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, p); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128i(a)); ++#endif ++} ++ ++// Store 32-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_stream_si32 ++FORCE_INLINE void _mm_stream_si32(int *p, int a) ++{ ++ vst1q_lane_s32((int32_t *) p, vdupq_n_s32(a), 0); ++} ++ ++// Store 64-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_stream_si64 ++FORCE_INLINE void _mm_stream_si64(__int64 *p, __int64 a) ++{ ++ vst1_s64((int64_t *) p, vdup_n_s64((int64_t) a)); ++} ++ ++// Subtract packed 16-bit integers in b from packed 16-bit integers in a, and ++// store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_sub_epi16 ++FORCE_INLINE __m128i _mm_sub_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtracts the 4 signed or unsigned 32-bit integers of b from the 4 signed or ++// unsigned 32-bit integers of a. ++// ++// r0 := a0 - b0 ++// r1 := a1 - b1 ++// r2 := a2 - b2 ++// r3 := a3 - b3 ++// ++// https://msdn.microsoft.com/en-us/library/vstudio/fhh866h0(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_sub_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Subtract 2 packed 64-bit integers in b from 2 packed 64-bit integers in a, ++// and store the results in dst. ++// r0 := a0 - b0 ++// r1 := a1 - b1 ++FORCE_INLINE __m128i _mm_sub_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vsubq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Subtract packed 8-bit integers in b from packed 8-bit integers in a, and ++// store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_sub_epi8 ++FORCE_INLINE __m128i _mm_sub_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed double-precision (64-bit) floating-point elements in b from ++// packed double-precision (64-bit) floating-point elements in a, and store the ++// results in dst. ++// ++// FOR j := 0 to 1 ++// i := j*64 ++// dst[i+63:i] := a[i+63:i] - b[i+63:i] ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=mm_sub_pd ++FORCE_INLINE __m128d _mm_sub_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] - db[0]; ++ c[1] = da[1] - db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Subtract the lower double-precision (64-bit) floating-point element in b from ++// the lower double-precision (64-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_sub_sd ++FORCE_INLINE __m128d _mm_sub_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_sub_pd(a, b)); ++} ++ ++// Subtract 64-bit integer b from 64-bit integer a, and store the result in dst. ++// ++// dst[63:0] := a[63:0] - b[63:0] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_sub_si64 ++FORCE_INLINE __m64 _mm_sub_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vsub_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Subtracts the 8 signed 16-bit integers of b from the 8 signed 16-bit integers ++// of a and saturates. ++// ++// r0 := SignedSaturate(a0 - b0) ++// r1 := SignedSaturate(a1 - b1) ++// ... ++// r7 := SignedSaturate(a7 - b7) ++// ++// https://technet.microsoft.com/en-us/subscriptions/3247z5b8(v=vs.90) ++FORCE_INLINE __m128i _mm_subs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtracts the 16 signed 8-bit integers of b from the 16 signed 8-bit integers ++// of a and saturates. ++// ++// r0 := SignedSaturate(a0 - b0) ++// r1 := SignedSaturate(a1 - b1) ++// ... ++// r15 := SignedSaturate(a15 - b15) ++// ++// https://technet.microsoft.com/en-us/subscriptions/by7kzks1(v=vs.90) ++FORCE_INLINE __m128i _mm_subs_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtracts the 8 unsigned 16-bit integers of bfrom the 8 unsigned 16-bit ++// integers of a and saturates.. ++// https://technet.microsoft.com/en-us/subscriptions/index/f44y0s19(v=vs.90).aspx ++FORCE_INLINE __m128i _mm_subs_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqsubq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Subtracts the 16 unsigned 8-bit integers of b from the 16 unsigned 8-bit ++// integers of a and saturates. ++// ++// r0 := UnsignedSaturate(a0 - b0) ++// r1 := UnsignedSaturate(a1 - b1) ++// ... ++// r15 := UnsignedSaturate(a15 - b15) ++// ++// https://technet.microsoft.com/en-us/subscriptions/yadkxc18(v=vs.90) ++FORCE_INLINE __m128i _mm_subs_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqsubq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++#define _mm_ucomieq_sd _mm_comieq_sd ++#define _mm_ucomige_sd _mm_comige_sd ++#define _mm_ucomigt_sd _mm_comigt_sd ++#define _mm_ucomile_sd _mm_comile_sd ++#define _mm_ucomilt_sd _mm_comilt_sd ++#define _mm_ucomineq_sd _mm_comineq_sd ++ ++// Return vector of type __m128d with undefined elements. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_undefined_pd ++FORCE_INLINE __m128d _mm_undefined_pd(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128d a; ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Interleaves the upper 4 signed or unsigned 16-bit integers in a with the ++// upper 4 signed or unsigned 16-bit integers in b. ++// ++// r0 := a4 ++// r1 := b4 ++// r2 := a5 ++// r3 := b5 ++// r4 := a6 ++// r5 := b6 ++// r6 := a7 ++// r7 := b7 ++// ++// https://msdn.microsoft.com/en-us/library/03196cz7(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_unpackhi_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128i_s16( ++ vzip2q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Interleaves the upper 2 signed or unsigned 32-bit integers in a with the ++// upper 2 signed or unsigned 32-bit integers in b. ++// https://msdn.microsoft.com/en-us/library/65sa7cbs(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_unpackhi_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128i_s32( ++ vzip2q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_high_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Interleaves the upper signed or unsigned 64-bit integer in a with the ++// upper signed or unsigned 64-bit integer in b. ++// ++// r0 := a1 ++// r1 := b1 ++FORCE_INLINE __m128i _mm_unpackhi_epi64(__m128i a, __m128i b) ++{ ++ int64x1_t a_h = vget_high_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_h = vget_high_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_h, b_h)); ++} ++ ++// Interleaves the upper 8 signed or unsigned 8-bit integers in a with the upper ++// 8 signed or unsigned 8-bit integers in b. ++// ++// r0 := a8 ++// r1 := b8 ++// r2 := a9 ++// r3 := b9 ++// ... ++// r14 := a15 ++// r15 := b15 ++// ++// https://msdn.microsoft.com/en-us/library/t5h7783k(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_unpackhi_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128i_s8( ++ vzip2q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the high half of a and b, and store the results in dst. ++// ++// DEFINE INTERLEAVE_HIGH_QWORDS(src1[127:0], src2[127:0]) { ++// dst[63:0] := src1[127:64] ++// dst[127:64] := src2[127:64] ++// RETURN dst[127:0] ++// } ++// dst[127:0] := INTERLEAVE_HIGH_QWORDS(a[127:0], b[127:0]) ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_unpackhi_pd ++FORCE_INLINE __m128d _mm_unpackhi_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_f64( ++ vzip2q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_high_s64(vreinterpretq_s64_m128d(a)), ++ vget_high_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Interleaves the lower 4 signed or unsigned 16-bit integers in a with the ++// lower 4 signed or unsigned 16-bit integers in b. ++// ++// r0 := a0 ++// r1 := b0 ++// r2 := a1 ++// r3 := b1 ++// r4 := a2 ++// r5 := b2 ++// r6 := a3 ++// r7 := b3 ++// ++// https://msdn.microsoft.com/en-us/library/btxb17bw%28v=vs.90%29.aspx ++FORCE_INLINE __m128i _mm_unpacklo_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128i_s16( ++ vzip1q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Interleaves the lower 2 signed or unsigned 32 - bit integers in a with the ++// lower 2 signed or unsigned 32 - bit integers in b. ++// ++// r0 := a0 ++// r1 := b0 ++// r2 := a1 ++// r3 := b1 ++// ++// https://msdn.microsoft.com/en-us/library/x8atst9d(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_unpacklo_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128i_s32( ++ vzip1q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_low_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++FORCE_INLINE __m128i _mm_unpacklo_epi64(__m128i a, __m128i b) ++{ ++ int64x1_t a_l = vget_low_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_l = vget_low_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_l, b_l)); ++} ++ ++// Interleaves the lower 8 signed or unsigned 8-bit integers in a with the lower ++// 8 signed or unsigned 8-bit integers in b. ++// ++// r0 := a0 ++// r1 := b0 ++// r2 := a1 ++// r3 := b1 ++// ... ++// r14 := a7 ++// r15 := b7 ++// ++// https://msdn.microsoft.com/en-us/library/xf7k860c%28v=vs.90%29.aspx ++FORCE_INLINE __m128i _mm_unpacklo_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128i_s8( ++ vzip1q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// ++// DEFINE INTERLEAVE_QWORDS(src1[127:0], src2[127:0]) { ++// dst[63:0] := src1[63:0] ++// dst[127:64] := src2[63:0] ++// RETURN dst[127:0] ++// } ++// dst[127:0] := INTERLEAVE_QWORDS(a[127:0], b[127:0]) ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_unpacklo_pd ++FORCE_INLINE __m128d _mm_unpacklo_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_f64( ++ vzip1q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_low_s64(vreinterpretq_s64_m128d(a)), ++ vget_low_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Compute the bitwise XOR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// ++// FOR j := 0 to 1 ++// i := j*64 ++// dst[i+63:i] := a[i+63:i] XOR b[i+63:i] ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_xor_pd ++FORCE_INLINE __m128d _mm_xor_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ veorq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Computes the bitwise XOR of the 128-bit value in a and the 128-bit value in ++// b. https://msdn.microsoft.com/en-us/library/fzt08www(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_xor_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ veorq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++/* SSE3 */ ++ ++// Alternatively add and subtract packed double-precision (64-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// ++// FOR j := 0 to 1 ++// i := j*64 ++// IF ((j & 1) == 0) ++// dst[i+63:i] := a[i+63:i] - b[i+63:i] ++// ELSE ++// dst[i+63:i] := a[i+63:i] + b[i+63:i] ++// FI ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_addsub_pd ++FORCE_INLINE __m128d _mm_addsub_pd(__m128d a, __m128d b) ++{ ++ _sse2neon_const __m128d mask = _mm_set_pd(1.0f, -1.0f); ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_f64(vfmaq_f64(vreinterpretq_f64_m128d(a), ++ vreinterpretq_f64_m128d(b), ++ vreinterpretq_f64_m128d(mask))); ++#else ++ return _mm_add_pd(_mm_mul_pd(b, mask), a); ++#endif ++} ++ ++// Alternatively add and subtract packed single-precision (32-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=addsub_ps ++FORCE_INLINE __m128 _mm_addsub_ps(__m128 a, __m128 b) ++{ ++ _sse2neon_const __m128 mask = _mm_setr_ps(-1.0f, 1.0f, -1.0f, 1.0f); ++#if defined(__aarch64__) || defined(__ARM_FEATURE_FMA) /* VFPv4+ */ ++ return vreinterpretq_m128_f32(vfmaq_f32(vreinterpretq_f32_m128(a), ++ vreinterpretq_f32_m128(mask), ++ vreinterpretq_f32_m128(b))); ++#else ++ return _mm_add_ps(_mm_mul_ps(b, mask), a); ++#endif ++} ++ ++// Horizontally add adjacent pairs of double-precision (64-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_hadd_pd ++FORCE_INLINE __m128d _mm_hadd_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_f64( ++ vpaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[] = {da[0] + da[1], db[0] + db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Computes pairwise add of each argument as single-precision, floating-point ++// values a and b. ++// https://msdn.microsoft.com/en-us/library/yd9wecaa.aspx ++FORCE_INLINE __m128 _mm_hadd_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128_f32( ++ vpaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vpadd_f32(a10, a32), vpadd_f32(b10, b32))); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of double-precision (64-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_hsub_pd ++FORCE_INLINE __m128d _mm_hsub_pd(__m128d _a, __m128d _b) ++{ ++#if defined(__aarch64__) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vuzp1q_f64(a, b), vuzp2q_f64(a, b))); ++#else ++ double *da = (double *) &_a; ++ double *db = (double *) &_b; ++ double c[] = {da[0] - da[1], db[0] - db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of single-precision (32-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_hsub_ps ++FORCE_INLINE __m128 _mm_hsub_ps(__m128 _a, __m128 _b) ++{ ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++#if defined(__aarch64__) ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vuzp1q_f32(a, b), vuzp2q_f32(a, b))); ++#else ++ float32x4x2_t c = vuzpq_f32(a, b); ++ return vreinterpretq_m128_f32(vsubq_f32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Load 128-bits of integer data from unaligned memory into dst. This intrinsic ++// may perform better than _mm_loadu_si128 when the data crosses a cache line ++// boundary. ++// ++// dst[127:0] := MEM[mem_addr+127:mem_addr] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_lddqu_si128 ++#define _mm_lddqu_si128 _mm_loadu_si128 ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// ++// dst[63:0] := MEM[mem_addr+63:mem_addr] ++// dst[127:64] := MEM[mem_addr+63:mem_addr] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_loaddup_pd ++#define _mm_loaddup_pd _mm_load1_pd ++ ++// Duplicate the low double-precision (64-bit) floating-point element from a, ++// and store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_movedup_pd ++FORCE_INLINE __m128d _mm_movedup_pd(__m128d a) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_f64( ++ vdupq_laneq_f64(vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_u64( ++ vdupq_n_u64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0))); ++#endif ++} ++ ++// Duplicate odd-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_movehdup_ps ++FORCE_INLINE __m128 _mm_movehdup_ps(__m128 a) ++{ ++#if __has_builtin(__builtin_shufflevector) ++ return vreinterpretq_m128_f32(__builtin_shufflevector( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 1, 1, 3, 3)); ++#else ++ float32_t a1 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ float32_t a3 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 3); ++ float ALIGN_STRUCT(16) data[4] = {a1, a1, a3, a3}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Duplicate even-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_moveldup_ps ++FORCE_INLINE __m128 _mm_moveldup_ps(__m128 a) ++{ ++#if __has_builtin(__builtin_shufflevector) ++ return vreinterpretq_m128_f32(__builtin_shufflevector( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 0, 0, 2, 2)); ++#else ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32_t a2 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 2); ++ float ALIGN_STRUCT(16) data[4] = {a0, a0, a2, a2}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++/* SSSE3 */ ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// ++// FOR j := 0 to 7 ++// i := j*16 ++// dst[i+15:i] := ABS(a[i+15:i]) ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_abs_epi16 ++FORCE_INLINE __m128i _mm_abs_epi16(__m128i a) ++{ ++ return vreinterpretq_m128i_s16(vabsq_s16(vreinterpretq_s16_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// ++// FOR j := 0 to 3 ++// i := j*32 ++// dst[i+31:i] := ABS(a[i+31:i]) ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_abs_epi32 ++FORCE_INLINE __m128i _mm_abs_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32(vabsq_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// ++// FOR j := 0 to 15 ++// i := j*8 ++// dst[i+7:i] := ABS(a[i+7:i]) ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_abs_epi8 ++FORCE_INLINE __m128i _mm_abs_epi8(__m128i a) ++{ ++ return vreinterpretq_m128i_s8(vabsq_s8(vreinterpretq_s8_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// ++// FOR j := 0 to 3 ++// i := j*16 ++// dst[i+15:i] := ABS(a[i+15:i]) ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_abs_pi16 ++FORCE_INLINE __m64 _mm_abs_pi16(__m64 a) ++{ ++ return vreinterpret_m64_s16(vabs_s16(vreinterpret_s16_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// ++// FOR j := 0 to 1 ++// i := j*32 ++// dst[i+31:i] := ABS(a[i+31:i]) ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_abs_pi32 ++FORCE_INLINE __m64 _mm_abs_pi32(__m64 a) ++{ ++ return vreinterpret_m64_s32(vabs_s32(vreinterpret_s32_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// ++// FOR j := 0 to 7 ++// i := j*8 ++// dst[i+7:i] := ABS(a[i+7:i]) ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_abs_pi8 ++FORCE_INLINE __m64 _mm_abs_pi8(__m64 a) ++{ ++ return vreinterpret_m64_s8(vabs_s8(vreinterpret_s8_m64(a))); ++} ++ ++// Concatenate 16-byte blocks in a and b into a 32-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 16 bytes in dst. ++// ++// tmp[255:0] := ((a[127:0] << 128)[255:0] OR b[127:0]) >> (imm8*8) ++// dst[127:0] := tmp[127:0] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_alignr_epi8 ++FORCE_INLINE __m128i _mm_alignr_epi8(__m128i a, __m128i b, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~31)) ++ return _mm_setzero_si128(); ++ int idx; ++ uint8x16_t tmp[2]; ++ if (imm >= 16) { ++ idx = imm - 16; ++ tmp[0] = vreinterpretq_u8_m128i(a); ++ tmp[1] = vdupq_n_u8(0); ++ } else { ++ idx = imm; ++ tmp[0] = vreinterpretq_u8_m128i(b); ++ tmp[1] = vreinterpretq_u8_m128i(a); ++ } ++ return vreinterpretq_m128i_u8(vld1q_u8(((uint8_t const *) tmp) + idx)); ++} ++ ++// Concatenate 8-byte blocks in a and b into a 16-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 8 bytes in dst. ++// ++// tmp[127:0] := ((a[63:0] << 64)[127:0] OR b[63:0]) >> (imm8*8) ++// dst[63:0] := tmp[63:0] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_alignr_pi8 ++#define _mm_alignr_pi8(a, b, imm) \ ++ __extension__({ \ ++ __m64 ret; \ ++ if (_sse2neon_unlikely((imm) >= 16)) { \ ++ ret = vreinterpret_m64_s8(vdup_n_s8(0)); \ ++ } else { \ ++ uint8x8_t tmp_low, tmp_high; \ ++ if ((imm) >= 8) { \ ++ const int idx = (imm) -8; \ ++ tmp_low = vreinterpret_u8_m64(a); \ ++ tmp_high = vdup_n_u8(0); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } else { \ ++ const int idx = (imm); \ ++ tmp_low = vreinterpret_u8_m64(b); \ ++ tmp_high = vreinterpret_u8_m64(a); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } \ ++ } \ ++ ret; \ ++ }) ++ ++// Computes pairwise add of each argument as a 16-bit signed or unsigned integer ++// values a and b. ++FORCE_INLINE __m128i _mm_hadd_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) ++ return vreinterpretq_m128i_s16(vpaddq_s16(a, b)); ++#else ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(vget_low_s16(a), vget_high_s16(a)), ++ vpadd_s16(vget_low_s16(b), vget_high_s16(b)))); ++#endif ++} ++ ++// Computes pairwise add of each argument as a 32-bit signed or unsigned integer ++// values a and b. ++FORCE_INLINE __m128i _mm_hadd_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vpadd_s32(vget_low_s32(a), vget_high_s32(a)), ++ vpadd_s32(vget_low_s32(b), vget_high_s32(b)))); ++} ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_hadd_pi16 ++FORCE_INLINE __m64 _mm_hadd_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vpadd_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_hadd_pi32 ++FORCE_INLINE __m64 _mm_hadd_pi32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s32( ++ vpadd_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b))); ++} ++ ++// Computes saturated pairwise sub of each argument as a 16-bit signed ++// integer values a and b. ++FORCE_INLINE __m128i _mm_hadds_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ return vreinterpretq_s64_s16( ++ vqaddq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ // Interleave using vshrn/vmovn ++ // [a0|a2|a4|a6|b0|b2|b4|b6] ++ // [a1|a3|a5|a7|b1|b3|b5|b7] ++ int16x8_t ab0246 = vcombine_s16(vmovn_s32(a), vmovn_s32(b)); ++ int16x8_t ab1357 = vcombine_s16(vshrn_n_s32(a, 16), vshrn_n_s32(b, 16)); ++ // Saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(ab0246, ab1357)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_hadds_pi16 ++FORCE_INLINE __m64 _mm_hadds_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) ++ return vreinterpret_s64_s16(vqadd_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t res = vuzp_s16(a, b); ++ return vreinterpret_s64_s16(vqadd_s16(res.val[0], res.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_hsub_epi16 ++FORCE_INLINE __m128i _mm_hsub_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_hsub_epi32 ++FORCE_INLINE __m128i _mm_hsub_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vuzp1q_s32(a, b), vuzp2q_s32(a, b))); ++#else ++ int32x4x2_t c = vuzpq_s32(a, b); ++ return vreinterpretq_m128i_s32(vsubq_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_hsub_pi16 ++FORCE_INLINE __m64 _mm_hsub_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) ++ return vreinterpret_m64_s16(vsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=mm_hsub_pi32 ++FORCE_INLINE __m64 _mm_hsub_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++#if defined(__aarch64__) ++ return vreinterpret_m64_s32(vsub_s32(vuzp1_s32(a, b), vuzp2_s32(a, b))); ++#else ++ int32x2x2_t c = vuzp_s32(a, b); ++ return vreinterpret_m64_s32(vsub_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Computes saturated pairwise difference of each argument as a 16-bit signed ++// integer values a and b. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_hsubs_epi16 ++FORCE_INLINE __m128i _mm_hsubs_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vqsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_hsubs_pi16 ++FORCE_INLINE __m64 _mm_hsubs_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) ++ return vreinterpret_m64_s16(vqsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vqsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, ++// and pack the saturated results in dst. ++// ++// FOR j := 0 to 7 ++// i := j*16 ++// dst[i+15:i] := Saturate_To_Int16( a[i+15:i+8]*b[i+15:i+8] + ++// a[i+7:i]*b[i+7:i] ) ++// ENDFOR ++FORCE_INLINE __m128i _mm_maddubs_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ int16x8_t tl = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_low_u8(a))), ++ vmovl_s8(vget_low_s8(b))); ++ int16x8_t th = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_high_u8(a))), ++ vmovl_s8(vget_high_s8(b))); ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vuzp1q_s16(tl, th), vuzp2q_s16(tl, th))); ++#else ++ // This would be much simpler if x86 would choose to zero extend OR sign ++ // extend, not both. This could probably be optimized better. ++ uint16x8_t a = vreinterpretq_u16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // Zero extend a ++ int16x8_t a_odd = vreinterpretq_s16_u16(vshrq_n_u16(a, 8)); ++ int16x8_t a_even = vreinterpretq_s16_u16(vbicq_u16(a, vdupq_n_u16(0xff00))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x8_t b_even = vshrq_n_s16(vshlq_n_s16(b, 8), 8); ++ int16x8_t b_odd = vshrq_n_s16(b, 8); ++ ++ // multiply ++ int16x8_t prod1 = vmulq_s16(a_even, b_even); ++ int16x8_t prod2 = vmulq_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(prod1, prod2)); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, and ++// pack the saturated results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_maddubs_pi16 ++FORCE_INLINE __m64 _mm_maddubs_pi16(__m64 _a, __m64 _b) ++{ ++ uint16x4_t a = vreinterpret_u16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // Zero extend a ++ int16x4_t a_odd = vreinterpret_s16_u16(vshr_n_u16(a, 8)); ++ int16x4_t a_even = vreinterpret_s16_u16(vand_u16(a, vdup_n_u16(0xff))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x4_t b_even = vshr_n_s16(vshl_n_s16(b, 8), 8); ++ int16x4_t b_odd = vshr_n_s16(b, 8); ++ ++ // multiply ++ int16x4_t prod1 = vmul_s16(a_even, b_even); ++ int16x4_t prod2 = vmul_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpret_m64_s16(vqadd_s16(prod1, prod2)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Shift right by 15 bits while rounding up, and store ++// the packed 16-bit integers in dst. ++// ++// r0 := Round(((int32_t)a0 * (int32_t)b0) >> 15) ++// r1 := Round(((int32_t)a1 * (int32_t)b1) >> 15) ++// r2 := Round(((int32_t)a2 * (int32_t)b2) >> 15) ++// ... ++// r7 := Round(((int32_t)a7 * (int32_t)b7) >> 15) ++FORCE_INLINE __m128i _mm_mulhrs_epi16(__m128i a, __m128i b) ++{ ++ // Has issues due to saturation ++ // return vreinterpretq_m128i_s16(vqrdmulhq_s16(a, b)); ++ ++ // Multiply ++ int32x4_t mul_lo = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int32x4_t mul_hi = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ // Rounding narrowing shift right ++ // narrow = (int16_t)((mul + 16384) >> 15); ++ int16x4_t narrow_lo = vrshrn_n_s32(mul_lo, 15); ++ int16x4_t narrow_hi = vrshrn_n_s32(mul_hi, 15); ++ ++ // Join together ++ return vreinterpretq_m128i_s16(vcombine_s16(narrow_lo, narrow_hi)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Truncate each intermediate integer to the 18 most ++// significant bits, round by adding 1, and store bits [16:1] to dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_mulhrs_pi16 ++FORCE_INLINE __m64 _mm_mulhrs_pi16(__m64 a, __m64 b) ++{ ++ int32x4_t mul_extend = ++ vmull_s16((vreinterpret_s16_m64(a)), (vreinterpret_s16_m64(b))); ++ ++ // Rounding narrowing shift right ++ return vreinterpret_m64_s16(vrshrn_n_s32(mul_extend, 15)); ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_shuffle_epi8 ++FORCE_INLINE __m128i _mm_shuffle_epi8(__m128i a, __m128i b) ++{ ++ int8x16_t tbl = vreinterpretq_s8_m128i(a); // input a ++ uint8x16_t idx = vreinterpretq_u8_m128i(b); // input b ++ uint8x16_t idx_masked = ++ vandq_u8(idx, vdupq_n_u8(0x8F)); // avoid using meaningless bits ++#if defined(__aarch64__) ++ return vreinterpretq_m128i_s8(vqtbl1q_s8(tbl, idx_masked)); ++#elif defined(__GNUC__) ++ int8x16_t ret; ++ // %e and %f represent the even and odd D registers ++ // respectively. ++ __asm__ __volatile__( ++ "vtbl.8 %e[ret], {%e[tbl], %f[tbl]}, %e[idx]\n" ++ "vtbl.8 %f[ret], {%e[tbl], %f[tbl]}, %f[idx]\n" ++ : [ret] "=&w"(ret) ++ : [tbl] "w"(tbl), [idx] "w"(idx_masked)); ++ return vreinterpretq_m128i_s8(ret); ++#else ++ // use this line if testing on aarch64 ++ int8x8x2_t a_split = {vget_low_s8(tbl), vget_high_s8(tbl)}; ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vtbl2_s8(a_split, vget_low_u8(idx_masked)), ++ vtbl2_s8(a_split, vget_high_u8(idx_masked)))); ++#endif ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// ++// FOR j := 0 to 7 ++// i := j*8 ++// IF b[i+7] == 1 ++// dst[i+7:i] := 0 ++// ELSE ++// index[2:0] := b[i+2:i] ++// dst[i+7:i] := a[index*8+7:index*8] ++// FI ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_shuffle_pi8 ++FORCE_INLINE __m64 _mm_shuffle_pi8(__m64 a, __m64 b) ++{ ++ const int8x8_t controlMask = ++ vand_s8(vreinterpret_s8_m64(b), vdup_n_s8((int8_t) (0x1 << 7 | 0x07))); ++ int8x8_t res = vtbl1_s8(vreinterpret_s8_m64(a), controlMask); ++ return vreinterpret_m64_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed ++// 16-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// ++// for i in 0..7 ++// if b[i] < 0 ++// r[i] := -a[i] ++// else if b[i] == 0 ++// r[i] := 0 ++// else ++// r[i] := a[i] ++// fi ++// done ++FORCE_INLINE __m128i _mm_sign_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x8_t ltMask = vreinterpretq_u16_s16(vshrq_n_s16(b, 15)); ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqzq_s16(b)); ++#else ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqq_s16(b, vdupq_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s16(a) equals to negative ++ // 'a') based on ltMask ++ int16x8_t masked = vbslq_s16(ltMask, vnegq_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x8_t res = vbicq_s16(masked, zeroMask); ++ return vreinterpretq_m128i_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed ++// 32-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// ++// for i in 0..3 ++// if b[i] < 0 ++// r[i] := -a[i] ++// else if b[i] == 0 ++// r[i] := 0 ++// else ++// r[i] := a[i] ++// fi ++// done ++FORCE_INLINE __m128i _mm_sign_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x4_t ltMask = vreinterpretq_u32_s32(vshrq_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqzq_s32(b)); ++#else ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqq_s32(b, vdupq_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s32(a) equals to negative ++ // 'a') based on ltMask ++ int32x4_t masked = vbslq_s32(ltMask, vnegq_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x4_t res = vbicq_s32(masked, zeroMask); ++ return vreinterpretq_m128i_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed ++// 8-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// ++// for i in 0..15 ++// if b[i] < 0 ++// r[i] := -a[i] ++// else if b[i] == 0 ++// r[i] := 0 ++// else ++// r[i] := a[i] ++// fi ++// done ++FORCE_INLINE __m128i _mm_sign_epi8(__m128i _a, __m128i _b) ++{ ++ int8x16_t a = vreinterpretq_s8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x16_t ltMask = vreinterpretq_u8_s8(vshrq_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqzq_s8(b)); ++#else ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqq_s8(b, vdupq_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s8(a) return negative 'a') ++ // based on ltMask ++ int8x16_t masked = vbslq_s8(ltMask, vnegq_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x16_t res = vbicq_s8(masked, zeroMask); ++ ++ return vreinterpretq_m128i_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed 16-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// ++// FOR j := 0 to 3 ++// i := j*16 ++// IF b[i+15:i] < 0 ++// dst[i+15:i] := -(a[i+15:i]) ++// ELSE IF b[i+15:i] == 0 ++// dst[i+15:i] := 0 ++// ELSE ++// dst[i+15:i] := a[i+15:i] ++// FI ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_sign_pi16 ++FORCE_INLINE __m64 _mm_sign_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x4_t ltMask = vreinterpret_u16_s16(vshr_n_s16(b, 15)); ++ ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceqz_s16(b)); ++#else ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceq_s16(b, vdup_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s16(a) return negative 'a') ++ // based on ltMask ++ int16x4_t masked = vbsl_s16(ltMask, vneg_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x4_t res = vbic_s16(masked, zeroMask); ++ ++ return vreinterpret_m64_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed 32-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// ++// FOR j := 0 to 1 ++// i := j*32 ++// IF b[i+31:i] < 0 ++// dst[i+31:i] := -(a[i+31:i]) ++// ELSE IF b[i+31:i] == 0 ++// dst[i+31:i] := 0 ++// ELSE ++// dst[i+31:i] := a[i+31:i] ++// FI ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_sign_pi32 ++FORCE_INLINE __m64 _mm_sign_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x2_t ltMask = vreinterpret_u32_s32(vshr_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceqz_s32(b)); ++#else ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceq_s32(b, vdup_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s32(a) return negative 'a') ++ // based on ltMask ++ int32x2_t masked = vbsl_s32(ltMask, vneg_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x2_t res = vbic_s32(masked, zeroMask); ++ ++ return vreinterpret_m64_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed 8-bit integer ++// in b is negative, and store the results in dst. Element in dst are zeroed out ++// when the corresponding element in b is zero. ++// ++// FOR j := 0 to 7 ++// i := j*8 ++// IF b[i+7:i] < 0 ++// dst[i+7:i] := -(a[i+7:i]) ++// ELSE IF b[i+7:i] == 0 ++// dst[i+7:i] := 0 ++// ELSE ++// dst[i+7:i] := a[i+7:i] ++// FI ++// ENDFOR ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_sign_pi8 ++FORCE_INLINE __m64 _mm_sign_pi8(__m64 _a, __m64 _b) ++{ ++ int8x8_t a = vreinterpret_s8_m64(_a); ++ int8x8_t b = vreinterpret_s8_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x8_t ltMask = vreinterpret_u8_s8(vshr_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceqz_s8(b)); ++#else ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceq_s8(b, vdup_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s8(a) return negative 'a') ++ // based on ltMask ++ int8x8_t masked = vbsl_s8(ltMask, vneg_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x8_t res = vbic_s8(masked, zeroMask); ++ ++ return vreinterpret_m64_s8(res); ++} ++ ++/* SSE4.1 */ ++ ++// Blend packed 16-bit integers from a and b using control mask imm8, and store ++// the results in dst. ++// ++// FOR j := 0 to 7 ++// i := j*16 ++// IF imm8[j] ++// dst[i+15:i] := b[i+15:i] ++// ELSE ++// dst[i+15:i] := a[i+15:i] ++// FI ++// ENDFOR ++// FORCE_INLINE __m128i _mm_blend_epi16(__m128i a, __m128i b, ++// __constrange(0,255) int imm) ++#define _mm_blend_epi16(a, b, imm) \ ++ __extension__({ \ ++ const uint16_t _mask[8] = {((imm) & (1 << 0)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 1)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 2)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 3)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 4)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 5)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 6)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 7)) ? (uint16_t) -1 : 0x0}; \ ++ uint16x8_t _mask_vec = vld1q_u16(_mask); \ ++ uint16x8_t _a = vreinterpretq_u16_m128i(a); \ ++ uint16x8_t _b = vreinterpretq_u16_m128i(b); \ ++ vreinterpretq_m128i_u16(vbslq_u16(_mask_vec, _b, _a)); \ ++ }) ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using control mask imm8, and store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_blend_pd ++#define _mm_blend_pd(a, b, imm) \ ++ __extension__({ \ ++ const uint64_t _mask[2] = { \ ++ ((imm) & (1 << 0)) ? ~UINT64_C(0) : UINT64_C(0), \ ++ ((imm) & (1 << 1)) ? ~UINT64_C(0) : UINT64_C(0)}; \ ++ uint64x2_t _mask_vec = vld1q_u64(_mask); \ ++ uint64x2_t _a = vreinterpretq_u64_m128d(a); \ ++ uint64x2_t _b = vreinterpretq_u64_m128d(b); \ ++ vreinterpretq_m128d_u64(vbslq_u64(_mask_vec, _b, _a)); \ ++ }) ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_blend_ps ++FORCE_INLINE __m128 _mm_blend_ps(__m128 _a, __m128 _b, const char imm8) ++{ ++ const uint32_t ALIGN_STRUCT(16) ++ data[4] = {((imm8) & (1 << 0)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0}; ++ uint32x4_t mask = vld1q_u32(data); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Blend packed 8-bit integers from a and b using mask, and store the results in ++// dst. ++// ++// FOR j := 0 to 15 ++// i := j*8 ++// IF mask[i+7] ++// dst[i+7:i] := b[i+7:i] ++// ELSE ++// dst[i+7:i] := a[i+7:i] ++// FI ++// ENDFOR ++FORCE_INLINE __m128i _mm_blendv_epi8(__m128i _a, __m128i _b, __m128i _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint8x16_t mask = ++ vreinterpretq_u8_s8(vshrq_n_s8(vreinterpretq_s8_m128i(_mask), 7)); ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ uint8x16_t b = vreinterpretq_u8_m128i(_b); ++ return vreinterpretq_m128i_u8(vbslq_u8(mask, b, a)); ++} ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_blendv_pd ++FORCE_INLINE __m128d _mm_blendv_pd(__m128d _a, __m128d _b, __m128d _mask) ++{ ++ uint64x2_t mask = ++ vreinterpretq_u64_s64(vshrq_n_s64(vreinterpretq_s64_m128d(_mask), 63)); ++#if defined(__aarch64__) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64(vbslq_f64(mask, b, a)); ++#else ++ uint64x2_t a = vreinterpretq_u64_m128d(_a); ++ uint64x2_t b = vreinterpretq_u64_m128d(_b); ++ return vreinterpretq_m128d_u64(vbslq_u64(mask, b, a)); ++#endif ++} ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_blendv_ps ++FORCE_INLINE __m128 _mm_blendv_ps(__m128 _a, __m128 _b, __m128 _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint32x4_t mask = ++ vreinterpretq_u32_s32(vshrq_n_s32(vreinterpretq_s32_m128(_mask), 31)); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a up ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_ceil_pd ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d a) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_f64(vrndpq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(ceil(f[1]), ceil(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a up to ++// an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_ceil_ps ++FORCE_INLINE __m128 _mm_ceil_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndpq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ceilf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b up to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_ceil_sd ++FORCE_INLINE __m128d _mm_ceil_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_ceil_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b up to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// ++// dst[31:0] := CEIL(b[31:0]) ++// dst[127:32] := a[127:32] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_ceil_ss ++FORCE_INLINE __m128 _mm_ceil_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_ceil_ps(b)); ++} ++ ++// Compare packed 64-bit integers in a and b for equality, and store the results ++// in dst ++FORCE_INLINE __m128i _mm_cmpeq_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128i_u64( ++ vceqq_u64(vreinterpretq_u64_m128i(a), vreinterpretq_u64_m128i(b))); ++#else ++ // ARMv7 lacks vceqq_u64 ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128i_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Converts the four signed 16-bit integers in the lower 64 bits to four signed ++// 32-bit integers. ++FORCE_INLINE __m128i _mm_cvtepi16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vmovl_s16(vget_low_s16(vreinterpretq_s16_m128i(a)))); ++} ++ ++// Converts the two signed 16-bit integers in the lower 32 bits two signed ++// 32-bit integers. ++FORCE_INLINE __m128i _mm_cvtepi16_epi64(__m128i a) ++{ ++ int16x8_t s16x8 = vreinterpretq_s16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Converts the two signed 32-bit integers in the lower 64 bits to two signed ++// 64-bit integers. ++FORCE_INLINE __m128i _mm_cvtepi32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a)))); ++} ++ ++// Converts the four unsigned 8-bit integers in the lower 16 bits to four ++// unsigned 32-bit integers. ++FORCE_INLINE __m128i _mm_cvtepi8_epi16(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ return vreinterpretq_m128i_s16(s16x8); ++} ++ ++// Converts the four unsigned 8-bit integers in the lower 32 bits to four ++// unsigned 32-bit integers. ++FORCE_INLINE __m128i _mm_cvtepi8_epi32(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_s32(s32x4); ++} ++ ++// Converts the two signed 8-bit integers in the lower 32 bits to four ++// signed 64-bit integers. ++FORCE_INLINE __m128i _mm_cvtepi8_epi64(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Converts the four unsigned 16-bit integers in the lower 64 bits to four ++// unsigned 32-bit integers. ++FORCE_INLINE __m128i _mm_cvtepu16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_u32( ++ vmovl_u16(vget_low_u16(vreinterpretq_u16_m128i(a)))); ++} ++ ++// Converts the two unsigned 16-bit integers in the lower 32 bits to two ++// unsigned 64-bit integers. ++FORCE_INLINE __m128i _mm_cvtepu16_epi64(__m128i a) ++{ ++ uint16x8_t u16x8 = vreinterpretq_u16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Converts the two unsigned 32-bit integers in the lower 64 bits to two ++// unsigned 64-bit integers. ++FORCE_INLINE __m128i _mm_cvtepu32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_u64( ++ vmovl_u32(vget_low_u32(vreinterpretq_u32_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 16-bit integers, ++// and store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_cvtepu8_epi16 ++FORCE_INLINE __m128i _mm_cvtepu8_epi16(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx HGFE DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0H0G 0F0E 0D0C 0B0A */ ++ return vreinterpretq_m128i_u16(u16x8); ++} ++ ++// Converts the four unsigned 8-bit integers in the lower 32 bits to four ++// unsigned 32-bit integers. ++// https://msdn.microsoft.com/en-us/library/bb531467%28v=vs.100%29.aspx ++FORCE_INLINE __m128i _mm_cvtepu8_epi32(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_u32(u32x4); ++} ++ ++// Converts the two unsigned 8-bit integers in the lower 16 bits to two ++// unsigned 64-bit integers. ++FORCE_INLINE __m128i _mm_cvtepu8_epi64(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Conditionally multiply the packed double-precision (64-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, and ++// conditionally store the sum in dst using the low 4 bits of imm8. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_dp_pd ++FORCE_INLINE __m128d _mm_dp_pd(__m128d a, __m128d b, const int imm) ++{ ++ // Generate mask value from constant immediate bit value ++ const int64_t bit0Mask = imm & 0x01 ? UINT64_MAX : 0; ++ const int64_t bit1Mask = imm & 0x02 ? UINT64_MAX : 0; ++#if !SSE2NEON_PRECISE_DP ++ const int64_t bit4Mask = imm & 0x10 ? UINT64_MAX : 0; ++ const int64_t bit5Mask = imm & 0x20 ? UINT64_MAX : 0; ++#endif ++ // Conditional multiplication ++#if !SSE2NEON_PRECISE_DP ++ __m128d mul = _mm_mul_pd(a, b); ++ const __m128d mulMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit5Mask, bit4Mask)); ++ __m128d tmp = _mm_and_pd(mul, mulMask); ++#else ++#if defined(__aarch64__) ++ double d0 = (imm & 0x10) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 0) ++ : 0; ++ double d1 = (imm & 0x20) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 1) ++ : 0; ++#else ++ double d0 = (imm & 0x10) ? ((double *) &a)[0] * ((double *) &b)[0] : 0; ++ double d1 = (imm & 0x20) ? ((double *) &a)[1] * ((double *) &b)[1] : 0; ++#endif ++ __m128d tmp = _mm_set_pd(d1, d0); ++#endif ++ // Sum the products ++#if defined(__aarch64__) ++ double sum = vpaddd_f64(vreinterpretq_f64_m128d(tmp)); ++#else ++ double sum = *((double *) &tmp) + *(((double *) &tmp) + 1); ++#endif ++ // Conditionally store the sum ++ const __m128d sumMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit1Mask, bit0Mask)); ++ __m128d res = _mm_and_pd(_mm_set_pd1(sum), sumMask); ++ return res; ++} ++ ++// Conditionally multiply the packed single-precision (32-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, ++// and conditionally store the sum in dst using the low 4 bits of imm. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_dp_ps ++FORCE_INLINE __m128 _mm_dp_ps(__m128 a, __m128 b, const int imm) ++{ ++#if defined(__aarch64__) ++ /* shortcuts */ ++ if (imm == 0xFF) { ++ return _mm_set1_ps(vaddvq_f32(_mm_mul_ps(a, b))); ++ } ++ if (imm == 0x7F) { ++ float32x4_t m = _mm_mul_ps(a, b); ++ m[3] = 0; ++ return _mm_set1_ps(vaddvq_f32(m)); ++ } ++#endif ++ ++ float s = 0, c = 0; ++ float32x4_t f32a = vreinterpretq_f32_m128(a); ++ float32x4_t f32b = vreinterpretq_f32_m128(b); ++ ++ /* To improve the accuracy of floating-point summation, Kahan algorithm ++ * is used for each operation. ++ */ ++ if (imm & (1 << 4)) ++ _sse2neon_kadd_f32(&s, &c, f32a[0] * f32b[0]); ++ if (imm & (1 << 5)) ++ _sse2neon_kadd_f32(&s, &c, f32a[1] * f32b[1]); ++ if (imm & (1 << 6)) ++ _sse2neon_kadd_f32(&s, &c, f32a[2] * f32b[2]); ++ if (imm & (1 << 7)) ++ _sse2neon_kadd_f32(&s, &c, f32a[3] * f32b[3]); ++ s += c; ++ ++ float32x4_t res = { ++ (imm & 0x1) ? s : 0, ++ (imm & 0x2) ? s : 0, ++ (imm & 0x4) ? s : 0, ++ (imm & 0x8) ? s : 0, ++ }; ++ return vreinterpretq_m128_f32(res); ++} ++ ++// Extracts the selected signed or unsigned 32-bit integer from a and zero ++// extends. ++// FORCE_INLINE int _mm_extract_epi32(__m128i a, __constrange(0,4) int imm) ++#define _mm_extract_epi32(a, imm) \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)) ++ ++// Extracts the selected signed or unsigned 64-bit integer from a and zero ++// extends. ++// FORCE_INLINE __int64 _mm_extract_epi64(__m128i a, __constrange(0,2) int imm) ++#define _mm_extract_epi64(a, imm) \ ++ vgetq_lane_s64(vreinterpretq_s64_m128i(a), (imm)) ++ ++// Extracts the selected signed or unsigned 8-bit integer from a and zero ++// extends. ++// FORCE_INLINE int _mm_extract_epi8(__m128i a, __constrange(0,16) int imm) ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_extract_epi8 ++#define _mm_extract_epi8(a, imm) vgetq_lane_u8(vreinterpretq_u8_m128i(a), (imm)) ++ ++// Extracts the selected single-precision (32-bit) floating-point from a. ++// FORCE_INLINE int _mm_extract_ps(__m128 a, __constrange(0,4) int imm) ++#define _mm_extract_ps(a, imm) vgetq_lane_s32(vreinterpretq_s32_m128(a), (imm)) ++ ++// Round the packed double-precision (64-bit) floating-point elements in a down ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_floor_pd ++FORCE_INLINE __m128d _mm_floor_pd(__m128d a) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128d_f64(vrndmq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(floor(f[1]), floor(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a down ++// to an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_floor_ps ++FORCE_INLINE __m128 _mm_floor_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndmq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(floorf(f[3]), floorf(f[2]), floorf(f[1]), floorf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b down to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_floor_sd ++FORCE_INLINE __m128d _mm_floor_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_floor_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b down to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// ++// dst[31:0] := FLOOR(b[31:0]) ++// dst[127:32] := a[127:32] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_floor_ss ++FORCE_INLINE __m128 _mm_floor_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_floor_ps(b)); ++} ++ ++// Inserts the least significant 32 bits of b into the selected 32-bit integer ++// of a. ++// FORCE_INLINE __m128i _mm_insert_epi32(__m128i a, int b, ++// __constrange(0,4) int imm) ++#define _mm_insert_epi32(a, b, imm) \ ++ __extension__({ \ ++ vreinterpretq_m128i_s32( \ ++ vsetq_lane_s32((b), vreinterpretq_s32_m128i(a), (imm))); \ ++ }) ++ ++// Inserts the least significant 64 bits of b into the selected 64-bit integer ++// of a. ++// FORCE_INLINE __m128i _mm_insert_epi64(__m128i a, __int64 b, ++// __constrange(0,2) int imm) ++#define _mm_insert_epi64(a, b, imm) \ ++ __extension__({ \ ++ vreinterpretq_m128i_s64( \ ++ vsetq_lane_s64((b), vreinterpretq_s64_m128i(a), (imm))); \ ++ }) ++ ++// Inserts the least significant 8 bits of b into the selected 8-bit integer ++// of a. ++// FORCE_INLINE __m128i _mm_insert_epi8(__m128i a, int b, ++// __constrange(0,16) int imm) ++#define _mm_insert_epi8(a, b, imm) \ ++ __extension__({ \ ++ vreinterpretq_m128i_s8( \ ++ vsetq_lane_s8((b), vreinterpretq_s8_m128i(a), (imm))); \ ++ }) ++ ++// Copy a to tmp, then insert a single-precision (32-bit) floating-point ++// element from b into tmp using the control in imm8. Store tmp to dst using ++// the mask in imm8 (elements are zeroed out when the corresponding bit is set). ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=insert_ps ++#define _mm_insert_ps(a, b, imm8) \ ++ __extension__({ \ ++ float32x4_t tmp1 = \ ++ vsetq_lane_f32(vgetq_lane_f32(b, (imm8 >> 6) & 0x3), \ ++ vreinterpretq_f32_m128(a), 0); \ ++ float32x4_t tmp2 = \ ++ vsetq_lane_f32(vgetq_lane_f32(tmp1, 0), vreinterpretq_f32_m128(a), \ ++ ((imm8 >> 4) & 0x3)); \ ++ const uint32_t data[4] = {((imm8) & (1 << 0)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0}; \ ++ uint32x4_t mask = vld1q_u32(data); \ ++ float32x4_t all_zeros = vdupq_n_f32(0); \ ++ \ ++ vreinterpretq_m128_f32( \ ++ vbslq_f32(mask, all_zeros, vreinterpretq_f32_m128(tmp2))); \ ++ }) ++ ++// epi versions of min/max ++// Computes the pariwise maximums of the four signed 32-bit integer values of a ++// and b. ++// ++// A 128-bit parameter that can be defined with the following equations: ++// r0 := (a0 > b0) ? a0 : b0 ++// r1 := (a1 > b1) ? a1 : b1 ++// r2 := (a2 > b2) ? a2 : b2 ++// r3 := (a3 > b3) ? a3 : b3 ++// ++// https://msdn.microsoft.com/en-us/library/vstudio/bb514055(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_max_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmaxq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_max_epi8 ++FORCE_INLINE __m128i _mm_max_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vmaxq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_max_epu16 ++FORCE_INLINE __m128i _mm_max_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vmaxq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_max_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vmaxq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Computes the pariwise minima of the four signed 32-bit integer values of a ++// and b. ++// ++// A 128-bit parameter that can be defined with the following equations: ++// r0 := (a0 < b0) ? a0 : b0 ++// r1 := (a1 < b1) ? a1 : b1 ++// r2 := (a2 < b2) ? a2 : b2 ++// r3 := (a3 < b3) ? a3 : b3 ++// ++// https://msdn.microsoft.com/en-us/library/vstudio/bb531476(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_min_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vminq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_min_epi8 ++FORCE_INLINE __m128i _mm_min_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vminq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_min_epu16 ++FORCE_INLINE __m128i _mm_min_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vminq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_min_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vminq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Horizontally compute the minimum amongst the packed unsigned 16-bit integers ++// in a, store the minimum and index in dst, and zero the remaining bits in dst. ++// ++// index[2:0] := 0 ++// min[15:0] := a[15:0] ++// FOR j := 0 to 7 ++// i := j*16 ++// IF a[i+15:i] < min[15:0] ++// index[2:0] := j ++// min[15:0] := a[i+15:i] ++// FI ++// ENDFOR ++// dst[15:0] := min[15:0] ++// dst[18:16] := index[2:0] ++// dst[127:19] := 0 ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_minpos_epu16 ++FORCE_INLINE __m128i _mm_minpos_epu16(__m128i a) ++{ ++ __m128i dst; ++ uint16_t min, idx = 0; ++ // Find the minimum value ++#if defined(__aarch64__) ++ min = vminvq_u16(vreinterpretq_u16_m128i(a)); ++#else ++ __m64 tmp; ++ tmp = vreinterpret_m64_u16( ++ vmin_u16(vget_low_u16(vreinterpretq_u16_m128i(a)), ++ vget_high_u16(vreinterpretq_u16_m128i(a)))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ min = vget_lane_u16(vreinterpret_u16_m64(tmp), 0); ++#endif ++ // Get the index of the minimum value ++ int i; ++ for (i = 0; i < 8; i++) { ++ if (min == vgetq_lane_u16(vreinterpretq_u16_m128i(a), 0)) { ++ idx = (uint16_t) i; ++ break; ++ } ++ a = _mm_srli_si128(a, 2); ++ } ++ // Generate result ++ dst = _mm_setzero_si128(); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(min, vreinterpretq_u16_m128i(dst), 0)); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(idx, vreinterpretq_u16_m128i(dst), 1)); ++ return dst; ++} ++ ++// Compute the sum of absolute differences (SADs) of quadruplets of unsigned ++// 8-bit integers in a compared to those in b, and store the 16-bit results in ++// dst. Eight SADs are performed using one quadruplet from b and eight ++// quadruplets from a. One quadruplet is selected from b starting at on the ++// offset specified in imm8. Eight quadruplets are formed from sequential 8-bit ++// integers selected from a starting at the offset specified in imm8. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_mpsadbw_epu8 ++FORCE_INLINE __m128i _mm_mpsadbw_epu8(__m128i a, __m128i b, const int imm) ++{ ++ uint8x16_t _a, _b; ++ ++ switch (imm & 0x4) { ++ case 0: ++ // do nothing ++ _a = vreinterpretq_u8_m128i(a); ++ break; ++ case 4: ++ _a = vreinterpretq_u8_u32(vextq_u32(vreinterpretq_u32_m128i(a), ++ vreinterpretq_u32_m128i(a), 1)); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#endif ++ break; ++ } ++ ++ switch (imm & 0x3) { ++ case 0: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 0))); ++ break; ++ case 1: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 1))); ++ break; ++ case 2: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 2))); ++ break; ++ case 3: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 3))); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#endif ++ break; ++ } ++ ++ int16x8_t c04, c15, c26, c37; ++ uint8x8_t low_b = vget_low_u8(_b); ++ c04 = vabsq_s16(vreinterpretq_s16_u16(vsubl_u8(vget_low_u8(_a), low_b))); ++ _a = vextq_u8(_a, _a, 1); ++ c15 = vabsq_s16(vreinterpretq_s16_u16(vsubl_u8(vget_low_u8(_a), low_b))); ++ _a = vextq_u8(_a, _a, 1); ++ c26 = vabsq_s16(vreinterpretq_s16_u16(vsubl_u8(vget_low_u8(_a), low_b))); ++ _a = vextq_u8(_a, _a, 1); ++ c37 = vabsq_s16(vreinterpretq_s16_u16(vsubl_u8(vget_low_u8(_a), low_b))); ++#if defined(__aarch64__) ++ // |0|4|2|6| ++ c04 = vpaddq_s16(c04, c26); ++ // |1|5|3|7| ++ c15 = vpaddq_s16(c15, c37); ++ ++ int32x4_t trn1_c = ++ vtrn1q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ int32x4_t trn2_c = ++ vtrn2q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ return vreinterpretq_m128i_s16(vpaddq_s16(vreinterpretq_s16_s32(trn1_c), ++ vreinterpretq_s16_s32(trn2_c))); ++#else ++ int16x4_t c01, c23, c45, c67; ++ c01 = vpadd_s16(vget_low_s16(c04), vget_low_s16(c15)); ++ c23 = vpadd_s16(vget_low_s16(c26), vget_low_s16(c37)); ++ c45 = vpadd_s16(vget_high_s16(c04), vget_high_s16(c15)); ++ c67 = vpadd_s16(vget_high_s16(c26), vget_high_s16(c37)); ++ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(c01, c23), vpadd_s16(c45, c67))); ++#endif ++} ++ ++// Multiply the low signed 32-bit integers from each packed 64-bit element in ++// a and b, and store the signed 64-bit results in dst. ++// ++// r0 := (int64_t)(int32_t)a0 * (int64_t)(int32_t)b0 ++// r1 := (int64_t)(int32_t)a2 * (int64_t)(int32_t)b2 ++FORCE_INLINE __m128i _mm_mul_epi32(__m128i a, __m128i b) ++{ ++ // vmull_s32 upcasts instead of masking, so we downcast. ++ int32x2_t a_lo = vmovn_s64(vreinterpretq_s64_m128i(a)); ++ int32x2_t b_lo = vmovn_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vmull_s32(a_lo, b_lo)); ++} ++ ++// Multiplies the 4 signed or unsigned 32-bit integers from a by the 4 signed or ++// unsigned 32-bit integers from b. ++// https://msdn.microsoft.com/en-us/library/vstudio/bb531409(v=vs.100).aspx ++FORCE_INLINE __m128i _mm_mullo_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmulq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Packs the 8 unsigned 32-bit integers from a and b into unsigned 16-bit ++// integers and saturates. ++// ++// r0 := UnsignedSaturate(a0) ++// r1 := UnsignedSaturate(a1) ++// r2 := UnsignedSaturate(a2) ++// r3 := UnsignedSaturate(a3) ++// r4 := UnsignedSaturate(b0) ++// r5 := UnsignedSaturate(b1) ++// r6 := UnsignedSaturate(b2) ++// r7 := UnsignedSaturate(b3) ++FORCE_INLINE __m128i _mm_packus_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcombine_u16(vqmovun_s32(vreinterpretq_s32_m128i(a)), ++ vqmovun_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_round_pd ++FORCE_INLINE __m128d _mm_round_pd(__m128d a, int rounding) ++{ ++#if defined(__aarch64__) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndnq_f64(vreinterpretq_f64_m128d(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_pd(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_pd(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndq_f64(vreinterpretq_f64_m128d(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128d_f64(vrndiq_f64(vreinterpretq_f64_m128d(a))); ++ } ++#else ++ double *v_double = (double *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ double res[2], tmp; ++ for (int i = 0; i < 2; i++) { ++ tmp = (v_double[i] < 0) ? -v_double[i] : v_double[i]; ++ double roundDown = floor(tmp); // Round down value ++ double roundUp = ceil(tmp); // Round up value ++ double diffDown = tmp - roundDown; ++ double diffUp = roundUp - tmp; ++ if (diffDown < diffUp) { ++ /* If it's closer to the round down value, then use it */ ++ res[i] = roundDown; ++ } else if (diffDown > diffUp) { ++ /* If it's closer to the round up value, then use it */ ++ res[i] = roundUp; ++ } else { ++ /* If it's equidistant between round up and round down value, ++ * pick the one which is an even number */ ++ double half = roundDown / 2; ++ if (half != floor(half)) { ++ /* If the round down value is odd, return the round up value ++ */ ++ res[i] = roundUp; ++ } else { ++ /* If the round up value is odd, return the round down value ++ */ ++ res[i] = roundDown; ++ } ++ } ++ res[i] = (v_double[i] < 0) ? -res[i] : res[i]; ++ } ++ return _mm_set_pd(res[1], res[0]); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_pd(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_pd(a); ++ } ++ return _mm_set_pd(v_double[1] > 0 ? floor(v_double[1]) : ceil(v_double[1]), ++ v_double[0] > 0 ? floor(v_double[0]) : ceil(v_double[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed single-precision ++// floating-point elements in dst. ++// software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_round_ps ++FORCE_INLINE __m128 _mm_round_ps(__m128 a, int rounding) ++{ ++#if defined(__aarch64__) || defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndnq_f32(vreinterpretq_f32_m128(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_ps(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_ps(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndq_f32(vreinterpretq_f32_m128(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128_f32(vrndiq_f32(vreinterpretq_f32_m128(a))); ++ } ++#else ++ float *v_float = (float *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vbslq_s32(is_delta_half, r_even, r_normal))); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_ps(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_ps(a); ++ } ++ return _mm_set_ps(v_float[3] > 0 ? floorf(v_float[3]) : ceilf(v_float[3]), ++ v_float[2] > 0 ? floorf(v_float[2]) : ceilf(v_float[2]), ++ v_float[1] > 0 ? floorf(v_float[1]) : ceilf(v_float[1]), ++ v_float[0] > 0 ? floorf(v_float[0]) : ceilf(v_float[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b using ++// the rounding parameter, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_round_sd ++FORCE_INLINE __m128d _mm_round_sd(__m128d a, __m128d b, int rounding) ++{ ++ return _mm_move_sd(a, _mm_round_pd(b, rounding)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b using ++// the rounding parameter, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. Rounding is done according to the ++// rounding[3:0] parameter, which can be one of: ++// (_MM_FROUND_TO_NEAREST_INT |_MM_FROUND_NO_EXC) // round to nearest, and ++// suppress exceptions ++// (_MM_FROUND_TO_NEG_INF |_MM_FROUND_NO_EXC) // round down, and ++// suppress exceptions ++// (_MM_FROUND_TO_POS_INF |_MM_FROUND_NO_EXC) // round up, and suppress ++// exceptions ++// (_MM_FROUND_TO_ZERO |_MM_FROUND_NO_EXC) // truncate, and suppress ++// exceptions _MM_FROUND_CUR_DIRECTION // use MXCSR.RC; see ++// _MM_SET_ROUNDING_MODE ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_round_ss ++FORCE_INLINE __m128 _mm_round_ss(__m128 a, __m128 b, int rounding) ++{ ++ return _mm_move_ss(a, _mm_round_ps(b, rounding)); ++} ++ ++// Load 128-bits of integer data from memory into dst using a non-temporal ++// memory hint. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// ++// dst[127:0] := MEM[mem_addr+127:mem_addr] ++// ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_stream_load_si128 ++FORCE_INLINE __m128i _mm_stream_load_si128(__m128i *p) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ return __builtin_nontemporal_load(p); ++#else ++ return vreinterpretq_m128i_s64(vld1q_s64((int64_t *) p)); ++#endif ++} ++ ++// Compute the bitwise NOT of a and then AND with a 128-bit vector containing ++// all 1's, and return 1 if the result is zero, otherwise return 0. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_test_all_ones ++FORCE_INLINE int _mm_test_all_ones(__m128i a) ++{ ++ return (uint64_t) (vgetq_lane_s64(a, 0) & vgetq_lane_s64(a, 1)) == ++ ~(uint64_t) 0; ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and return 1 if the result is zero, otherwise return 0. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_test_all_zeros ++FORCE_INLINE int _mm_test_all_zeros(__m128i a, __m128i mask) ++{ ++ int64x2_t a_and_mask = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(mask)); ++ return !(vgetq_lane_s64(a_and_mask, 0) | vgetq_lane_s64(a_and_mask, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute ++// the bitwise NOT of a and then AND with mask, and set CF to 1 if the result is ++// zero, otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=mm_test_mix_ones_zero ++FORCE_INLINE int _mm_test_mix_ones_zeros(__m128i a, __m128i mask) ++{ ++ uint64x2_t zf = ++ vandq_u64(vreinterpretq_u64_m128i(mask), vreinterpretq_u64_m128i(a)); ++ uint64x2_t cf = ++ vbicq_u64(vreinterpretq_u64_m128i(mask), vreinterpretq_u64_m128i(a)); ++ uint64x2_t result = vandq_u64(zf, cf); ++ return !(vgetq_lane_u64(result, 0) | vgetq_lane_u64(result, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the CF value. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_testc_si128 ++FORCE_INLINE int _mm_testc_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vandq_s64(vreinterpretq_s64_s32(vmvnq_s32(vreinterpretq_s32_m128i(a))), ++ vreinterpretq_s64_m128i(b)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_testnzc_si128 ++#define _mm_testnzc_si128(a, b) _mm_test_mix_ones_zeros(a, b) ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the ZF value. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_testz_si128 ++FORCE_INLINE int _mm_testz_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++/* SSE4.2 */ ++ ++// Compares the 2 signed 64-bit integers in a and the 2 signed 64-bit integers ++// in b for greater than. ++FORCE_INLINE __m128i _mm_cmpgt_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) ++ return vreinterpretq_m128i_u64( ++ vcgtq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ return vreinterpretq_m128i_s64(vshrq_n_s64( ++ vqsubq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)), ++ 63)); ++#endif ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 16-bit integer v. ++// https://msdn.microsoft.com/en-us/library/bb531411(v=vs.100) ++FORCE_INLINE uint32_t _mm_crc32_u16(uint32_t crc, uint16_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32ch %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif (__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32) ++ crc = __crc32ch(crc, v); ++#else ++ crc = _mm_crc32_u8(crc, v & 0xff); ++ crc = _mm_crc32_u8(crc, (v >> 8) & 0xff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 32-bit integer v. ++// https://msdn.microsoft.com/en-us/library/bb531394(v=vs.100) ++FORCE_INLINE uint32_t _mm_crc32_u32(uint32_t crc, uint32_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cw %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif (__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32) ++ crc = __crc32cw(crc, v); ++#else ++ crc = _mm_crc32_u16(crc, v & 0xffff); ++ crc = _mm_crc32_u16(crc, (v >> 16) & 0xffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 64-bit integer v. ++// https://msdn.microsoft.com/en-us/library/bb514033(v=vs.100) ++FORCE_INLINE uint64_t _mm_crc32_u64(uint64_t crc, uint64_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cx %w[c], %w[c], %x[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#else ++ crc = _mm_crc32_u32((uint32_t) (crc), v & 0xffffffff); ++ crc = _mm_crc32_u32((uint32_t) (crc), (v >> 32) & 0xffffffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 8-bit integer v. ++// https://msdn.microsoft.com/en-us/library/bb514036(v=vs.100) ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t crc, uint8_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cb %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif (__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32) ++ crc = __crc32cb(crc, v); ++#else ++ crc ^= v; ++ for (int bit = 0; bit < 8; bit++) { ++ if (crc & 1) ++ crc = (crc >> 1) ^ UINT32_C(0x82f63b78); ++ else ++ crc = (crc >> 1); ++ } ++#endif ++ return crc; ++} ++ ++/* AES */ ++ ++#if !defined(__ARM_FEATURE_CRYPTO) ++/* clang-format off */ ++#define SSE2NEON_AES_DATA(w) \ ++ { \ ++ w(0x63), w(0x7c), w(0x77), w(0x7b), w(0xf2), w(0x6b), w(0x6f), \ ++ w(0xc5), w(0x30), w(0x01), w(0x67), w(0x2b), w(0xfe), w(0xd7), \ ++ w(0xab), w(0x76), w(0xca), w(0x82), w(0xc9), w(0x7d), w(0xfa), \ ++ w(0x59), w(0x47), w(0xf0), w(0xad), w(0xd4), w(0xa2), w(0xaf), \ ++ w(0x9c), w(0xa4), w(0x72), w(0xc0), w(0xb7), w(0xfd), w(0x93), \ ++ w(0x26), w(0x36), w(0x3f), w(0xf7), w(0xcc), w(0x34), w(0xa5), \ ++ w(0xe5), w(0xf1), w(0x71), w(0xd8), w(0x31), w(0x15), w(0x04), \ ++ w(0xc7), w(0x23), w(0xc3), w(0x18), w(0x96), w(0x05), w(0x9a), \ ++ w(0x07), w(0x12), w(0x80), w(0xe2), w(0xeb), w(0x27), w(0xb2), \ ++ w(0x75), w(0x09), w(0x83), w(0x2c), w(0x1a), w(0x1b), w(0x6e), \ ++ w(0x5a), w(0xa0), w(0x52), w(0x3b), w(0xd6), w(0xb3), w(0x29), \ ++ w(0xe3), w(0x2f), w(0x84), w(0x53), w(0xd1), w(0x00), w(0xed), \ ++ w(0x20), w(0xfc), w(0xb1), w(0x5b), w(0x6a), w(0xcb), w(0xbe), \ ++ w(0x39), w(0x4a), w(0x4c), w(0x58), w(0xcf), w(0xd0), w(0xef), \ ++ w(0xaa), w(0xfb), w(0x43), w(0x4d), w(0x33), w(0x85), w(0x45), \ ++ w(0xf9), w(0x02), w(0x7f), w(0x50), w(0x3c), w(0x9f), w(0xa8), \ ++ w(0x51), w(0xa3), w(0x40), w(0x8f), w(0x92), w(0x9d), w(0x38), \ ++ w(0xf5), w(0xbc), w(0xb6), w(0xda), w(0x21), w(0x10), w(0xff), \ ++ w(0xf3), w(0xd2), w(0xcd), w(0x0c), w(0x13), w(0xec), w(0x5f), \ ++ w(0x97), w(0x44), w(0x17), w(0xc4), w(0xa7), w(0x7e), w(0x3d), \ ++ w(0x64), w(0x5d), w(0x19), w(0x73), w(0x60), w(0x81), w(0x4f), \ ++ w(0xdc), w(0x22), w(0x2a), w(0x90), w(0x88), w(0x46), w(0xee), \ ++ w(0xb8), w(0x14), w(0xde), w(0x5e), w(0x0b), w(0xdb), w(0xe0), \ ++ w(0x32), w(0x3a), w(0x0a), w(0x49), w(0x06), w(0x24), w(0x5c), \ ++ w(0xc2), w(0xd3), w(0xac), w(0x62), w(0x91), w(0x95), w(0xe4), \ ++ w(0x79), w(0xe7), w(0xc8), w(0x37), w(0x6d), w(0x8d), w(0xd5), \ ++ w(0x4e), w(0xa9), w(0x6c), w(0x56), w(0xf4), w(0xea), w(0x65), \ ++ w(0x7a), w(0xae), w(0x08), w(0xba), w(0x78), w(0x25), w(0x2e), \ ++ w(0x1c), w(0xa6), w(0xb4), w(0xc6), w(0xe8), w(0xdd), w(0x74), \ ++ w(0x1f), w(0x4b), w(0xbd), w(0x8b), w(0x8a), w(0x70), w(0x3e), \ ++ w(0xb5), w(0x66), w(0x48), w(0x03), w(0xf6), w(0x0e), w(0x61), \ ++ w(0x35), w(0x57), w(0xb9), w(0x86), w(0xc1), w(0x1d), w(0x9e), \ ++ w(0xe1), w(0xf8), w(0x98), w(0x11), w(0x69), w(0xd9), w(0x8e), \ ++ w(0x94), w(0x9b), w(0x1e), w(0x87), w(0xe9), w(0xce), w(0x55), \ ++ w(0x28), w(0xdf), w(0x8c), w(0xa1), w(0x89), w(0x0d), w(0xbf), \ ++ w(0xe6), w(0x42), w(0x68), w(0x41), w(0x99), w(0x2d), w(0x0f), \ ++ w(0xb0), w(0x54), w(0xbb), w(0x16) \ ++ } ++/* clang-format on */ ++ ++/* X Macro trick. See https://en.wikipedia.org/wiki/X_Macro */ ++#define SSE2NEON_AES_H0(x) (x) ++static const uint8_t SSE2NEON_sbox[256] = SSE2NEON_AES_DATA(SSE2NEON_AES_H0); ++#undef SSE2NEON_AES_H0 ++ ++// In the absence of crypto extensions, implement aesenc using regular neon ++// intrinsics instead. See: ++// https://www.workofard.com/2017/01/accelerated-aes-for-the-arm64-linux-kernel/ ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/ and ++// https://github.com/ColinIanKing/linux-next-mirror/blob/b5f466091e130caaf0735976648f72bd5e09aa84/crypto/aegis128-neon-inner.c#L52 ++// for more information Reproduced with permission of the author. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i EncBlock, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t shift_rows[] = {0x0, 0x5, 0xa, 0xf, 0x4, 0x9, ++ 0xe, 0x3, 0x8, 0xd, 0x2, 0x7, ++ 0xc, 0x1, 0x6, 0xb}; ++ static const uint8_t ror32by8[] = {0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc}; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(EncBlock); ++ ++ // shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ // sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(SSE2NEON_sbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(SSE2NEON_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(SSE2NEON_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(SSE2NEON_sbox + 0xc0), w - 0xc0); ++ ++ // mix columns ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++#define SSE2NEON_AES_B2W(b0, b1, b2, b3) \ ++ (((uint32_t) (b3) << 24) | ((uint32_t) (b2) << 16) | \ ++ ((uint32_t) (b1) << 8) | (uint32_t) (b0)) ++#define SSE2NEON_AES_F2(x) ((x << 1) ^ (((x >> 7) & 1) * 0x011b /* WPOLY */)) ++#define SSE2NEON_AES_F3(x) (SSE2NEON_AES_F2(x) ^ x) ++#define SSE2NEON_AES_U0(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F2(p), p, p, SSE2NEON_AES_F3(p)) ++#define SSE2NEON_AES_U1(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p, p) ++#define SSE2NEON_AES_U2(p) \ ++ SSE2NEON_AES_B2W(p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p) ++#define SSE2NEON_AES_U3(p) \ ++ SSE2NEON_AES_B2W(p, p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p)) ++ static const uint32_t ALIGN_STRUCT(16) aes_table[4][256] = { ++ SSE2NEON_AES_DATA(SSE2NEON_AES_U0), ++ SSE2NEON_AES_DATA(SSE2NEON_AES_U1), ++ SSE2NEON_AES_DATA(SSE2NEON_AES_U2), ++ SSE2NEON_AES_DATA(SSE2NEON_AES_U3), ++ }; ++#undef SSE2NEON_AES_B2W ++#undef SSE2NEON_AES_F2 ++#undef SSE2NEON_AES_F3 ++#undef SSE2NEON_AES_U0 ++#undef SSE2NEON_AES_U1 ++#undef SSE2NEON_AES_U2 ++#undef SSE2NEON_AES_U3 ++ ++ uint32_t x0 = _mm_cvtsi128_si32(EncBlock); ++ uint32_t x1 = _mm_cvtsi128_si32(_mm_shuffle_epi32(EncBlock, 0x55)); ++ uint32_t x2 = _mm_cvtsi128_si32(_mm_shuffle_epi32(EncBlock, 0xAA)); ++ uint32_t x3 = _mm_cvtsi128_si32(_mm_shuffle_epi32(EncBlock, 0xFF)); ++ ++ __m128i out = _mm_set_epi32( ++ (aes_table[0][x3 & 0xff] ^ aes_table[1][(x0 >> 8) & 0xff] ^ ++ aes_table[2][(x1 >> 16) & 0xff] ^ aes_table[3][x2 >> 24]), ++ (aes_table[0][x2 & 0xff] ^ aes_table[1][(x3 >> 8) & 0xff] ^ ++ aes_table[2][(x0 >> 16) & 0xff] ^ aes_table[3][x1 >> 24]), ++ (aes_table[0][x1 & 0xff] ^ aes_table[1][(x2 >> 8) & 0xff] ^ ++ aes_table[2][(x3 >> 16) & 0xff] ^ aes_table[3][x0 >> 24]), ++ (aes_table[0][x0 & 0xff] ^ aes_table[1][(x1 >> 8) & 0xff] ^ ++ aes_table[2][(x2 >> 16) & 0xff] ^ aes_table[3][x3 >> 24])); ++ ++ return _mm_xor_si128(out, RoundKey); ++#endif ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++ /* FIXME: optimized for NEON */ ++ uint8_t v[4][4] = { ++ {SSE2NEON_sbox[vreinterpretq_nth_u8_m128i(a, 0)], ++ SSE2NEON_sbox[vreinterpretq_nth_u8_m128i(a, 5)], ++ SSE2NEON_sbox[vreinterpretq_nth_u8_m128i(a, 10)], ++ SSE2NEON_sbox[vreinterpretq_nth_u8_m128i(a, 15)]}, ++ {SSE2NEON_sbox[vreinterpretq_nth_u8_m128i(a, 4)], ++ SSE2NEON_sbox[vreinterpretq_nth_u8_m128i(a, 9)], ++ SSE2NEON_sbox[vreinterpretq_nth_u8_m128i(a, 14)], ++ SSE2NEON_sbox[vreinterpretq_nth_u8_m128i(a, 3)]}, ++ {SSE2NEON_sbox[vreinterpretq_nth_u8_m128i(a, 8)], ++ SSE2NEON_sbox[vreinterpretq_nth_u8_m128i(a, 13)], ++ SSE2NEON_sbox[vreinterpretq_nth_u8_m128i(a, 2)], ++ SSE2NEON_sbox[vreinterpretq_nth_u8_m128i(a, 7)]}, ++ {SSE2NEON_sbox[vreinterpretq_nth_u8_m128i(a, 12)], ++ SSE2NEON_sbox[vreinterpretq_nth_u8_m128i(a, 1)], ++ SSE2NEON_sbox[vreinterpretq_nth_u8_m128i(a, 6)], ++ SSE2NEON_sbox[vreinterpretq_nth_u8_m128i(a, 11)]}, ++ }; ++ for (int i = 0; i < 16; i++) ++ vreinterpretq_nth_u8_m128i(a, i) = ++ v[i / 4][i % 4] ^ vreinterpretq_nth_u8_m128i(RoundKey, i); ++ return a; ++} ++ ++// Emits the Advanced Encryption Standard (AES) instruction aeskeygenassist. ++// This instruction generates a round key for AES encryption. See ++// https://kazakov.life/2017/11/01/cryptocurrency-mining-on-ios-devices/ ++// for details. ++// ++// https://msdn.microsoft.com/en-us/library/cc714138(v=vs.120).aspx ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i key, const int rcon) ++{ ++ uint32_t X1 = _mm_cvtsi128_si32(_mm_shuffle_epi32(key, 0x55)); ++ uint32_t X3 = _mm_cvtsi128_si32(_mm_shuffle_epi32(key, 0xFF)); ++ for (int i = 0; i < 4; ++i) { ++ ((uint8_t *) &X1)[i] = SSE2NEON_sbox[((uint8_t *) &X1)[i]]; ++ ((uint8_t *) &X3)[i] = SSE2NEON_sbox[((uint8_t *) &X3)[i]]; ++ } ++ return _mm_set_epi32(((X3 >> 8) | (X3 << 24)) ^ rcon, X3, ++ ((X1 >> 8) | (X1 << 24)) ^ rcon, X1); ++} ++#undef SSE2NEON_AES_DATA ++ ++#else /* __ARM_FEATURE_CRYPTO */ ++// Implements equivalent of 'aesenc' by combining AESE (with an empty key) and ++// AESMC and then manually applying the real key as an xor operation. This ++// unfortunately means an additional xor op; the compiler should be able to ++// optimize this away for repeated calls however. See ++// https://blog.michaelbrase.com/2018/05/08/emulating-x86-aes-intrinsics-on-armv8-a ++// for more details. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vaesmcq_u8(vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))) ^ ++ vreinterpretq_u8_m128i(b)); ++} ++ ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return _mm_xor_si128(vreinterpretq_m128i_u8(vaeseq_u8( ++ vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ RoundKey); ++} ++ ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++ // AESE does ShiftRows and SubBytes on A ++ uint8x16_t u8 = vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)); ++ ++ uint8x16_t dest = { ++ // Undo ShiftRows step from AESE and extract X1 and X3 ++ u8[0x4], u8[0x1], u8[0xE], u8[0xB], // SubBytes(X1) ++ u8[0x1], u8[0xE], u8[0xB], u8[0x4], // ROT(SubBytes(X1)) ++ u8[0xC], u8[0x9], u8[0x6], u8[0x3], // SubBytes(X3) ++ u8[0x9], u8[0x6], u8[0x3], u8[0xC], // ROT(SubBytes(X3)) ++ }; ++ uint32x4_t r = {0, (unsigned) rcon, 0, (unsigned) rcon}; ++ return vreinterpretq_m128i_u8(dest) ^ vreinterpretq_m128i_u32(r); ++} ++#endif ++ ++/* Others */ ++ ++// Perform a carry-less multiplication of two 64-bit integers, selected from a ++// and b according to imm8, and store the results in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_clmulepi64_si128 ++FORCE_INLINE __m128i _mm_clmulepi64_si128(__m128i _a, __m128i _b, const int imm) ++{ ++ uint64x2_t a = vreinterpretq_u64_m128i(_a); ++ uint64x2_t b = vreinterpretq_u64_m128i(_b); ++ switch (imm & 0x11) { ++ case 0x00: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_low_u64(b))); ++ case 0x01: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_low_u64(b))); ++ case 0x10: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_high_u64(b))); ++ case 0x11: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_high_u64(b))); ++ default: ++ abort(); ++ } ++} ++ ++FORCE_INLINE unsigned int _sse2neon_mm_get_denormals_zero_mode() ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) ++ __asm__ __volatile__("mrs %0, FPCR" : "=r"(r.value)); /* read */ ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_DENORMALS_ZERO_ON : _MM_DENORMALS_ZERO_OFF; ++} ++ ++// Count the number of bits set to 1 in unsigned 32-bit integer a, and ++// return that count in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_popcnt_u32 ++FORCE_INLINE int _mm_popcnt_u32(unsigned int a) ++{ ++#if defined(__aarch64__) ++#if __has_builtin(__builtin_popcount) ++ return __builtin_popcount(a); ++#else ++ return (int) vaddlv_u8(vcnt_u8(vcreate_u8((uint64_t) a))); ++#endif ++#else ++ uint32_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ ++ vst1_u32(&count, count32x2_val); ++ return count; ++#endif ++} ++ ++// Count the number of bits set to 1 in unsigned 64-bit integer a, and ++// return that count in dst. ++// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_popcnt_u64 ++FORCE_INLINE int64_t _mm_popcnt_u64(uint64_t a) ++{ ++#if defined(__aarch64__) ++#if __has_builtin(__builtin_popcountll) ++ return __builtin_popcountll(a); ++#else ++ return (int64_t) vaddlv_u8(vcnt_u8(vcreate_u8(a))); ++#endif ++#else ++ uint64_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ uint64x1_t count64x1_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ count64x1_val = vpaddl_u32(count32x2_val); ++ vst1_u64(&count, count64x1_val); ++ return count; ++#endif ++} ++ ++FORCE_INLINE void _sse2neon_mm_set_denormals_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) ++ __asm__ __volatile__("mrs %0, FPCR" : "=r"(r.value)); /* read */ ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_DENORMALS_ZERO_MASK) == _MM_DENORMALS_ZERO_ON; ++ ++#if defined(__aarch64__) ++ __asm__ __volatile__("msr FPCR, %0" ::"r"(r)); /* write */ ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Return the current 64-bit value of the processor's time-stamp counter. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=rdtsc ++ ++FORCE_INLINE uint64_t _rdtsc(void) ++{ ++#if defined(__aarch64__) ++ uint64_t val; ++ ++ /* According to ARM DDI 0487F.c, from Armv8.0 to Armv8.5 inclusive, the ++ * system counter is at least 56 bits wide; from Armv8.6, the counter ++ * must be 64 bits wide. So the system counter could be less than 64 ++ * bits wide and it is attributed with the flag 'cap_user_time_short' ++ * is true. ++ */ ++ asm volatile("mrs %0, cntvct_el0" : "=r"(val)); ++ ++ return val; ++#else ++ uint32_t pmccntr, pmuseren, pmcntenset; ++ // Read the user mode Performance Monitoring Unit (PMU) ++ // User Enable Register (PMUSERENR) access permissions. ++ asm volatile("mrc p15, 0, %0, c9, c14, 0" : "=r"(pmuseren)); ++ if (pmuseren & 1) { // Allows reading PMUSERENR for user mode code. ++ asm volatile("mrc p15, 0, %0, c9, c12, 1" : "=r"(pmcntenset)); ++ if (pmcntenset & 0x80000000UL) { // Is it counting? ++ asm volatile("mrc p15, 0, %0, c9, c13, 0" : "=r"(pmccntr)); ++ // The counter is set up to count every 64th cycle ++ return (uint64_t) (pmccntr) << 6; ++ } ++ } ++ ++ // Fallback to syscall as we can't enable PMUSERENR in user mode. ++ struct timeval tv; ++ gettimeofday(&tv, NULL); ++ return (uint64_t) (tv.tv_sec) * 1000000 + tv.tv_usec; ++#endif ++} ++ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma pop_macro("ALIGN_STRUCT") ++#pragma pop_macro("FORCE_INLINE") ++#endif ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma GCC pop_options ++#endif ++ ++#endif diff --git a/recipes/graphmap/meta.yaml b/recipes/graphmap/meta.yaml index d630a578f3403..9ea30c2ab95d3 100644 --- a/recipes/graphmap/meta.yaml +++ b/recipes/graphmap/meta.yaml @@ -1,18 +1,22 @@ {% set name = "graphmap" %} -{% set version = "0.6.3" %} +{% set version = "0.6.4" %} package: name: {{ name|lower }} version: {{ version }} build: - number: 4 + number: 0 skip: True # [osx] + run_exports: + - {{ pin_subpackage(name, max_pin="x.x") }} source: git_url: https://github.com/lbcb-sci/graphmap2 git_rev: v{{ version }} sha256: unused + patches: + - graphmap2-aarch64.patch # [aarch64] requirements: build: @@ -33,7 +37,11 @@ about: license: MIT license_file: LICENCE summary: 'A highly sensitive and accurate mapper for long, error-prone reads.' + dev_url: https://github.com/lbcb-sci/graphmap2 + doc_url: https://www.nature.com/articles/ncomms11307 extra: + additional-platforms: + - linux-aarch64 skip-lints: - uses_vcs_url From 21fe9154f3022e5c7473b6ec15dd5314302996d3 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 9 Sep 2024 12:09:12 -0400 Subject: [PATCH 1410/1589] Update scirpy to 0.18.0 (#50571) * Update scirpy to 0.18.0 * Update dependencies --------- Co-authored-by: Gregor Sturm --- recipes/scirpy/meta.yaml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/recipes/scirpy/meta.yaml b/recipes/scirpy/meta.yaml index 98fde15171638..8fe28e48762f4 100644 --- a/recipes/scirpy/meta.yaml +++ b/recipes/scirpy/meta.yaml @@ -1,5 +1,5 @@ {% set name = "scirpy" %} -{% set version = "0.17.2" %} +{% set version = "0.18.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 37dc159bb6d4f033039dde9073a69104f8445be4459cec4532fdcbf84eef13b3 + sha256: 7d8f5deb2f6d83aa6f719b051c2d7c8cd1fb27589b64796be4b1a64ec76a708e folder: "{{ name }}-{{ version }}" build: @@ -21,19 +21,18 @@ build: requirements: host: - - python >=3.9 + - python >=3.10 - hatchling - hatch-vcs run: - - python >=3.9 - - anndata >=0.9 + - python >=3.10 + - anndata >=0.9,<0.10.9 - awkward >=2.1.0 - mudata >=0.2.3 - scanpy >=1.9.3 - pandas >=1.5 - numpy >=1.17.0 - scipy - - parasail-python - scikit-learn - python-levenshtein - python-igraph >0.10.1|<0.10.0 From 397da210ddb104a1283f08a11ea13a14254ecb16 Mon Sep 17 00:00:00 2001 From: Gioele Lazzari <56556415+lazzarigioele@users.noreply.github.com> Date: Mon, 9 Sep 2024 18:21:52 +0200 Subject: [PATCH 1411/1589] Update gempipe v1.35.0 0 (#50562) * update gempipe to v1.35.0 * update gempipe to v1.35.0 * replace matplolib with matplolib-base --- recipes/gempipe/meta.yaml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/recipes/gempipe/meta.yaml b/recipes/gempipe/meta.yaml index d85734ce17dcf..f50d683f9316f 100755 --- a/recipes/gempipe/meta.yaml +++ b/recipes/gempipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.34.2" %} +{% set version = "1.35.0" %} package: name: "gempipe" @@ -7,14 +7,14 @@ package: source: url: https://github.com/lazzarigioele/gempipe/archive/v{{ version }}.tar.gz - sha256: 1e8ceab6faf29bd382ff0d413785884c6bff29872bb2af15e6991c761c4f5761 + sha256: 412a88c0d9350d15523ca298742468d9786c8713b4da5beb7fbc320a04544566 build: - number: 0 # Build number, increment this when making new builds of the same version + number: 0 noarch: python script: - - {{ PYTHON }} -m pip install . -vv --no-deps # Script to run for building the package + - {{ PYTHON }} -m pip install . -vv --no-deps entry_points: - gempipe = gempipe:main run_exports: @@ -45,6 +45,9 @@ requirements: - blast >=2.12.0 - diamond >=2.0.15 - eggnog-mapper >=2.1.7 + - matplotlib-base >=3.7.0 + - seaborn >=0.13.0 + test: @@ -52,6 +55,9 @@ test: - gempipe commands: - gempipe --help + - gempipe recon --help + - gempipe derive --help + - gempipe autopilot --help about: From a818bb4c7e206e79f8830216eb288ab7493e30e4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 9 Sep 2024 12:55:37 -0400 Subject: [PATCH 1412/1589] Update snakemake to 8.20.3 (#50574) --- recipes/snakemake/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake/meta.yaml b/recipes/snakemake/meta.yaml index 2ce56f5e9125f..74178bdb00b75 100644 --- a/recipes/snakemake/meta.yaml +++ b/recipes/snakemake/meta.yaml @@ -1,7 +1,7 @@ # Attention: when upgrading the version, please compare below dependencies with # https://github.com/snakemake/snakemake/blob/{version}/setup.cfg {% set name = "snakemake" %} -{% set version = "8.20.1" %} +{% set version = "8.20.3" %} package: name: {{ name }} @@ -9,7 +9,7 @@ package: source: url: https://pypi.io/packages/source/s/{{ name }}/snakemake-{{ version }}.tar.gz - sha256: 69d370200d73fd3c16b1ad2041be2102c52f1c89e3777d2c9b5758297bef5f2f + sha256: 8940376264f862c36c60a576744787271b10e91fc47b0ffd11a0b31961bbc0af build: number: 0 From e48c30e3e288386bf3d2e08cce92d50b76f516a1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 9 Sep 2024 15:42:35 -0400 Subject: [PATCH 1413/1589] Update seqchromloader to 0.7.8 (#50575) --- recipes/seqchromloader/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/seqchromloader/meta.yaml b/recipes/seqchromloader/meta.yaml index 6c69d088838a2..a89e6961ea4a4 100644 --- a/recipes/seqchromloader/meta.yaml +++ b/recipes/seqchromloader/meta.yaml @@ -1,5 +1,5 @@ {% set name = "seqchromloader" %} -{% set version = "0.7.7" %} +{% set version = "0.7.8" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: c4d37d0b8c91e0d666e7ae0a581884c113ed84862526b3621f86704668bb8b27 + sha256: 7b94212a2eb5d722fa13bf52c6aa8b3dc945e78806be01af025f8d33d9fc04cd build: number: 0 From ec5da8db7dcc1b0ecc6e891605adf091cba90265 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 9 Sep 2024 16:22:31 -0400 Subject: [PATCH 1414/1589] Update xengsort to 2.0.7 (#50570) * Update xengsort to 2.0.7 * bump python dependency --------- Co-authored-by: mencian --- recipes/xengsort/meta.yaml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/recipes/xengsort/meta.yaml b/recipes/xengsort/meta.yaml index 64fbad850f790..46020f1f22b8d 100644 --- a/recipes/xengsort/meta.yaml +++ b/recipes/xengsort/meta.yaml @@ -1,5 +1,5 @@ {% set name = "xengsort" %} -{% set version = "2.0.5" %} +{% set version = "2.0.7" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 243567ee3bdb7111ca7294c5979c2cd9ab5e76fdeefd30b7e27a177c839b33c9 + sha256: 89b590597082ea945e496a5cbbf98df1055378bc09f971011370a365a06465d6 build: number: 0 @@ -16,14 +16,14 @@ build: run_exports: - {{ pin_subpackage(name, max_pin="x") }} noarch: python - script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv" + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" requirements: host: - pip - - python ==3.11 + - python >=3.12 run: - - python ==3.11 + - python >=3.12 - numpy >=1.22 - numba >=0.56 - zarr @@ -45,6 +45,7 @@ about: license_file: LICENSE license_family: MIT summary: "A fast xenograft read sorter based on space-efficient k-mer hashing" + dev_url: https://gitlab.com/genomeinformatics/xengsort extra: identifiers: From 94678325ace462208f5025961a8522ea08e236d2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 9 Sep 2024 16:22:46 -0400 Subject: [PATCH 1415/1589] Update mashpit to 0.9.7 (#50568) * Update mashpit to 0.9.7 * add phytreeviz --------- Co-authored-by: mencian --- recipes/mashpit/meta.yaml | 96 ++++++++++++++++++++------------------- 1 file changed, 49 insertions(+), 47 deletions(-) diff --git a/recipes/mashpit/meta.yaml b/recipes/mashpit/meta.yaml index 16a7f9b314a25..299fe006c885d 100644 --- a/recipes/mashpit/meta.yaml +++ b/recipes/mashpit/meta.yaml @@ -1,47 +1,49 @@ -{% set version = "0.9.6" %} - -package: - name: mashpit - version: '{{ version }}' - -source: - url: https://github.com/tongzhouxu/mashpit/archive/refs/tags/v{{ version }}.tar.gz - sha256: 94754449251e51fff771c5d9579ef7016cf1d2984dfcdc5f01a558ceac772d14 - -build: - noarch: python - script: python -m pip install --no-deps --ignore-installed . - number: 0 - run_exports: - - {{ pin_subpackage("mashpit", max_pin="x.x") }} - -requirements: - host: - - python >=3.8 - - pip - run: - - biopython =1.78 - - dask >=2024.1 - - flask >=3.0 - - ncbi-datasets-cli >=16.10 - - ncbi-datasets-pylib >=16.6.0 - - numpy >=1.19.5 - - python >=3.8 - - pandas >=1.1.5 - - requests - - scikit-bio - - scipy >=1.0 - - screed >=1.0.5 - - sourmash >=4.6.1 - - tqdm - -test: - commands: - - mashpit --help - -about: - home: https://github.com/tongzhouxu/mashpit - license: GPL-2 - license_family: GPL - license_file: LICENSE - summary: Sketch-based surveillance platform +{% set version = "0.9.7" %} + +package: + name: mashpit + version: '{{ version }}' + +source: + url: https://github.com/tongzhouxu/mashpit/archive/refs/tags/v{{ version }}.tar.gz + sha256: 4f93e00f8ff5cdb1eb81bc5cf01db824dbb8f54e67dbe9aab910b21fdd38fbed + +build: + noarch: python + script: {{ PYTHON }} -m pip install --no-deps --no-build-isolation --no-cache-dir . -vvv + number: 0 + run_exports: + - {{ pin_subpackage("mashpit", max_pin="x.x") }} + +requirements: + host: + - python >=3.8 + - pip + run: + - biopython =1.78 + - dask >=2024.1 + - flask >=3.0 + - ncbi-datasets-cli >=16.10 + - ncbi-datasets-pylib >=16.6.0 + - numpy >=1.19.5 + - python >=3.8 + - pandas >=1.1.5 + - requests + - scikit-bio + - scipy >=1.0 + - screed >=1.0.5 + - sourmash >=4.6.1 + - tqdm + - phytreeviz + +test: + commands: + - mashpit --help + +about: + home: https://github.com/tongzhouxu/mashpit + license: "GPL-2.0-or-later" + license_family: GPL2 + license_file: LICENSE + summary: Sketch-based surveillance platform + dev_url: https://github.com/tongzhouxu/mashpit From ed23256ea63fcadb3edbda69fd937335573a924f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 9 Sep 2024 16:39:01 -0400 Subject: [PATCH 1416/1589] Update gdc-client to 2.1 (#50579) --- recipes/gdc-client/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gdc-client/meta.yaml b/recipes/gdc-client/meta.yaml index 5c06114381bf7..4b3c334876d85 100644 --- a/recipes/gdc-client/meta.yaml +++ b/recipes/gdc-client/meta.yaml @@ -1,5 +1,5 @@ {% set name = "gdc-client" %} -{% set version = "2.0" %} +{% set version = "2.1" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/NCI-GDC/gdc-client/archive/{{ version }}.tar.gz - sha256: 4d81ab9d3a8efca2091691310cb1ef0511b7049fde375f146974f8d7d028fa20 + sha256: f847ee2cbd7e230e7f2ad26e7457b4138514ba5c55888e1803d1d3e5bfc6a058 build: number: 0 From 894c5543892b7baa2d7f8c90519bc9f6b5a3de68 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 9 Sep 2024 17:08:22 -0400 Subject: [PATCH 1417/1589] Update harpy to 1.8.1 (#50580) --- recipes/harpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index 1b6bdf4ce62cc..2043096dc8d2e 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.8.0" %} -{% set sha256 = "e62c5183d371be8f8fe56242cb7dd4eda855bc4f30018d26710c98bca5e4169d" %} +{% set version = "1.8.1" %} +{% set sha256 = "e51ea8b7156fb628920d75d4bc517c11dae915e20f9cf5e51d29fe05267063a0" %} package: name: harpy From 7326c0989015c0f79f39ccee9bbed925fefbbaef Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 9 Sep 2024 17:49:38 -0400 Subject: [PATCH 1418/1589] Update telometer to 1.1 (#50581) --- recipes/telometer/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/telometer/meta.yaml b/recipes/telometer/meta.yaml index 24585a29ff6d1..541254d534130 100644 --- a/recipes/telometer/meta.yaml +++ b/recipes/telometer/meta.yaml @@ -1,5 +1,5 @@ {% set name = "telometer" %} -{% set version = "1.0" %} +{% set version = "1.1" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/telometer-{{ version }}.tar.gz" - sha256: ce8d12d5239280e830d3678930d6ba49a42b636c05c5ebb801da522901b8ddc3 + sha256: 28f3256263be23e06f68cee0ddb9a3c942dc4cd7674389ce8e5f3c09ba4e17f3 build: number: 0 From 76e580dc9777b92df0d4cf35a83fe3596a7021f6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 9 Sep 2024 21:49:47 -0400 Subject: [PATCH 1419/1589] Update mkdesigner to 0.4.4 (#50583) --- recipes/mkdesigner/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mkdesigner/meta.yaml b/recipes/mkdesigner/meta.yaml index e00b2fa6ba705..7c89662a1d4a4 100644 --- a/recipes/mkdesigner/meta.yaml +++ b/recipes/mkdesigner/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mkdesigner" %} -{% set version = "0.4.3" %} +{% set version = "0.4.4" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mkdesigner-{{ version }}.tar.gz - sha256: b56c5fd1f60e300e2bfefb4997e3af7bfd5a37ed6643138114ba810a83250e1a + sha256: 29513140681b1f667764081bf981c1a548be3cf877bab4ffe551df96b1efbd9d build: entry_points: From d5101eb0e2c8476388d01738604280e1a13beaee Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 10 Sep 2024 00:14:21 -0400 Subject: [PATCH 1420/1589] Update vclean to 0.1.2 (#50555) * Update vclean to 0.1.0 * Update vclean to 0.1.1 * clean up recipe * Update vclean to 0.1.2 --------- Co-authored-by: mencian --- recipes/vclean/meta.yaml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/recipes/vclean/meta.yaml b/recipes/vclean/meta.yaml index d70333f25020c..42c74f5c91ba3 100644 --- a/recipes/vclean/meta.yaml +++ b/recipes/vclean/meta.yaml @@ -1,5 +1,5 @@ {% set name = "vclean" %} -{% set version = "0.0.2" %} +{% set version = "0.1.2" %} package: name: {{ name|lower }} @@ -7,16 +7,16 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/vclean-{{ version }}.tar.gz - sha256: 3624ccf7b8160af1584cc7fa99b7036fb81818a1941b9fd31729ce85c48cce73 + sha256: 7eef83f43db68b134684886144ef153f3275fe54af005504086489a4f3fc5245 build: entry_points: - vclean = vclean.cli:cli noarch: python - script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir number: 0 run_exports: - - {{ pin_subpackage("vclean", max_pin="x") }} + - {{ pin_subpackage("vclean", max_pin="x.x") }} requirements: host: @@ -28,7 +28,7 @@ requirements: - pandas - numpy - matplotlib-base - - seaborn + - seaborn-base - scikit-learn - lightgbm - biopython @@ -46,7 +46,9 @@ about: summary: 'vClean: Assessing the contamination of viral genomes' home: https://github.com/TsumaR/vclean license: GPL-3.0-only + license_family: GPL3 license_file: LICENSE + dev_url: https://github.com/TsumaR/vclean extra: recipe-maintainers: From 8cefe05f9ecb6151ab84ee6e7066c4413e6d476e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 10 Sep 2024 00:15:20 -0400 Subject: [PATCH 1421/1589] Update perl-mce-shared to 1.893 (#50584) --- recipes/perl-mce-shared/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/perl-mce-shared/meta.yaml b/recipes/perl-mce-shared/meta.yaml index a84539cbb15e9..94bbf9efe458b 100644 --- a/recipes/perl-mce-shared/meta.yaml +++ b/recipes/perl-mce-shared/meta.yaml @@ -1,14 +1,14 @@ {% set name = "perl-mce-shared" %} -{% set version = "1.892" %} -{% set sha256 = "f241ea83fbcb916ede5ff0017c0f0c8c1898fe9b40434df91488bfe21ba161a4" %} +{% set version = "1.893" %} +{% set sha256 = "fa4c487adfb0db3c8f2b6aa274d33d8f827fa234c631bb3af3d94fa4a3c9462f" %} package: name: {{ name }} version: {{ version }} source: - url: https://cpan.metacpan.org/authors/id/M/MA/MARIOROY/MCE-Shared-1.892.tar.gz + url: https://cpan.metacpan.org/authors/id/M/MA/MARIOROY/MCE-Shared-1.893.tar.gz sha256: {{ sha256 }} build: From 00da22fb6cd8b8eae5f3ffa33442ad3c12817974 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 10 Sep 2024 00:15:47 -0400 Subject: [PATCH 1422/1589] Update perl-mce to 1.900 (#50582) --- recipes/perl-mce/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/perl-mce/meta.yaml b/recipes/perl-mce/meta.yaml index 930604778a96d..eb7e0cfee892a 100644 --- a/recipes/perl-mce/meta.yaml +++ b/recipes/perl-mce/meta.yaml @@ -1,13 +1,13 @@ {% set name = "perl-mce" %} -{% set version = "1.899" %} -{% set sha256 = "67aa5932f983b3bca26932f8b9ebbcda8bb003ebbd9ce61cef36f98fc8117256" %} +{% set version = "1.900" %} +{% set sha256 = "f83132da7a993a4700464cdbf1665bab8ec8ec120beb86e607cd983d207fc935" %} package: name: {{ name }} version: {{ version }} source: - url: https://cpan.metacpan.org/authors/id/M/MA/MARIOROY/MCE-1.899.tar.gz + url: https://cpan.metacpan.org/authors/id/M/MA/MARIOROY/MCE-1.900.tar.gz sha256: {{ sha256 }} build: From 474a5486327a722fd40b48d8e4995cf0a226e6bd Mon Sep 17 00:00:00 2001 From: Mike Axtell Date: Tue, 10 Sep 2024 00:16:23 -0400 Subject: [PATCH 1423/1589] Update meta.yaml (#50573) * Update meta.yaml Increment build number * Update shortstack --- recipes/shortstack/meta.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/recipes/shortstack/meta.yaml b/recipes/shortstack/meta.yaml index 6d48ecdb909da..e25b31f29308a 100644 --- a/recipes/shortstack/meta.yaml +++ b/recipes/shortstack/meta.yaml @@ -12,21 +12,21 @@ source: build: noarch: generic - number: 0 + number: 1 run_exports: - {{ pin_subpackage('shortstack', max_pin="x") }} requirements: run: - - python >=3.10.8 - - samtools >=1.16 + - python >=3.12.3 + - samtools >=1.20 - bowtie >=1.3.1 - viennarna 2.* - tqdm - numpy - biopython - - strucvis - - shorttracks + - strucvis >=0.9 + - shorttracks >=1.2 - bedtools - cutadapt From a25d4dcc9ded0cf7c414b8870b4de702ee450a7b Mon Sep 17 00:00:00 2001 From: Zilong-Li Date: Tue, 10 Sep 2024 06:17:02 +0200 Subject: [PATCH 1424/1589] update r-stitch to 1.7.1 (#50578) --- recipes/r-stitch/build.sh | 7 +++++-- recipes/r-stitch/meta.yaml | 13 +++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/recipes/r-stitch/build.sh b/recipes/r-stitch/build.sh index c2e44c1a2092e..3a36f7dff68f8 100644 --- a/recipes/r-stitch/build.sh +++ b/recipes/r-stitch/build.sh @@ -2,8 +2,11 @@ set -xe +export LC_ALL=C.UTF-8 +export LANG=C.UTF-8 + mkdir -p $PREFIX/bin cp -rf STITCH.R $PREFIX/bin -${R} CMD INSTALL --build . - +cd $SRC_DIR/STITCH +${R} CMD INSTALL --build --install-tests . ${R_ARGS} diff --git a/recipes/r-stitch/meta.yaml b/recipes/r-stitch/meta.yaml index dbf74b5db8888..7cea5b5efce68 100644 --- a/recipes/r-stitch/meta.yaml +++ b/recipes/r-stitch/meta.yaml @@ -1,22 +1,19 @@ -{% set version = "1.7.0" %} -{% set sha256_package = "818ac096fb3bfbe51b0107020a37f0b86ac1497d7b47a2de8179f2c4e3e34bba" %} -{% set sha256_script = "0c61d79cf519e5c5ae33807725577da3d1599bcc89413c3a6bce3fb7c99090c7" %} +{% set version = "1.7.1" %} +{% set sha256 = "e4ff3eb406dd5bb52d3311cfe59b7b8508b14df874d5a5f6bd970abd02de3428" %} package: name: r-stitch version: '{{ version }}' source: - - url: https://github.com/rwdavies/stitch/releases/download/{{ version }}/STITCH_{{ version }}.tar.gz - sha256: '{{ sha256_package }}' - - url: https://raw.githubusercontent.com/rwdavies/STITCH/{{ version }}/STITCH.R - sha256: '{{ sha256_script }}' + - url: https://github.com/rwdavies/stitch/archive/refs/tags/{{ version }}.tar.gz + sha256: '{{ sha256 }}' build: number: 0 run_exports: - {{ pin_subpackage('r-stitch', max_pin="x") }} - + requirements: build: - {{ compiler('c') }} From a0707120324b074f6a34a9d98394ebba3f49af44 Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Mon, 9 Sep 2024 21:17:38 -0700 Subject: [PATCH 1425/1589] Update nanosim: bump build (#50576) --- recipes/nanosim/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/nanosim/meta.yaml b/recipes/nanosim/meta.yaml index ba625982d09e9..01773a1c3858b 100644 --- a/recipes/nanosim/meta.yaml +++ b/recipes/nanosim/meta.yaml @@ -11,7 +11,7 @@ source: build: noarch: generic - number: 0 + number: 1 run_exports: - {{ pin_subpackage('nanosim', max_pin="x") }} @@ -26,7 +26,7 @@ requirements: - pybedtools >=0.7.10 - pysam >=0.13 - htseq >=0.9.1 - - minimap2 + - minimap2 >=2.18 - last - samtools - genometools-genometools From 4fb237c808e58da1615971d401055d518f528d61 Mon Sep 17 00:00:00 2001 From: Benedetto Polimeni <34317613+bepoli@users.noreply.github.com> Date: Tue, 10 Sep 2024 07:07:38 +0200 Subject: [PATCH 1426/1589] Update irescue to 1.1.0 (#50557) --- recipes/irescue/meta.yaml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/recipes/irescue/meta.yaml b/recipes/irescue/meta.yaml index d03df028c954e..19e73eed35976 100644 --- a/recipes/irescue/meta.yaml +++ b/recipes/irescue/meta.yaml @@ -1,18 +1,20 @@ {% set name = "irescue" %} -{% set version = "1.0.3" %} +{% set version = "1.1.0" %} package: name: {{ name|lower }} version: {{ version }} source: - url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/IRescue-{{ version }}.tar.gz - sha256: 9d68f42cd70c1ee9151699201319a3c879a3400b51a1224ccd66191ae5bb16ae + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/irescue-{{ version }}.tar.gz + sha256: 8e1fd1cfc1fdf70d865ee534674743ed38645e8a0737fab31ef7517284130bd4 build: noarch: python script: {{ PYTHON }} -m pip install . -vv - number: 1 + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} requirements: host: @@ -28,6 +30,7 @@ requirements: - pysam >=0.16.0.1 - bedtools >=2.30.0 - samtools >=1.12 + - networkx >=3.1 test: imports: @@ -40,6 +43,8 @@ about: summary: A tool to quantify transposable elements expression in scRNA-seq. license: MIT license_file: LICENSE + dev_url: https://github.com/bodegalab/irescue + doc_url: https://pypi.org/project/IRescue extra: recipe-maintainers: From 4336ac9cfc8d8f20b435cd85c3842f655d3a566c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 10 Sep 2024 01:08:44 -0400 Subject: [PATCH 1427/1589] Update fibertools-rs to 0.5.4 (#50585) * Update fibertools-rs to 0.5.4 * clean up recipe --------- Co-authored-by: mencian --- recipes/fibertools-rs/build.sh | 6 - .../fibertools-rs/build_failure.linux-64.yaml | 104 ------------------ recipes/fibertools-rs/conda_build_config.yaml | 1 - recipes/fibertools-rs/meta.yaml | 24 ++-- 4 files changed, 8 insertions(+), 127 deletions(-) delete mode 100644 recipes/fibertools-rs/build_failure.linux-64.yaml delete mode 100644 recipes/fibertools-rs/conda_build_config.yaml diff --git a/recipes/fibertools-rs/build.sh b/recipes/fibertools-rs/build.sh index e73cd0dd01dcb..0c518e5203032 100644 --- a/recipes/fibertools-rs/build.sh +++ b/recipes/fibertools-rs/build.sh @@ -3,12 +3,6 @@ # Set the desitnation for the libtorch files # -# -# TODO: Remove the following export when pinning is updated and we use -# {{ compiler('rust') }} in the recipe. -export \ - CARGO_NET_GIT_FETCH_WITH_CLI=true \ - CARGO_HOME="${BUILD_PREFIX}/.cargo" export BINDGEN_EXTRA_CLANG_ARGS="${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" # diff --git a/recipes/fibertools-rs/build_failure.linux-64.yaml b/recipes/fibertools-rs/build_failure.linux-64.yaml deleted file mode 100644 index 8f5fc2bb460ea..0000000000000 --- a/recipes/fibertools-rs/build_failure.linux-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: b174a9af23ec686e13e6e0fe058d229b43e22e070337f81076130ac3b1c05680 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - INFO (fibertools-rs,lib/libtorch.so): lib/libtorch_cuda_cpp.so found in this package - INFO (fibertools-rs,lib/libtorch.so): lib/libtorch_cpu.so found in this package - INFO (fibertools-rs,lib/libtorch.so): lib/libtorch_cuda_cu.so found in this package - INFO (fibertools-rs,lib/libcudnn_cnn_train.so.8): lib/libcudnn_ops_infer.so.8 found in this package - INFO (fibertools-rs,lib/libcudnn_cnn_train.so.8): lib/libcudnn_ops_train.so.8 found in this package - INFO (fibertools-rs,lib/libcudnn_cnn_train.so.8): lib/libcudnn_cnn_infer.so.8 found in this package - INFO (fibertools-rs,lib/libcudnn_cnn_train.so.8): lib/libcublas-2854e16e.so.11 found in this package - INFO (fibertools-rs,lib/libcudnn_cnn_train.so.8): lib/libcublasLt-b015978e.so.11 found in this package - INFO (fibertools-rs,lib/libcudnn_cnn_train.so.8): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/librt.so.1 found in CDT/compiler package conda-forge::sysroot_linux-64-2.12-he073ed8_15 - INFO (fibertools-rs,lib/libcudnn_cnn_train.so.8): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libpthread.so.0 found in CDT/compiler package conda-forge::sysroot_linux-64-2.12-he073ed8_15 - INFO (fibertools-rs,lib/libcudnn_cnn_train.so.8): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libdl.so.2 found in CDT/compiler package conda-forge::sysroot_linux-64-2.12-he073ed8_15 - INFO (fibertools-rs,lib/libcudnn_cnn_train.so.8): Needed DSO lib/libstdc.so.6 found in conda-forge::libstdcxx-ng-12.2.0-h46fd767_19 - INFO (fibertools-rs,lib/libcudnn_cnn_train.so.8): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libm.so.6 found in CDT/compiler package conda-forge::sysroot_linux-64-2.12-he073ed8_15 - INFO (fibertools-rs,lib/libcudnn_cnn_train.so.8): Needed DSO lib/libgcc_s.so.1 found in conda-forge::libgcc-ng-12.2.0-h65d4601_19 - INFO (fibertools-rs,lib/libcudnn_cnn_train.so.8): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libc.so.6 found in CDT/compiler package conda-forge::sysroot_linux-64-2.12-he073ed8_15 - INFO (fibertools-rs,lib/libcudnn_cnn_train.so.8): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/ld-linux-x86-64.so.2 found in CDT/compiler package conda-forge::sysroot_linux-64-2.12-he073ed8_15 - INFO (fibertools-rs,lib/libnvrtc-builtins-fed02928.so.11.6): Needed DSO lib/libstdc.so.6 found in conda-forge::libstdcxx-ng-12.2.0-h46fd767_19 - INFO (fibertools-rs,lib/libnvrtc-builtins-fed02928.so.11.6): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libm.so.6 found in CDT/compiler package conda-forge::sysroot_linux-64-2.12-he073ed8_15 - INFO (fibertools-rs,lib/libnvrtc-builtins-fed02928.so.11.6): Needed DSO lib/libgcc_s.so.1 found in conda-forge::libgcc-ng-12.2.0-h65d4601_19 - INFO (fibertools-rs,lib/libnvrtc-builtins-fed02928.so.11.6): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libc.so.6 found in CDT/compiler package conda-forge::sysroot_linux-64-2.12-he073ed8_15 - INFO (fibertools-rs,lib/libtorch_cuda_linalg.so): lib/libtorch_cpu.so found in this package - INFO (fibertools-rs,lib/libtorch_cuda_linalg.so): lib/libtorch_cuda.so found in this package - INFO (fibertools-rs,lib/libtorch_cuda_linalg.so): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libdl.so.2 found in CDT/compiler package conda-forge::sysroot_linux-64-2.12-he073ed8_15 - INFO (fibertools-rs,lib/libtorch_cuda_linalg.so): lib/libtorch_cuda_cpp.so found in this package - INFO (fibertools-rs,lib/libtorch_cuda_linalg.so): lib/libc10_cuda.so found in this package - INFO (fibertools-rs,lib/libtorch_cuda_linalg.so): lib/libc10.so found in this package - INFO (fibertools-rs,lib/libtorch_cuda_linalg.so): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libpthread.so.0 found in CDT/compiler package conda-forge::sysroot_linux-64-2.12-he073ed8_15 - INFO (fibertools-rs,lib/libtorch_cuda_linalg.so): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libm.so.6 found in CDT/compiler package conda-forge::sysroot_linux-64-2.12-he073ed8_15 - INFO (fibertools-rs,lib/libtorch_cuda_linalg.so): lib/libcublas-2854e16e.so.11 found in this package - INFO (fibertools-rs,lib/libtorch_cuda_linalg.so): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/librt.so.1 found in CDT/compiler package conda-forge::sysroot_linux-64-2.12-he073ed8_15 - INFO (fibertools-rs,lib/libtorch_cuda_linalg.so): lib/libtorch_cuda_cu.so found in this package - INFO (fibertools-rs,lib/libtorch_cuda_linalg.so): Needed DSO lib/libstdc.so.6 found in conda-forge::libstdcxx-ng-12.2.0-h46fd767_19 - INFO (fibertools-rs,lib/libtorch_cuda_linalg.so): Needed DSO lib/libgcc_s.so.1 found in conda-forge::libgcc-ng-12.2.0-h65d4601_19 - INFO (fibertools-rs,lib/libtorch_cuda_linalg.so): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libc.so.6 found in CDT/compiler package conda-forge::sysroot_linux-64-2.12-he073ed8_15 - INFO (fibertools-rs,lib/libtorch_cuda_linalg.so): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/ld-linux-x86-64.so.2 found in CDT/compiler package conda-forge::sysroot_linux-64-2.12-he073ed8_15 - INFO (fibertools-rs,lib/libtorch_cpu.so): lib/libgomp-a34b3233.so.1 found in this package - INFO (fibertools-rs,lib/libtorch_cpu.so): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libpthread.so.0 found in CDT/compiler package conda-forge::sysroot_linux-64-2.12-he073ed8_15 - INFO (fibertools-rs,lib/libtorch_cpu.so): lib/libc10.so found in this package - INFO (fibertools-rs,lib/libtorch_cpu.so): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/librt.so.1 found in CDT/compiler package conda-forge::sysroot_linux-64-2.12-he073ed8_15 - INFO (fibertools-rs,lib/libtorch_cpu.so): Needed DSO lib/libgcc_s.so.1 found in conda-forge::libgcc-ng-12.2.0-h65d4601_19 - INFO (fibertools-rs,lib/libtorch_cpu.so): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libdl.so.2 found in CDT/compiler package conda-forge::sysroot_linux-64-2.12-he073ed8_15 - INFO (fibertools-rs,lib/libtorch_cpu.so): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libm.so.6 found in CDT/compiler package conda-forge::sysroot_linux-64-2.12-he073ed8_15 - INFO (fibertools-rs,lib/libtorch_cpu.so): lib/libcudart-45da57e3.so.11.0 found in this package - INFO (fibertools-rs,lib/libtorch_cpu.so): Needed DSO lib/libstdc.so.6 found in conda-forge::libstdcxx-ng-12.2.0-h46fd767_19 - INFO (fibertools-rs,lib/libtorch_cpu.so): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libc.so.6 found in CDT/compiler package conda-forge::sysroot_linux-64-2.12-he073ed8_15 - INFO (fibertools-rs,lib/libtorch_cpu.so): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/ld-linux-x86-64.so.2 found in CDT/compiler package conda-forge::sysroot_linux-64-2.12-he073ed8_15 - WARNING (fibertools-rs): run-exports library package conda-forge::openssl-3.1.1-hd590300_1 in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) - WARNING (fibertools-rs): run-exports library package conda-forge::gsl-2.7-he838d99_0 in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) - Fixing permissions - INFO :: Time taken to mark (prefix) - 0 replacements in 0 files was 20.91 seconds - Files containing CONDA_PREFIX - ----------------------------- - bin/ft (binary): Patching - TEST START: /opt/conda/conda-bld/linux-64/fibertools-rs-0.1.4-ha48afa3_1.tar.bz2 - Renaming work directory '/opt/conda/conda-bld/fibertools-rs_1685546594028/work' to '/opt/conda/conda-bld/fibertools-rs_1685546594028/work_moved_fibertools-rs-0.1.4-ha48afa3_1_linux-64' - INFO:conda_build.utils:Renaming work directory '/opt/conda/conda-bld/fibertools-rs_1685546594028/work' to '/opt/conda/conda-bld/fibertools-rs_1685546594028/work_moved_fibertools-rs-0.1.4-ha48afa3_1_linux-64' - shutil.move(work)=/opt/conda/conda-bld/fibertools-rs_1685546594028/work, dest=/opt/conda/conda-bld/fibertools-rs_1685546594028/work_moved_fibertools-rs-0.1.4-ha48afa3_1_linux-64) - INFO:conda_build.utils:shutil.move(work)=/opt/conda/conda-bld/fibertools-rs_1685546594028/work, dest=/opt/conda/conda-bld/fibertools-rs_1685546594028/work_moved_fibertools-rs-0.1.4-ha48afa3_1_linux-64) - [34mReloading output folder: [0m[34m/opt/conda/[0m[34mconda-bld[0m - [?25l[2K[0G[] 0.0s - opt/conda/conda-bl.. 100% - opt/conda/conda-bl.. [2K[1A[2K[1A[2K[0Gopt/conda/conda-bld/linux-64 - opt/conda/conda-bld/noarch - [?25h - ## Package Plan ## - - environment location: /opt/conda/conda-bld/fibertools-rs_1685546594028/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac - - - The following NEW packages will be INSTALLED: - - _libgcc_mutex: 0.1-conda_forge conda-forge - _openmp_mutex: 4.5-2_gnu conda-forge - ca-certificates: 2023.5.7-hbcca054_0 conda-forge - cuda-cudart: 12.0.107-h59595ed_5 conda-forge - cuda-cudart_linux-64: 12.0.107-h59595ed_5 conda-forge - cuda-version: 12.0-hffde075_2 conda-forge - fibertools-rs: 0.1.4-ha48afa3_1 local - gsl: 2.7-he838d99_0 conda-forge - libblas: 3.9.0-16_linux64_openblas conda-forge - libcblas: 3.9.0-16_linux64_openblas conda-forge - libgcc-ng: 12.2.0-h65d4601_19 conda-forge - libgfortran-ng: 12.2.0-h69a702a_19 conda-forge - libgfortran5: 12.2.0-h337968e_19 conda-forge - libgomp: 12.2.0-h65d4601_19 conda-forge - libopenblas: 0.3.21-pthreads_h78a6416_3 conda-forge - libstdcxx-ng: 12.2.0-h46fd767_19 conda-forge - openssl: 3.1.1-hd590300_1 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - export PREFIX=/opt/conda/conda-bld/fibertools-rs_1685546594028/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac - export SRC_DIR=/opt/conda/conda-bld/fibertools-rs_1685546594028/test_tmp - ft help - ft: error while loading shared libraries: libcudart-45da57e3.so.11.0: ELF load command address/offset not properly aligned - Tests failed for fibertools-rs-0.1.4-ha48afa3_1.tar.bz2 - moving package to /opt/conda/conda-bld/broken - WARNING:conda_build.build:Tests failed for fibertools-rs-0.1.4-ha48afa3_1.tar.bz2 - moving package to /opt/conda/conda-bld/broken - TESTS FAILED: fibertools-rs-0.1.4-ha48afa3_1.tar.bz2 -# Last 100 lines of the build log. diff --git a/recipes/fibertools-rs/conda_build_config.yaml b/recipes/fibertools-rs/conda_build_config.yaml deleted file mode 100644 index 08edf02f36afc..0000000000000 --- a/recipes/fibertools-rs/conda_build_config.yaml +++ /dev/null @@ -1 +0,0 @@ -# https://github.com/conda-forge/conda-forge-pinning-feedstock/blob/bd8ecffadbaa19077609ca7649b5ec60452ff83c/recipe/conda_build_config.yaml \ No newline at end of file diff --git a/recipes/fibertools-rs/meta.yaml b/recipes/fibertools-rs/meta.yaml index 5166a33b6115a..2a13e6f52bfd5 100644 --- a/recipes/fibertools-rs/meta.yaml +++ b/recipes/fibertools-rs/meta.yaml @@ -1,23 +1,20 @@ -{% set version = "0.5.3" %} +{% set version = "0.5.4" %} {% set name = "fibertools-rs" %} {% set build_number = "0" %} package: name: {{ name }} version: {{ version }} - source: url: https://github.com/fiberseq/fibertools-rs/archive/v{{ version }}.tar.gz - sha256: 62a38ab16a199d9d03a79f7ccf3543d10127635baa7898edc004e636383fadad - + sha256: d0dc8523b9c0f2c2b368fb450d6cf6f45e13fb53bdbbd1847f1bb748fb5af42b build: run_exports: - - {{ pin_subpackage('fibertools-rs', max_pin="x") }} + - {{ pin_subpackage('fibertools-rs', max_pin="x.x") }} number: {{ build_number }} - requirements: build: - {{ compiler('c') }} @@ -25,8 +22,6 @@ requirements: - {{ compiler('rust') }} - make - cmake - - unzip - - curl # all the host and run requirements match those needed for htslib host: - libcurl @@ -35,24 +30,22 @@ requirements: - zlib - libdeflate - openssl # [not osx] + - unzip + - curl run: - - libcurl - - bzip2 - - xz - - zlib - - libdeflate - openssl # [not osx] test: commands: - ft help - about: home: https://github.com/fiberseq/fibertools-rs license: MIT + license_family: MIT summary: Mitchell Vollger's rust tools for fiberseq data. - + dev_url: https://github.com/fiberseq/fibertools-rs + doc_url: https://fiberseq.github.io/fibertools/fibertools.html extra: recipe-maintainers: @@ -60,4 +53,3 @@ extra: additional-platforms: - osx-arm64 # - linux-aarch64 # Dependency issue, see https://github.com/bioconda/bioconda-recipes/pull/48868 - From 188f25842eeee878a94083f69f9d5a584236f350 Mon Sep 17 00:00:00 2001 From: Ekaterina Kazantseva <82141791+katerinakazantseva@users.noreply.github.com> Date: Tue, 10 Sep 2024 09:12:07 +0400 Subject: [PATCH 1428/1589] add strainy_recipe (#50356) --- recipes/strainy/meta.yaml | 53 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 recipes/strainy/meta.yaml diff --git a/recipes/strainy/meta.yaml b/recipes/strainy/meta.yaml new file mode 100644 index 0000000000000..732d2067731b3 --- /dev/null +++ b/recipes/strainy/meta.yaml @@ -0,0 +1,53 @@ +{% set version = "1.1" %} +{% set name = "strainy" %} + + +package: + name: strainy + version: {{ version }} + + +source: + url: https://github.com/katerinakazantseva/strainy/archive/refs/tags/{{ version }}.tar.gz + sha256: bdbac3961fa840344ac67e249de8f6d4114e0796c5b40bb5535d8e59f4dc63d1 + + +build: + number: 0 + noarch: python + script: {{ PYTHON }} -m pip install -vv . + run_exports: + - {{ pin_subpackage("strainy", max_pin="x") }} + + +requirements: + host: + - python + run: + - python >=3.8 + - samtools >=1.14 + - bcftools >=1.14 + - pygraphviz + - matplotlib-base + - biopython + - python-edlib + - networkx >=2.6,<3.4 + - gfapy + - karateclub + - numpy >=1.24,<1.27 + - pandas >=1.3,<3 + - pysam >=0.20,<0.23 + - scipy >=1.8,<1.13 + - flye + + +test: + commands: + - strainy -h + +about: + home: https://github.com/katerinakazantseva/strainy + license: GPL-3.0-or-later + license_family: GPL3 + license_file: LICENSE + summary: assembly-based metagenomic strain phasing using long reads From 609f5c0407cdd29996c61bdb3afb68e6d2fe93f3 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 10 Sep 2024 00:33:04 -0500 Subject: [PATCH 1429/1589] Add recipe for lib-pod5 v0.3.15 (#50586) --- recipes/lib-pod5/LICENSE.md | 362 ++++++++++++++++++++++++++++++++++++ recipes/lib-pod5/meta.yaml | 58 ++++++ 2 files changed, 420 insertions(+) create mode 100644 recipes/lib-pod5/LICENSE.md create mode 100644 recipes/lib-pod5/meta.yaml diff --git a/recipes/lib-pod5/LICENSE.md b/recipes/lib-pod5/LICENSE.md new file mode 100644 index 0000000000000..9f3e082df8e44 --- /dev/null +++ b/recipes/lib-pod5/LICENSE.md @@ -0,0 +1,362 @@ +This Source Code Form is subject to the terms of the Mozilla Public +License, v. 2.0. If a copy of the MPL was not distributed with this +file, You can obtain one at https://mozilla.org/MPL/2.0/. + +©2021 Oxford Nanopore Technologies PLC. + + +Mozilla Public License Version 2.0 +================================== + +### 1. Definitions + +**1.1. “Contributor”** + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +**1.2. “Contributor Version”** + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +**1.3. “Contribution”** + means Covered Software of a particular Contributor. + +**1.4. “Covered Software”** + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +**1.5. “Incompatible With Secondary Licenses”** + means + +* **(a)** that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or +* **(b)** that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +**1.6. “Executable Form”** + means any form of the work other than Source Code Form. + +**1.7. “Larger Work”** + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +**1.8. “License”** + means this document. + +**1.9. “Licensable”** + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +**1.10. “Modifications”** + means any of the following: + +* **(a)** any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or +* **(b)** any new file in Source Code Form that contains any Covered + Software. + +**1.11. “Patent Claims” of a Contributor** + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +**1.12. “Secondary License”** + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +**1.13. “Source Code Form”** + means the form of the work preferred for making modifications. + +**1.14. “You” (or “Your”)** + means an individual or a legal entity exercising rights under this + License. For legal entities, “You” includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, “control” means **(a)** the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or **(b)** ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + + +### 2. License Grants and Conditions + +#### 2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +* **(a)** under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and +* **(b)** under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +#### 2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +#### 2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +* **(a)** for any code that a Contributor has removed from Covered Software; + or +* **(b)** for infringements caused by: **(i)** Your and any other third party's + modifications of Covered Software, or **(ii)** the combination of its + Contributions with other software (except as part of its Contributor + Version); or +* **(c)** under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +#### 2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +#### 2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +#### 2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +#### 2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + + +### 3. Responsibilities + +#### 3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +#### 3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +* **(a)** such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +* **(b)** You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +#### 3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +#### 3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +#### 3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + + +### 4. Inability to Comply Due to Statute or Regulation + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: **(a)** comply with +the terms of this License to the maximum extent possible; and **(b)** +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + + +### 5. Termination + +**5.1.** The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated **(a)** provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and **(b)** on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +**5.2.** If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +**5.3.** In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + + +### 6. Disclaimer of Warranty + +> Covered Software is provided under this License on an “as is” +> basis, without warranty of any kind, either expressed, implied, or +> statutory, including, without limitation, warranties that the +> Covered Software is free of defects, merchantable, fit for a +> particular purpose or non-infringing. The entire risk as to the +> quality and performance of the Covered Software is with You. +> Should any Covered Software prove defective in any respect, You +> (not any Contributor) assume the cost of any necessary servicing, +> repair, or correction. This disclaimer of warranty constitutes an +> essential part of this License. No use of any Covered Software is +> authorized under this License except under this disclaimer. + +### 7. Limitation of Liability + +> Under no circumstances and under no legal theory, whether tort +> (including negligence), contract, or otherwise, shall any +> Contributor, or anyone who distributes Covered Software as +> permitted above, be liable to You for any direct, indirect, +> special, incidental, or consequential damages of any character +> including, without limitation, damages for lost profits, loss of +> goodwill, work stoppage, computer failure or malfunction, or any +> and all other commercial damages or losses, even if such party +> shall have been informed of the possibility of such damages. This +> limitation of liability shall not apply to liability for death or +> personal injury resulting from such party's negligence to the +> extent applicable law prohibits such limitation. Some +> jurisdictions do not allow the exclusion or limitation of +> incidental or consequential damages, so this exclusion and +> limitation may not apply to You. + + +### 8. Litigation + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + + +### 9. Miscellaneous + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + + +### 10. Versions of the License + +#### 10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +#### 10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +#### 10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +#### 10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +## Exhibit A - Source Code Form License Notice + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at https://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +## Exhibit B - “Incompatible With Secondary Licenses” Notice + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. diff --git a/recipes/lib-pod5/meta.yaml b/recipes/lib-pod5/meta.yaml new file mode 100644 index 0000000000000..72786148d5074 --- /dev/null +++ b/recipes/lib-pod5/meta.yaml @@ -0,0 +1,58 @@ +{% set name = "lib-pod5" %} +{% set version = "0.3.15" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/nanoporetech/pod5-file-format/releases/download/{{ version }}/pod5-{{ version }}.tar.gz + sha256: 85e3196bfc375b7d6eb36787a312af5276b19829ceded551b55e9e193939e8f4 + +build: + number: 0 + noarch: python + script: + - {{ PYTHON }} -m pip install https://files.pythonhosted.org/packages/9a/34/4ade92cc2e2690a52473a4c8a62c32b8364a81ed803d6096ab43d0fd3dcb/lib_pod5-{{ version }}-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -vvv --no-deps --no-build-isolation --no-cache-dir # [linux and x86_64] + - {{ PYTHON }} -m pip install https://files.pythonhosted.org/packages/fd/e4/e4d33770ecdeff95a1475153b3d0342041a2fc17279bd140c3502073cc16/lib_pod5-{{ version }}-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -vvv --no-deps --no-build-isolation --no-cache-dir # [linux and aarch64] + - {{ PYTHON }} -m pip install https://files.pythonhosted.org/packages/64/af/a549fea23785b064f95da916d4e086fa52a07ba83dae6e3ee9309299bb17/lib_pod5-{{ version }}-cp312-cp312-macosx_10_15_universal2.whl -vvv --no-deps --no-build-isolation --no-cache-dir # [osx and x86_64] + - {{ PYTHON }} -m pip install https://files.pythonhosted.org/packages/ab/8c/5c0ca9d60a26bb02823201853d9214a8e75238c4f08cc54996300f671a16/lib_pod5-{{ version }}-cp312-cp312-macosx_11_0_arm64.whl -vvv --no-deps --no-build-isolation --no-cache-dir # [osx and arm64] + run_exports: + - {{ pin_subpackage('lib-pod5', max_pin="x.x") }} + +requirements: + host: + - python >=3.8 + - pybind11 >=2.10.0 + - pip + run: + - python >=3.8 + - numpy >=1.21.0 + +test: + imports: + - lib_pod5 + +about: + home: https://github.com/nanoporetech/pod5-file-format + summary: "Python bindings for the POD5 file format." + license: "MPL-2.0" + license_family: OTHER + license_file: "LICENSE.md" + dev_url: https://github.com/nanoporetech/pod5-file-format + doc_url: https://pod5-file-format.readthedocs.io/en/latest + description: | + [![Documentation Status](https://readthedocs.org/projects/pod5-file-format/badge/?version=latest)](https://pod5-file-format.readthedocs.io/) + + **Python bindings for the POD5 file format** + + What does this project contain + ------------------------------ + + This project contains the low-level core library (extension modules) for reading and writing POD5 files. + This project forms the basis of the pure-python [pod5 package](https://github.com/nanoporetech/pod5-file-format) which is probably the project you want. + + Documentation + ------------- + + Full documentation is found at https://pod5-file-format.readthedocs.io From 715cdd5eda2ea9f046e95f33be963acfc7772b36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Plaza=20O=C3=B1ate?= <4588656+fplazaonate@users.noreply.github.com> Date: Tue, 10 Sep 2024 08:12:06 +0200 Subject: [PATCH 1430/1589] Update vcflib (#50564) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Remove EXTRA_FLAGS from CMakeLists.txt to disable march=native * clean up recipe --------- Co-authored-by: Florian Plaza Oñate Co-authored-by: mencian --- recipes/vcflib/build.sh | 21 +++++++++++++------- recipes/vcflib/march_native.patch | 16 ++++++++++++++++ recipes/vcflib/meta.yaml | 32 ++++++++++++++++++++++++++++--- recipes/vcflib/pkg-config.patch | 8 ++++---- 4 files changed, 63 insertions(+), 14 deletions(-) create mode 100644 recipes/vcflib/march_native.patch diff --git a/recipes/vcflib/build.sh b/recipes/vcflib/build.sh index bd7be785432e0..ce8a7d2ee0f45 100644 --- a/recipes/vcflib/build.sh +++ b/recipes/vcflib/build.sh @@ -12,10 +12,10 @@ else export PATH="$(pwd)/zig-linux-${ARCH}-0.10.1:${PATH}" fi -export INCLUDES="-I${PREFIX}/include -I. -Ihtslib -Itabixpp -I\$(INC_DIR)" -export LIBPATH="-L${PREFIX}/lib -L. -Lhtslib -Ltabixpp" +export INCLUDES="-I${PREFIX}/include -I. -Ihtslib -Itabixpp -Iwfa2 -I\$(INC_DIR)" +export LIBPATH="-L${PREFIX}/lib -L. -Lhtslib -Ltabixpp -Lwfa2" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib -lhts -ltabixpp -lpthread -lz -lm -llzma -lbz2 -fopenmp -lwfa2" -export CXXFLAGS="${CXXFLAGS} -O3 -D_FILE_OFFSET_BITS=64" +export CXXFLAGS="${CXXFLAGS} -O3 -D_FILE_OFFSET_BITS=64 -I${PREFIX}/include" sed -i.bak 's/CFFFLAGS:= -O3/CFFFLAGS=-O3 -D_FILE_OFFSET_BITS=64 -std=c++0x/' contrib/smithwaterman/Makefile sed -i.bak 's/CFLAGS/CXXFLAGS/g' contrib/smithwaterman/Makefile @@ -27,11 +27,14 @@ sed -i.bak 's/g++/$(CXX) $(CXXFLAGS)/g' contrib/multichoose/Makefile sed -i.bak 's/g++/$(CXX) $(CXXFLAGS)/g' contrib/intervaltree/Makefile # MacOSX Build fix: https://github.com/chapmanb/homebrew-cbl/issues/14 -if [ "${OS}" == "Darwin" ]; then +if [[ `uname` == "Darwin" ]]; then sed -i.bak 's/LDFLAGS=-Wl,-s/LDFLAGS=/' contrib/smithwaterman/Makefile + sed -i.bak 's/-std=c++0x/-std=c++14 -stdlib=libc++/g' contrib/intervaltree/Makefile export LDFLAGS="${LDFLAGS} -Wl,-rpath,${PREFIX}/lib" export CXXFLAGS="${CXXFLAGS} -D_LIBCPP_ENABLE_CXX17_REMOVED_FEATURES" - sed -i.bak 's/-std=c++0x/-std=c++11 -stdlib=libc++/g' contrib/intervaltree/Makefile + export CONFIG_ARGS="-DCMAKE_FIND_FRAMEWORK=NEVER -DCMAKE_FIND_APPBUNDLE=NEVER" +else + export CONFIG_ARGS="" fi pkg-config --list-all @@ -39,8 +42,12 @@ pkg-config --list-all cmake -S . -B build \ -DZIG=ON -DOPENMP=ON -DWFA_GITMODULE=OFF \ -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_SHARED_LIBS=ON \ + -DCMAKE_INSTALL_LIBDIR=lib \ -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ + -DCMAKE_CXX_COMPILER="${CXX}" \ -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ - -DEXTRA_FLAGS="" # Disable march=native to build a generic executable, see https://github.com/vcflib/vcflib/issues/401 + -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON \ + "${CONFIG_ARGS}" -cmake --build build/ --target install -j 4 -v +cmake --build build/ --target install -j "${CPU_COUNT}" -v diff --git a/recipes/vcflib/march_native.patch b/recipes/vcflib/march_native.patch new file mode 100644 index 0000000000000..bd1238b810e3e --- /dev/null +++ b/recipes/vcflib/march_native.patch @@ -0,0 +1,16 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 7e90114..2280e33 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -69,11 +69,6 @@ if(NOT CMAKE_BUILD_TYPE) + "Choose the type of build, options are: Release|Debug|RelWithDebInfo (for distros)." FORCE) + endif() + +-if (${CMAKE_BUILD_TYPE} MATCHES Release) +- set(EXTRA_FLAGS "-march=native -D_FILE_OFFSET_BITS=64") +- # set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG") # reset CXX_FLAGS to replace -O3 with -Ofast +-endif() +- + if ((${CMAKE_BUILD_TYPE} MATCHES Release) OR (${CMAKE_BUILD_TYPE} MATCHES RelWithDebInfo)) + set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_FLAGS}") + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_FLAGS}") diff --git a/recipes/vcflib/meta.yaml b/recipes/vcflib/meta.yaml index 8a6274880daf7..3daa1e7b3cfa4 100644 --- a/recipes/vcflib/meta.yaml +++ b/recipes/vcflib/meta.yaml @@ -14,6 +14,7 @@ source: - shared_lib.patch - backport_pr_394.patch # TODO remove once PR https://github.com/vcflib/vcflib/pull/394 is merged and released - tabix.patch + - march_native.patch # Disable march=native to build a generic executable, see https://github.com/vcflib/vcflib/issues/401 - url: https://ziglang.org/download/0.10.1/zig-linux-x86_64-0.10.1.tar.xz # [linux and x86_64] sha256: 6699f0e7293081b42428f32c9d9c983854094bd15fee5489f12c4cf4518cc380 # [linux and x86_64] folder: zig-linux-x86_64-0.10.1 # [linux and x86_64] @@ -25,7 +26,7 @@ source: folder: zig-macos-x86_64-0.10.1 # [osx] build: - number: 7 + number: 8 run_exports: - {{ pin_subpackage('vcflib', max_pin="x") }} @@ -53,6 +54,7 @@ requirements: - eigen - jsoncpp - wfa2-lib + - wget test: requires: @@ -66,11 +68,13 @@ test: - "vcfuniq test.vcf" about: - home: https://github.com/vcflib/vcflib + home: "https://github.com/vcflib/vcflib" license: MIT license_family: MIT license_file: LICENSE - summary: Command-line tools for manipulating VCF files + summary: "Command-line tools for manipulating VCF files." + dev_url: "https://github.com/vcflib/vcflib" + doc_url: "https://github.com/vcflib/vcflib/blob/v{{ version }}/README.md" extra: additional-platforms: @@ -81,3 +85,25 @@ extra: - biotools:vcflib - doi:10.1371/journal.pcbi.1009123 - usegalaxy-eu:vcfsort + - usegalaxy-eu:vcfallelicprimitives + - usegalaxy-eu:vcfbreakcreatemulti + - usegalaxy-eu:vcffilter2 + - usegalaxy-eu:vcfcheck + - usegalaxy-eu:vcfcombine + - usegalaxy-eu:vcfaddinfo + - usegalaxy-eu:vcf2tsv + - usegalaxy-eu:vcfleftalign + - usegalaxy-eu:vcfhethom + - usegalaxy-eu:vcfrandomsample + - usegalaxy-eu:vcfbedintersect + - usegalaxy-eu:vcfgenotypes + - usegalaxy-eu:vcffixup + - usegalaxy-eu:vcfgeno2haplo + - usegalaxy-eu:vcfvcfintersect + - usegalaxy-eu:vcfanno + - usegalaxy-eu:vcfannotate + - usegalaxy-eu:vcfcommonsamples + - usegalaxy-eu:vcfflatten2 + - usegalaxy-eu:vcfdistance + - usegalaxy-eu:vcfannotategenotypes + - usegalaxy-eu:vcfselectsamples diff --git a/recipes/vcflib/pkg-config.patch b/recipes/vcflib/pkg-config.patch index ae58978242cc2..3001b66884c21 100644 --- a/recipes/vcflib/pkg-config.patch +++ b/recipes/vcflib/pkg-config.patch @@ -1,18 +1,18 @@ Author: Andreas Tille modified for bioconda by Jon Puritz -Description: Add pkg-config file to simplify building of freebayes +Description: Add pkg-config file to simplify building of freebayes. Forwarded: not-needed --- a/dev/null +++ b/libvcflib/libvcflib.pc @@ -0,0 +1,12 @@ -+prefix=/usr ++prefix=${PREFIX} +exec_prefix=${prefix} +libdir=${exec_prefix}/lib -+includedir=${prefix}/include/vcflib ++includedir=${prefix}/include + +Name: libvcflib +Version: 1.0 +Requires: +Description: C++ library for parsing and manipulating VCF files +Libs: -L${libdir} -lvcflib -+Cflags: -I${includedir} ++Cflags: -I${includedir}/vcflib + From b818fe741141cd1d049de7c884e662705e16ad0c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 10 Sep 2024 02:58:36 -0400 Subject: [PATCH 1431/1589] Update irescue to 1.1.1 (#50587) * Update irescue to 1.1.1 * clean up recipe --------- Co-authored-by: mencian --- recipes/irescue/meta.yaml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/recipes/irescue/meta.yaml b/recipes/irescue/meta.yaml index 19e73eed35976..1ff27acd14332 100644 --- a/recipes/irescue/meta.yaml +++ b/recipes/irescue/meta.yaml @@ -1,5 +1,5 @@ {% set name = "irescue" %} -{% set version = "1.1.0" %} +{% set version = "1.1.1" %} package: name: {{ name|lower }} @@ -7,12 +7,14 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/irescue-{{ version }}.tar.gz - sha256: 8e1fd1cfc1fdf70d865ee534674743ed38645e8a0737fab31ef7517284130bd4 + sha256: 84c2d4a0e7322a4dc89d5c14d7e34f028cd1f56a8aacdb3d805b8da02c4c4fc5 build: noarch: python - script: {{ PYTHON }} -m pip install . -vv + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv number: 0 + entry_points: + - irescue = irescue.main:main run_exports: - {{ pin_subpackage(name, max_pin="x") }} @@ -40,8 +42,9 @@ test: about: home: https://github.com/bodegalab/irescue - summary: A tool to quantify transposable elements expression in scRNA-seq. + summary: "A tool to quantify transposable elements expression in scRNA-seq." license: MIT + license_family: MIT license_file: LICENSE dev_url: https://github.com/bodegalab/irescue doc_url: https://pypi.org/project/IRescue @@ -49,3 +52,5 @@ about: extra: recipe-maintainers: - bepoli + identifiers: + - doi:10.1101/2022.09.16.508229 From b85a82f384a55550a6929d824bcd35f6e5a9845b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 10 Sep 2024 03:41:22 -0400 Subject: [PATCH 1432/1589] Update quantms-utils to 0.0.11 (#50577) Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Co-authored-by: Yasset Perez-Riverol --- recipes/quantms-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/quantms-utils/meta.yaml b/recipes/quantms-utils/meta.yaml index a0db34e2b81b2..0c0457e61496a 100644 --- a/recipes/quantms-utils/meta.yaml +++ b/recipes/quantms-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "quantms-utils" %} -{% set version = "0.0.10" %} +{% set version = "0.0.11" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/quantms_utils-{{ version }}.tar.gz - sha256: 95e6a7e29f3053fe37071b180d4ac6f3a3da9a3f3cb1e9bcbd682fd65b8fd217 + sha256: f1205db7526f09d36606288782363b352546a100b4763c16d988d7cdb45bf26f build: entry_points: From 93f9073508a0af7b3f6c01f6c20d08bc5f65472a Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 10 Sep 2024 03:16:07 -0500 Subject: [PATCH 1433/1589] Update freebayes recipe (#50588) --- recipes/freebayes/build.sh | 28 ++++++++++++++++++++-------- recipes/freebayes/meta.yaml | 11 ++++++----- 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/recipes/freebayes/build.sh b/recipes/freebayes/build.sh index 948a35f54cc10..570178a5eed0a 100644 --- a/recipes/freebayes/build.sh +++ b/recipes/freebayes/build.sh @@ -1,20 +1,32 @@ #!/bin/bash +mkdir -p ${PREFIX}/bin + cd freebayes mkdir build -mkdir -p ${PREFIX}/bin -CXX="${CXX}" CC="${CC}" meson setup --buildtype release --prefix "${PREFIX}" \ - --strip --prefer-static -Dprefer_system_deps=true build/ +export INCLUDES="-I{PREFIX}/include" +export LIBPATH="-L${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CXXFLAGS="${CXXFLAGS} -O3 -I{PREFIX}/include" + +CXX="${CXX}" CXXFLAGS="${CXXFLAGS}" CC="${CC}" meson setup --buildtype release \ + --prefix "${PREFIX}" --strip \ + --includedir "${PREFIX}/include" \ + --libdir "${PREFIX}/lib" build/ cd build ninja -v ninja -v install -##Copy scripts over ## This will likely need to be removed with an updated build -cp -n ../scripts/*.py $PREFIX/bin -cp -n ../scripts/*.sh $PREFIX/bin -cp -n ../scripts/*.pl $PREFIX/bin +## Copy scripts over to ${PREFIX}/bin ## +chmod 0755 ../scripts/*.py +chmod 0755 ../scripts/*.sh +chmod 0755 ../scripts/*.pl +cp -nf ../scripts/*.py ${PREFIX}/bin +cp -nf ../scripts/*.sh ${PREFIX}/bin +cp -nf ../scripts/*.pl ${PREFIX}/bin -cp -n ../scripts/freebayes-parallel $PREFIX/bin +chmod 0755 ../scripts/freebayes-parallel +cp -nf ../scripts/freebayes-parallel ${PREFIX}/bin diff --git a/recipes/freebayes/meta.yaml b/recipes/freebayes/meta.yaml index a3a355b14afe0..1c79f899e618e 100644 --- a/recipes/freebayes/meta.yaml +++ b/recipes/freebayes/meta.yaml @@ -24,7 +24,7 @@ source: sha256: cc1c04729b0c8ba3647cbb7e15e2b490ce701d73773f30f5892d68c36a1dceae build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("freebayes", max_pin="x") }} @@ -49,7 +49,6 @@ requirements: - samtools - tabixpp - vcflib - - zlib - wfa2-lib test: @@ -58,12 +57,13 @@ test: - freebayes-parallel about: - home: https://github.com/freebayes/freebayes + home: "https://github.com/freebayes/freebayes" license: MIT license_file: freebayes/LICENSE license_family: MIT - summary: Bayesian haplotype-based polymorphism discovery and genotyping - dev_url: https://github.com/freebayes/freebayes + summary: "Bayesian haplotype-based polymorphism discovery and genotyping." + dev_url: "https://github.com/freebayes/freebayes" + doc_url: "https://github.com/freebayes/freebayes/blob/v{{ version }}/README.md" extra: additional-platforms: @@ -71,5 +71,6 @@ extra: identifiers: - biotools:freebayes - usegalaxy-eu:freebayes + - doi:10.48550/arXiv.1207.3907 recipe-maintainers: - jpuritz From f761e01dac5a4f867c9a729ec61f4283a77add55 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 10 Sep 2024 03:55:18 -0500 Subject: [PATCH 1434/1589] Update ncbi-vdb recipe (#50589) * Update ncbi-vdb recipe * clean up recipe * clean up recipe --- recipes/ncbi-vdb/build.sh | 19 ++++++++++++------- recipes/ncbi-vdb/meta.yaml | 18 +++++++++--------- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/recipes/ncbi-vdb/build.sh b/recipes/ncbi-vdb/build.sh index 9b73fbb271b0e..f1b45b55eedd6 100644 --- a/recipes/ncbi-vdb/build.sh +++ b/recipes/ncbi-vdb/build.sh @@ -22,20 +22,25 @@ end-of-patch } | patch -p0 -i- -# Execute Make commands from a separate subdirectory. Else: -# ERROR: In source builds are not allowed -#BUILD_DIR="${SRC_DIR}/build_vdb" -#mkdir -p "${BUILD_DIR}" -#cd "${BUILD_DIR}" +if [[ "$(uname)" == "Darwin" ]]; then + export CONFIG_ARGS="-DCMAKE_FIND_FRAMEWORK=NEVER -DCMAKE_FIND_APPBUNDLE=NEVER" +else + export CONFIG_ARGS="" +fi +export INCLUDES="-I{PREFIX}/include" +export LIBPATH="-L${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include -O3 -D_FILE_OFFSET_BITS=64 -DH5_USE_110_API" cmake -S ncbi-vdb/ -B build_vdb \ -DNGS_INCDIR="${PREFIX}" \ -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_SHARED_LIBS=ON \ + -DCMAKE_INSTALL_LIBDIR="${PREFIX}/lib" \ -DCMAKE_CXX_COMPILER="${CXX}" \ -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ - -DCMAKE_LIBRARY_PATH="${PREFIX}/lib" + "${CONFIG_ARGS}" -cmake --build build_vdb/ --target install -j 4 -v +cmake --build build_vdb/ --target install -j "${CPU_COUNT}" -v diff --git a/recipes/ncbi-vdb/meta.yaml b/recipes/ncbi-vdb/meta.yaml index 3afafe6901532..68b395345f2bf 100644 --- a/recipes/ncbi-vdb/meta.yaml +++ b/recipes/ncbi-vdb/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('ncbi-vdb', max_pin='x') }} @@ -26,19 +26,19 @@ requirements: - make about: - home: https://github.com/ncbi/ncbi-vdb + home: "https://github.com/ncbi/ncbi-vdb" license: Public Domain - summary: SRA tools database engine + summary: "SRA tools database engine." description: | - VDB is the database engine that all SRA tools use. It is a columnar database - system with a number of unique features. All SRA objects are stored in VDB. - dev_url: https://github.com/ncbi/ncbi-vdb - doc_url: https://github.com/ncbi/ncbi-vdb/wiki + "VDB is the database engine that all SRA tools use. It is a columnar database + system with a number of unique features. All SRA objects are stored in VDB." + dev_url: "https://github.com/ncbi/ncbi-vdb" + doc_url: "https://github.com/ncbi/ncbi-vdb/wiki" test: commands: - - test -e ${PREFIX}/lib64/libncbi-vdb.so # [not osx] - - test -e ${PREFIX}/lib64/libncbi-vdb.dylib # [osx] + - test -e ${PREFIX}/lib/libncbi-vdb.so # [not osx] + - test -e ${PREFIX}/lib/libncbi-vdb.dylib # [osx] extra: additional-platforms: From c93b7c0e6ce3b2b30d9450edbb2ca8839e822e46 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 10 Sep 2024 04:10:58 -0500 Subject: [PATCH 1435/1589] Update vcflib to 1.0.10 (#50479) * vcflib: add arm64 build * edit build.sh * clean up recipe * clean up recipe * clean up recipe * clean up recipe * clean up recipe * clean up recipe --- recipes/vcflib/build.sh | 3 +-- recipes/vcflib/meta.yaml | 19 ++++++++++++------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/recipes/vcflib/build.sh b/recipes/vcflib/build.sh index ce8a7d2ee0f45..b668cffcb424f 100644 --- a/recipes/vcflib/build.sh +++ b/recipes/vcflib/build.sh @@ -31,7 +31,7 @@ if [[ `uname` == "Darwin" ]]; then sed -i.bak 's/LDFLAGS=-Wl,-s/LDFLAGS=/' contrib/smithwaterman/Makefile sed -i.bak 's/-std=c++0x/-std=c++14 -stdlib=libc++/g' contrib/intervaltree/Makefile export LDFLAGS="${LDFLAGS} -Wl,-rpath,${PREFIX}/lib" - export CXXFLAGS="${CXXFLAGS} -D_LIBCPP_ENABLE_CXX17_REMOVED_FEATURES" + #export CXXFLAGS="${CXXFLAGS} -D_LIBCPP_ENABLE_CXX17_REMOVED_FEATURES" export CONFIG_ARGS="-DCMAKE_FIND_FRAMEWORK=NEVER -DCMAKE_FIND_APPBUNDLE=NEVER" else export CONFIG_ARGS="" @@ -47,7 +47,6 @@ cmake -S . -B build \ -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ -DCMAKE_CXX_COMPILER="${CXX}" \ -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ - -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON \ "${CONFIG_ARGS}" cmake --build build/ --target install -j "${CPU_COUNT}" -v diff --git a/recipes/vcflib/meta.yaml b/recipes/vcflib/meta.yaml index 3daa1e7b3cfa4..031bd45d31f92 100644 --- a/recipes/vcflib/meta.yaml +++ b/recipes/vcflib/meta.yaml @@ -1,13 +1,14 @@ {% set name = "vcflib" %} -{% set version = "1.0.9" %} -{% set sha256 = "493204cb8e0515defa1383d56280d00b8efbed55312c6055162f8cb3a4ffb210" %} +{% set version = "1.0.10" %} +{% set sha256 = "unused" %} package: name: {{ name }} version: {{ version }} source: -- url: https://github.com/vcflib/vcflib/releases/download/v{{ version }}/vcflib-{{ version }}-src.tar.gz +- git_url: https://github.com/vcflib/vcflib.git + git_rev: v{{ version }} sha256: {{ sha256 }} patches: - pkg-config.patch @@ -21,12 +22,12 @@ source: - url: https://ziglang.org/download/0.10.1/zig-linux-aarch64-0.10.1.tar.xz # [linux and aarch64] sha256: db0761664f5f22aa5bbd7442a1617dd696c076d5717ddefcc9d8b95278f71f5d # [linux and aarch64] folder: zig-linux-aarch64-0.10.1 # [linux and aarch64] -- url: https://ziglang.org/download/0.10.1/zig-macos-x86_64-0.10.1.tar.xz # [osx] - sha256: 02483550b89d2a3070c2ed003357fd6e6a3059707b8ee3fbc0c67f83ca898437 # [osx] - folder: zig-macos-x86_64-0.10.1 # [osx] +- url: https://ziglang.org/download/0.10.1/zig-macos-x86_64-0.10.1.tar.xz # [osx and x86_64] + sha256: 02483550b89d2a3070c2ed003357fd6e6a3059707b8ee3fbc0c67f83ca898437 # [osx and x86_64] + folder: zig-macos-x86_64-0.10.1 # [osx and x86_64] build: - number: 8 + number: 0 run_exports: - {{ pin_subpackage('vcflib', max_pin="x") }} @@ -46,6 +47,7 @@ requirements: - htslib - tabixpp - wfa2-lib + - pandoc run: - python >=3 - perl @@ -77,6 +79,9 @@ about: doc_url: "https://github.com/vcflib/vcflib/blob/v{{ version }}/README.md" extra: + skip-lints: + # uses submodules + - uses_vcs_url additional-platforms: - linux-aarch64 recipe-maintainers: From 27e71336fed3b4930e44d8297f97139285d4fabd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 10 Sep 2024 06:05:41 -0400 Subject: [PATCH 1436/1589] Update fastlin to 0.3.0 (#50590) * Update fastlin to 0.3.0 * Update fastlin to 0.3.0 --- recipes/fastlin/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/fastlin/meta.yaml b/recipes/fastlin/meta.yaml index 48e37b8638cb2..7932d1fadd683 100644 --- a/recipes/fastlin/meta.yaml +++ b/recipes/fastlin/meta.yaml @@ -1,5 +1,5 @@ {% set name = "fastlin" %} -{% set version = "0.2.3" %} +{% set version = "0.3.0" %} package: name: {{ name|lower}} @@ -7,7 +7,7 @@ package: source: url: https://github.com/rderelle/fastlin/archive/{{ version }}.tar.gz - sha256: 07c427740b520756d25e435e784e3b3d1cca0d08bcce07c5e213a35c4694ccaf + sha256: 3d73f83465bef74003e2d8a853a2902a33e289d1acbe1d6a1f4b93ead3ef546e build: number: 0 From 12de3fa7327682586466845d3ac234fa63444c0a Mon Sep 17 00:00:00 2001 From: Cormac Kinsella <27350062+CormacKinsella@users.noreply.github.com> Date: Tue, 10 Sep 2024 12:13:32 +0200 Subject: [PATCH 1437/1589] Update vg (#50593) * update vg to v1.59.0 * build number --- recipes/vg/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/vg/meta.yaml b/recipes/vg/meta.yaml index d901ef21a8cb6..9ec0557e1bc67 100644 --- a/recipes/vg/meta.yaml +++ b/recipes/vg/meta.yaml @@ -1,5 +1,5 @@ {% set name = "vg" %} -{% set version = "1.56.0" %} +{% set version = "1.59.0" %} package: name: {{ name }} @@ -7,12 +7,12 @@ package: source: - url: https://github.com/vgteam/vg/releases/download/v{{ version }}/vg # [linux and x86_64] - sha256: 8b82e300a386d6bf34d0d1025a7dc806b2b95bb57bd063226fc3984e920710e4 # [linux and x86_64] + sha256: a2270237c8541867ac345ad924c1641881bc9fd60be157a6d3d29fa910aacfc2 # [linux and x86_64] - url: https://github.com/vgteam/vg/releases/download/v{{ version }}/vg-arm64 # [linux and aarch64] - sha256: 35693928a3aa049809fd906088f54594940e2de20e8b396cffe2b6b6b73a9e7a # [linux and aarch64] + sha256: e0df4e81e0c7b3ac1c7f3fc7a7bc8421416256bf2bc4a1ca2b87feebaf40d4d0 # [linux and aarch64] build: - number: 1 + number: 0 skip: true # [osx] script: - mkdir -p ${PREFIX}/bin From bc03051f32f37d6ef5a08030fe667b5abb9274dc Mon Sep 17 00:00:00 2001 From: Romain Derelle Date: Tue, 10 Sep 2024 11:14:02 +0100 Subject: [PATCH 1438/1589] Update meta.yaml (#50591) From 24dd8bc20dc1b5be132340ba9ac334c7ece60cab Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 10 Sep 2024 06:24:03 -0400 Subject: [PATCH 1439/1589] Update mtnucratio to 0.7.1 (#50592) * Update mtnucratio to 0.7.1 * Update meta.yaml * Update mtnucratio.py * Update LICENSE * Update LICENSE * Update LICENSE * Update LICENSE * Update LICENSE * Update LICENSE * Create LICENSE --------- Co-authored-by: Alexander Peltzer --- recipes/mtnucratio/LICENSE | 674 +++++++++++++++++++++++++++++++ recipes/mtnucratio/meta.yaml | 9 +- recipes/mtnucratio/mtnucratio.py | 2 +- 3 files changed, 681 insertions(+), 4 deletions(-) create mode 100644 recipes/mtnucratio/LICENSE diff --git a/recipes/mtnucratio/LICENSE b/recipes/mtnucratio/LICENSE new file mode 100644 index 0000000000000..9cecc1d4669ee --- /dev/null +++ b/recipes/mtnucratio/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + {one line to give the program's name and a brief idea of what it does.} + Copyright (C) {year} {name of author} + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + {project} Copyright (C) {year} {fullname} + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/recipes/mtnucratio/meta.yaml b/recipes/mtnucratio/meta.yaml index 22ffc4a354171..316b6a40e19a0 100644 --- a/recipes/mtnucratio/meta.yaml +++ b/recipes/mtnucratio/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.7" %} +{% set version = "0.7.1" %} package: name: mtnucratio @@ -6,11 +6,13 @@ package: source: url: https://github.com/apeltzer/MTNucRatioCalculator/releases/download/{{ version }}/MTNucRatioCalculator-{{ version }}.jar - sha256: 6e1e648f0de63448ad3b3015417fce4046da15a07338e4f10433e373acdc9bd7 + sha256: 4ba78973ba16a53f2e5197fdd9836c672cf73a6a77238dfa17566d55ff75d80d build: noarch: generic - number: 2 + number: 0 + run_exports: + - {{ pin_subpackage('mtnucratio', max_pin="x") }} requirements: run: @@ -24,4 +26,5 @@ test: about: home: https://github.com/apeltzer/MTNucRatioCalculator license: GPLv3 + license_file: LICENSE summary: "A small tool to determine MT to Nuclear ratios for NGS data." diff --git a/recipes/mtnucratio/mtnucratio.py b/recipes/mtnucratio/mtnucratio.py index 3bd1029be10bc..bed939c5f2653 100755 --- a/recipes/mtnucratio/mtnucratio.py +++ b/recipes/mtnucratio/mtnucratio.py @@ -11,7 +11,7 @@ import sys import subprocess from os import access, getenv, X_OK -jar_file = 'MTNucRatioCalculator-0.7.jar' +jar_file = 'MTNucRatioCalculator-0.7.1.jar' default_jvm_mem_opts = ['-Xms512m', '-Xmx1g'] From 3064eb89b9e6b859beb535b25f9b0df6b7032403 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 10 Sep 2024 05:29:47 -0500 Subject: [PATCH 1440/1589] Update freebayes recipe (#50595) --- recipes/freebayes/build.sh | 1 + recipes/freebayes/meta.yaml | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/freebayes/build.sh b/recipes/freebayes/build.sh index 570178a5eed0a..8032f54a79517 100644 --- a/recipes/freebayes/build.sh +++ b/recipes/freebayes/build.sh @@ -28,5 +28,6 @@ cp -nf ../scripts/*.py ${PREFIX}/bin cp -nf ../scripts/*.sh ${PREFIX}/bin cp -nf ../scripts/*.pl ${PREFIX}/bin +chmod 0755 ${PREFIX}/bin/freebayes chmod 0755 ../scripts/freebayes-parallel cp -nf ../scripts/freebayes-parallel ${PREFIX}/bin diff --git a/recipes/freebayes/meta.yaml b/recipes/freebayes/meta.yaml index 1c79f899e618e..5381e2fb554f3 100644 --- a/recipes/freebayes/meta.yaml +++ b/recipes/freebayes/meta.yaml @@ -24,7 +24,7 @@ source: sha256: cc1c04729b0c8ba3647cbb7e15e2b490ce701d73773f30f5892d68c36a1dceae build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage("freebayes", max_pin="x") }} @@ -59,7 +59,7 @@ test: about: home: "https://github.com/freebayes/freebayes" license: MIT - license_file: freebayes/LICENSE + license_file: "freebayes/LICENSE" license_family: MIT summary: "Bayesian haplotype-based polymorphism discovery and genotyping." dev_url: "https://github.com/freebayes/freebayes" From 21244fe3c0b4578cafff49eef75b53747745a51b Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 10 Sep 2024 05:42:59 -0500 Subject: [PATCH 1441/1589] Update sra-tools recipe (#50594) * Update sra-tools recipe * Update sra-tools recipe --- recipes/sra-tools/build.sh | 38 ++++++++++++++++++++----------------- recipes/sra-tools/meta.yaml | 10 ++++++---- 2 files changed, 27 insertions(+), 21 deletions(-) diff --git a/recipes/sra-tools/build.sh b/recipes/sra-tools/build.sh index 5b55bd0ccec80..272542a5bdabe 100755 --- a/recipes/sra-tools/build.sh +++ b/recipes/sra-tools/build.sh @@ -4,12 +4,6 @@ export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 -DH5_USE_110_API -D_FILE_OFFSET_BITS=64 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -O3 -I${PREFIX}/include" -echo "compiling sra-tools" -if [[ ${OSTYPE} == "darwin"* ]]; then - export CFLAGS="${CFLAGS} -DTARGET_OS_OSX" - export CXXFLAGS="${CXXFLAGS} -DTARGET_OS_OSX" -fi - mkdir -p obj/ngs/ngs-java/javadoc/ngs-doc # prevent error on OSX @@ -18,22 +12,32 @@ mkdir -p obj/ngs/ngs-java/javadoc/ngs-doc # prevent error on OSX export SRA_BUILD_DIR=${SRC_DIR}/build_sratools mkdir -p ${SRA_BUILD_DIR} +echo "Compiling sra-tools" if [[ "$(uname)" == "Darwin" ]]; then - export VDB_INC="${SRC_DIR}/ncbi-vdb/interfaces" + export VDB_INC="${SRC_DIR}/ncbi-vdb/interfaces" + export CONFIG_ARGS="-DCMAKE_FIND_FRAMEWORK=NEVER -DCMAKE_FIND_APPBUNDLE=NEVER" + export CFLAGS="${CFLAGS} -DTARGET_OS_OSX" + export CXXFLAGS="${CXXFLAGS} -DTARGET_OS_OSX" else - export VDB_INC="${PREFIX}/include" + export VDB_INC="${PREFIX}/include" + export CONFIG_ARGS="" fi cmake -S sra-tools/ -B build_sratools/ \ - -DVDB_BINDIR="${PREFIX}" \ - -DVDB_LIBDIR="${PREFIX}/lib64" \ - -DVDB_INCDIR="${VDB_INC}" \ - -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_CXX_COMPILER="${CXX}" \ - -DCMAKE_CXX_FLAGS="${CXXFLAGS}" - -cmake --build build_sratools/ --target install -j ${CPU_COUNT} -v + -DVDB_BINDIR="${PREFIX}" \ + -DVDB_LIBDIR="${PREFIX}/lib" \ + -DVDB_INCDIR="${VDB_INC}" \ + -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_SHARED_LIBS=ON \ + -DCMAKE_INSTALL_LIBDIR="${PREFIX}/lib" \ + -DCMAKE_C_COMPILER="${CC}" \ + -DCMAKE_C_FLAGS="${CFLAGS}" \ + -DCMAKE_CXX_COMPILER="${CXX}" \ + -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ + "${CONFIG_ARGS}" + +cmake --build build_sratools/ --target install -j "${CPU_COUNT}" -v # Strip package version from binary names diff --git a/recipes/sra-tools/meta.yaml b/recipes/sra-tools/meta.yaml index b05af8f4b98c5..00633aae7b54e 100644 --- a/recipes/sra-tools/meta.yaml +++ b/recipes/sra-tools/meta.yaml @@ -15,7 +15,7 @@ source: folder: ncbi-vdb # [osx] build: - number: 0 + number: 2 run_exports: - {{ pin_subpackage(name, max_pin='x') }} @@ -55,14 +55,16 @@ test: about: home: "https://github.com/ncbi/sra-tools" - license: Public Domain + license: "Public Domain" summary: "The SRA Toolkit and SDK from NCBI." description: | - The SRA Toolkit and SDK from NCBI is a collection of tools and libraries - for using data in the INSDC Sequence Read Archives. + "The SRA Toolkit and SDK from NCBI is a collection of tools and libraries + for using data in the INSDC Sequence Read Archives." dev_url: "https://github.com/ncbi/sra-tools" doc_url: "https://github.com/ncbi/sra-tools/wiki" extra: notes: 'After installation, you should run the configuration tool: ./vdb-config -i. This tool will setup your download/cache area for downloaded files and references.' + identifiers: + - biotools:sra-tools From 660f3a24b052318aa9f94ea751db1eafa0dd1ee9 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 10 Sep 2024 06:56:40 -0500 Subject: [PATCH 1442/1589] Update wfa2-lib recipe (#50597) --- recipes/wfa2-lib/build.sh | 19 +++++++++++++++---- recipes/wfa2-lib/meta.yaml | 6 +++--- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/recipes/wfa2-lib/build.sh b/recipes/wfa2-lib/build.sh index ae970ee6f6ad4..70bd4b1b6e752 100644 --- a/recipes/wfa2-lib/build.sh +++ b/recipes/wfa2-lib/build.sh @@ -1,9 +1,11 @@ #!/bin/bash set -ex -export C_INCLUDE_PATH="${PREFIX}/include" +export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 -L${PREFIX}/lib" +export CXXFLAGS="${CXXFLAGS} -O3 -I${PREFIX}/include" case $(uname -m) in aarch64 | arm64) @@ -14,13 +16,22 @@ case $(uname -m) in ;; esac +if [[ "$(uname)" == "Darwin" ]]; then + export CONFIG_ARGS="-DCMAKE_FIND_FRAMEWORK=NEVER -DCMAKE_FIND_APPBUNDLE=NEVER" +else + export CONFIG_ARGS="" +fi + cmake -S . -B build \ -DCMAKE_CXX_COMPILER="${CXX}" \ -DCMAKE_C_COMPILER="${CC}" \ - -DCMAKE_CXX_FLAGS="${CXXFLAGS} -O3 -D_FILE_OFFSET_BITS=64 -I${PREFIX}/include ${LDFLAGS}" \ + -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ + -DCMAKE_C_FLAGS="${CFLAGS}" \ -DEXTRA_FLAGS="${EXTRA_FLAGS}" \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ - -DOPENMP=TRUE + -DBUILD_SHARED_LIBS=ON \ + -DCMAKE_INSTALL_LIBDIR="${PREFIX}/lib" \ + -DOPENMP=TRUE "${CONFIG_ARGS}" -cmake --build build/ --target install -j ${CPU_COUNT} -v +cmake --build build/ --target install -j "${CPU_COUNT}" -v diff --git a/recipes/wfa2-lib/meta.yaml b/recipes/wfa2-lib/meta.yaml index 1ae790fdcb1e4..3be8971631094 100644 --- a/recipes/wfa2-lib/meta.yaml +++ b/recipes/wfa2-lib/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage(name, max_pin="x") }} @@ -20,8 +20,8 @@ requirements: - {{ compiler('cxx') }} - make - cmake - host: - pkg-config + host: - rhash # [osx] - libgomp # [linux] - llvm-openmp # [osx] @@ -36,7 +36,7 @@ about: license: MIT license_family: MIT license_file: LICENSE - summary: "Wavefront alignment algorithm library v2" + summary: "Wavefront alignment algorithm library v2." dev_url: "https://github.com/smarco/WFA2-lib" doc_url: "https://github.com/smarco/WFA2-lib/blob/v{{ version }}/README.md" From d9cc373e1a5318a3d942facf4604bddca9b5961e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 10 Sep 2024 08:19:26 -0400 Subject: [PATCH 1443/1589] Update libcifpp to 7.0.5 (#50596) * Update libcifpp to 7.0.5 * clean up recipe * clean up recipe * clean up recipe * revert to skipping osx * clean up recipe * clean up recipe --------- Co-authored-by: mencian --- recipes/libcifpp/build.sh | 17 ++++++++++++----- recipes/libcifpp/meta.yaml | 17 +++++++++-------- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/recipes/libcifpp/build.sh b/recipes/libcifpp/build.sh index fd0933e91291d..62f983f67c85c 100644 --- a/recipes/libcifpp/build.sh +++ b/recipes/libcifpp/build.sh @@ -1,8 +1,15 @@ #!/bin/bash -mkdir build -cd build +export INCLUDES="-I{PREFIX}/include" +export LIBPATH="-L${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CXXFLAGS="${CXXFLAGS} -O3 -I${PREFIX}/include" -cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DCIFPP_DOWNLOAD_CCD=OFF -DCMAKE_INSTALL_PREFIX=${PREFIX} -DCIFPP_INSTALL_UPDATE_SCRIPT=OFF .. -cmake --build . --config Release -cmake --install . --prefix ${PREFIX} +cmake -S . -B build -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ + -DCMAKE_CXX_COMPILER="${CXX}" \ + -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ + -DBUILD_TESTING=OFF -DCIFPP_DOWNLOAD_CCD=OFF \ + -DCIFPP_INSTALL_UPDATE_SCRIPT=OFF + +cmake --build build/ --target install -j "${CPU_COUNT}" -v diff --git a/recipes/libcifpp/meta.yaml b/recipes/libcifpp/meta.yaml index 7b8ec21e655f2..25da881803280 100644 --- a/recipes/libcifpp/meta.yaml +++ b/recipes/libcifpp/meta.yaml @@ -1,6 +1,6 @@ {% set name = "libcifpp" %} -{% set version = "7.0.4" %} -{% set sha256 = "324eda2f6874df32671cd984c7249bfae025ca3fe1bfd875cbef35b046408b88" %} +{% set version = "7.0.5" %} +{% set sha256 = "5de29b28e422c27464f346dc2dd238e514b06dd588590af7ec4139f03817f5a0" %} package: name: {{ name|lower }} @@ -11,8 +11,8 @@ source: sha256: {{ sha256 }} build: + number: 0 skip: True # [osx] - number: 1 run_exports: - {{ pin_subpackage(name|lower, max_pin="x") }} @@ -26,7 +26,6 @@ requirements: - zlib - boost-cpp run: - - zlib - boost-cpp test: @@ -34,14 +33,16 @@ test: - test -e $PREFIX/lib/libcifpp.a about: - home: https://github.com/PDB-REDO/libcifpp + home: "https://github.com/PDB-REDO/libcifpp" license: BSD-2-Clause license_file: LICENSE license_family: BSD - summary: Library containing code to manipulate mmCIF and PDB files - doc_url: https://pdb-redo.github.io/libcifpp/ - dev_url: https://github.com/PDB-REDO/libcifpp + summary: "Library containing code to manipulate mmCIF and PDB files." + doc_url: "https://pdb-redo.github.io/libcifpp" + dev_url: "https://github.com/PDB-REDO/libcifpp" extra: recipe-maintainers: - multimeric + additional-platforms: + - linux-aarch64 From 8f94e79c498be22d921910dd1388a6cf6d024f7a Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 10 Sep 2024 08:07:21 -0500 Subject: [PATCH 1444/1589] Add recipe for pod5 v0.3.15 (#50598) * clean up recipe * clean up recipe --- recipes/pod5/LICENSE.md | 362 ++++++++++++++++++++++++++++++++++++++++ recipes/pod5/meta.yaml | 73 ++++++++ 2 files changed, 435 insertions(+) create mode 100644 recipes/pod5/LICENSE.md create mode 100644 recipes/pod5/meta.yaml diff --git a/recipes/pod5/LICENSE.md b/recipes/pod5/LICENSE.md new file mode 100644 index 0000000000000..9f3e082df8e44 --- /dev/null +++ b/recipes/pod5/LICENSE.md @@ -0,0 +1,362 @@ +This Source Code Form is subject to the terms of the Mozilla Public +License, v. 2.0. If a copy of the MPL was not distributed with this +file, You can obtain one at https://mozilla.org/MPL/2.0/. + +©2021 Oxford Nanopore Technologies PLC. + + +Mozilla Public License Version 2.0 +================================== + +### 1. Definitions + +**1.1. “Contributor”** + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +**1.2. “Contributor Version”** + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +**1.3. “Contribution”** + means Covered Software of a particular Contributor. + +**1.4. “Covered Software”** + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +**1.5. “Incompatible With Secondary Licenses”** + means + +* **(a)** that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or +* **(b)** that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +**1.6. “Executable Form”** + means any form of the work other than Source Code Form. + +**1.7. “Larger Work”** + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +**1.8. “License”** + means this document. + +**1.9. “Licensable”** + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +**1.10. “Modifications”** + means any of the following: + +* **(a)** any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or +* **(b)** any new file in Source Code Form that contains any Covered + Software. + +**1.11. “Patent Claims” of a Contributor** + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +**1.12. “Secondary License”** + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +**1.13. “Source Code Form”** + means the form of the work preferred for making modifications. + +**1.14. “You” (or “Your”)** + means an individual or a legal entity exercising rights under this + License. For legal entities, “You” includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, “control” means **(a)** the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or **(b)** ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + + +### 2. License Grants and Conditions + +#### 2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +* **(a)** under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and +* **(b)** under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +#### 2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +#### 2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +* **(a)** for any code that a Contributor has removed from Covered Software; + or +* **(b)** for infringements caused by: **(i)** Your and any other third party's + modifications of Covered Software, or **(ii)** the combination of its + Contributions with other software (except as part of its Contributor + Version); or +* **(c)** under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +#### 2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +#### 2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +#### 2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +#### 2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + + +### 3. Responsibilities + +#### 3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +#### 3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +* **(a)** such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +* **(b)** You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +#### 3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +#### 3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +#### 3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + + +### 4. Inability to Comply Due to Statute or Regulation + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: **(a)** comply with +the terms of this License to the maximum extent possible; and **(b)** +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + + +### 5. Termination + +**5.1.** The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated **(a)** provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and **(b)** on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +**5.2.** If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +**5.3.** In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + + +### 6. Disclaimer of Warranty + +> Covered Software is provided under this License on an “as is” +> basis, without warranty of any kind, either expressed, implied, or +> statutory, including, without limitation, warranties that the +> Covered Software is free of defects, merchantable, fit for a +> particular purpose or non-infringing. The entire risk as to the +> quality and performance of the Covered Software is with You. +> Should any Covered Software prove defective in any respect, You +> (not any Contributor) assume the cost of any necessary servicing, +> repair, or correction. This disclaimer of warranty constitutes an +> essential part of this License. No use of any Covered Software is +> authorized under this License except under this disclaimer. + +### 7. Limitation of Liability + +> Under no circumstances and under no legal theory, whether tort +> (including negligence), contract, or otherwise, shall any +> Contributor, or anyone who distributes Covered Software as +> permitted above, be liable to You for any direct, indirect, +> special, incidental, or consequential damages of any character +> including, without limitation, damages for lost profits, loss of +> goodwill, work stoppage, computer failure or malfunction, or any +> and all other commercial damages or losses, even if such party +> shall have been informed of the possibility of such damages. This +> limitation of liability shall not apply to liability for death or +> personal injury resulting from such party's negligence to the +> extent applicable law prohibits such limitation. Some +> jurisdictions do not allow the exclusion or limitation of +> incidental or consequential damages, so this exclusion and +> limitation may not apply to You. + + +### 8. Litigation + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + + +### 9. Miscellaneous + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + + +### 10. Versions of the License + +#### 10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +#### 10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +#### 10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +#### 10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +## Exhibit A - Source Code Form License Notice + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at https://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +## Exhibit B - “Incompatible With Secondary Licenses” Notice + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. diff --git a/recipes/pod5/meta.yaml b/recipes/pod5/meta.yaml new file mode 100644 index 0000000000000..11c50c7d4c37c --- /dev/null +++ b/recipes/pod5/meta.yaml @@ -0,0 +1,73 @@ +{% set name = "pod5" %} +{% set version = "0.3.15" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/nanoporetech/pod5-file-format/releases/download/{{ version }}/{{ name }}-{{ version }}.tar.gz + sha256: 85e3196bfc375b7d6eb36787a312af5276b19829ceded551b55e9e193939e8f4 + +build: + number: 0 + noarch: python + entry_points: + - pod5 = pod5.tools.main:main + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + run_exports: + - {{ pin_subpackage('pod5', max_pin="x.x") }} + +requirements: + host: + - python >=3.8 + - pip + run: + - python >=3.8 + - lib-pod5 =={{ version }} + - iso8601 + - importlib-metadata # [py < 38] + - more-itertools + - numpy >=1.21.0 + - typing-extensions # [py < 310] + - pyarrow >=16.1.0,<16.2.dev0 # [not osx or py < 312] + - pytz + - packaging + - polars >=0.19,<1.dev0 + - h5py >=3.11.0,<3.12.dev0 # [py > 38] + #- vbz_h5py_plugin + - tqdm + +test: + imports: + - pod5 + commands: + - pod5 --help + +about: + summary: "Oxford Nanopore Technologies Pod5 File Format Python API and Tools." + license: "MPL-2.0" + license_family: OTHER + license_file: "LICENSE.md" + home: "https://github.com/nanoporetech/pod5-file-format" + dev_url: "https://github.com/nanoporetech/pod5-file-format" + doc_url: "https://pod5-file-format.readthedocs.io/en/latest" + description: + + POD5 File Format + ---------------- + + POD5 is a file format for storing nanopore dna data in an easily accessible way. + The format is able to be written in a streaming manner which allows a sequencing instrument to directly write the format. + + Data in POD5 is stored using Apache Arrow, allowing users to consume data in many languages using standard tools. + + What does this project contain + ------------------------------ + + This project contains a core library for reading and writing POD5 data, and a toolkit for accessing this data in other languages. + + Documentation + ------------- + + Full documentation is found at https://pod5-file-format.readthedocs.io From cfb23ed264db24f69f9fea2da879dc81e8d941c1 Mon Sep 17 00:00:00 2001 From: Amine Ghozlane Date: Tue, 10 Sep 2024 15:11:07 +0200 Subject: [PATCH 1445/1589] Update Meteor recipe for 2.0.15 (last revision) (#50357) * Fix version for bcftools * bump build number * Update meteor recipe * Set up the 1.3.6 as the minimum for freebayes We had segfaults with lower version and large data * bump build number --------- Co-authored-by: mencian --- recipes/meteor/meta.yaml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/recipes/meteor/meta.yaml b/recipes/meteor/meta.yaml index fbc183ab78ca8..d7ce82b6864ed 100644 --- a/recipes/meteor/meta.yaml +++ b/recipes/meteor/meta.yaml @@ -12,7 +12,7 @@ source: build: noarch: python - number: 1 + number: 2 script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv entry_points: - meteor = meteor.meteor:main @@ -33,10 +33,9 @@ requirements: - ete3 - packaging - cogent3 + - py-bgzip - biom-format - - bcftools >=1.19 - - raxml-ng >=1.0.1 - - bedtools >=2.18.0 + - freebayes >=1.3.6 test: commands: From 8d5d5bfbe521b74b1380875a0a57c7bc3acfad8a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 10 Sep 2024 09:31:42 -0400 Subject: [PATCH 1446/1589] Update xengsort to 2.0.8 (#50599) --- recipes/xengsort/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/xengsort/meta.yaml b/recipes/xengsort/meta.yaml index 46020f1f22b8d..81ad38b3bace4 100644 --- a/recipes/xengsort/meta.yaml +++ b/recipes/xengsort/meta.yaml @@ -1,5 +1,5 @@ {% set name = "xengsort" %} -{% set version = "2.0.7" %} +{% set version = "2.0.8" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 89b590597082ea945e496a5cbbf98df1055378bc09f971011370a365a06465d6 + sha256: 22ca92e0548effb263f843a2233381f4a6d3073c2931ee0ec0cdbbddb625cf17 build: number: 0 From 97e890c2eb09cba6fa7adef04401ac52d07ec0c7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 10 Sep 2024 09:34:28 -0400 Subject: [PATCH 1447/1589] Update shortstack to 4.1.0 (#50600) --- recipes/shortstack/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/shortstack/meta.yaml b/recipes/shortstack/meta.yaml index e25b31f29308a..f473cd67cc6e1 100644 --- a/recipes/shortstack/meta.yaml +++ b/recipes/shortstack/meta.yaml @@ -1,6 +1,6 @@ {% set name = "ShortStack" %} -{% set version = "4.0.4" %} -{% set sha256 = "62bd8424c95bacb85350fd9a23c9a6b446f6bee86770d08803b7fad0bb512ac2" %} +{% set version = "4.1.0" %} +{% set sha256 = "f138672d1f564cdd9dffe384bc84ca01bbd67b8e76a9d9f030b47a0e478f3fe1" %} package: name: {{ name|lower }} @@ -12,7 +12,7 @@ source: build: noarch: generic - number: 1 + number: 0 run_exports: - {{ pin_subpackage('shortstack', max_pin="x") }} From 3126c591b075e4b2dfd82a80212d5188a3d9009b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 10 Sep 2024 09:44:15 -0400 Subject: [PATCH 1448/1589] Update meteor to 2.0.16 (#50358) * Update meteor to 2.0.15 * Update meteor to 2.0.16 --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/meteor/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/meteor/meta.yaml b/recipes/meteor/meta.yaml index d7ce82b6864ed..d69075ed31f23 100644 --- a/recipes/meteor/meta.yaml +++ b/recipes/meteor/meta.yaml @@ -1,6 +1,6 @@ {% set name = "meteor" %} -{% set version = "2.0.14" %} -{% set sha256 = "0f70351c94b5a2290fb5bfe7bbb671771c607d704565ce73a2a2a0b69beb1e23" %} +{% set version = "2.0.16" %} +{% set sha256 = "ac059e87ac6b66eb15ac9e5826fdbcd1d3b4726736ae02f46508236080d202b0" %} package: name: {{ name }} @@ -12,7 +12,7 @@ source: build: noarch: python - number: 2 + number: 0 script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv entry_points: - meteor = meteor.meteor:main From 3735382abf48dc160b0d823f63864ba88aa92817 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 10 Sep 2024 10:39:43 -0400 Subject: [PATCH 1449/1589] Update pbstarphase to 0.14.2 (#50601) --- recipes/pbstarphase/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pbstarphase/meta.yaml b/recipes/pbstarphase/meta.yaml index 20e9abaa3900a..8d3f1cf875a11 100644 --- a/recipes/pbstarphase/meta.yaml +++ b/recipes/pbstarphase/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pbstarphase" %} -{% set version = "0.14.1" %} -{% set sha256 = "d49a9a20c40edac7e35cbd9d87beabb78166ea08af8538eb3d3492a03d2d5425" %} +{% set version = "0.14.2" %} +{% set sha256 = "c8694b47f164db08074cee118238694d8383c0df526637ec1068ae8e93494b75" %} package: name: {{ name }} From e5dc0874634179caecb17a1e45408dba9b3c3361 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 10 Sep 2024 10:55:50 -0400 Subject: [PATCH 1450/1589] Update duplex-tools to 0.3.3 (#39513) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update duplex-tools to 0.3.1 * Update meta.yaml Update dependencies * Update duplex-tools to 0.3.2 * Update duplex-tools to 0.3.3 * add run_exports * remove license_family * clean up recipe * add missing deps --------- Co-authored-by: Andreas Sjödin Co-authored-by: joshuazhuang7 Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/duplex-tools/meta.yaml | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/recipes/duplex-tools/meta.yaml b/recipes/duplex-tools/meta.yaml index 1dde7f26e9869..e570a25b840e5 100644 --- a/recipes/duplex-tools/meta.yaml +++ b/recipes/duplex-tools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "duplex-tools" %} -{% set version = "0.2.17" %} +{% set version = "0.3.3" %} package: name: "{{ name|lower }}" @@ -7,30 +7,34 @@ package: source: url: "https://pypi.io/packages/source/d/duplex_tools/duplex_tools-{{ version }}.tar.gz" - sha256: afc5af9bdbea9c0aa3d55952cd391beee60185c6deed38a81e9e6b0f1606ab01 + sha256: 883e0a6610d14328a640b6a31eaef90592d2967cda68db0547a4d99924281300 build: number: 0 entry_points: - duplex_tools = duplex_tools:main - script: "{{ PYTHON }} -m pip install . -vv" + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv noarch: python - + run_exports: + - {{ pin_subpackage('duplex-tools', max_pin="x.x") }} + requirements: host: - pip - - python + - python >=3.7 run: + - python >=3.7 - python-edlib + - mappy + - matplotlib-base - more-itertools - natsort - numpy - pandas - parasail-python - - pathlib - - pyfastx + - pod5 + - pyfastx >=0.9.0 - pysam - - python - tqdm test: @@ -41,9 +45,12 @@ test: about: home: "https://github.com/nanoporetech/duplex-tools" - license: MPL-2.0 - license_file: LICENSE.md - summary: "Duplex Tools contains a set of utilities for dealing with ONT Duplex sequencing data" + license: "MPL-2.0" + license_family: OTHER + license_file: "LICENSE.md" + summary: "Duplex Tools contains a set of utilities for dealing with ONT Duplex sequencing data." + dev_url: "https://github.com/nanoporetech/duplex-tools" + doc_url: "https://github.com/nanoporetech/duplex-tools/blob/v{{ version }}/README.md" extra: recipe-maintainers: From 213acbdf8ae2ebce888060e3bd44a4b303706c07 Mon Sep 17 00:00:00 2001 From: Ryan Dale Date: Tue, 10 Sep 2024 11:04:26 -0400 Subject: [PATCH 1451/1589] Update toulligqc to 2.7.1 (#47874) * bump toulligqc to 2.6 * whitespace * Update toulligqc to 2.7 * Update toulligqc to 2.7.1 * add missing deps --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Co-authored-by: BiocondaBot <47040946+BiocondaBot@users.noreply.github.com> Co-authored-by: mencian --- recipes/toulligqc/meta.yaml | 39 ++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/recipes/toulligqc/meta.yaml b/recipes/toulligqc/meta.yaml index f9d01beea308f..6283ba23ae3bd 100644 --- a/recipes/toulligqc/meta.yaml +++ b/recipes/toulligqc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "toulligqc" %} -{% set version = "2.5.6" %} +{% set version = "2.7.1" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 1b6087ccb927e0da6ff8f9c82c166de02d41bc55df9b9d7fc9edf264aec009f9 + sha256: 243eea4259e83ff0570e70b65b3b406212fe51356e9e376ab3ff5a27258d46ac build: number: 0 @@ -20,18 +20,21 @@ build: requirements: host: - - python >=3.10.0 + - python >=3.11 + - pip run: - - h5py >=3.7.0 + - h5py >=3.10.0 - matplotlib-base >=3.6.3 - - numpy >=1.24.2 - - scipy >=1.10.1 - - pandas >=1.5.3 + - numpy >=1.26.4 + - scipy >=1.11.4 + - pandas >=2.1.4 - plotly >=5.15.0 - - pysam >=0.21.0 - - python >=3.10.0 - - scikit-learn >=1.2.1 - - tqdm >=4.64.1 + - pysam >=0.22.0 + - python >=3.11 + - scikit-learn >=1.4.1 + - tqdm >=4.66.2 + - pod5 >=0.3.15 + #- ezcharts ==0.7.6 test: imports: @@ -40,6 +43,14 @@ test: - toulligqc --help about: - home: https://github.com/GenomicParisCentre/toulligQC - license: CECILL-2.1 - summary: A post sequencing QC tool for Oxford Nanopore sequencers + home: "https://github.com/GenomicParisCentre/toulligQC" + license: "GPL-3.0-or-later" + license_family: GPL3 + license_file: "LICENSE.txt" + summary: "A post sequencing QC tool for Oxford Nanopore sequencers." + dev_url: "https://github.com/GenomicParisCentre/toulligQC" + doc_url: "https://github.com/GenomiqueENS/toulligQC/blob/v{{ version }}/README.md" + +extra: + identifiers: + - biotools:ToulligQC From a75f4b01ebe12564674869c59c59c2b06c240945 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 10 Sep 2024 10:22:56 -0500 Subject: [PATCH 1452/1589] Add recipe for ezcharts v0.10.2 (#50602) --- recipes/ezcharts/meta.yaml | 55 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 recipes/ezcharts/meta.yaml diff --git a/recipes/ezcharts/meta.yaml b/recipes/ezcharts/meta.yaml new file mode 100644 index 0000000000000..d439af6dc504d --- /dev/null +++ b/recipes/ezcharts/meta.yaml @@ -0,0 +1,55 @@ +{% set name = "ezcharts" %} +{% set version = "0.10.2" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.org/packages/source/{{ name[0] }}/{{ name }}/ezcharts-{{ version }}.tar.gz + sha256: 5357d3104057a14cb05afda3ef252771fcc00ced3200bd25a0195795ed6daae1 + +build: + number: 0 + noarch: python + entry_points: + - ezcharts = ezcharts:cli + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + run_exports: + - {{ pin_subpackage('ezcharts', max_pin="x.x") }} + +requirements: + host: + - python >=3.7 + - pip + run: + - python >=3.7 + - bokeh >=3.1.0,<3.2.dev0 + - dominate + - jinja2 + - libsass + - numpy + - pandas + - pydantic <2.0.0 + - scipy + - seaborn-base >=0.12.0,<0.13.dev0 + - sigfig + - natsort + - pysam + - pymsaviz + - biopython + +test: + imports: + - ezcharts + commands: + - ezcharts --help + +about: + home: "https://github.com/epi2me-labs/ezcharts" + summary: "eCharts plotting API." + license: "BSD-4-Clause" + license_family: BSD + license_file: LICENSE + dev_url: "https://github.com/epi2me-labs/ezcharts" + doc_url: "https://github.com/epi2me-labs/ezcharts/blob/v{{ version }}/README.md" From d07160d4100a8fe113bf33552f08b7f95737df15 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 10 Sep 2024 12:28:47 -0400 Subject: [PATCH 1453/1589] Update callingcardstools to 1.7.2 (#50604) --- recipes/callingcardstools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/callingcardstools/meta.yaml b/recipes/callingcardstools/meta.yaml index 5fa8e90fbbc22..d61de452bbed0 100644 --- a/recipes/callingcardstools/meta.yaml +++ b/recipes/callingcardstools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "callingcardstools" %} -{% set version = "1.7.1" %} +{% set version = "1.7.2" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 45dee48898336883b91cae93f9a34db68b1992a0f16a436d7f904f71ab061999 + sha256: 6e7ab8ca8ec454c916a67655940e5602300f2b2d0cefaa98462d8ef728a179cd build: noarch: python From f38fbcf031b7cf8c0b73f62f317451b618ffafa3 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 10 Sep 2024 11:31:43 -0500 Subject: [PATCH 1454/1589] moods: add aarch64/arm64 build (#50603) --- recipes/moods/build.sh | 4 ++-- recipes/moods/meta.yaml | 12 ++++++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/recipes/moods/build.sh b/recipes/moods/build.sh index 689926c02722e..c2f64e2904e62 100644 --- a/recipes/moods/build.sh +++ b/recipes/moods/build.sh @@ -7,11 +7,11 @@ cat > setup.py.patch << EOF common_includes = ["core/"] -common_compile_args = ['-O3', '-fPIC', '--std=c++11'] -+common_compile_args = ['-mtune=generic', '-O3', '-fPIC', '--std=c++11'] ++common_compile_args = ['-mtune=generic', '-O3', '-fPIC', '--std=c++14'] tools_mod = Extension('MOODS._tools', sources=['core/tools_wrap.cxx', EOF patch setup.py setup.py.patch rm setup.py.patch -${PYTHON} -m pip install . -vvv --no-deps --no-build-isolation +${PYTHON} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir diff --git a/recipes/moods/meta.yaml b/recipes/moods/meta.yaml index 27913e29ea5a3..36ffbea571da0 100644 --- a/recipes/moods/meta.yaml +++ b/recipes/moods/meta.yaml @@ -10,7 +10,7 @@ source: sha256: e694e37c7487286801bffcda3e0576157960007919dd5ceb8b5a1626dc2968e1 build: - number: 1 + number: 2 skip: True # [py < 36] run_exports: - {{ pin_subpackage('moods', max_pin="x") }} @@ -29,14 +29,18 @@ test: - MOODS.scan about: - home: https://www.cs.helsinki.fi/group/pssmfind/ + home: "https://www.cs.helsinki.fi/group/pssmfind" summary: 'MOODS: Motif Occurrence Detection Suite' - license: GPL-3.0-or-later + license: "GPL-3.0-or-later" license_family: GPL3 license_file: COPYING.GPLv3 - dev_url: https://github.com/jhkorhonen/MOODS + dev_url: "https://github.com/jhkorhonen/MOODS" + doc_url: "https://github.com/jhkorhonen/MOODS/wiki" extra: identifiers: - biotools:MOODS - doi:10.1109/TCBB.2009.35 + additional-platforms: + - linux-aarch64 + - osx-arm64 From 895307562150c48b87be137907f35f56fa34e227 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 10 Sep 2024 14:50:40 -0400 Subject: [PATCH 1455/1589] Update synapseclient to 4.5.0 (#50606) --- recipes/synapseclient/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/synapseclient/meta.yaml b/recipes/synapseclient/meta.yaml index cb72f378a9543..672db509362e9 100644 --- a/recipes/synapseclient/meta.yaml +++ b/recipes/synapseclient/meta.yaml @@ -1,5 +1,5 @@ {% set name = "synapseclient" %} -{% set version = "4.4.1" %} +{% set version = "4.5.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/synapseclient-{{ version }}.tar.gz - sha256: fc6ec5a0fd49edf2b05ecd7f69316784a4b813dd0fd259785932c0786d480629 + sha256: b8e3b58f4ae054cd2047a931d9c239f7497b9435ce9da72d4a673ddaab89e40e build: noarch: python From 1ad9af523df70e75d11360c7440a344baf4691d7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 10 Sep 2024 22:05:38 -0400 Subject: [PATCH 1456/1589] Update ropebwt3 to 3.6 (#50620) --- recipes/ropebwt3/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ropebwt3/meta.yaml b/recipes/ropebwt3/meta.yaml index 111421ee27827..44fa1b792a79e 100644 --- a/recipes/ropebwt3/meta.yaml +++ b/recipes/ropebwt3/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ropebwt3" %} -{% set version = "3.5" %} +{% set version = "3.6" %} package: name: {{ name }} @@ -12,7 +12,7 @@ build: source: url: https://github.com/lh3/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz - sha256: b1251c67ea939db5399b3635293cd45c43bd4b3c3418905a7fdc560c6775477d + sha256: 548bcb3f9ed5c2c0f558c2d92b5d3b05db594eb174f5f94914c34c833c17256b requirements: build: From 63604fe04c1985f2a6fb2dee74ea2cc870c6f8fe Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 11 Sep 2024 00:56:28 -0400 Subject: [PATCH 1457/1589] Update hybpiper to 2.3.0 (#50621) --- recipes/hybpiper/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/hybpiper/meta.yaml b/recipes/hybpiper/meta.yaml index 6305cc6c34bf0..069d3780b89be 100644 --- a/recipes/hybpiper/meta.yaml +++ b/recipes/hybpiper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "hybpiper" %} -{% set version = "2.2.0" %} +{% set version = "2.3.0" %} package: name: {{ name|lower }} @@ -7,10 +7,10 @@ package: source: url: "https://github.com/mossmatters/HybPiper/archive/refs/tags/v{{ version }}.tar.gz" - sha256: 8337b1d17de9fa11f9d2b3f59ccc4597c5e3359d70e26d88346e871ccc6b1ac3 + sha256: 7b9d0af243dbdd24cb299cf8e05e65dafa873afc2c7605e3fae74b455457b491 build: - number: 1 + number: 0 noarch: python script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir entry_points: From 8fd8b166d5e4a6196c34d6a2ae7eb0b5f87ce9eb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 11 Sep 2024 00:58:05 -0400 Subject: [PATCH 1458/1589] Update diphase to 1.0.3 (#50619) --- recipes/diphase/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/diphase/meta.yaml b/recipes/diphase/meta.yaml index 8ee5e1cbb687b..a2c0dfb3380be 100644 --- a/recipes/diphase/meta.yaml +++ b/recipes/diphase/meta.yaml @@ -1,6 +1,6 @@ {% set name = "diphase" %} -{% set version = "1.0.2" %} -{% set sha256 = "edf4a9cfee3563542f5608f5918ae0c3786d20e54e6c0d75da1ac03baeb772b5" %} +{% set version = "1.0.3" %} +{% set sha256 = "5e5971c62c66858d8c22a658821bc6fed443ecdad8811c4cd67feea7d518c127" %} package: name: {{ name }} From e9bb23e64e45820d1b0daeb94e089acf4cef6b13 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 11 Sep 2024 01:01:12 -0400 Subject: [PATCH 1459/1589] Update bustools to 0.44.0 (#50617) --- recipes/bustools/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/bustools/meta.yaml b/recipes/bustools/meta.yaml index 22fc8125fe0e8..fed8ae7701f0b 100644 --- a/recipes/bustools/meta.yaml +++ b/recipes/bustools/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.43.2" %} +{% set version = "0.44.0" %} package: name: bustools @@ -6,10 +6,10 @@ package: source: url: https://github.com/BUStools/bustools/archive/v{{ version }}.tar.gz - sha256: ad5816152644ee615316daecf5883183994bd7cc96e6c008439123f4cd750b1f + sha256: e9a12be416d5d3940dd0ec3bfb0be3a481f2eea7d4411df1ab24c814332d99b8 build: - number: 2 + number: 0 run_exports: - {{ pin_subpackage('bustools', max_pin="x.x") }} From b24366a22a4fae8c7241d222bdf64c44054f0027 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 11 Sep 2024 01:04:57 -0400 Subject: [PATCH 1460/1589] Update gdc-client to 2.2 (#50614) --- recipes/gdc-client/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gdc-client/meta.yaml b/recipes/gdc-client/meta.yaml index 4b3c334876d85..45280452bdb3d 100644 --- a/recipes/gdc-client/meta.yaml +++ b/recipes/gdc-client/meta.yaml @@ -1,5 +1,5 @@ {% set name = "gdc-client" %} -{% set version = "2.1" %} +{% set version = "2.2" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/NCI-GDC/gdc-client/archive/{{ version }}.tar.gz - sha256: f847ee2cbd7e230e7f2ad26e7457b4138514ba5c55888e1803d1d3e5bfc6a058 + sha256: 87a5833fda42a26dd5dc53ace529cb141a48ae855b2ca4c66d132a5a14de6382 build: number: 0 From 0df0b6a74e12cd888b09c78d4158500fbb71943d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 11 Sep 2024 01:06:00 -0400 Subject: [PATCH 1461/1589] Update gencove to 2.20.0 (#50612) --- recipes/gencove/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gencove/meta.yaml b/recipes/gencove/meta.yaml index c11d08a06e330..eb20892dca0de 100644 --- a/recipes/gencove/meta.yaml +++ b/recipes/gencove/meta.yaml @@ -1,6 +1,6 @@ {% set name = "gencove" %} -{% set version = "2.19.0" %} -{% set sha256 = "19420897a37281a52b9ed0fe8957faf4d867cbc53b4b1849082db75b8418c341" %} +{% set version = "2.20.0" %} +{% set sha256 = "8cfb183c5bd57bd7229b5248b0fbb42c547e4a766111db82c58853cfce281352" %} package: name: {{ name }} From 343434acbd67865f0c6fe3094b1dd3344ea0d160 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 11 Sep 2024 02:39:20 -0500 Subject: [PATCH 1462/1589] mcl: add aarch64 build (#50605) * mcl: add aarch64/arm64 build * fix typo * edit build.sh * edit meta.yaml * edit meta.yaml --- recipes/mcl/build.sh | 11 +++++++---- recipes/mcl/meta.yaml | 18 +++++++++++------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/recipes/mcl/build.sh b/recipes/mcl/build.sh index 066d521961a67..e8c845e3701b6 100644 --- a/recipes/mcl/build.sh +++ b/recipes/mcl/build.sh @@ -6,20 +6,23 @@ export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" -export CFLAGS="${CFLAGS} -O3 -fcommon" -export CPPFLAGS="${CPPFLAGS} -I${PREFIX}/include" +export CFLAGS="${CFLAGS} -O3 -L${PREFIX}/lib" +export CPPFLAGS="${CPPFLAGS} -O3 -I${PREFIX}/include" cd cimfomfa +autoupdate +autoreconf -if ./configure --prefix="${PREFIX}" \ CC="${CC}" CFLAGS="${CFLAGS}" \ CPPFLAGS="${CPPFLAGS}" \ LDFLAGS="${LDFLAGS}" \ - --enable-shared + --disable-shared make -j"${CPU_COUNT}" make install make clean cd .. +autoupdate ./configure --prefix="${PREFIX}" \ CC="${CC}" CFLAGS="${CFLAGS}" \ CPPFLAGS="${CPPFLAGS}" \ @@ -32,4 +35,4 @@ make clean # Add back in the mcl/blast scripts. # Remove this once the next release re-incorporates them. # See https://github.com/micans/mcl/discussions/25 -cp $RECIPE_DIR/scripts/mc* $PREFIX/bin/ +cp -rf $RECIPE_DIR/scripts/mc* $PREFIX/bin/ diff --git a/recipes/mcl/meta.yaml b/recipes/mcl/meta.yaml index 30a984029b69c..34eb97e7fe060 100644 --- a/recipes/mcl/meta.yaml +++ b/recipes/mcl/meta.yaml @@ -14,7 +14,7 @@ source: folder: cimfomfa build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('mcl', max_pin=None) }} @@ -22,11 +22,13 @@ requirements: build: - make - {{ compiler('c') }} + - autoconf + - automake + - libtool host: - perl run: - perl - - blast test: commands: @@ -43,13 +45,13 @@ test: - mcxsubs --version about: - home: https://micans.org/mcl/ - license: GPL-3.0-only + home: "https://micans.org/mcl" + license: "GPL-3.0-only" license_family: GPL license_file: LICENSE - summary: MCL - a cluster algorithm for graphs - dev_url: https://github.com/micans/mcl - doc_url: https://micans.org/mcl/man/mcl.html + summary: "MCL - a cluster algorithm for graphs." + dev_url: "https://github.com/micans/mcl" + doc_url: "https://micans.org/mcl/man/mcl.html" extra: identifiers: @@ -57,3 +59,5 @@ extra: - doi:10.1093/nar/30.7.1575 - biotools:mcl - usegalaxy-eu:mcl + additional-platforms: + - linux-aarch64 From 901e82d53ab6df92e52cedba982ecbd17241cdbf Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 11 Sep 2024 13:36:09 +0300 Subject: [PATCH 1463/1589] graphtyper: add linux-aarch64 build (#50565) * graphtyper: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Add run_exports Signed-off-by: Martin Tzvetanov Grigorov * Unset paw's arch specific build settings for linux-aarch64 Signed-off-by: Martin Tzvetanov Grigorov * Add a patch that adds asm/hwcap.h to htscodecs Copied from htslib recipe Signed-off-by: Martin Tzvetanov Grigorov * Try with Medium ARM64 image CircleCI fails with "https://app.circleci.com/pipelines/github/bioconda/bioconda-recipes" at the moment Signed-off-by: Martin Tzvetanov Grigorov * Update recipes/graphtyper/build.sh --------- Signed-off-by: Martin Tzvetanov Grigorov --- .circleci/config.yml | 2 +- recipes/graphtyper/arm_hwcap.patch | 15 +++ recipes/graphtyper/build.sh | 15 ++- .../graphtyper/build_failure.linux-64.yaml | 104 ------------------ recipes/graphtyper/meta.yaml | 10 +- 5 files changed, 37 insertions(+), 109 deletions(-) create mode 100644 recipes/graphtyper/arm_hwcap.patch delete mode 100644 recipes/graphtyper/build_failure.linux-64.yaml diff --git a/.circleci/config.yml b/.circleci/config.yml index 81ecb0653c316..cf237bd82639b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -9,7 +9,7 @@ executors: linux-aarch64: machine: image: ubuntu-2204:current - resource_class: arm.large + resource_class: arm.medium jobs: # a basic unit of work in a run build_and_test: diff --git a/recipes/graphtyper/arm_hwcap.patch b/recipes/graphtyper/arm_hwcap.patch new file mode 100644 index 0000000000000..0701b6a203859 --- /dev/null +++ b/recipes/graphtyper/arm_hwcap.patch @@ -0,0 +1,15 @@ +Conda-forge's build environment on ARM uses sysroot_linux-aarch64 2.17, which +is based on glibc 2.17 so does not define HWCAP_* values on ARM. +Work around this by including the kernel header to get the desired values. + +--- a/htslib/htscodecs/htscodecs/rANS_static4x16pr.c 2023-10-10 02:54:16 ++++ b/htslib/htscodecs/htscodecs/rANS_static4x16pr.c 2024-03-06 00:01:14 +@@ -1011,6 +1011,8 @@ unsigned char *(*rans_dec_func(int do_simd, int order)) + + #if defined(__linux__) || defined(__FreeBSD__) + #include ++// Ensure ARM HWCAP_* values are defined even on old glibc ++#include + #elif defined(_WIN32) + #include + #endif diff --git a/recipes/graphtyper/build.sh b/recipes/graphtyper/build.sh index 2289d6ac687ba..87a61e37604f4 100644 --- a/recipes/graphtyper/build.sh +++ b/recipes/graphtyper/build.sh @@ -1,12 +1,23 @@ #!/usr/bin/env bash +set -xe + +case $(uname -m) in + aarch64) + ARCH_OPTS="-Dpaw_BUILD_FLAGS=-DCMAKE_CXX_FLAGS_ARCH=" + ;; + *) + ARCH_OPTS= + ;; +esac + # Generate build mkdir -p build cd build -cmake -DCFLAGS="${CFLAGS}" -DLDFLAGS="${LDFLAGS}" .. +cmake -DCFLAGS="${CFLAGS}" -DLDFLAGS="${LDFLAGS}" ${ARCH_OPTS} .. # Build -VERBOSE=1 make graphtyper +VERBOSE=1 make -j ${CPU_COUNT} graphtyper # Install mkdir -p $PREFIX/bin diff --git a/recipes/graphtyper/build_failure.linux-64.yaml b/recipes/graphtyper/build_failure.linux-64.yaml deleted file mode 100644 index d1737b1a43ae5..0000000000000 --- a/recipes/graphtyper/build_failure.linux-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 9bcf12d0f66b21c75e96c579b00d8cccd0b621146c9afc850e5fc26fe0245ed9 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |- - [ 12%] No update step for 'project_libdeflate' - $BUILD_PREFIX/bin/cmake -E echo_append - $BUILD_PREFIX/bin/cmake -E touch $SRC_DIR/libdeflate/src/project_libdeflate-stamp/project_libdeflate-update - [ 14%] No patch step for 'project_libdeflate' - $BUILD_PREFIX/bin/cmake -E echo_append - $BUILD_PREFIX/bin/cmake -E touch $SRC_DIR/libdeflate/src/project_libdeflate-stamp/project_libdeflate-patch - [ 15%] No configure step for 'project_libdeflate' - cd $SRC_DIR/libdeflate && $BUILD_PREFIX/bin/cmake -E echo_append - cd $SRC_DIR/libdeflate && $BUILD_PREFIX/bin/cmake -E touch $SRC_DIR/libdeflate/src/project_libdeflate-stamp/project_libdeflate-configure - [ 16%] Performing build step for 'project_libdeflate' - cd $SRC_DIR/libdeflate && make -C $SRC_DIR/libdeflate CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc "CFLAGS=-fPIC -O3 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/graphtyper-2.7.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix" libdeflate.a - make[4]: Entering directory '$SRC_DIR/libdeflate' - CC lib/deflate_decompress.o - CC lib/utils.o - CC lib/arm/cpu_features.o - CC lib/x86/cpu_features.o - CC lib/deflate_compress.o - CC lib/adler32.o - CC lib/zlib_decompress.o - CC lib/zlib_compress.o - CC lib/crc32.o - CC lib/gzip_decompress.o - CC lib/gzip_compress.o - AR libdeflate.a - make[4]: Leaving directory '$SRC_DIR/libdeflate' - cd $SRC_DIR/libdeflate && $BUILD_PREFIX/bin/cmake -E touch $SRC_DIR/libdeflate/src/project_libdeflate-stamp/project_libdeflate-build - [ 17%] No install step for 'project_libdeflate' - cd $SRC_DIR/libdeflate && $BUILD_PREFIX/bin/cmake -E echo_append - cd $SRC_DIR/libdeflate && $BUILD_PREFIX/bin/cmake -E touch $SRC_DIR/libdeflate/src/project_libdeflate-stamp/project_libdeflate-install - [ 18%] Completed 'project_libdeflate' - $BUILD_PREFIX/bin/cmake -E make_directory $SRC_DIR/build/CMakeFiles - $BUILD_PREFIX/bin/cmake -E touch $SRC_DIR/build/CMakeFiles/project_libdeflate-complete - $BUILD_PREFIX/bin/cmake -E touch $SRC_DIR/libdeflate/src/project_libdeflate-stamp/project_libdeflate-done - make[3]: Leaving directory '$SRC_DIR/build' - [ 18%] Built target project_libdeflate - make -f CMakeFiles/project_htslib.dir/build.make CMakeFiles/project_htslib.dir/depend - make[3]: Entering directory '$SRC_DIR/build' - cd $SRC_DIR/build && $BUILD_PREFIX/bin/cmake -E cmake_depends "Unix Makefiles" $SRC_DIR $SRC_DIR $SRC_DIR/build $SRC_DIR/build $SRC_DIR/build/CMakeFiles/project_htslib.dir/DependInfo.cmake --color= - make[3]: Leaving directory '$SRC_DIR/build' - make -f CMakeFiles/project_htslib.dir/build.make CMakeFiles/project_htslib.dir/build - make[3]: Entering directory '$SRC_DIR/build' - [ 20%] Creating directories for 'project_htslib' - $BUILD_PREFIX/bin/cmake -Dcfgdir= -P $SRC_DIR/htslib/tmp/project_htslib-mkdirs.cmake - $BUILD_PREFIX/bin/cmake -E touch $SRC_DIR/htslib/src/project_htslib-stamp/project_htslib-mkdir - [ 21%] No download step for 'project_htslib' - $BUILD_PREFIX/bin/cmake -E echo_append - $BUILD_PREFIX/bin/cmake -E touch $SRC_DIR/htslib/src/project_htslib-stamp/project_htslib-download - [ 22%] No update step for 'project_htslib' - $BUILD_PREFIX/bin/cmake -E echo_append - $BUILD_PREFIX/bin/cmake -E touch $SRC_DIR/htslib/src/project_htslib-stamp/project_htslib-update - [ 23%] No patch step for 'project_htslib' - $BUILD_PREFIX/bin/cmake -E echo_append - $BUILD_PREFIX/bin/cmake -E touch $SRC_DIR/htslib/src/project_htslib-stamp/project_htslib-patch - [ 24%] No configure step for 'project_htslib' - cd $SRC_DIR/htslib && $BUILD_PREFIX/bin/cmake -E echo_append - cd $SRC_DIR/htslib && $BUILD_PREFIX/bin/cmake -E touch $SRC_DIR/htslib/src/project_htslib-stamp/project_htslib-configure - [ 25%] Performing build step for 'project_htslib' - cd $SRC_DIR/htslib && autoheader - perl: warning: Setting locale failed. - perl: warning: Please check that your locale settings: - LANGUAGE = (unset), - LC_ALL = (unset), - LANG = "C.UTF-8" - are supported and installed on your system. - perl: warning: Falling back to the standard locale ("C"). - perl: warning: Setting locale failed. - perl: warning: Please check that your locale settings: - LANGUAGE = (unset), - LC_ALL = (unset), - LANG = "C.UTF-8" - are supported and installed on your system. - perl: warning: Falling back to the standard locale ("C"). - cd $SRC_DIR/htslib && autoconf - cd $SRC_DIR/htslib && $SRC_DIR/htslib/configure --disable-libcurl --disable-gcs --with-libdeflate "CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/graphtyper-2.7.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -g -Wall -O3 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/graphtyper-2.7.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I$SRC_DIR/libdeflate" "LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$SRC_DIR/libdeflate" CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc - configure: error: cannot find required auxiliary files: config.guess config.sub - make[3]: *** [CMakeFiles/project_htslib.dir/build.make:88: /opt/conda/conda-bld/graphtyper_1685351107399/work/htslib/src/project_htslib-stamp/project_htslib-build] Error 1 - make[3]: Leaving directory '$SRC_DIR/build' - make[2]: *** [CMakeFiles/Makefile2:158: CMakeFiles/project_htslib.dir/all] Error 2 - make[2]: Leaving directory '$SRC_DIR/build' - make[1]: *** [CMakeFiles/Makefile2:247: src/CMakeFiles/graphtyper.dir/rule] Error 2 - make[1]: Leaving directory '$SRC_DIR/build' - make: *** [Makefile:231: graphtyper] Error 2 - Traceback (most recent call last): - File "/opt/conda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/conda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 2198, in build - utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env, - File "/opt/conda/lib/python3.8/site-packages/conda_build/utils.py", line 451, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/conda/lib/python3.8/site-packages/conda_build/utils.py", line 427, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/graphtyper_1685351107399/work/conda_build.sh']' returned non-zero exit status 2. -# Last 100 lines of the build log. diff --git a/recipes/graphtyper/meta.yaml b/recipes/graphtyper/meta.yaml index 11ba606ba83bf..4c943b875e2cb 100644 --- a/recipes/graphtyper/meta.yaml +++ b/recipes/graphtyper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "graphtyper" %} -{% set version = "2.7.2" %} +{% set version = "2.7.7" %} package: name: {{ name }} @@ -9,11 +9,15 @@ source: # git_url is required for submodule retrieval git_url: https://github.com/DecodeGenetics/{{ name }}.git git_rev: v{{ version }} + patches: + - arm_hwcap.patch # [aarch64] build: - number: 2 + number: 0 #binary_relocation: false skip: true # [not linux] + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} requirements: build: @@ -47,6 +51,8 @@ about: summary: Population-scale genotyping using pangenome graphs extra: + additional-platforms: + - linux-aarch64 skip-lints: - uses_vcs_url - missing_hash From 9cb1587b1b2c5dc74f16bc9f383c61c1b40a74fa Mon Sep 17 00:00:00 2001 From: Michael Uhl Date: Wed, 11 Sep 2024 12:55:10 +0200 Subject: [PATCH 1464/1589] update recipe to v1.0 (#50616) --- recipes/rbpbench/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/rbpbench/meta.yaml b/recipes/rbpbench/meta.yaml index 32e29527edb1f..aabaddcf9f40e 100644 --- a/recipes/rbpbench/meta.yaml +++ b/recipes/rbpbench/meta.yaml @@ -1,6 +1,6 @@ {% set name = "RBPBench" %} -{% set version = "0.9" %} -{% set sha256 = "247b9e0cabe5e4bd454653dbc1bfd0337b381b1e8d595bdd6d409b5693a57bda" %} +{% set version = "1.0" %} +{% set sha256 = "04d94acb727cadf096adf7f023e629361fb6340ef47d47de8977a0d6b76f64aa" %} package: name: {{ name|lower }} @@ -36,6 +36,7 @@ requirements: - upsetplot >=0.9 - packaging - scikit-learn + - goatools test: commands: From 353d2f71d08caf4359526d1f3cc1beeeac0623b2 Mon Sep 17 00:00:00 2001 From: John Blischak Date: Wed, 11 Sep 2024 08:13:31 -0400 Subject: [PATCH 1465/1589] Add recipe for scHPL (#50613) * Add recipe for scHPL * Add run_exports * Hardcode package name in run_exports * Add @nictru as a co-maintainer --------- Co-authored-by: Martin Grigorov --- recipes/schpl/meta.yaml | 51 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 recipes/schpl/meta.yaml diff --git a/recipes/schpl/meta.yaml b/recipes/schpl/meta.yaml new file mode 100644 index 0000000000000..509dfc44677d9 --- /dev/null +++ b/recipes/schpl/meta.yaml @@ -0,0 +1,51 @@ +{% set name = "schpl" %} +{% set version = "1.0.5" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/scHPL-{{ version }}.tar.gz + sha256: 3eb62b2e65b1faba04b7bcb86f7bf6967a6301866a605551211b8f14fd27eced + +build: + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + run_exports: + - {{ pin_subpackage('schpl', max_pin="x") }} + +requirements: + host: + - python >=3.6 + - pip + run: + - python >=3.6 + - numpy >=1.19.2 + - scipy >=1.5.2 + - scikit-learn >=0.23.2 + - pandas >=1.1.2,<2 + - python-newick >=1.0.0,<1.1.dev0 + - anndata >=0.7.4 + - matplotlib-base >=3.3.1 + - seaborn >=0.11.1 + +test: + imports: + - scHPL + commands: + - pip check + requires: + - pip + +about: + home: https://github.com/lcmmichielsen/scHPL + summary: Hierarchical progressive learning pipeline for single-cell RNA-sequencing datasets + license: MIT + license_file: LICENSE + +extra: + recipe-maintainers: + - jdblischak + - nictru From 8e40f12223dc3595a2b020c17b720bcd1ce28b59 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 11 Sep 2024 13:38:05 -0400 Subject: [PATCH 1466/1589] Update msweep to 2.2.0 (#50628) --- recipes/msweep/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/msweep/meta.yaml b/recipes/msweep/meta.yaml index 4837f75c902cf..c3f6dfbac8a1b 100644 --- a/recipes/msweep/meta.yaml +++ b/recipes/msweep/meta.yaml @@ -1,6 +1,6 @@ {% set name = "mSWEEP" %} -{% set version = "2.1.2" %} -{% set sha256 = "fd6e384bed01e08a64463d40b7cfba79dc6ba7def60c69b31ca5fc5b55551a22" %} +{% set version = "2.2.0" %} +{% set sha256 = "9f2cbaaa877466a59171a4e74fe26d462657b62ae0e3b464672e44490a6f3d73" %} {% set user = "PROBIC" %} package: From 190ea16d48400b938e496efbdf218df8b79349c4 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 11 Sep 2024 21:00:49 +0300 Subject: [PATCH 1467/1589] mGEMS: add aarch64/arm64 builds (#50623) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/mgems/build.sh | 2 ++ recipes/mgems/meta.yaml | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/recipes/mgems/build.sh b/recipes/mgems/build.sh index 6ba573ff2b226..df3e14ac25675 100644 --- a/recipes/mgems/build.sh +++ b/recipes/mgems/build.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -xe + mkdir -p $PREFIX/bin mkdir build diff --git a/recipes/mgems/meta.yaml b/recipes/mgems/meta.yaml index 1eed62d36b021..be00e71ac1a41 100644 --- a/recipes/mgems/meta.yaml +++ b/recipes/mgems/meta.yaml @@ -10,7 +10,7 @@ source: sha256: c16db45f575d039ca5219b9bc7b7a4dc4bc3ceb3239b2a61085106d3d666b57a build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('mgems', max_pin="x") }} @@ -41,6 +41,9 @@ about: dev_url: https://github.com/PROBIC/mGEMS extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 identifiers: - doi:10.1099/mgen.0.000691 recipe-maintainers: From 46a4b55093983fb878690bf7d229e0a1c3e6ca73 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 11 Sep 2024 21:01:01 +0300 Subject: [PATCH 1468/1589] tribal: add aarch64/arm64 builds (#50624) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/tribal/meta.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/recipes/tribal/meta.yaml b/recipes/tribal/meta.yaml index fc988e2ff8264..dfc122ff0d268 100644 --- a/recipes/tribal/meta.yaml +++ b/recipes/tribal/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 3859295c1e615ce9ce5d34e73c9dea33a08a105a502096e7640e0feeda83756e build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('tribal', max_pin='x.x') }} script: @@ -53,3 +53,8 @@ about: doc_url: "https://elkebir-group.github.io/TRIBAL" license: "BSD-3-Clause" summary: "TRIBAL is a package to infer B cell lineage trees from single-cell RNA sequencing data." + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From 3f3c7951393575862ea5643005c4f258f1bae9b8 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 11 Sep 2024 21:01:46 +0300 Subject: [PATCH 1469/1589] f5c: add aarch64/arm64 builds (#50625) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/f5c/build.sh | 7 +++++-- recipes/f5c/meta.yaml | 7 ++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/recipes/f5c/build.sh b/recipes/f5c/build.sh index 89e1f0240816d..838e83b3b3e28 100644 --- a/recipes/f5c/build.sh +++ b/recipes/f5c/build.sh @@ -1,11 +1,14 @@ #!/bin/bash + +set -xe + scripts/install-hts.sh scripts/install-zstd.sh ./configure --enable-localzstd cd slow5lib -make CC=$CC CXX=$CXX +make -j ${CPU_COUNT} CC=$CC CXX=$CXX cd .. export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS" -make CC=$CC CXX=$CXX +make -j ${CPU_COUNT} CC=$CC CXX=$CXX mkdir -p $PREFIX/bin cp f5c $PREFIX/bin/f5c diff --git a/recipes/f5c/meta.yaml b/recipes/f5c/meta.yaml index 2a8ff3789ee82..307b7c047ae47 100644 --- a/recipes/f5c/meta.yaml +++ b/recipes/f5c/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 3354813a0523ae3fead68cc3ec5859fa745576b5dc88758a9de172184fac20ab build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('f5c', max_pin="x") }} @@ -37,3 +37,8 @@ about: license: MIT license_file: LICENSE summary: 'An optimised re-implementation of the call-methylation and eventalign modules in Nanopolish.' + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From 84e5c1b339111de9d130615f5c22317a9bdb5bb8 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 11 Sep 2024 21:02:04 +0300 Subject: [PATCH 1470/1589] fastlin: add aarch64/arm64 builds (#50626) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/fastlin/meta.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/recipes/fastlin/meta.yaml b/recipes/fastlin/meta.yaml index 7932d1fadd683..611c110f0b89a 100644 --- a/recipes/fastlin/meta.yaml +++ b/recipes/fastlin/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 3d73f83465bef74003e2d8a853a2902a33e289d1acbe1d6a1f4b93ead3ef546e build: - number: 0 + number: 1 script: "cargo install --no-track --locked --verbose --root \"${PREFIX}\" --path ." run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} @@ -29,3 +29,8 @@ about: license_family: MIT license_file: LICENSE summary: fastlin, ultra-fast MTBC lineage typing + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From e8ed66eab23b781c3dfa0c23e05a98e005a138a6 Mon Sep 17 00:00:00 2001 From: Alex Fraser <79180900+AlexSCFraser@users.noreply.github.com> Date: Wed, 11 Sep 2024 11:02:20 -0700 Subject: [PATCH 1471/1589] Update SACCHARIS (#50611) * Add recipe for saccharis 2.0 dev18 build 1 to bioconda * updated to use git tag * updated to use a python package generated from setuptools build, with sha256 hash, and added --single-version-externally-managed --record=record.txt args to setup.py install as per bioconda test suite * lowercased hash, since it's case-sensitive * added filename as "fn: saccharis-{{ version }}.tar.gz" * removed filename since bioconda considers it an error * update url link * update sha256 * remove unneeded comments * remove tests which write files * remove tests which write files, with comment * add new release data to bioconda recipe * change build number to zero to satisfy bioconda linter * add blast dependency * add run_exports breaking change behaviour * change name to lowercase in run_exports * fix spacing * nesting issue * remove nesting * fix version spacing * update to dev20 * update to dev20 * update to dev21 * fix >= sign * increment build to fix small error * update file hash and increment build * revert 2.0.1 to working dev21 build --- recipes/saccharis/meta.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/recipes/saccharis/meta.yaml b/recipes/saccharis/meta.yaml index dacd35cfbd8fd..9353926ac29f9 100644 --- a/recipes/saccharis/meta.yaml +++ b/recipes/saccharis/meta.yaml @@ -1,18 +1,19 @@ {% set name = "SACCHARIS" %} {% set version = "2.0.1" %} -{% set hash = "b2bce5fb1d2c959df571735634de5b68fd175148978613e6fc0daa24b3e25df9" %} +{% set hash = "BA68CAB1070A11D5D4F2335CB770E1603ED54E1FB4B52A31DB4CA9A6CBBD6F7E" %} package: name: "{{ name|lower }}" version: "{{ version }}" source: - url: https://github.com/saccharis/SACCHARIS_2/releases/download/v{{ version }}/saccharis-{{ version }}.tar.gz +# url: https://github.com/saccharis/SACCHARIS_2/releases/download/v{{ version }}/saccharis-{{ version }}.tar.gz # go back to this method once 2.0.1 is fixed + url: https://github.com/saccharis/SACCHARIS_2/releases/download/v2.0.0.dev21/saccharis-2.0.0.dev21.tar.gz sha256: {{ hash|lower }} build: noarch: python - number: 0 + number: 1 script: {{ PYTHON }} setup.py install --single-version-externally-managed --record=record.txt preserve_egg_dir: True # added because the entry points below seem to be causing a build error entry_points: From b0a535c8bfee3e025a8616acac0193dd15b812eb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 11 Sep 2024 15:52:48 -0400 Subject: [PATCH 1472/1589] Update gencove to 2.20.1 (#50639) --- recipes/gencove/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gencove/meta.yaml b/recipes/gencove/meta.yaml index eb20892dca0de..4649cd2a3103b 100644 --- a/recipes/gencove/meta.yaml +++ b/recipes/gencove/meta.yaml @@ -1,6 +1,6 @@ {% set name = "gencove" %} -{% set version = "2.20.0" %} -{% set sha256 = "8cfb183c5bd57bd7229b5248b0fbb42c547e4a766111db82c58853cfce281352" %} +{% set version = "2.20.1" %} +{% set sha256 = "78a8d24819def42643c16981c23f68d305321982be035d90274a6f190be54a9d" %} package: name: {{ name }} From fb282bb7a297893a87ebb609214fa733560edae8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 11 Sep 2024 15:53:09 -0400 Subject: [PATCH 1473/1589] Update snakemake-executor-plugin-slurm to 0.10.2 (#50633) * Update snakemake-executor-plugin-slurm to 0.10.1 * Update snakemake-executor-plugin-slurm to 0.10.2 --- recipes/snakemake-executor-plugin-slurm/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-executor-plugin-slurm/meta.yaml b/recipes/snakemake-executor-plugin-slurm/meta.yaml index 3c0bfb35d7ec2..3fa0f9862074f 100644 --- a/recipes/snakemake-executor-plugin-slurm/meta.yaml +++ b/recipes/snakemake-executor-plugin-slurm/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-executor-plugin-slurm" %} -{% set version = "0.10.0" %} +{% set version = "0.10.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_executor_plugin_slurm-{{ version }}.tar.gz - sha256: d970bd08e00f1664adbd3c421c956b2ce926359ff10a4d7650c444c1179bec3f + sha256: 919beb114785545f3cc187988f9257a183f1a2c76593e8a8559b87962ebd2651 build: noarch: python From 798ee4dccfcf165685159997a9f7e1980af039d9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 11 Sep 2024 15:56:01 -0400 Subject: [PATCH 1474/1589] Update methylmap to 0.5.1 (#50630) * Update methylmap to 0.5.1 * Update meta.yaml adapting requirements --------- Co-authored-by: Wouter De Coster --- recipes/methylmap/meta.yaml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/recipes/methylmap/meta.yaml b/recipes/methylmap/meta.yaml index 2deb96f13c1c9..1d83aad842419 100644 --- a/recipes/methylmap/meta.yaml +++ b/recipes/methylmap/meta.yaml @@ -1,5 +1,5 @@ {% set name = "methylmap" %} -{% set version = "0.4.6" %} +{% set version = "0.5.1" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: ff94b6d5b75c704af8ced7b0c0187c1a4d8bfb7cf3565bde09ea46d2c9e44963 + sha256: 74c66ccf9c6122bae6a5368e78f0a3cf773a1c0578c9c68084738f0f4b4febd2 build: number: 0 @@ -29,10 +29,12 @@ requirements: - plotly >=5.4.0 - pyranges >=0.0.77 - tabix -# - modbam2bed ## not available in bioconda, only through epi2me-labs - scipy - dash - + - dash-bootstrap-components + - tqdm + - ont-modkit + test: imports: - methylmap From dbeeaf698edc4030c9df4df71c3298f9b194e3e4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 11 Sep 2024 17:48:30 -0400 Subject: [PATCH 1475/1589] Update gdc-client to 2.3 (#50642) --- recipes/gdc-client/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gdc-client/meta.yaml b/recipes/gdc-client/meta.yaml index 45280452bdb3d..22e25c0ab7aa4 100644 --- a/recipes/gdc-client/meta.yaml +++ b/recipes/gdc-client/meta.yaml @@ -1,5 +1,5 @@ {% set name = "gdc-client" %} -{% set version = "2.2" %} +{% set version = "2.3" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/NCI-GDC/gdc-client/archive/{{ version }}.tar.gz - sha256: 87a5833fda42a26dd5dc53ace529cb141a48ae855b2ca4c66d132a5a14de6382 + sha256: c4617516d84572135ee21b3b0bbaf4a5d360dcfe752ef70ba89c156ab64d1870 build: number: 0 From c56b8db30976c8eb9fb50abbf02c525675aa94e6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 11 Sep 2024 17:50:48 -0400 Subject: [PATCH 1476/1589] Update callingcardstools to 1.8.0 (#50643) --- recipes/callingcardstools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/callingcardstools/meta.yaml b/recipes/callingcardstools/meta.yaml index d61de452bbed0..658e9faaff4dd 100644 --- a/recipes/callingcardstools/meta.yaml +++ b/recipes/callingcardstools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "callingcardstools" %} -{% set version = "1.7.2" %} +{% set version = "1.8.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 6e7ab8ca8ec454c916a67655940e5602300f2b2d0cefaa98462d8ef728a179cd + sha256: 4be2d211751482c7d8618be6974a69ec711c9d9f55e0739e277bd41c6194cb05 build: noarch: python From 5c375c964b03c67fa3f9a86859f3ff0928565f17 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 11 Sep 2024 17:50:59 -0400 Subject: [PATCH 1477/1589] Update geofetch to 0.12.7 (#50644) --- recipes/geofetch/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/geofetch/meta.yaml b/recipes/geofetch/meta.yaml index bddae8d83699a..fcbc65091e017 100644 --- a/recipes/geofetch/meta.yaml +++ b/recipes/geofetch/meta.yaml @@ -1,5 +1,5 @@ {% set name = "geofetch" %} -{% set version = "0.12.6" %} +{% set version = "0.12.7" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 7ce07c05bad3f18b6f44b79579342604c2b56890e1dec293373b462bf06690b6 + sha256: c7820852dcb5a619a510616b0ca80f402a6a2a60f95d081ea7e174b387ec3e36 build: number: 0 From db563a52edbcc03ac9b1c39ab424c9f7cdcb07b0 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 11 Sep 2024 17:52:13 -0400 Subject: [PATCH 1478/1589] Update methylmap to 0.5.2 (#50645) --- recipes/methylmap/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/methylmap/meta.yaml b/recipes/methylmap/meta.yaml index 1d83aad842419..900f461f24f4f 100644 --- a/recipes/methylmap/meta.yaml +++ b/recipes/methylmap/meta.yaml @@ -1,5 +1,5 @@ {% set name = "methylmap" %} -{% set version = "0.5.1" %} +{% set version = "0.5.2" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 74c66ccf9c6122bae6a5368e78f0a3cf773a1c0578c9c68084738f0f4b4febd2 + sha256: da4b8afc7389f4e79cf4fad10daed972a14c7feb4f91bfcb56512770ac0b52c4 build: number: 0 From 26bf7d9dcb17e4d4ec1cd15e6747870ac33428da Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 11 Sep 2024 20:07:24 -0400 Subject: [PATCH 1479/1589] Update abyss to 2.3.9 (#50646) --- recipes/abyss/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/abyss/meta.yaml b/recipes/abyss/meta.yaml index 0d927ebfebd75..813b1133e843f 100644 --- a/recipes/abyss/meta.yaml +++ b/recipes/abyss/meta.yaml @@ -1,18 +1,18 @@ {% set name = "abyss" %} -{% set version = "2.3.8" %} +{% set version = "2.3.9" %} package: name: {{ name|lower }} version: {{ version }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage(name, max_pin="x") }} source: url: https://github.com/bcgsc/abyss/releases/download/{{ version }}/abyss-{{ version }}.tar.gz - sha256: 3c262269043f619c79ec3dcd91f5595cb141229f9a13d1a76a952b9a0bfb0d84 + sha256: 55f0b27b67b4486dc6cbe132c0f4c228ee4f9e86c56292a7b50633df87e3212e patches: - config.patch From 74f604a11383f7a8c9260c84345c76bf295d40ee Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Wed, 11 Sep 2024 23:00:07 -0700 Subject: [PATCH 1480/1589] Add sam2pairwise (#50637) * Add sam2pairwise * Add patch for makefile * Remove make from run --- recipes/sam2pairwise/build.sh | 7 ++++++ recipes/sam2pairwise/meta.yaml | 39 ++++++++++++++++++++++++++++++++++ recipes/sam2pairwise/patch.txt | 10 +++++++++ 3 files changed, 56 insertions(+) create mode 100644 recipes/sam2pairwise/build.sh create mode 100644 recipes/sam2pairwise/meta.yaml create mode 100644 recipes/sam2pairwise/patch.txt diff --git a/recipes/sam2pairwise/build.sh b/recipes/sam2pairwise/build.sh new file mode 100644 index 0000000000000..4d70a6638a306 --- /dev/null +++ b/recipes/sam2pairwise/build.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +mkdir -p $PREFIX/bin + +cd src +make CC=$CXX CXX=$CXX +cp sam2pairwise $PREFIX/bin diff --git a/recipes/sam2pairwise/meta.yaml b/recipes/sam2pairwise/meta.yaml new file mode 100644 index 0000000000000..fd0995c223f9b --- /dev/null +++ b/recipes/sam2pairwise/meta.yaml @@ -0,0 +1,39 @@ +{% set name = "sam2pairwise" %} +{% set version = "1.0.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +build: + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} + +source: + url: https://github.com/mlafave/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz + sha256: 899d3db071cc248870bbedbdb39784de4c54c9a7888bc408022e809ace47ec0e + patches: + - patch.txt + +requirements: + build: + - {{ compiler('cxx') }} + - make + +test: + commands: + - sam2pairwise --version + +about: + home: https://github.com/mlafave/sam2pairwise + license: MIT + license_file: LICENSE + summary: 'sam2pairwise takes a SAM file and uses the CIGAR and MD tag to reconstruct the pairwise alignment of each read' + doc_url: https://github.com/mlafave/sam2pairwise/blob/master/README.md + dev_url: https://github.com/mlafave/sam2pairwise + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 diff --git a/recipes/sam2pairwise/patch.txt b/recipes/sam2pairwise/patch.txt new file mode 100644 index 0000000000000..35031e34c8af2 --- /dev/null +++ b/recipes/sam2pairwise/patch.txt @@ -0,0 +1,10 @@ +--- src/Makefile 2014-08-22 13:02:24.000000000 -0700 ++++ src/Makefile_new 2024-09-11 10:27:50.000000000 -0700 +@@ -1,5 +1,5 @@ +-CXX = g++ +-CC = g++ ++CXX ?= g++ ++CC ?= g++ + + sam2pairwise: sam2pairwise.o isolate_md.o shift_cigar.o shift_md.o translate_cigar.o translate_md.o + From fcae9017af8256e1dc55399a2bc33cb416704166 Mon Sep 17 00:00:00 2001 From: Konstantinn Bonnet <50845450+qwx9@users.noreply.github.com> Date: Thu, 12 Sep 2024 09:18:40 +0200 Subject: [PATCH 1481/1589] update strangepg (#50632) --- recipes/strangepg/meta.yaml | 6 +++--- recipes/strangepg/run_test.sh | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/recipes/strangepg/meta.yaml b/recipes/strangepg/meta.yaml index ed51626a06e44..fd79c9b8764a1 100644 --- a/recipes/strangepg/meta.yaml +++ b/recipes/strangepg/meta.yaml @@ -1,6 +1,6 @@ {% set name = "strangepg" %} -{% set version = "0.8.3" %} -{% set ref = "567ed9d583766ab7cdb4e28261c8a611334a7472" %} +{% set version = "0.8.4" %} +{% set ref = "f7112e4e3a43eef2e747df502a3a1e5e828f24de" %} package: name: {{ name }} @@ -8,7 +8,7 @@ package: source: url: https://github.com/qwx9/{{ name }}/archive/{{ ref }}.tar.gz - sha256: d33869f687fad3b8756565da727014a2cdf2dea3d7197816a8af1a8390e113cd + sha256: 08f1f22c40b8ab5a0cd92576e8b2cba5cf65726f5d0ddca286f9883a69c5d2e5 build: number: 0 diff --git a/recipes/strangepg/run_test.sh b/recipes/strangepg/run_test.sh index 1f8f7099292a5..0093b29f85b73 100644 --- a/recipes/strangepg/run_test.sh +++ b/recipes/strangepg/run_test.sh @@ -1,6 +1,6 @@ #!/bin/sh -e # https://github.com/bioconda/bioconda-recipes/pull/29042#issuecomment-864465780 -strpg -h 2>/dev/null -strpg /dev/mordor 2>/dev/null || [[ $? == 1 ]] +strangepg -h 2>/dev/null +strangepg /dev/mordor 2>/dev/null || [[ $? == 1 ]] echo | strawk -f cmd/main.awk From 1f0367c2d62d87369996d34e3085005b1a6a3acb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 12 Sep 2024 03:35:51 -0400 Subject: [PATCH 1482/1589] Update pastml to 1.9.48 (#50629) * Update pastml to 1.9.47 * Update pastml to 1.9.48 --- recipes/pastml/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pastml/meta.yaml b/recipes/pastml/meta.yaml index 18087182c28db..8dbd1a80f9a9e 100644 --- a/recipes/pastml/meta.yaml +++ b/recipes/pastml/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pastml" %} -{% set version = "1.9.46" %} +{% set version = "1.9.48" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: cf127cb64693edf587dc3472de87c876d6603cf2215ca7b0bdf4d879df6223ff + sha256: eb7821555498a0535e4a9a7415b2bdb98695cf85787380664886717f22f7e6d4 build: number: 0 From 5d74ede9e0002837f77a01e5b7a89f62791d0178 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 12 Sep 2024 03:42:53 -0400 Subject: [PATCH 1483/1589] Update r-mfassignr to 1.1.0 (#50638) * Update r-mfassignr to 1.1.0 * added gtools dependency --------- Co-authored-by: Helge Hecht --- recipes/r-mfassignr/meta.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/r-mfassignr/meta.yaml b/recipes/r-mfassignr/meta.yaml index c2d1902a1d541..864f0c3dcd2cf 100644 --- a/recipes/r-mfassignr/meta.yaml +++ b/recipes/r-mfassignr/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mfassignr" %} -{% set version = "1.0.3" %} +{% set version = "1.1.0" %} {% set github = "https://github.com/RECETOX" %} package: @@ -8,7 +8,7 @@ package: source: url: "{{ github }}/MFAssignR/archive/refs/tags/v{{ version }}.tar.gz" - sha256: facb0d53f39d25f7c8ea6a04d87d218a4bf3e72c4b0257f1c028f40f99962a22 + sha256: 01622b0b0662d9ffb7a504ffe7a833d70b5b276fdef40e06aa1d476dc32f6095 build: number: 0 @@ -27,12 +27,14 @@ requirements: - r-tidyr >=0.8.1 - r-ggplot2 >=3.0.0 - r-colorRamps >=2.3 + - r-gtools >=3.9.5 run: - r-base >=3.4.1 - r-dplyr >=0.7.6 - r-tidyr >=0.8.1 - r-ggplot2 >=3.0.0 - r-colorRamps >=2.3 + - r-gtools >=3.9.5 test: commands: From c13386557854c5cde868c3cab27464fe88901c29 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 12 Sep 2024 04:35:53 -0400 Subject: [PATCH 1484/1589] Update querynator to 0.5.5 (#50648) --- recipes/querynator/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/querynator/meta.yaml b/recipes/querynator/meta.yaml index d6936b6ac72d9..c8abd1a63d7bb 100644 --- a/recipes/querynator/meta.yaml +++ b/recipes/querynator/meta.yaml @@ -1,5 +1,5 @@ {% set name = "querynator" %} -{% set version = "0.5.4" %} +{% set version = "0.5.5" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 803aff3939b21ce35f92a1d39bd2c4db2f9a8cc1f96a409e939ef3bbeb1fbaf2 + sha256: 32536a2b03b8e7590f01dc7edea5af486a0ffc04126a7370dd1e10e2045357b1 build: number: 0 From a835b36b12a89018964ecb1f423698c18897a54f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 12 Sep 2024 04:40:43 -0400 Subject: [PATCH 1485/1589] Update methylmap to 0.5.3 (#50649) --- recipes/methylmap/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/methylmap/meta.yaml b/recipes/methylmap/meta.yaml index 900f461f24f4f..b3ef7a670cf72 100644 --- a/recipes/methylmap/meta.yaml +++ b/recipes/methylmap/meta.yaml @@ -1,5 +1,5 @@ {% set name = "methylmap" %} -{% set version = "0.5.2" %} +{% set version = "0.5.3" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: da4b8afc7389f4e79cf4fad10daed972a14c7feb4f91bfcb56512770ac0b52c4 + sha256: 80d1b7970fd88f85238c9adc4b2a0434b2d097d0c823c30439917af4cad3d3e1 build: number: 0 From cd6ad23001402682c73b2ceb93343e74854d6026 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 12 Sep 2024 04:41:09 -0400 Subject: [PATCH 1486/1589] Update flumutdb to 6.3 (#50650) --- recipes/flumutdb/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/flumutdb/meta.yaml b/recipes/flumutdb/meta.yaml index 61b8b678f0783..d344a18a237cf 100644 --- a/recipes/flumutdb/meta.yaml +++ b/recipes/flumutdb/meta.yaml @@ -1,5 +1,5 @@ {% set name = "flumutdb" %} -{% set version = "6.2" %} +{% set version = "6.3" %} package: name: {{ name|lower }} @@ -8,7 +8,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/flumutdb-{{ version }}.tar.gz - sha256: 7a604b2c2b0eeebf3dcb453b597d012bfed4d768821799c8b6598b2af3caf625 + sha256: a98b7eaf5c821129b8cdb9d740d00d9ecb87f5d6c253112de8105713c0e1a732 build: run_exports: From d16a346e5945375c4d3f493cb3f9846a0b43ee19 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 12 Sep 2024 06:18:09 -0400 Subject: [PATCH 1487/1589] Update r-mfassignr to 1.1.1 (#50653) --- recipes/r-mfassignr/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/r-mfassignr/meta.yaml b/recipes/r-mfassignr/meta.yaml index 864f0c3dcd2cf..421e7b81ce8ea 100644 --- a/recipes/r-mfassignr/meta.yaml +++ b/recipes/r-mfassignr/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mfassignr" %} -{% set version = "1.1.0" %} +{% set version = "1.1.1" %} {% set github = "https://github.com/RECETOX" %} package: @@ -8,7 +8,7 @@ package: source: url: "{{ github }}/MFAssignR/archive/refs/tags/v{{ version }}.tar.gz" - sha256: 01622b0b0662d9ffb7a504ffe7a833d70b5b276fdef40e06aa1d476dc32f6095 + sha256: 11d0c871871e52010978df0273221f95ccd21e950585e19a63d8b40ea23aebcb build: number: 0 From ebe5085af4c6604a0ec7e293ba649c74ed34efb2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 12 Sep 2024 06:35:03 -0400 Subject: [PATCH 1488/1589] Update checkqc to 4.0.5 (#50654) --- recipes/checkqc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/checkqc/meta.yaml b/recipes/checkqc/meta.yaml index 5eb9c3ce6caa5..4b0cb5b4016dd 100644 --- a/recipes/checkqc/meta.yaml +++ b/recipes/checkqc/meta.yaml @@ -1,6 +1,6 @@ {% set name = "checkQC" %} -{% set version = "4.0.4" %} -{% set sha256 = "26fdd9e649f25df757cacab2263b814df45cb2531e35850930df3c90183609cb" %} +{% set version = "4.0.5" %} +{% set sha256 = "f5ff8985baeb079d2e6731fbfebc0a26a2d14c752cdcddffd322b251053acd71" %} package: name: "{{ name|lower }}" From 07ffdd21af50e8d32ffcaa2e45956968e847fc98 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 12 Sep 2024 06:35:37 -0400 Subject: [PATCH 1489/1589] Update methylmap to 0.5.4 (#50655) --- recipes/methylmap/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/methylmap/meta.yaml b/recipes/methylmap/meta.yaml index b3ef7a670cf72..8278a62a0e8c6 100644 --- a/recipes/methylmap/meta.yaml +++ b/recipes/methylmap/meta.yaml @@ -1,5 +1,5 @@ {% set name = "methylmap" %} -{% set version = "0.5.3" %} +{% set version = "0.5.4" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 80d1b7970fd88f85238c9adc4b2a0434b2d097d0c823c30439917af4cad3d3e1 + sha256: 774fca972d16efbc1cce5b1f7a0b2876cb9526f24c6ba2e886a59f4006b11679 build: number: 0 From 0d85e00841c3f774b18b8b6c9acec98d81978745 Mon Sep 17 00:00:00 2001 From: Ekaterina Kazantseva <82141791+katerinakazantseva@users.noreply.github.com> Date: Thu, 12 Sep 2024 14:46:40 +0400 Subject: [PATCH 1490/1589] Update Strainy recipe (#50651) * add strainy_recipe * fix * fix * fix * fix * fix * fix * fix * remove build * fix * fix * fix * fix2 * fix2 * fix3 * Update meta.yaml * Update meta.yaml * Update meta.yaml * rm buid * add test * test * fix * Update meta.yaml * Update meta.yaml * Remove the Python version pinning * add minimap requirements * build n change --------- Co-authored-by: Martin Grigorov --- recipes/strainy/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/strainy/meta.yaml b/recipes/strainy/meta.yaml index 732d2067731b3..756fcdc9d5669 100644 --- a/recipes/strainy/meta.yaml +++ b/recipes/strainy/meta.yaml @@ -13,7 +13,7 @@ source: build: - number: 0 + number: 1 noarch: python script: {{ PYTHON }} -m pip install -vv . run_exports: @@ -27,6 +27,7 @@ requirements: - python >=3.8 - samtools >=1.14 - bcftools >=1.14 + - minimap2 - pygraphviz - matplotlib-base - biopython From a8e91155d1641825f625d8e260ba69114f2a6cbc Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 12 Sep 2024 14:55:46 -0400 Subject: [PATCH 1491/1589] Update recognizer to 1.11.0 (#50668) --- recipes/recognizer/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/recognizer/meta.yaml b/recipes/recognizer/meta.yaml index efcc7fb27632f..50ced48b7b6eb 100644 --- a/recipes/recognizer/meta.yaml +++ b/recipes/recognizer/meta.yaml @@ -1,6 +1,6 @@ {% set name = "recognizer" %} -{% set version = "1.10.1" %} -{% set sha256 = "1d97b521a5b8660e5dd1726c95b885bcdce53654d01a001d8e6522a9c76d81c2" %} +{% set version = "1.11.0" %} +{% set sha256 = "e34ef29584f6e49ea118d6e555aaa23872bb813170a96b84c5be54cffe76c45b" %} package: name: {{ name|lower }} From 734fbee515e5cc0c576d4cc751f614f9c91bf56c Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Thu, 12 Sep 2024 12:19:51 -0700 Subject: [PATCH 1492/1589] Update nanosim build (#50673) - adding missing (and newly added to bioconda) dependency sam2pairwise --- recipes/nanosim/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/nanosim/meta.yaml b/recipes/nanosim/meta.yaml index 01773a1c3858b..b5751d1998d61 100644 --- a/recipes/nanosim/meta.yaml +++ b/recipes/nanosim/meta.yaml @@ -11,7 +11,7 @@ source: build: noarch: generic - number: 1 + number: 2 run_exports: - {{ pin_subpackage('nanosim', max_pin="x") }} @@ -32,6 +32,7 @@ requirements: - genometools-genometools - regex - piecewise-regression + - sam2pairwise test: commands: From 63b10998a2f5f6794e440246d9b4b7676fcfbe90 Mon Sep 17 00:00:00 2001 From: Jover Lee Date: Thu, 12 Sep 2024 12:20:42 -0700 Subject: [PATCH 1493/1589] Update Auspice version (#50672) See changelog on [Auspice release page](https://github.com/nextstrain/auspice/releases/tag/v2.58.0). --- recipes/auspice/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/auspice/meta.yaml b/recipes/auspice/meta.yaml index 86f89502075df..ee058b1597a18 100644 --- a/recipes/auspice/meta.yaml +++ b/recipes/auspice/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.57.0" %} +{% set version = "2.58.0" %} {% set name = "auspice" %} package: @@ -7,7 +7,7 @@ package: source: url: https://registry.npmjs.org/{{ name }}/-/{{ name }}-{{ version }}.tgz - sha256: b959564d5249334f590081f2d273ae9a775652cb21f9e57175f5a6ba86d43473 + sha256: cb746010b28de5d0232258113820c551f6f4287e5b0ff67a1e5854adc381ac96 build: number: 0 @@ -46,7 +46,7 @@ about: extra: identifiers: # Generic Nextstrain paper, for lack of specific Auspice one - - doi:10.1093/bioinformatics/bty407 + - doi:10.1093/bioinformatics/bty407 additional-platforms: - linux-aarch64 - osx-arm64 From c3d2585f13b61883a44ca0fd0d1f32e27d099e4f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 12 Sep 2024 15:21:14 -0400 Subject: [PATCH 1494/1589] Update dysgu to 1.6.7 (#50660) --- recipes/dysgu/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/dysgu/meta.yaml b/recipes/dysgu/meta.yaml index a1a09caab84af..7b51ba6e19580 100644 --- a/recipes/dysgu/meta.yaml +++ b/recipes/dysgu/meta.yaml @@ -1,6 +1,6 @@ {% set name = "dysgu" %} -{% set version = "1.6.6" %} -{% set sha256hash = "cabc54afc88c8a855f79067bdeddc089d99ec91a4e4fe21fd18f42962d0d6a6d" %} +{% set version = "1.6.7" %} +{% set sha256hash = "918eed7bf70e7033994212c5e3cab65c7c6a8ddd566ecde470241ddd7429fca2" %} package: name: {{ name|lower }} From d1d8432727ccca69326e48a306604c92fba38034 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 12 Sep 2024 16:40:47 -0400 Subject: [PATCH 1495/1589] Update htslib to 1.21 (#50665) Also work around old sysroot_linux-aarch64 issue in new htslib/simd.c Co-authored-by: John Marshall --- recipes/htslib/arm_hwcap.patch | 11 +++++++++++ recipes/htslib/meta.yaml | 6 +++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/recipes/htslib/arm_hwcap.patch b/recipes/htslib/arm_hwcap.patch index 40733dcc33b1d..1cd80981b78cf 100644 --- a/recipes/htslib/arm_hwcap.patch +++ b/recipes/htslib/arm_hwcap.patch @@ -2,6 +2,17 @@ Conda-forge's build environment on ARM uses sysroot_linux-aarch64 2.17, which is based on glibc 2.17 so does not define HWCAP_* values on ARM. Work around this by including the kernel header to get the desired values. +--- a/simd.c 2024-09-13 07:59:23.644080046 +1200 ++++ b/simd.c 2024-09-13 07:59:47.788059051 +1200 +@@ -44,6 +44,8 @@ + + #if defined __linux__ || defined __FreeBSD__ + #include ++// Ensure ARM HWCAP_* values are defined even on old glibc ++#include + #elif defined __APPLE__ + #include + #include --- a/htscodecs/htscodecs/rANS_static4x16pr.c 2023-10-10 02:54:16 +++ b/htscodecs/htscodecs/rANS_static4x16pr.c 2024-03-06 00:01:14 @@ -1030,6 +1030,8 @@ diff --git a/recipes/htslib/meta.yaml b/recipes/htslib/meta.yaml index a55e02f67f3a3..cde0c1dcfbca3 100644 --- a/recipes/htslib/meta.yaml +++ b/recipes/htslib/meta.yaml @@ -1,17 +1,17 @@ -{% set version = "1.20" %} +{% set version = "1.21" %} package: name: htslib version: {{ version }} build: - number: 2 + number: 0 run_exports: - {{ pin_subpackage('htslib', max_pin='x.x') }} source: url: https://github.com/samtools/htslib/releases/download/{{ version }}/htslib-{{ version }}.tar.bz2 - sha256: e52d95b14da68e0cfd7d27faf56fef2f88c2eaf32a2be51c72e146e3aa928544 + sha256: 84b510e735f4963641f26fd88c8abdee81ff4cb62168310ae716636aac0f1823 patches: - arm_hwcap.patch From def3a07b68330abb40f7650b3747b8bee189ab66 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 12 Sep 2024 17:11:59 -0400 Subject: [PATCH 1496/1589] Update microhapulator to 0.8.1 (#50677) --- recipes/microhapulator/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/microhapulator/meta.yaml b/recipes/microhapulator/meta.yaml index 311ce5aa3802a..ab9259819f12b 100644 --- a/recipes/microhapulator/meta.yaml +++ b/recipes/microhapulator/meta.yaml @@ -1,6 +1,6 @@ {% set name = "microhapulator" %} -{% set version = "0.8" %} -{% set sha256 = "7415985d6dc7147bec0cf97e1bdf707d72033ccc3fdd0a1c332014da637d35fe" %} +{% set version = "0.8.1" %} +{% set sha256 = "c0bb85f611211fa305f4cbc6f11877af901b7195f99e1379cb616710fee0555c" %} package: name: {{ name }} @@ -25,7 +25,6 @@ requirements: - pip run: - biopython - - bwa >=0.7.17 - fastqc >=0.11.9 - flash >=1.2 - happer >=0.1 @@ -33,6 +32,7 @@ requirements: - jsonschema >=4.0 - matplotlib-base >=3.0 - microhapdb >=0.10.1 + - minimap2 >=2.25 - multiqc >=1.14 - nbformat >=5.0,<5.6 - numpy >=1.19 From 9c90ede007e46071158dcdc4ff17ef277295d526 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 12 Sep 2024 17:43:07 -0400 Subject: [PATCH 1497/1589] Update samtools to 1.21 (#50664) --- recipes/samtools/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/samtools/meta.yaml b/recipes/samtools/meta.yaml index 4b3fddd767dd0..e0a4803383159 100644 --- a/recipes/samtools/meta.yaml +++ b/recipes/samtools/meta.yaml @@ -1,17 +1,17 @@ -{% set version = "1.20" %} +{% set version = "1.21" %} package: name: samtools version: {{ version }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage("samtools", max_pin="x") }} source: url: https://github.com/samtools/samtools/releases/download/{{ version }}/samtools-{{ version }}.tar.bz2 - sha256: c71be865e241613c2ca99679c074f1a0daeb55288af577db945bdabe3eb2cf10 + sha256: 05724b083a6b6f0305fcae5243a056cc36cf826309c3cb9347a6b89ee3fc5ada requirements: build: From 1c6ecbe77eb197cd6863662470d33150e4f4f0e2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 12 Sep 2024 18:21:42 -0400 Subject: [PATCH 1498/1589] Update bcftools to 1.21 (#50666) --- recipes/bcftools/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/bcftools/meta.yaml b/recipes/bcftools/meta.yaml index 61846b556ed34..c2d6bc3961469 100644 --- a/recipes/bcftools/meta.yaml +++ b/recipes/bcftools/meta.yaml @@ -1,17 +1,17 @@ -{% set version="1.20" %} +{% set version="1.21" %} package: name: bcftools version: {{ version }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage("bcftools", max_pin="x") }} source: url: https://github.com/samtools/bcftools/releases/download/{{ version }}/bcftools-{{ version }}.tar.bz2 - sha256: 312b8329de5130dd3a37678c712951e61e5771557c7129a70a327a300fda8620 + sha256: 528a4cc1d3555368db75a700b22a3c95da893fd1827f6d304716dfd45ea4e282 requirements: build: From 105baa008db9bb24a48a58d425e3d315db28bf75 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 12 Sep 2024 19:41:29 -0400 Subject: [PATCH 1499/1589] Update metabolights-utils to 1.1.7 (#50679) --- recipes/metabolights-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/metabolights-utils/meta.yaml b/recipes/metabolights-utils/meta.yaml index b9c5b5350e56a..6cc16d573f5ea 100644 --- a/recipes/metabolights-utils/meta.yaml +++ b/recipes/metabolights-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "metabolights-utils" %} -{% set version = "1.1.6" %} +{% set version = "1.1.7" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/metabolights_utils-{{ version }}.tar.gz - sha256: c00e5cb8b51f9b79da7806345721a510f91c2b8ff0fa219be5405e5f9b9aaaa2 + sha256: 60f7fab3622aaf05bcd14da40b7aa5a77ec97505bc0692e1cef445d24438f501 build: entry_points: From 53f32745e40dbd1fdc7c74d1dad482171993a736 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 12 Sep 2024 19:41:51 -0400 Subject: [PATCH 1500/1589] Update jbrowse2 to 2.15.1 (#50671) --- recipes/jbrowse2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/jbrowse2/meta.yaml b/recipes/jbrowse2/meta.yaml index 404699a6d0316..a0480822b3d1e 100644 --- a/recipes/jbrowse2/meta.yaml +++ b/recipes/jbrowse2/meta.yaml @@ -1,12 +1,12 @@ # When updating, check the @jbrowse/cli version in build.sh too -{% set version = "2.15.0" %} +{% set version = "2.15.1" %} package: name: jbrowse2 version: {{ version }} source: - sha256: 9ff07be887c15d8f241f97fa537d62829d4f75f9dc0aaeda82f14ed4098f67b8 + sha256: bce0b5dba2dbbd4fa6d6f909865a18290c5878870304eb539ece90f2e882a4ef url: https://github.com/GMOD/jbrowse-components/releases/download/v{{ version }}/jbrowse-web-v{{ version }}.zip build: From ea37209ea1b5abccfbe1394e62e437c3070c02ef Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 12 Sep 2024 19:42:14 -0400 Subject: [PATCH 1501/1589] Update irescue to 1.1.2 (#50670) * Update irescue to 1.1.2 * Drop python 3.7 --------- Co-authored-by: Benedetto Polimeni <34317613+bepoli@users.noreply.github.com> --- recipes/irescue/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/irescue/meta.yaml b/recipes/irescue/meta.yaml index 1ff27acd14332..009fc1d48346a 100644 --- a/recipes/irescue/meta.yaml +++ b/recipes/irescue/meta.yaml @@ -1,5 +1,5 @@ {% set name = "irescue" %} -{% set version = "1.1.1" %} +{% set version = "1.1.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/irescue-{{ version }}.tar.gz - sha256: 84c2d4a0e7322a4dc89d5c14d7e34f028cd1f56a8aacdb3d805b8da02c4c4fc5 + sha256: 49a47a8859b3435cc94b171625c8c8c3b7bd7026498a0fd616dd48adb511e38c build: noarch: python @@ -20,10 +20,10 @@ build: requirements: host: - - python >=3.7 + - python >=3.8 - pip run: - - python >=3.7 + - python >=3.8 - numpy >=1.20.2 - requests >=2.27.1 - gawk >=5.0.1 From b5f895f015eecbd80c5ff174ad34cd7317255d31 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 12 Sep 2024 19:44:19 -0400 Subject: [PATCH 1502/1589] Update micom to 0.37.0 (#50662) --- recipes/micom/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/micom/meta.yaml b/recipes/micom/meta.yaml index d1e2706fe4be5..b3ba642623eec 100644 --- a/recipes/micom/meta.yaml +++ b/recipes/micom/meta.yaml @@ -1,5 +1,5 @@ {% set name = "micom" %} -{% set version = "0.36.4" %} +{% set version = "0.37.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: d7db4035fd8f70ab4d1b424206bada1c3dc25a64ca3ac2be893f6f69d3f91e2d + sha256: 26539e8243f6b2366f266f8d4af78a3312d70d815fb1a8f00a5cc64be86d5b82 build: number: 0 From fe6364b03cdc1ebdaefa7fd4247fb395002e7575 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 12 Sep 2024 19:44:30 -0400 Subject: [PATCH 1503/1589] Update gencove to 2.20.2 (#50663) --- recipes/gencove/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gencove/meta.yaml b/recipes/gencove/meta.yaml index 4649cd2a3103b..1783439bff438 100644 --- a/recipes/gencove/meta.yaml +++ b/recipes/gencove/meta.yaml @@ -1,6 +1,6 @@ {% set name = "gencove" %} -{% set version = "2.20.1" %} -{% set sha256 = "78a8d24819def42643c16981c23f68d305321982be035d90274a6f190be54a9d" %} +{% set version = "2.20.2" %} +{% set sha256 = "992f92ee304c29b3ef5d4c5f3381fcb68557f94bc373b6e9f2e20906a437ff96" %} package: name: {{ name }} From ce61e839b86883cd9b069bb1c13c72d7ab6ac48d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 12 Sep 2024 19:44:45 -0400 Subject: [PATCH 1504/1589] Update gw to 1.1.0 (#50667) --- recipes/gw/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/gw/meta.yaml b/recipes/gw/meta.yaml index 562f04150aa38..decc50a9fcd20 100644 --- a/recipes/gw/meta.yaml +++ b/recipes/gw/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.0.3" %} -{% set sha256 = "7247a8ec9efb7ebcd9566f6a3759520ee87f305efc91c8ce658307308ee6368a" %} +{% set version = "1.1.0" %} +{% set sha256 = "dc96521b8252bde02d9cc68bb3cee156c0469889d2783ee72682338d10657892" %} package: name: gw @@ -13,7 +13,7 @@ source: - fix-context.patch build: - number: 2 + number: 0 run_exports: - {{ pin_subpackage('gw', max_pin="x") }} ignore_run_exports: From f37d8cb50ecf95d8ac537663f9d257c7cd5f160e Mon Sep 17 00:00:00 2001 From: Remi-Andre Olsen Date: Fri, 13 Sep 2024 06:24:59 +0200 Subject: [PATCH 1505/1589] Update anglerfish to 0.7.0 (#50656) --- recipes/anglerfish/meta.yaml | 17 +++++++++-------- recipes/anglerfish/requirements.txt | 5 +++-- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/recipes/anglerfish/meta.yaml b/recipes/anglerfish/meta.yaml index d15537aa287a2..d8fccb5046b12 100644 --- a/recipes/anglerfish/meta.yaml +++ b/recipes/anglerfish/meta.yaml @@ -1,36 +1,37 @@ {% set name = "anglerfish" %} -{% set version = "0.6.1" %} +{% set version = "0.7.0" %} package: name: "{{ name|lower }}" version: "{{ version }}" source: - url: "https://pypi.io/packages/source/b/bio-{{ name }}/bio-{{ name }}-{{ version }}.tar.gz" - sha256: 91a62cbbc388009bd503df0d3f64441c0e86ab377da46f721f5fcf82b9cce331 + url: "https://pypi.io/packages/source/b/bio-{{ name }}/bio_{{ name }}-{{ version }}.tar.gz" + sha256: f756fbc32a55cc98b2fd5e315f503bdebe52d85cc36eb3d12771d0deb2fce846 build: number: 0 noarch: python script: "cp ${RECIPE_DIR}/requirements.txt ${SRC_DIR} && {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv" entry_points: - - anglerfish=anglerfish.anglerfish:anglerfish + - anglerfish=anglerfish.cli:app run_exports: - {{ pin_subpackage('anglerfish', max_pin="x.x") }} requirements: host: - pip - - python >=3.7 + - python >=3.12 run: - biopython - - click - minimap2 - numpy - pandas - - python >=3.7 + - python >=3.12 - python-levenshtein - pyyaml + - typer + - typing_extensions test: imports: @@ -42,7 +43,7 @@ test: - anglerfish --help about: - home: "https://github.com/remiolsen/anglerfish" + home: "https://github.com/NationalGenomicsInfrastructure/anglerfish" license: MIT license_family: MIT summary: "Anglerfish, a tool to demultiplex Illumina libraries from ONT data" diff --git a/recipes/anglerfish/requirements.txt b/recipes/anglerfish/requirements.txt index db39464867253..0dfb12778f82a 100644 --- a/recipes/anglerfish/requirements.txt +++ b/recipes/anglerfish/requirements.txt @@ -1,6 +1,7 @@ biopython==1.83 -click==8.1.7 levenshtein==0.23.0 numpy==1.26.3 pandas==2.1.4 -pyyaml==6.0.1 \ No newline at end of file +pyyaml==6.0.1 +typer==0.9.0 +typing_extensions==4.12.2 \ No newline at end of file From 02dbd6f8de943b082d5a3d874bcee93fa674cffa Mon Sep 17 00:00:00 2001 From: "UENO, M." Date: Fri, 13 Sep 2024 13:26:04 +0900 Subject: [PATCH 1506/1589] Adding US-align v2024.07.30 (#50635) --- recipes/usalign/build.sh | 26 +++++++++++++++++++ recipes/usalign/meta.yaml | 53 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 recipes/usalign/build.sh create mode 100644 recipes/usalign/meta.yaml diff --git a/recipes/usalign/build.sh b/recipes/usalign/build.sh new file mode 100644 index 0000000000000..e7c2ff701f28e --- /dev/null +++ b/recipes/usalign/build.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +set -exo pipefail + +readonly PROGRAMS=( + qTMclust + USalign + TMalign + TMscore + MMalign + se + pdb2xyz + xyz_sfetch + pdb2fasta + pdb2ss + NWalign + HwRMSD + cif2pdb + pdbAtomName + addChainID +) + +make -j${CPU_COUNT} CC="${CXX}" LDFLAGS="-lm" + +install -d "${PREFIX}/bin" +install -m 755 "${PROGRAMS[@]}" "${PREFIX}/bin/" diff --git a/recipes/usalign/meta.yaml b/recipes/usalign/meta.yaml new file mode 100644 index 0000000000000..b3e5a789aa3d8 --- /dev/null +++ b/recipes/usalign/meta.yaml @@ -0,0 +1,53 @@ +{% set name = "US-align" %} +{% set version = "2024.07.30" %} + +package: + name: {{ name|lower|replace("-", "") }} + version: {{ version }} + +source: + url: https://github.com/eunos-1128/{{ name|lower|replace("-", "") }}/archive/refs/tags/v{{ version }}.tar.gz + sha256: 21b510507e9258c1a2e03c6d32680282981a54e27778a3f3f739861ca7c7b38a + +build: + number: 0 + run_exports: + - {{ pin_subpackage(name|lower|replace("-", ""), max_pin=None) }} + +requirements: + build: + - {{ compiler("c") }} + - {{ compiler("cxx") }} + - make + +test: + commands: + - USalign -h + +about: + home: https://zhanggroup.org/{{ name }} + dev_url: https://github.com/pylelab/{{ name|replace("-", "") }} + doc_url: https://zhanggroup.org/{{ name }}/help + summary: "Universal structure alignment of monomeric, complex proteins and nucleic acids" + description: | + US-align (Universal Structural alignment) is a unified protocol + to compare 3D structures of different macromolecules (proteins, RNAs and DNAs) + in different forms (monomers, oligomers and heterocomplexes) + for both pairwise and multiple structure alignments. + The core alogrithm of US-align is extended from TM-align and generates optimal structural alignments + by maximizing TM-score of compared strucures through heuristic dynamic programming iterations. + Large-scale benchmark tests showed that US-align can generate more accurate structural alignments + with significantly reduced CPU time, compared to the state-of-the-art methods developed + for specific structural alignment tasks. + TM-score has values in (0,1] with 1 indicating an identical structure match, + where a TM-score ≥0.5 (or 0.45) means the structures share the same global topology for proteins (or RNAs). + license: UNKNOWN + license_family: OTHER + license_file: LICENSE + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 + recipe-maintainers: + - eunos-1128 From 96560de09a0dc42e6a0e9e9c1a85e67625201d81 Mon Sep 17 00:00:00 2001 From: mzytnicki <34034101+mzytnicki@users.noreply.github.com> Date: Fri, 13 Sep 2024 06:36:34 +0200 Subject: [PATCH 1507/1589] Update srnamapper to 1.0.9 (#50659) --- recipes/srnamapper/meta.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/recipes/srnamapper/meta.yaml b/recipes/srnamapper/meta.yaml index 70a63aa2fddb7..ad4531ab2d7c8 100644 --- a/recipes/srnamapper/meta.yaml +++ b/recipes/srnamapper/meta.yaml @@ -1,16 +1,18 @@ {% set name = "srnaMapper" %} -{% set version = "1.0.8" %} +{% set version = "1.0.9" %} package: name: {{ name|lower }} version: {{ version }} build: - number: 2 + number: 0 + run_exports: + - {{ pin_subpackage(name|lower, max_pin="x") }} source: url: https://github.com/mzytnicki/srnaMapper/archive/refs/tags/{{ version }}.tar.gz - sha256: 389fb960add27a3cfef5d52329711976ff7954cbca589f4c67f60f66bd64ce2a + sha256: 53560677180dfa4c292dba233806cd347cf51fe7893337eb15a9bb15646ff440 requirements: build: From 6e18b8a441bf6142f14575ecbd25d804e17ce6e5 Mon Sep 17 00:00:00 2001 From: "UENO, M." Date: Fri, 13 Sep 2024 13:39:09 +0900 Subject: [PATCH 1508/1589] Adding MAXIT v11.200 (#50461) --- recipes/maxit/build.sh | 33 ++++++++++++++++++++ recipes/maxit/meta.yaml | 53 +++++++++++++++++++++++++++++++++ recipes/maxit/platform.sh.patch | 50 +++++++++++++++++++++++++++++++ 3 files changed, 136 insertions(+) create mode 100644 recipes/maxit/build.sh create mode 100644 recipes/maxit/meta.yaml create mode 100644 recipes/maxit/platform.sh.patch diff --git a/recipes/maxit/build.sh b/recipes/maxit/build.sh new file mode 100644 index 0000000000000..ba58162b48c94 --- /dev/null +++ b/recipes/maxit/build.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +set -exo pipefail + +# Disable parallel build +export CPU_COUNT=1 + +export RCSBROOT="${SRC_DIR}" + +# To pass CI test on Linux-x86_64 platform +if [[ "$(uname -s)" == "Linux" && "$(uname -m)" == "x86_64" ]]; then + ulimit -v 2097152 +fi + +ln -s "${CC_FOR_BUILD}" "${BUILD_PREFIX}/bin/gcc" +ln -s "${CXX_FOR_BUILD}" "${BUILD_PREFIX}/bin/g++" + +cd ${SRC_DIR}/maxit-v10.1/src && \ +sed -i.bak "s|rcsbroot = getenv(\"RCSBROOT\")|rcsbroot = \"${RCSBROOT}\"|g" maxit.C process_entry.C generate_assembly_cif_file.C + +cd "${SRC_DIR}/cifparse-obj-v7.0" && sed -i.bak 's|mv |cp |g' Makefile +cd "${SRC_DIR}" && sed -i.bak "s|./data/binary|${RCSBROOT}/data/binary|g" binary.sh +cd "${SRC_DIR}" && make binary -j${CPU_COUNT} + +unlink "${BUILD_PREFIX}/bin/gcc" +unlink "${BUILD_PREFIX}/bin/g++" + +install -d "${PREFIX}/bin" +install ${SRC_DIR}/bin/* "${PREFIX}/bin" + +install -d "${PREFIX}/data" +find "${SRC_DIR}/data" -type d -exec install -d "${PREFIX}/data/{}" \; +find "${SRC_DIR}/data" -type f -exec install -m 644 "{}" "${PREFIX}/data/{}" \; diff --git a/recipes/maxit/meta.yaml b/recipes/maxit/meta.yaml new file mode 100644 index 0000000000000..6ad2a788c5d33 --- /dev/null +++ b/recipes/maxit/meta.yaml @@ -0,0 +1,53 @@ +{% set name = "MAXIT" %} +{% set version = "11.200" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://sw-tools.rcsb.org/apps/{{ name }}/{{ name|lower }}-v{{ version }}-prod-src.tar.gz + sha256: 658e236c6310cf7e55218a0500f82050ef86074f5d5b3f61d2a161b04a38cc39 + patches: + - platform.sh.patch # [osx] + +build: + number: 0 + run_exports: + - {{ pin_subpackage(name|lower, max_pin="x") }} + +requirements: + build: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + - make + - bison + - flex + - coreutils + +test: + commands: + - output=$(maxit 2>&1 || true) && echo ${output} | grep -q 'maxit -input inputfile' + +about: + home: https://sw-tools.rcsb.org/apps/MAXIT + doc_url: https://sw-tools.rcsb.org/apps/MAXIT/README-source + license: "RCSB PDB Software License" + license_family: OTHER + summary: "MAXIT assists in the processing and curation of macromolecular structure data." + description: | + MAXIT assists in the processing and curation of macromolecular structure data. MAXIT can: + - Read and write PDB and mmCIF format files, and translate between file formats. + - Perform consistency checks on coordinates, sequence, and crystal data. + - Automatically construct, transform, and merge information between formats + - Align residue numbering in the coordinates with the sequence + - Reorder and rename atoms in standard and nonstandard residues and ligands according to the Chemical Component Dictionary + - Assign ligands the same chain IDs as the adjacent polymers + - Detect missing or additional atoms + +extra: + recipe-maintainers: + - eunos-1128 + additional-platforms: + - linux-aarch64 + - osx-arm64 diff --git a/recipes/maxit/platform.sh.patch b/recipes/maxit/platform.sh.patch new file mode 100644 index 0000000000000..4cedc77a96aae --- /dev/null +++ b/recipes/maxit/platform.sh.patch @@ -0,0 +1,50 @@ +diff --git a/etc/platform.sh b/etc/platform.sh +index 1607685..e5f3573 100755 +--- a/etc/platform.sh ++++ b/etc/platform.sh +@@ -6,7 +6,7 @@ + # Copy the platform specific section of the Makefile in + # the current directory to: + # +-# Makefile.platform. ++# Makefile.platform. + # + # + sysid="unknown" +@@ -29,10 +29,10 @@ case $(uname -s) in + + # Check if it is a Mac OS platform + Darwin) +-# First check if it is clang-xxxx +- clang_ver=$(gcc --version | grep -e "clang-") ++# First check if it is clang ++ clang_ver=$(clang --version | grep -e "clang version") + if [ ! -z "$clang_ver" ] +- then ++ then + sysid="darwin4" + else + # Check if it is GCC version 4.x +@@ -61,7 +61,7 @@ case $(uname -s) in + # It is GCC version 4.x + sysid="darwin4" + fi +- fi ++ fi + ;; + + # Check if it is a Linux platform +@@ -85,11 +85,11 @@ case $(uname -s) in + fi + # + if [ -z "$gcc_ver" ] +- then ++ then + # Check if it is GCC version 5.x + gcc_ver=$(gcc --version | grep -e " 5\.") + if [ -z "$gcc_ver" ] +- then ++ then + # If not GCC version 5.x + gcc_ver=$(gcc --version | grep -e " 4\.") + if [ -z "$gcc_ver" ] From 6109e199d5c9f25bbb94785908014ab7b513753d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ant=C3=B4nio=20Camargo?= Date: Thu, 12 Sep 2024 21:42:15 -0700 Subject: [PATCH 1509/1589] Change geNomad's `run_exports` `max_pin` (#50676) --- recipes/genomad/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/genomad/meta.yaml b/recipes/genomad/meta.yaml index 206a6bcb905ee..b51cf838f00c0 100644 --- a/recipes/genomad/meta.yaml +++ b/recipes/genomad/meta.yaml @@ -10,13 +10,13 @@ source: sha256: 631599f9fea8ea8d07bdc9334e0fc328aed1274968da78f6f5854c0146022233 build: - number: 1 + number: 2 noarch: python script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" entry_points: - genomad=genomad.cli:cli run_exports: - - {{ pin_subpackage("genomad", max_pin="x") }} + - {{ pin_subpackage("genomad", max_pin=None) }} requirements: host: From 74ee222c0915985725cebd0cb6b8ca687e8d8b6a Mon Sep 17 00:00:00 2001 From: John Marshall Date: Fri, 13 Sep 2024 16:49:09 +1200 Subject: [PATCH 1510/1589] Bump bioconda-repodata-patches for new htslib release (#50680) --- recipes/bioconda-repodata-patches/gen_patch_json.py | 2 +- recipes/bioconda-repodata-patches/meta.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/bioconda-repodata-patches/gen_patch_json.py b/recipes/bioconda-repodata-patches/gen_patch_json.py index a6413dcc044c4..34c0225e0f599 100755 --- a/recipes/bioconda-repodata-patches/gen_patch_json.py +++ b/recipes/bioconda-repodata-patches/gen_patch_json.py @@ -169,7 +169,7 @@ def _gen_new_index(repodata, subdir): if has_dep(record, 'htslib'): # skip deps prior to 1.10, which was the first with soversion 3 # TODO adjust replacement (exclusive) upper bound with each new compatible HTSlib - _pin_looser(fn, record, 'htslib', min_lower_bound='1.10', upper_bound='1.21') + _pin_looser(fn, record, 'htslib', min_lower_bound='1.10', upper_bound='1.22') # future libdeflate versions are compatible until they bump their soversion; relax dependencies accordingly if record_name in ['htslib', 'staden_io_lib', 'fastp', 'pysam'] and has_dep(record, 'libdeflate'): diff --git a/recipes/bioconda-repodata-patches/meta.yaml b/recipes/bioconda-repodata-patches/meta.yaml index dfacdaf368a45..0610ed44e66ce 100644 --- a/recipes/bioconda-repodata-patches/meta.yaml +++ b/recipes/bioconda-repodata-patches/meta.yaml @@ -1,6 +1,6 @@ package: name: bioconda-repodata-patches - version: 20240805 # ensure that this is the "current" date, and always higher than the latest version in master + version: 20240913 # ensure that this is the "current" date, and always higher than the latest version in master source: path: . From 5345e98df7c3caa33895f2b5dd1ff8cce73a0ded Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ant=C3=B4nio=20Camargo?= Date: Thu, 12 Sep 2024 21:52:08 -0700 Subject: [PATCH 1511/1589] Add `goalign` and `gotree` as dependencies for `bioconvert` (#50674) --- recipes/bioconvert/meta.yaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/recipes/bioconvert/meta.yaml b/recipes/bioconvert/meta.yaml index c8ce7d429faf8..1894031152828 100644 --- a/recipes/bioconvert/meta.yaml +++ b/recipes/bioconvert/meta.yaml @@ -11,13 +11,15 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 noarch: python script: {{ PYTHON }} -m pip install . --no-deps --use-pep517 -vv entry_points: - bioconvert=bioconvert.scripts.converter:main - bioconvert_init=bioconvert.scripts.init_convert:main - bioconvert_stats=bioconvert.scripts.stats:main + run_exports: + - {{ pin_subpackage("bioconvert", max_pin="x.x") }} requirements: host: @@ -31,6 +33,8 @@ requirements: - colorlog - deeptools - gffread + - goalign + - gotree - pandas - biopython >=1.70 - mappy From e145087ee973e1ed58a913d2dc5e1c366dd14450 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ant=C3=B4nio=20Camargo?= Date: Thu, 12 Sep 2024 22:00:24 -0700 Subject: [PATCH 1512/1589] Include `reformat.pl` in the `hhsuite` recipe (#50684) --- recipes/hhsuite/build.sh | 3 + recipes/hhsuite/meta.yaml | 5 +- recipes/hhsuite/reformat_pl.patch | 151 ++++++++++++++++++++++++++++++ 3 files changed, 158 insertions(+), 1 deletion(-) create mode 100644 recipes/hhsuite/reformat_pl.patch diff --git a/recipes/hhsuite/build.sh b/recipes/hhsuite/build.sh index 17e152530bc6a..42d2304291652 100644 --- a/recipes/hhsuite/build.sh +++ b/recipes/hhsuite/build.sh @@ -20,3 +20,6 @@ cmake -DCHECK_MPI=0 \ make -j${CPU_COUNT} ${VERBOSE_CM} make install -j${CPU_COUNT} + +# Move the `reformat.pl` script to ${PREFIX}/bin to ensure it's available in the PATH +mv ${SRC_DIR}/scripts/reformat.pl ${PREFIX}/bin diff --git a/recipes/hhsuite/meta.yaml b/recipes/hhsuite/meta.yaml index 2ab1c8ec9b788..3c13879216cec 100644 --- a/recipes/hhsuite/meta.yaml +++ b/recipes/hhsuite/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 12 + number: 13 run_exports: - {{ pin_subpackage('hhsuite', max_pin="x") }} @@ -15,6 +15,7 @@ source: sha256: {{ sha256 }} patches: - fix_cs219_include.patch + - reformat_pl.patch requirements: build: @@ -36,9 +37,11 @@ test: - hhblits -h > /dev/null - hhsearch -h > /dev/null - hhalign -h > /dev/null + - reformat.pl > /dev/null about: home: https://github.com/soedinglab/hh-suite + doc_url: https://github.com/soedinglab/hh-suite/wiki license: GPLv3 license_file: LICENSE summary: "HH-suite3 for fast remote homology detection and deep protein annotation" diff --git a/recipes/hhsuite/reformat_pl.patch b/recipes/hhsuite/reformat_pl.patch new file mode 100644 index 0000000000000..b1046f6c4a7f8 --- /dev/null +++ b/recipes/hhsuite/reformat_pl.patch @@ -0,0 +1,151 @@ +diff --git a/scripts/reformat.pl b/scripts/reformat.pl +index 0c46c66..3b04399 100755 +--- a/scripts/reformat.pl ++++ b/scripts/reformat.pl +@@ -1,4 +1,4 @@ +-#! /usr/bin/perl ++#! /usr/bin/env perl + + # reformat.pl + # Reformat a multiple alignment file +@@ -33,7 +33,7 @@ my $numres=100; # number of residues per line + my $desclen=1000; # maximum number of characters in nameline + my $ARGC=scalar(@ARGV); + if ($ARGC<2) { +- die(" ++ print(" + reformat.pl from HHsuite3 + Read a multiple alignment in one format and write it in another format + Usage: reformat.pl [informat] [outformat] infile outfile [options] +@@ -85,6 +85,7 @@ Examples: reformat.pl 1hjra.a3m 1hjra.a2m + reformat.pl test.a3m test.fas -num -r 90 + reformat.pl fas sto '*.fasta' .stockholm + \n"); ++exit 0; + # clu: clustal format (hmmer output) + # sel: Selex format + # phy: Phylip format +@@ -168,7 +169,7 @@ if ($options=~s/(\S+)\s*$//) { + elsif ($outformat eq "afas") {$outformat="fas";} + elsif ($outformat eq "afasta") {$outformat="fas";} + } else { +- print ("Using FASTA output format: '$options'\n"); $outformat="fas"; ++ print STDERR "Using FASTA output format: '$options'\n"; $outformat="fas"; + } + } + if ($options=~s/(\S+)\s*$//) { +@@ -180,7 +181,7 @@ if ($options=~s/(\S+)\s*$//) { + elsif ($informat eq "fa") {$informat="fas";} + elsif ($informat eq "fasta") {$informat="fas";} + } else { +- print ("Using FASTA input format: '$options'\n"); $informat="fas"; ++ print STDERR "Using FASTA input format: '$options'\n"; $informat = "fas"; + } + } + +@@ -188,7 +189,7 @@ if ($options=~s/(\S+)\s*$//) { + # Warn if unknown options found + if ($options!~/^\s*$/) { + $options=~s/^\s*(.*?)\s*$/$1/g; +- print("\nWARNING: unknown options '$options'\n"); ++ print STDERR "\nWARNING: unknown options '$options'\n"; + } + + # Check if input and output formats are valid +@@ -210,20 +211,20 @@ if ($infile=~/\*/ || $outfile=~/^\./) # if infile contains '*' or outfile is jus + $outfile=~/.*\.(\S*)$/; + my $outext=$1; + my @infiles=glob($infile); +- printf("%i files to reformat\n",scalar(@infiles)); ++ printf STDERR "%i files to reformat\n", scalar(@infiles); + foreach $infile (@infiles) + { + if ($infile!~/(\S+)\.\S+/) {$infile=~/(\S+)/} + $outfile="$1.$outext"; + if ($update && -e $outfile) {next;} +- if ($v>=3) {print("Reformatting $infile from $informat to $outformat ...\n");} ++ if ($v>=3) {print STDERR "Reformatting $infile from $informat to $outformat ...\n";} + &reformat($infile,$outfile); + } + exit 0; + } + else + { +- if ($v>=3) {print("Reformatting $infile from $informat to $outformat ...\n");} ++ if ($v>=3) {print STDERR "Reformatting $infile from $informat to $outformat ...\n";} + &reformat($infile,$outfile); + exit 0; + } +@@ -367,7 +368,7 @@ sub reformat() + } + $name=$1; + $residues=$2; +- print("WARNING: Found no space between name and residues in $infile, line $.: '$line'\n"); ++ print STDERR "WARNING: Found no space between name and residues in $infile, line $.: '$line'\n"; + } else { + if ($noss && ($line=~/^aa_/ || $line=~/^ss_/ || $line=~/^sa_/)) {next;} # do not read in >ss_ and >aa_ sequences + if ($line=~/^aa_/ || $line=~/^sa_/) {next;} # do not read in >ss_ and >aa_ sequences +@@ -388,7 +389,7 @@ sub reformat() + } else { + $seqs[$k].=$residues; + if ($names[$k] ne $name) { +- print("WARNING: name of sequence $k in block 1 ($names[$k]) is not the same as in block $block ($name) in $infile\n"); ++ print STDERR "WARNING: name of sequence $k in block 1 ($names[$k]) is not the same as in block $block ($name) in $infile\n"; + } + } + # printf("%3i %3i %-16.16s %s\n",$block,$k,$names[$k],$seqs[$k]); +@@ -439,7 +440,7 @@ sub reformat() + } else { + $seqs[$k].=$residues; + if ($names[$k] ne $name) { +- print("WARNING: name of sequence $k in block 1 ($names[$k]) is not the same as in block $block ($name) in $infile\n"); ++ print STDERR "WARNING: name of sequence $k in block 1 ($names[$k]) is not the same as in block $block ($name) in $infile\n"; + } + } + # printf("%3i %3i %-16.16s %s\n",$block,$k,$names[$k],$seqs[$k]); +@@ -480,7 +481,7 @@ sub reformat() + # Insertion of '.' only needed for a3m if: NOT -r option OR -M first OR -M option + if ($informat eq "a3m" && (!$remove_inserts || $matchmode)) + { +- print("inserting gaps...\n"); ++ print STDERR "inserting gaps...\n"; + my @len_ins; # $len_ins[$j] will count the maximum number of inserted residues after match state $i. + my $j; # counts match states + my @inserts; # $inserts[$j] contains the insert (in small case) of sequence $i after the $j'th match state +@@ -663,7 +664,7 @@ sub reformat() + my $nin=$n; + for ($k=0; $k<$n; $k++) { + if (($seqs[$k]=~tr/a-zA-Z0-9/a-zA-Z0-9/==0)) { +- if ($v>=2) {print("Sequence contains only gaps and is removed: $names[$k]\n");} ++ if ($v>=2) {print STDERR "Sequence contains only gaps and is removed: $names[$k]\n";} + splice(@seqs,$k,1); + splice(@names,$k,1); + $k--; $n--; +@@ -699,10 +700,10 @@ sub reformat() + my $len=length($seqs[0]); + for($k=1; $k<$n; $k++) { + if (length($seqs[$k])!=$len) { +- printf("\nError: Sequences in $infile do not all have same length, e.g. >%-.20s (len=%i) and >%-.20s (len=%i)\n", +- $names[0],$len,$names[$k],length($seqs[$k])); ++ printf STDERR "\nError: Sequences in $infile do not all have same length, e.g. >%-.20s (len=%i) and >%-.20s (len=%i)\n", ++ $names[0],$len,$names[$k],length($seqs[$k]); + if ($v>=3) { +- printf("%.20s %s\n%.20s %s\n\n",$names[0],$seqs[0],$names[$k],$seqs[$k]); ++ printf STDERR "\nError: Sequences in $infile do not all have same length, e.g. >%-.20s (len=%i) and >%-.20s (len=%i)\n", + } + exit 1; + } +@@ -813,10 +814,10 @@ sub reformat() + + close OUTFILE; + if ($v>=2) { +- if ($nin==1) {print("Reformatted $infile with 1 sequence from $informat to $outformat and written to file $outfile\n");} ++ if ($nin==1) {print STDERR "Reformatted $infile with 1 sequence from $informat to $outformat and written to file $outfile\n";} + else { +- if (!$nin==$n) {printf("Removed %i sequences which contained no residues\n",$nin-$n); } +- print("Reformatted $infile with $n sequences from $informat to $outformat and written to file $outfile\n"); ++ if (!$nin==$n) {printf STDERR "Removed %i sequences which contained no residues\n", $nin - $n;} ++ print STDERR "Reformatted $infile with $n sequences from $informat to $outformat and written to file $outfile\n"; + } + } + From 5da77ae4e833b2180a2c1ca6c79c5257063dac5c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 13 Sep 2024 01:00:38 -0400 Subject: [PATCH 1513/1589] Update igv-reports to 1.14.0 (#50685) --- recipes/igv-reports/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/igv-reports/meta.yaml b/recipes/igv-reports/meta.yaml index 20b827500ef81..b0f83dc28f9e0 100644 --- a/recipes/igv-reports/meta.yaml +++ b/recipes/igv-reports/meta.yaml @@ -1,5 +1,5 @@ {% set name = "igv-reports" %} -{% set version = "1.13.0" %} +{% set version = "1.14.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 8f51312dd06a7dfa379dc61a25bf8b5dc8565fbe260bcae4ba5f98e79a17fbbf + sha256: 988852796d260dbd715406605f901aca571c51035526412c74e1b49ff27bee5a build: noarch: python From e33340d37015161965b07fc082854a5c73020588 Mon Sep 17 00:00:00 2001 From: "UENO, M." Date: Fri, 13 Sep 2024 15:28:46 +0900 Subject: [PATCH 1514/1589] Adding DockQ v2.1.3 (#50647) * Create meta.yaml * Add `run_exports` statement in meta.yaml * Update meta.yaml * Update meta.yaml * Remove cython and setuptools from run section as dependencies * Remove `skip: true # [py<38]` in meta.yaml, the line for skipping build under python < 3.8 https://github.com/bioconda/bioconda-recipes/pull/50647#discussion_r1758178811 Co-authored-by: Martin Grigorov --------- Co-authored-by: Martin Grigorov --- recipes/dockq/meta.yaml | 60 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 recipes/dockq/meta.yaml diff --git a/recipes/dockq/meta.yaml b/recipes/dockq/meta.yaml new file mode 100644 index 0000000000000..9c21a4695b948 --- /dev/null +++ b/recipes/dockq/meta.yaml @@ -0,0 +1,60 @@ +{% set name = "DockQ" %} +{% set version = "2.1.3" %} +{% set author = "bjornwallner" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.org/packages/source/{{ name[0]|lower }}/{{ name|lower }}/{{ name|lower }}-{{ version }}.tar.gz + sha256: 50c4e2b4bced3bf865b12061ec0b56e23de1383dc70b445441848224f6c72c0d + +build: + entry_points: + - DockQ = DockQ.__main__:main + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + run_exports: + - {{ pin_subpackage(name|lower, max_pin="x") }} + +requirements: + build: + - {{ compiler('c') }} + host: + - python >=3.8 + - setuptools >=68 + - cython + - numpy <2.0 + - pip + run: + - python >=3.8 + - biopython >=1.79 + - networkx + - parallelbar + - {{ pin_compatible('numpy') }} + +test: + imports: + - {{ name }} + commands: + - pip check + - {{ name }} --help + requires: + - pip + +about: + home: https://github.com/{{ author }}/{{ name }} + dev_url: https://github.com/{{ author }}/{{ name }} + doc_url: https://github.com/{{ author }}/{{ name }}#{{ name|lower }} + summary: A Quality Measure for Protein, Nucleic Acids and Small Ligand Docking Modelsc + license: MIT + license_family: MIT + license_file: LICENSE + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 + recipe-maintainers: + - eunos-1128 From 008f768b8f41c72efb68cd0c8ef8b8d39c249330 Mon Sep 17 00:00:00 2001 From: Dario Beraldi Date: Fri, 13 Sep 2024 07:53:18 +0100 Subject: [PATCH 1515/1589] Update r-argparse dependency (#50657) * Update r-argparse dependency This should address https://github.com/dariober/cnv_facets/issues/61 * Add run_exports * Attempt remove from blacklist * Use v0.16.1 with updated import * Reset build --- build-fail-blacklist | 3 --- recipes/cnv_facets/build.sh | 2 -- recipes/cnv_facets/meta.yaml | 10 +++++++--- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index d3670c5dc160a..3ec878a35f7ef 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -653,9 +653,6 @@ recipes/ale # Pinned to biopython=1.65 which is only availble through pkgs/free. If it doesn't break the package, the requirement should be set to biopython=1.70 or higher. recipes/breakseq2 -# R package build segfaults: [2020-07-28 05:38:00] Plotting genome...\n\n*** caught segfault ***\naddress (nil), cause 'memory not mapped'\n\nTraceback:\n 1: cairoVersion()\n 2: grSoftVersion()\n 3: symbolType1support()\n 4: optionSymbolFont(d$symbolfamily)\n 5: png(paste0(xargs$out, ".cnv.png"), units = "px", width = 1600, height = 1600, res = 300) -recipes/cnv_facets - # Depends on r-base and mentalist. The latter has has pinned down dependencies preventing the installation alongside other packages like r-base. Need to fix mentalist! recipes/pathogist diff --git a/recipes/cnv_facets/build.sh b/recipes/cnv_facets/build.sh index 37d48cafb138b..4c2de3edd0730 100644 --- a/recipes/cnv_facets/build.sh +++ b/recipes/cnv_facets/build.sh @@ -9,8 +9,6 @@ FACETS_GIT_REF=`grep -P ' *^FACETS_REF' install/install_pkgs.R \ $R -e "devtools::install_github('mskcc/facets', ref= '$FACETS_GIT_REF', lib= NULL, repos= 'https://cran.r-project.org')" -$R -e 'install.packages(c("argparse"), lib= NULL, repos= "https://cran.r-project.org")' - mkdir -p $PREFIX/bin chmod a+x bin/cnv_facets.R cp bin/cnv_facets.R $PREFIX/bin/ diff --git a/recipes/cnv_facets/meta.yaml b/recipes/cnv_facets/meta.yaml index f4a0bec2d5da0..187c86a1e7d84 100644 --- a/recipes/cnv_facets/meta.yaml +++ b/recipes/cnv_facets/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.16.0" %} -{% set sha256 = "3628bc0970942e79292d60a972df85f75c7a8699c633f79fb96ba071e83600a2" %} +{% set version = "0.16.1" %} +{% set sha256 = "64c29e2719306cc8e20318ff9a857fa2bb4fcd2af5eea30e733dad4867475972" %} package: name: cnv_facets @@ -10,7 +10,9 @@ source: sha256: '{{sha256}}' build: - number: 2 + number: 0 + run_exports: + - {{ pin_subpackage('cnv_facets', max_pin="x") }} skip: True # [not linux] requirements: @@ -19,6 +21,7 @@ requirements: - {{ compiler('cxx') }} - {{ compiler('fortran') }} host: + - r-argparse >=2.1.6 - r-base - r-devtools - r-data.table @@ -31,6 +34,7 @@ requirements: - bcftools >=1.9 - snp-pileup run: + - r-argparse >=2.1.6 - r-base - r-data.table - r-ggplot2 From f94c1cbb0eb5af8980cf52131eb76a670a3c2d18 Mon Sep 17 00:00:00 2001 From: Yingyao Zhou Date: Fri, 13 Sep 2024 01:36:07 -0700 Subject: [PATCH 1516/1589] Add afpdb package (#50681) * Add afpdb package * Add run_exports * noarch: python --------- Co-authored-by: Zhou, Yingyao Co-authored-by: Martin Grigorov --- recipes/afpdb/meta.yaml | 61 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 recipes/afpdb/meta.yaml diff --git a/recipes/afpdb/meta.yaml b/recipes/afpdb/meta.yaml new file mode 100644 index 0000000000000..30f636007b76a --- /dev/null +++ b/recipes/afpdb/meta.yaml @@ -0,0 +1,61 @@ +{% set name = "afpdb" %} +{% set version = "0.2.1" %} + +package: + name: "{{ name|lower }}" + version: "{{ version }}" + +source: + url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" + sha256: 7e67c728a25c9ac565c79fa2615b0fd84ecbf9d661b1f575a863156e169fcf10 + +build: + number: 0 + noarch: python + script: "{{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation" + run_exports: + - {{ pin_subpackage(name, max_pin='x.x') }} + +requirements: + host: + - biopython + - dm-tree + - numpy + - pandas + - pip + - py3dmol + - python + - requests + - scipy + - tabulate + run: + - biopython + - dm-tree + - numpy + - pandas + - py3dmol + - python + - requests + - scipy + - tabulate + +test: + imports: + - afpdb + - afpdb.myalphafold + - afpdb.myalphafold.common + - afpdb.mycolabdesign + - afpdb.mycolabfold + +about: + home: "https://github.com/data2code/afpdb" + license: MIT + license_family: MIT + license_file: + summary: "A Numpy-based PDB structure manipulation package" + doc_url: "https://github.com/data2code/afpdb/blob/main/tutorial" + dev_url: + +extra: + recipe-maintainers: + - data2code From 055673e08cf0bda2a8d60bdde72cdffbc32e85e7 Mon Sep 17 00:00:00 2001 From: ftegenfe Date: Fri, 13 Sep 2024 13:11:35 +0200 Subject: [PATCH 1517/1589] update to 3.4.0 (#50692) * added orthologer * WIP:orthologer * orthologer * version * minor * orthologer version * updated meta * orthologer 3.2.3 * updated sha256 * Fix SHA256 * minor * spdlog in meta * orthologer: updated cmake OpenMP detection * last macos fixes are now actually there * meta * updated brhclus - now compiles with clang * fix macos * meta/bash macos * even more clang * more cmake and macos issues * updated installer * update build and host section * clean up recipe * updated to new version * path not needed with new version * updated build number * patch not needed anymore * patch not needed anymore * update for new package with macos fix * updated tests and macos fix * new sha256sum * orthologer 3.3.2 * orthologer 3.3.2 - build number reset * sed macos, do not do in place edit * require bash 4.1 - will this work for macos? * orthologer 3.3.2 - bash shebang update (macos) * upd 3.4.0 --------- Co-authored-by: Martin Grigorov Co-authored-by: mencian --- recipes/orthologer/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/orthologer/meta.yaml b/recipes/orthologer/meta.yaml index ce0bf855a4e94..ba782f4e390fc 100644 --- a/recipes/orthologer/meta.yaml +++ b/recipes/orthologer/meta.yaml @@ -1,6 +1,6 @@ {% set name = "orthologer" %} -{% set version = "3.3.2" %} -{% set sha256 = "a872e7454b4503b984235705d6097a6c9e40590681423b496ce5a673a453a27c" %} +{% set version = "3.4.0" %} +{% set sha256 = "e51aff8180dfe5c2843025e0babb6be0a3357a8e3241b650b4e263be81e067e4" %} package: name: {{ name }} From 055054425ab0bd608215d0d3f8552b663d5302f2 Mon Sep 17 00:00:00 2001 From: mzytnicki <34034101+mzytnicki@users.noreply.github.com> Date: Fri, 13 Sep 2024 14:43:00 +0200 Subject: [PATCH 1518/1589] Update srnaMapper: Put bwa to submodule (#50689) * Put bwa to submodule * Use archive with submodules --- recipes/srnamapper/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/srnamapper/meta.yaml b/recipes/srnamapper/meta.yaml index ad4531ab2d7c8..55e1e0f5e89cf 100644 --- a/recipes/srnamapper/meta.yaml +++ b/recipes/srnamapper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "srnaMapper" %} -{% set version = "1.0.9" %} +{% set version = "1.0.10" %} package: name: {{ name|lower }} @@ -11,8 +11,8 @@ build: - {{ pin_subpackage(name|lower, max_pin="x") }} source: - url: https://github.com/mzytnicki/srnaMapper/archive/refs/tags/{{ version }}.tar.gz - sha256: 53560677180dfa4c292dba233806cd347cf51fe7893337eb15a9bb15646ff440 + url: https://github.com/mzytnicki/srnaMapper/releases/download/{{ version }}/{{ version }}.tar.gz + sha256: 2f0ae9a7302243977195a1eb1857c7d34f3b4c537fc0e324ec338e18799e389f requirements: build: From 0c8ba82b07fb3e518877c4a9aacc2e505b19f3f9 Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Fri, 13 Sep 2024 09:05:15 -0400 Subject: [PATCH 1519/1589] Merge recipes that were uploaded on Bulk to master (#50698) * Bulk: Update HLAfreq to 0.0.4 (#50607) * Update to HLAfreq 0.0.4 Update version number Update sha256 hash Update requirements versions * Use lowercase package name for source url Pypi source url uses hlafreq not HLAfreq https://pypi.io/packages/source/h/hlafreq/hlafreq-0.0.4.tar.gz not https://pypi.io/packages/source/H/HLAfreq/HLAfreq-0.0.4.tar.gz * Use jinja2 filter syntax to convert package name to lower for source url https://jinja.palletsprojects.com/en/3.1.x/templates/#filters * Fix bug in getting first letter in lowercase name[0]|lower for source url --------- Co-authored-by: DAWells * Bulk: Update MS2PIP version to 4.0.0 (#50609) * Bump MS2PIP version from to 4.0.0 * Add ms2rescore_rs dependency * dont't allow py312 since pandas <2 doesnt support * try dropping pyopenms depenency, should be resolved via psm_utils * add pyopenms again --------- Co-authored-by: Jonas Scheid <43858870+jonasscheid@users.noreply.github.com> * Bulk: Add quota_anchor recipe (#50610) * Add quota_anchor recipe * modify build.sh * add defaults channel * add defaults channel * remove defaults channel * 0.0.1a0 and defaults channels * 0.0.1a0 and defaults channels * 0.0.1a0 and defaults channels * channel defaults * number 1 * number 0 * try remove muscle * try remove recently unused pkg * try add four pkg * try add space * revert * try pin_compatible and 5.1.0 * try pin_compatible and 5.1.0 * try repeat commit yesterday * anchorwave 1.2.3 * anchorwave 1.2.3 * try * remove anchorwave * remove anchorwave * remove all bioinfo pkg * delete plots and add setuptools pathlib * delete plots and add setuptools pathlib * delete plots * final try * repeat the day before yesterday success config * add df -h * ... --------- Co-authored-by: xiaodli <2360669642@qq.com> --------- Co-authored-by: DAWells Co-authored-by: Jonas Scheid <43858870+jonasscheid@users.noreply.github.com> Co-authored-by: xiaodli <2360669642@qq.com> --- recipes/hlafreq/meta.yaml | 16 +++++------ recipes/ms2pip/meta.yaml | 26 ++++++++++-------- recipes/quota_anchor/build.sh | 12 ++++++++ recipes/quota_anchor/meta.yaml | 50 ++++++++++++++++++++++++++++++++++ 4 files changed, 84 insertions(+), 20 deletions(-) create mode 100644 recipes/quota_anchor/build.sh create mode 100644 recipes/quota_anchor/meta.yaml diff --git a/recipes/hlafreq/meta.yaml b/recipes/hlafreq/meta.yaml index f9b65c5f5093b..3dfbdc5e02169 100644 --- a/recipes/hlafreq/meta.yaml +++ b/recipes/hlafreq/meta.yaml @@ -1,13 +1,13 @@ {% set name = "HLAfreq" %} -{% set version = "0.0.3" %} +{% set version = "0.0.4" %} package: name: "{{ name|lower }}" version: "{{ version }}" source: - url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 93941536c4912180f12544251792d21098e47116a871c6c49565054987e1438f + url: "https://pypi.io/packages/source/{{ name[0]|lower }}/{{ name|lower }}/{{ name|lower }}-{{ version }}.tar.gz" + sha256: 58aa7aaa1d554a3264531f6aaa3bd0a5a29c13b58441dc6564537adf4d096051 build: number: 0 @@ -18,18 +18,18 @@ build: requirements: host: - - python >=3.8 + - python >=3.10 - pip run: - bs4 - - matplotlib-base - - numpy + - matplotlib-base >=3.6.0 + - numpy >=1.24.0 - pandas - pymc >=3 - arviz - - python >=3.8 + - python >=3.10 - requests - - scipy + - scipy >=1.10.0 test: imports: diff --git a/recipes/ms2pip/meta.yaml b/recipes/ms2pip/meta.yaml index 095eb5313e4db..df283caa45a97 100644 --- a/recipes/ms2pip/meta.yaml +++ b/recipes/ms2pip/meta.yaml @@ -1,17 +1,18 @@ -{% set version = "4.0.0.dev8" %} +{% set version = "4.0.0" %} {% set name = "ms2pip" %} -{% set sha256 = "2a464e00135c875c12c98f6853a4487e193a0730b5bd94f82a44e8d5fb21a7bb" %} +{% set sha256 = "b2329700e8c2af5c64d8fa0ef62dbc6ee52c60d7b18e5d860a4d9194c225ec29" %} package: - name: "ms2pip" + name: "{{ name|lower }}" version: "{{ version }}" source: - url: https://pypi.io/packages/source/m/ms2pip/ms2pip-{{ version }}.tar.gz + url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" sha256: {{ sha256 }} build: - number: 1 + number: 0 + skip: true # [py >= 312] run_exports: - {{ pin_subpackage(name, max_pin="x") }} entry_points: @@ -34,21 +35,22 @@ requirements: run: - python >=3.8 - {{ pin_compatible('numpy') }} - - pandas >=1.0 - - pyteomics >=3.5 + - pandas >=1.0,<2 + - pyteomics >=3.5,<5 - tqdm >=4 - pytables >=3.4 - - tomlkit >=0.5 - - click >=7 - - xgboost >=1.3 + - tomlkit >=0.5,<1 + - click >=7,<9 + - xgboost >=1.3,<2 - matplotlib-base >=3.0 - lxml >=4 - rich >=13 - - pydantic >=1.10,<2 - - psm-utils + - pydantic >=2 + - psm-utils >=0.9 - werkzeug >=2 - pyarrow - pyopenms + - ms2rescore-rs test: imports: diff --git a/recipes/quota_anchor/build.sh b/recipes/quota_anchor/build.sh new file mode 100644 index 0000000000000..71922513c1169 --- /dev/null +++ b/recipes/quota_anchor/build.sh @@ -0,0 +1,12 @@ +#!/bin/bash +$PYTHON -m pip install --no-deps --ignore-installed . -vv +echo "[software] +gffread = ${PREFIX}/bin/gffread +AnchorWave = ${PREFIX}/bin/anchorwave +diamond = ${PREFIX}/bin/diamond +blastp = ${PREFIX}/bin/blastp +makeblastdb = ${PREFIX}/bin/makeblastdb +muscle = ${PREFIX}/bin/muscle +mafft = ${PREFIX}/bin/mafft +yn00 = ${PREFIX}/bin/yn00 +pal2nal = ${PREFIX}/bin/pal2nal.pl " > ${SP_DIR}/quota_anchor/config_file/software_path.ini diff --git a/recipes/quota_anchor/meta.yaml b/recipes/quota_anchor/meta.yaml new file mode 100644 index 0000000000000..bd563736d46b1 --- /dev/null +++ b/recipes/quota_anchor/meta.yaml @@ -0,0 +1,50 @@ +{% set name = "quota_anchor" %} +{% set version = "0.0.1a0" %} +{% set sha256 = "01d8520825fee67f8c73803d3bbe7855291592c064cd2d5712d02e104a71a8fa" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/baoxingsong/quota_Anchor/archive/refs/tags/v{{ version }}.tar.gz + sha256: {{ sha256 }} + +build: + number: 0 + noarch: python + run_exports: + - {{ pin_subpackage(name, max_pin='x.x') }} + +requirements: + host: + - python >=3 + - pip + run: + - python >=3 + - gffread + - biopython + - blast + - diamond + - AnchorWave + - muscle + - mafft + - matplotlib-base + - pal2nal + - paml + - plotnine + - seaborn + - pandas + - numpy + + +test: + commands: + - 'quota_Anchor 2>&1 | grep "usage: quota_Anchor"' + +about: + home: https://github.com/baoxingsong/quota_Anchor + license: MIT + summary: 'Strand and WGD aware syntenic gene identification' + description: "Strand and WGD aware syntenic gene identification for comparative genomics" + dev_url: https://github.com/baoxingsong/quota_Anchor From 36d1c305465cac78a5c29bbe1681e6ed7e882db0 Mon Sep 17 00:00:00 2001 From: ftegenfe Date: Fri, 13 Sep 2024 16:16:38 +0200 Subject: [PATCH 1520/1589] New version 3.4.1 (#50700) * added orthologer * WIP:orthologer * orthologer * version * minor * orthologer version * updated meta * orthologer 3.2.3 * updated sha256 * Fix SHA256 * minor * spdlog in meta * orthologer: updated cmake OpenMP detection * last macos fixes are now actually there * meta * updated brhclus - now compiles with clang * fix macos * meta/bash macos * even more clang * more cmake and macos issues * updated installer * update build and host section * clean up recipe * updated to new version * path not needed with new version * updated build number * patch not needed anymore * patch not needed anymore * update for new package with macos fix * updated tests and macos fix * new sha256sum * orthologer 3.3.2 * orthologer 3.3.2 - build number reset * sed macos, do not do in place edit * require bash 4.1 - will this work for macos? * orthologer 3.3.2 - bash shebang update (macos) * upd 3.4.0 * version 3.4.1 --------- Co-authored-by: Martin Grigorov Co-authored-by: mencian --- recipes/orthologer/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/orthologer/meta.yaml b/recipes/orthologer/meta.yaml index ba782f4e390fc..029292417924b 100644 --- a/recipes/orthologer/meta.yaml +++ b/recipes/orthologer/meta.yaml @@ -1,6 +1,6 @@ {% set name = "orthologer" %} -{% set version = "3.4.0" %} -{% set sha256 = "e51aff8180dfe5c2843025e0babb6be0a3357a8e3241b650b4e263be81e067e4" %} +{% set version = "3.4.1" %} +{% set sha256 = "b4d6504ea75899d3e13facc4232efdfe79c66283cccfe5d5ea8996f7905f346d" %} package: name: {{ name }} From b61f4659ec90a80aa21564c3fd5a5c3985d3d3b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Gr=C3=BCning?= Date: Fri, 13 Sep 2024 17:09:38 +0200 Subject: [PATCH 1521/1589] trigger --- recipes/rbpbench/meta.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/recipes/rbpbench/meta.yaml b/recipes/rbpbench/meta.yaml index aabaddcf9f40e..04122bc6db4bc 100644 --- a/recipes/rbpbench/meta.yaml +++ b/recipes/rbpbench/meta.yaml @@ -17,6 +17,7 @@ build: run_exports: - {{ pin_subpackage('rbpbench', max_pin="x.x") }} + requirements: host: - python <3.12 From 3f826de553597189418c15078cae1d1f13a9ae82 Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Fri, 13 Sep 2024 11:44:23 -0400 Subject: [PATCH 1522/1589] mummer: fix linux build (#50669) * mummer: fix linux-64 build * set -xe options * move hashbang code and revert tests * reenable tests * remove -w --- recipes/mummer/build.sh | 13 ++++++++----- recipes/mummer/meta.yaml | 27 ++++++++++++++------------- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/recipes/mummer/build.sh b/recipes/mummer/build.sh index 9fadf907e0146..b6253f4c51f63 100644 --- a/recipes/mummer/build.sh +++ b/recipes/mummer/build.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -xe + BINARY=mummer BINARY_HOME=$PREFIX/bin MUMMER_HOME=$PREFIX/opt/mummer-$PKG_VERSION @@ -47,12 +49,13 @@ for i in exact-tandems dnadiff mapview mummerplot nucmer promer run-mummer1 run- perl -i -pe 's/(envs\/\_\_.*)(\K\@)/\\@/' $i done +# fix hashbang lines to use conda's perl +for i in dnadiff mapview mummerplot nucmer promer; do + sed -i.bak '1 s|^#!/.*/perl -w$|#!/usr/bin/env perl|g' $MUMMER_HOME/$i + rm -rf $MUMMER_HOME/$i.bak +done + for i in $binaries; do - if file $MUMMER_HOME/$i | grep "Perl script"; then - # fix hashbang lines to use conda's perl - sed -i.bak '1 s|^#!/.*/perl$|#!/usr/bin/env perl|g' $MUMMER_HOME/$i - rm -rf $MUMMER_HOME/$i.bak - fi # ensure executable and setup symlink for binary chmod +x $MUMMER_HOME/$i ln -s "$MUMMER_HOME/$i" "$BINARY_HOME/$i" diff --git a/recipes/mummer/meta.yaml b/recipes/mummer/meta.yaml index 99c3dee120de2..231fd29aec1a8 100644 --- a/recipes/mummer/meta.yaml +++ b/recipes/mummer/meta.yaml @@ -11,14 +11,14 @@ source: sha256: {{ sha256 }} patches: - patches/gnuplot_mouse_clipboardformat.patch - - patches/linkloc_explicit.patch # [osx] - - patches/addleafcount_explicit.patch # [osx] - - patches/findmumcand_explicit.patch # [osx] - - patches/findmaxmat_explicit.patch # [osx] - - patches/procmaxmat_explicit.patch # [osx] + - patches/linkloc_explicit.patch + - patches/addleafcount_explicit.patch + - patches/findmumcand_explicit.patch + - patches/findmaxmat_explicit.patch + - patches/procmaxmat_explicit.patch build: - number: 19 + number: 20 run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} @@ -35,17 +35,17 @@ requirements: test: commands: - "mummer -h &> /dev/null" - #- "delta-filter -h &> /dev/null" - #- "dnadiff -h &> /dev/null" - #- "mapview -h &> /dev/null" + - "delta-filter -h &> /dev/null" + - "dnadiff -h &> /dev/null" + - "mapview -h &> /dev/null" - "mummerplot -h &> /dev/null" - "nucmer -h &> /dev/null" - "promer -h &> /dev/null" - "show-aligns -h &> /dev/null" - #- "show-coords -h &> /dev/null" - #- "show-diff -h &> /dev/null" - #- "show-snps -h &> /dev/null" - #- "show-tiling -h &> /dev/null" + - "show-coords -h &> /dev/null" + - "show-diff -h &> /dev/null" + - "show-snps -h &> /dev/null" + - "show-tiling -h &> /dev/null" about: home: 'http://mummer.sourceforge.net/' @@ -59,3 +59,4 @@ extra: - osx-arm64 identifiers: - biotools:mummer + From 625fbe65f3c2eb9c133ff43699daf89a88e465ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Gr=C3=BCning?= Date: Fri, 13 Sep 2024 18:16:53 +0200 Subject: [PATCH 1523/1589] Why has this not been pushed? (#50702) --- recipes/rbpbench/meta.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/recipes/rbpbench/meta.yaml b/recipes/rbpbench/meta.yaml index 04122bc6db4bc..aabaddcf9f40e 100644 --- a/recipes/rbpbench/meta.yaml +++ b/recipes/rbpbench/meta.yaml @@ -17,7 +17,6 @@ build: run_exports: - {{ pin_subpackage('rbpbench', max_pin="x.x") }} - requirements: host: - python <3.12 From 82bc27d15c5ca7ab289f95aadd1300e90722b133 Mon Sep 17 00:00:00 2001 From: John Blischak Date: Fri, 13 Sep 2024 13:14:09 -0400 Subject: [PATCH 1524/1589] [ci skip] Add lcmmichielsen as scHPL maintainer (#50634) * [ci skip] Add lcmmichielsen as scHPL maintainer [lint skip build_number_needs_bump for recipes/schpl] * [ci skip] Add scHPL publication [lint skip build_number_needs_bump for recipes/schpl] --- recipes/schpl/meta.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/recipes/schpl/meta.yaml b/recipes/schpl/meta.yaml index 509dfc44677d9..11814e500091c 100644 --- a/recipes/schpl/meta.yaml +++ b/recipes/schpl/meta.yaml @@ -46,6 +46,9 @@ about: license_file: LICENSE extra: + identifiers: + - doi:10.1038/s41467-021-23196-8 recipe-maintainers: - jdblischak - nictru + - lcmmichielsen From a2b9bfcd893521832b06e7a5998d156a985db973 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 13 Sep 2024 15:38:34 -0400 Subject: [PATCH 1525/1589] Update pathphynder to 1.2.2 (#50696) --- recipes/pathphynder/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pathphynder/meta.yaml b/recipes/pathphynder/meta.yaml index 7a6159c41ce7e..d71ca35fb21a7 100644 --- a/recipes/pathphynder/meta.yaml +++ b/recipes/pathphynder/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pathphynder" %} -{% set version = "1.2.1" %} -{% set sha256="8cecb2cddc6e7783a28281aa006341f642c0799c31a78bf1c1cda05308019f81" %} +{% set version = "1.2.2" %} +{% set sha256="ca12a559743b3df8b7c03b5b2f2ea61c310102543e96559598ea62da50619cea" %} package: name: {{ name }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 3 + number: 0 noarch: generic run_exports: - {{ pin_subpackage( 'pathphynder', max_pin='x.x') }} From fb1d3eb3c703a5761938ab57e0d6c5c85ec11ad0 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 13 Sep 2024 15:39:01 -0400 Subject: [PATCH 1526/1589] Update pybiolib to 1.2.174 (#50694) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index a5b1a3e3da0ee..d5a6e2a771bfe 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.2.166" %} +{% set version = "1.2.174" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: 233642ae986bbef980ce30d06d1ac6a57d55e5f0a6fa5e0ef85ba03e01c50c13 + sha256: 59627ee0138e9969197e919a28f5bff63708aa465be2fee10f1b1f7bcc7a76fc build: number: 0 From 353ce742fe333b18c856e8ffeb1a6ad905d501b6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 13 Sep 2024 16:11:13 -0400 Subject: [PATCH 1527/1589] Update shasta to 0.13.0 (#50706) --- recipes/shasta/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/shasta/meta.yaml b/recipes/shasta/meta.yaml index fb4758f507aab..1cfc6b35d6b1e 100644 --- a/recipes/shasta/meta.yaml +++ b/recipes/shasta/meta.yaml @@ -1,6 +1,6 @@ {% set name = "shasta" %} -{% set version = "0.12.0" %} -{% set sha256 = "abbecf0662f52a55e13fcb09cd337b5768623929b7e8c5e3ccac9dde4a626623" %} +{% set version = "0.13.0" %} +{% set sha256 = "0f7c25579a7600d10f0ad92aaed2e3ed8d9f3450c53cba2293c3e6d8bceb02ca" %} package: name: "{{ name|lower }}" From a591c307c0fb52c3ff222ac4631dd9c5fc5c8a19 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 13 Sep 2024 16:30:05 -0400 Subject: [PATCH 1528/1589] Update sawfish to 0.12.4 (#50707) --- recipes/sawfish/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sawfish/meta.yaml b/recipes/sawfish/meta.yaml index cd44d6259767c..a56f80957f6ca 100644 --- a/recipes/sawfish/meta.yaml +++ b/recipes/sawfish/meta.yaml @@ -1,5 +1,5 @@ {% set name = "sawfish" %} -{% set version = "0.12.3" %} +{% set version = "0.12.4" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/PacificBiosciences/sawfish/releases/download/v{{ version }}/sawfish-v{{ version }}-x86_64-unknown-linux-gnu.tar.gz - sha256: 6f4748e441ec72eab360a1deac7d3c91d5a0f4e5a76a231a547a2931c301b2fa + sha256: e42064108c70b66e208a24fcec77d66a85331025d09ac30f2c9bea0de3842c0f build: number: 0 From 5eea958e2a89a9f077d55c8799d466a7e4910d52 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 13 Sep 2024 16:35:08 -0400 Subject: [PATCH 1529/1589] Update metabolights-utils to 1.1.8 (#50708) --- recipes/metabolights-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/metabolights-utils/meta.yaml b/recipes/metabolights-utils/meta.yaml index 6cc16d573f5ea..3f6837d779541 100644 --- a/recipes/metabolights-utils/meta.yaml +++ b/recipes/metabolights-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "metabolights-utils" %} -{% set version = "1.1.7" %} +{% set version = "1.1.8" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/metabolights_utils-{{ version }}.tar.gz - sha256: 60f7fab3622aaf05bcd14da40b7aa5a77ec97505bc0692e1cef445d24438f501 + sha256: c808269f610d8fa4b019c5d5a39114f4cfaea4d490d0c31eb41cfa513aaa6efa build: entry_points: From 03185c0f0d5b823d7e6602919b3066e444325387 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 13 Sep 2024 16:43:17 -0400 Subject: [PATCH 1530/1589] Update kleborate to 3.0.9 (#50705) --- recipes/kleborate/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/kleborate/meta.yaml b/recipes/kleborate/meta.yaml index 3944f45ce94f7..8f40f1665c01c 100644 --- a/recipes/kleborate/meta.yaml +++ b/recipes/kleborate/meta.yaml @@ -1,5 +1,5 @@ {% set name = "kleborate" %} -{% set version = "3.0.8" %} +{% set version = "3.0.9" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/kleborate-{{ version }}.tar.gz" - sha256: d83da649c6a64922636602b93ea0cee8c09bd0faa30c6bb98617f0c26a8ef6c3 + sha256: 9c1757aa4994a9bb5f3b7356cc8f0d54b99a2d633f33531d35d9137b835e5db2 build: number: 0 From 8aaa329f7c85c0461808075f34b2a104141cb149 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 13 Sep 2024 16:52:23 -0400 Subject: [PATCH 1531/1589] Update bioutils to 0.6.0 (#50641) * Update bioutils to 0.6.0 * add run_exports --------- Co-authored-by: mencian --- recipes/bioutils/meta.yaml | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/recipes/bioutils/meta.yaml b/recipes/bioutils/meta.yaml index 6ceda44c8f345..284dd3259c795 100644 --- a/recipes/bioutils/meta.yaml +++ b/recipes/bioutils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "bioutils" %} -{% set version = "0.5.7" %} +{% set version = "0.6.0" %} package: name: "{{ name|lower }}" @@ -7,23 +7,27 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 2610f8d940a613bc9fb0f400fd21b27a4a4f2795a86de26a38b6857577aaabf2 + sha256: 6487a5565bb798b88202d1f5aa3a4ee6b229151e86dc8ff77cbf0e3b4f4dad4b build: number: 0 noarch: python - script: "{{ PYTHON }} -m pip install . -vv --no-deps --ignore-installed" + script_env: + - SETUPTOOLS_SCM_PRETEND_VERSION={{ version }} + script: "{{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir" + run_exports: + - {{ pin_subpackage('bioutils', max_pin="x.x") }} requirements: host: - pip - - python >=3.6 - - setuptools_scm #to avoid: ERROR: Could not find a version that satisfies the requirement setuptools_scm - - pytest-runner #to avoid: ERROR: Could not find a version that satisfies the requirement pytest-runner + - python >=3.10 + - setuptools-scm run: - - python >=3.6 + - python >=3.10 - attrs - requests + - urllib3 >=1.26,<2.dev0 test: imports: From d8fa40d4bed43a29d68710b0f8afb5378ee18dfe Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 13 Sep 2024 16:53:06 -0400 Subject: [PATCH 1532/1589] Update cellxgene to 1.3.0 (#50678) * Update cellxgene to 1.3.0 * pin python to <3.12 --------- Co-authored-by: mencian --- recipes/cellxgene/meta.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/recipes/cellxgene/meta.yaml b/recipes/cellxgene/meta.yaml index c0c0b3cf36172..6356ce82759b0 100644 --- a/recipes/cellxgene/meta.yaml +++ b/recipes/cellxgene/meta.yaml @@ -1,6 +1,6 @@ {% set name = "cellxgene" %} -{% set version = "1.2.0" %} -{% set sha256 = "1a4c5e93106283ecd1d6bd38170942d298ce8087ace533c2a6e294b67fb13c53" %} +{% set version = "1.3.0" %} +{% set sha256 = "4c220c5b34f121c17b94a302119ac30fc31a308c3eb9101d05fa905cd133925e" %} package: name: "{{ name|lower }}" @@ -15,14 +15,14 @@ build: noarch: python entry_points: - cellxgene = server.cli.cli:cli - script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv" + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" run_exports: - {{ pin_subpackage('cellxgene', max_pin="x") }} requirements: host: - pip - - python >=3.6 + - python >=3.6,<3.12 run: - anndata >=0.7.6 - boto3 >=1.12.18 @@ -43,7 +43,7 @@ requirements: - numpy >=1.17.5 - packaging >=20.0 - pandas >=1.0,!=1.1 - - python >=3.6 + - python >=3.6,<3.12 - pyyaml >=5.4 - requests >=2.22.0 - s3fs ==0.4.2 From ff690e750872cc1fdc3ce254934dbefa6ae4fe62 Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Fri, 13 Sep 2024 17:16:46 -0400 Subject: [PATCH 1533/1589] Include Nightly Build status in the readme (#50709) * Include Nightly Build status in the readme * formatting * space --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 3d33a595046a4..c31814157e9c2 100644 --- a/README.md +++ b/README.md @@ -20,3 +20,12 @@ Please visit https://bioconda.github.io for details. Please visit the new docs at https://bioconda.github.io/contributor/index.html for details. +## Nightly build status +The nightly build any recipes that exist on master but were not successfully uploaded to the [bioconda channel](https://anaconda.org/bioconda). Any failure in the nightly build should be resolved with a PR for the affected recipe. + +| arch | build status | +|------|--------------| +| linux-64 | [![Nightly linux-64](https://dev.azure.com/bioconda/bioconda-recipes/_apis/build/status/Nightly%20uploader?branchName=master&jobName=build_and_push_linux&label=Nightly%20linux-64)](https://dev.azure.com/bioconda/bioconda-recipes/_build/latest?definitionId=4) | +| osx-64 | [![Nightly osx-64](https://dev.azure.com/bioconda/bioconda-recipes/_apis/build/status/Nightly%20uploader?branchName=master&jobName=build_and_push_osx&label=Nightly%20osx-64)](https://dev.azure.com/bioconda/bioconda-recipes/_build/latest?definitionId=4) | +| osx-arm64 | [![Nightly osx-arm64](https://github.com/bioconda/bioconda-recipes/actions/workflows/nightly.yml/badge.svg)](https://github.com/bioconda/bioconda-recipes/actions/workflows/nightly.yml) | +| linux-aarch64 |[![CircleCI](https://dl.circleci.com/insights-snapshot/gh/bioconda/bioconda-recipes/master/Nightly%20(ARM)/badge.svg?window=24h)](https://app.circleci.com/insights/github/bioconda/bioconda-recipes/workflows/Nightly%20(ARM)/overview?branch=master&reporting-window=last-24-hours) | From 64564bb7f6e54b3eac04d13c56abab5daf8fc071 Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Fri, 13 Sep 2024 17:18:46 -0400 Subject: [PATCH 1534/1589] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c31814157e9c2..ec75a3f5d9c15 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Please visit https://bioconda.github.io for details. Please visit the new docs at https://bioconda.github.io/contributor/index.html for details. ## Nightly build status -The nightly build any recipes that exist on master but were not successfully uploaded to the [bioconda channel](https://anaconda.org/bioconda). Any failure in the nightly build should be resolved with a PR for the affected recipe. +The nightly uploader jobs build any recipes that exist on master but were not successfully uploaded to the [bioconda channel](https://anaconda.org/bioconda). Any failure in the nightly build should be resolved with a PR for the affected recipe. | arch | build status | |------|--------------| From 600319d5bffb6288d860fc92b362da263c339605 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 13 Sep 2024 17:35:03 -0400 Subject: [PATCH 1535/1589] Update zga to 0.1.1 (#50640) * Update zga to 0.1.1 * Add run_exports * clean up recipe * remove post-link script; dfast is no longer a dependency --------- Co-authored-by: Martin Grigorov Co-authored-by: mencian --- recipes/zga/meta.yaml | 17 +++++++++-------- recipes/zga/post-link.sh | 3 --- 2 files changed, 9 insertions(+), 11 deletions(-) delete mode 100755 recipes/zga/post-link.sh diff --git a/recipes/zga/meta.yaml b/recipes/zga/meta.yaml index 6470f6afbd465..884a3fb5ec221 100644 --- a/recipes/zga/meta.yaml +++ b/recipes/zga/meta.yaml @@ -1,5 +1,5 @@ {% set name = "zga" %} -{% set version = "0.1.0" %} +{% set version = "0.1.1" %} package: name: "{{ name|lower }}" @@ -7,23 +7,24 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: f0ecaefd7d535a69aabf2ddeee9408a45773baa3779abfebe3621d0a505778d2 + sha256: dd159db1cb4c0afcfb9bd47d9b4bd804e6b479507c49e77c38247abd1c8a4ca4 build: noarch: python + run_exports: + - {{ pin_subpackage(name, max_pin="x.x") }} number: 0 entry_points: - zga = zga.zga:main - script: "{{ PYTHON }} -m pip install . -vv" + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" requirements: host: - - biopython - pip - - python >=3.6 + - python >=3.8 run: - biopython - - python >=3.6 + - python >=3.8 - fastp - bbmap - mash >=2 @@ -33,7 +34,7 @@ requirements: - checkm-genome >=1.1.0 - blast - samtools >=1.9 - - dfast >=1.2.12 + - bakta - nxtrim - racon - minimap2 @@ -46,7 +47,7 @@ test: about: home: "https://github.com/laxeye/zga" - license: BSD + license: BSD-3-Clause license_family: BSD summary: "Prokaryotic genome assembly and annotation pipeline" dev_url: https://github.com/laxeye/zga/ diff --git a/recipes/zga/post-link.sh b/recipes/zga/post-link.sh deleted file mode 100755 index f8442f0b17fd1..0000000000000 --- a/recipes/zga/post-link.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -dfast_file_downloader.py --protein dfast --cdd Cog --hmm TIGR From 89b5475f6f128ac7017573281b2c3a336112b2b8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 13 Sep 2024 17:47:57 -0400 Subject: [PATCH 1536/1589] Update mirtop to 0.4.27 (#50710) * Update mirtop to 0.4.27 * add run_exports --------- Co-authored-by: mencian --- recipes/mirtop/meta.yaml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/recipes/mirtop/meta.yaml b/recipes/mirtop/meta.yaml index 560bde94eae09..78d7977d5bfd6 100644 --- a/recipes/mirtop/meta.yaml +++ b/recipes/mirtop/meta.yaml @@ -1,4 +1,4 @@ -{% set version="0.4.25" %} +{% set version = "0.4.27" %} package: name: mirtop @@ -6,24 +6,21 @@ package: source: url: https://github.com/miRTop/mirtop/archive/v{{ version }}.tar.gz - sha256: 309377c432bf3d45c24659d4a9d2cd6ad61b928122bbc1e392e921b29bef3282 + sha256: 1fc9e186de8b0667b0c0e5d321eae85336d0535411c45e92f05653d32a58deae build: - script: $PYTHON setup.py install --single-version-externally-managed --record=record.txt + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir number: 0 noarch: python entry_points: - mirtop=mirtop.command_line:main + run_exports: + - {{ pin_subpackage('mirtop', max_pin="x.x") }} requirements: host: - python - - setuptools - - pysam - - pybedtools - - pandas - - biopython - + - pip run: - python - pysam @@ -43,10 +40,13 @@ test: - mirtop --help about: - home: http://github.com/mirtop/mirtop - license: MIT License + home: "https://github.com/mirtop/mirtop" + license: MIT license_family: MIT - summary: 'Small RNA-seq annotation' + license_file: LICENSE + summary: 'Small RNA-seq annotation.' + dev_url: "https://github.com/mirtop/mirtop" + doc_url: "https://mirtop.readthedocs.io/en/latest" extra: identifiers: From 5a96e7fb6217d211521be17d95fdab4d608ce33c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 15 Sep 2024 16:27:45 -0400 Subject: [PATCH 1537/1589] Update pronto to 2.5.8 (#50716) --- recipes/pronto/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pronto/meta.yaml b/recipes/pronto/meta.yaml index d6d9f73830252..2c29479c7acce 100644 --- a/recipes/pronto/meta.yaml +++ b/recipes/pronto/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pronto" %} -{% set version = "2.5.7" %} +{% set version = "2.5.8" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 014a5b02064781d6edd7ca5b4f63b13342dd9b5322248f5a4740f48a98464629 + sha256: 5283ec5b35ddc12d34f2e50098b9900bb7b80172b7f769ccc93f5d82b7022799 build: noarch: python From 8b7b05136c7ee2446d7d9a4f6ef8fcc8842c134a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 15 Sep 2024 16:28:22 -0400 Subject: [PATCH 1538/1589] Update grenedalf to 0.6.2 (#50720) --- recipes/grenedalf/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/grenedalf/meta.yaml b/recipes/grenedalf/meta.yaml index d43de1cd86b10..50a33338455c5 100644 --- a/recipes/grenedalf/meta.yaml +++ b/recipes/grenedalf/meta.yaml @@ -1,6 +1,6 @@ package: name: grenedalf - version: "0.6.1" + version: "0.6.2" build: number: 0 @@ -9,8 +9,8 @@ build: - {{ pin_subpackage('grenedalf', max_pin='x.x') }} source: - url: https://github.com/lczech/grenedalf/archive/refs/tags/v0.6.1.tar.gz - sha256: 513add0ffba86bd3ff6ed1bf21d3b1763bd7e8d35a923bd2b597d71cdb8d4d91 + url: https://github.com/lczech/grenedalf/archive/refs/tags/v0.6.2.tar.gz + sha256: 64aea7bbbe443048144b56de990b2afa9aa3379137aa98adb815d0d4d5f7b298 requirements: build: From 242dcde00e830a97f4df2b63808b424f2e49e13f Mon Sep 17 00:00:00 2001 From: moshi <41852815+moshi4@users.noreply.github.com> Date: Mon, 16 Sep 2024 05:32:10 +0900 Subject: [PATCH 1539/1589] Update pymsaviz to 0.5.0 (#50713) --- recipes/pymsaviz/meta.yaml | 13 +++++-------- recipes/pymsaviz/run_test.sh | 1 - 2 files changed, 5 insertions(+), 9 deletions(-) delete mode 100644 recipes/pymsaviz/run_test.sh diff --git a/recipes/pymsaviz/meta.yaml b/recipes/pymsaviz/meta.yaml index 822721aa7ffd6..55217812030cc 100644 --- a/recipes/pymsaviz/meta.yaml +++ b/recipes/pymsaviz/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pymsaviz" %} -{% set version = "0.4.2" %} +{% set version = "0.5.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pymsaviz-{{ version }}.tar.gz - sha256: a6506c75b52e8e0c9f28c13f0cca2d2c5cd642c8136dbb42426ab5f19e5ff6f7 + sha256: 644a5bacfc0aa75b7c5d2c2e2b666020ac4f72e18b54a142b56d4638cfbe6764 build: entry_points: @@ -20,22 +20,19 @@ build: requirements: host: - - python >=3.8 - - poetry-core >=1.0.0 + - python >=3.9 + - hatchling - pip run: - - python >=3.8 + - python >=3.9 - biopython >=1.79 - matplotlib-base >=3.5.2 - - pytest test: imports: - pymsaviz commands: - pymsaviz --help - source_files: - - tests/ about: home: https://moshi4.github.io/pyMSAviz/ diff --git a/recipes/pymsaviz/run_test.sh b/recipes/pymsaviz/run_test.sh deleted file mode 100644 index 0afa92db35c77..0000000000000 --- a/recipes/pymsaviz/run_test.sh +++ /dev/null @@ -1 +0,0 @@ -pytest tests From 5515fd66e1680cd83f7d6028b976e6cce53ae214 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 15 Sep 2024 21:48:52 -0400 Subject: [PATCH 1540/1589] Update bx-python to 0.13.0 (#50722) * Update bx-python to 0.13.0 * Also test importing bx.phylo.newick * Add pyparsing to run dependencies --------- Co-authored-by: Nicola Soranzo --- recipes/bx-python/meta.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/bx-python/meta.yaml b/recipes/bx-python/meta.yaml index fb05bc7948ff6..187536a7dee88 100644 --- a/recipes/bx-python/meta.yaml +++ b/recipes/bx-python/meta.yaml @@ -1,6 +1,6 @@ {% set name = "bx-python" %} -{% set version = "0.12.0" %} -{% set sha256 = "aac2405a7b6f0d74a0a38d0e589205ed4e5ecee12df23e2076d40d41cc8335c2" %} +{% set version = "0.13.0" %} +{% set sha256 = "ce04696543367efc6b7995d9463efeda691b9a58f6f55a7bd831e642159b0644" %} package: name: {{ name|lower }} @@ -32,6 +32,7 @@ requirements: run: - python - {{ pin_compatible('numpy') }} + - pyparsing test: imports: @@ -50,6 +51,7 @@ test: - bx.motif.io - bx.motif.logo - bx.phylo + - bx.phylo.newick - bx.pwm - bx.seq - bx.tabular From 0bca5079673d65d36268be70f566463b9535232f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 16 Sep 2024 02:08:20 -0400 Subject: [PATCH 1541/1589] Update dnaapler to 0.8.1 (#50724) --- recipes/dnaapler/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/dnaapler/meta.yaml b/recipes/dnaapler/meta.yaml index ca0ab07f0d1c8..fb13849f5c288 100644 --- a/recipes/dnaapler/meta.yaml +++ b/recipes/dnaapler/meta.yaml @@ -1,5 +1,5 @@ {% set name = "dnaapler" %} -{% set version = "0.8.0" %} +{% set version = "0.8.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 393c70dc355243200b7652810b3349e763de6bfcc07e168e51308c16cde045ea + sha256: 0e27734328a1e200c2181f7c02c6c5ffec0ea773bb5fa15eef3a7b2aeafc188b build: number: 0 From 4d93a6ed54e95f08712f093a1464e7cd443a4f37 Mon Sep 17 00:00:00 2001 From: mzytnicki <34034101+mzytnicki@users.noreply.github.com> Date: Mon, 16 Sep 2024 09:47:16 +0200 Subject: [PATCH 1542/1589] Update srnamapper recipe (#50699) --- recipes/srnamapper/build.sh | 3 ++- recipes/srnamapper/meta.yaml | 11 +++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/recipes/srnamapper/build.sh b/recipes/srnamapper/build.sh index f84b5edcffa02..4c383967d7913 100644 --- a/recipes/srnamapper/build.sh +++ b/recipes/srnamapper/build.sh @@ -1,8 +1,9 @@ #!/bin/bash +set -xe # zlib hack -make CC=$CC INCLUDES="-I$PREFIX/include" CFLAGS+="-g -Wall -O2 -L$PREFIX/lib" +make -j ${CPU_COUNT} CC=$CC INCLUDES="-I$PREFIX/include" CFLAGS+="-g -Wall -O2 -L$PREFIX/lib" chmod +x srnaMapper mkdir -p ${PREFIX}/bin cp -f srnaMapper ${PREFIX}/bin diff --git a/recipes/srnamapper/meta.yaml b/recipes/srnamapper/meta.yaml index 55e1e0f5e89cf..93f52db87400d 100644 --- a/recipes/srnamapper/meta.yaml +++ b/recipes/srnamapper/meta.yaml @@ -6,12 +6,13 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name|lower, max_pin="x") }} source: - url: https://github.com/mzytnicki/srnaMapper/releases/download/{{ version }}/{{ version }}.tar.gz + git_url: https://github.com/mzytnicki/srnaMapper.git + git_rev: {{ version }} sha256: 2f0ae9a7302243977195a1eb1857c7d34f3b4c537fc0e324ec338e18799e389f requirements: @@ -35,5 +36,11 @@ test: - srnaMapper -h extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 + skip-lints: + - uses_vcs_url + - missing_hash recipe-maintainers: - mzytnicki From 9c067cc7008c8e6fc426e5e30a99ab053976d819 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 16 Sep 2024 03:55:07 -0400 Subject: [PATCH 1543/1589] Update olivar to 1.2.0 (#50723) --- recipes/olivar/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/olivar/meta.yaml b/recipes/olivar/meta.yaml index 5cda48e56fae5..9deb6d02f8971 100644 --- a/recipes/olivar/meta.yaml +++ b/recipes/olivar/meta.yaml @@ -1,5 +1,5 @@ {% set name = "olivar" %} -{% set version = "1.1.5" %} +{% set version = "1.2.0" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/treangenlab/Olivar/archive/refs/tags/v{{version}}.tar.gz - sha256: 7ead97763b448fbf9c7cad5f25c08b5e5063e92bfd8fc069604f05d76cf071f2 + sha256: af21ffda47078a743b71ec42569ddb3324bcb21ed74ba65c78b02f72b16459c2 build: number: 0 From 3897d1db838b348f2df3aa2308e555fe041927c1 Mon Sep 17 00:00:00 2001 From: Timothee Cezard Date: Mon, 16 Sep 2024 08:56:08 +0100 Subject: [PATCH 1544/1589] update vcf-validator to 0.9.7 (#50721) --- recipes/vcf-validator/build.sh | 11 +++-------- recipes/vcf-validator/meta.yaml | 18 +++++++++--------- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/recipes/vcf-validator/build.sh b/recipes/vcf-validator/build.sh index acd838e4eac4f..7a7491a9e1988 100644 --- a/recipes/vcf-validator/build.sh +++ b/recipes/vcf-validator/build.sh @@ -1,11 +1,6 @@ mkdir -p ${PREFIX}/bin -# Check if linux or osx -if [ -z ${OSX_ARCH+x} ]; then - mv vcf_validator_linux ${PREFIX}/bin/vcf_validator - mv vcf_assembly_checker_linux ${PREFIX}/bin/vcf_assembly_checker -else - mv vcf_validator_macos ${PREFIX}/bin/vcf_validator - mv vcf_assembly_checker_macos ${PREFIX}/bin/vcf_assembly_checker -fi + +mv vcf_validator* ${PREFIX}/bin/vcf_validator +mv vcf_assembly_checker* ${PREFIX}/bin/vcf_assembly_checker chmod 755 ${PREFIX}/bin/vcf_assembly_checker ${PREFIX}/bin/vcf_validator diff --git a/recipes/vcf-validator/meta.yaml b/recipes/vcf-validator/meta.yaml index 252a24c4013d0..03877f075b8f4 100644 --- a/recipes/vcf-validator/meta.yaml +++ b/recipes/vcf-validator/meta.yaml @@ -1,19 +1,19 @@ {% set name = "vcf-validator" %} -{% set version = "0.9.6" %} +{% set version = "0.9.7" %} package: name: {{ name }} version: {{ version }} source: - - url: https://github.com/EBIvariation/vcf-validator/releases/download/v{{ version }}/vcf_validator_linux # [linux] - sha256: 33fc99334e77a90e99415daebfa877a9bc0375a3d7c18809082ace64d8373cdd # [linux] - - url: https://github.com/EBIvariation/vcf-validator/releases/download/v{{ version }}/vcf_assembly_checker_linux # [linux] - sha256: 7913a6b3f12fdf5a66c98026ef144be4f8964f981f80eca4b509e06e6b8282ab # [linux] - - url: https://github.com/EBIvariation/vcf-validator/releases/download/v{{ version }}/vcf_validator_macos # [osx] - sha256: 68f50e38323260dcd77e236c27872e1a0eb5c6407736baf003cbc755c87bab94 # [osx] - - url: https://github.com/EBIvariation/vcf-validator/releases/download/v{{ version }}/vcf_assembly_checker_macos # [osx] - sha256: afb7383468fa08d597fc8f7588918dbcdafc8d6d41eb7d33d37ae71a30860cb7 # [osx] + - url: https://github.com/EBIvariation/vcf-validator/releases/download/v{{ version }}/vcf_validator_linux # [linux] + sha256: 49aef4841cd7d0913ba12020465830b834ccfe20f2094222c8c41511f6c801ac # [linux] + - url: https://github.com/EBIvariation/vcf-validator/releases/download/v{{ version }}/vcf_assembly_checker_linux # [linux] + sha256: a9a00303c05c1fb5a33a5bd1f5c74fb5d8097f92a1f3ee815e19c137c0e26f13 # [linux] + - url: https://github.com/EBIvariation/vcf-validator/releases/download/v{{ version }}/vcf_validator_macos_x64 # [osx and x86] + sha256: 0b97a34fac6cf23951ffc33cdfb7b0602a89b4d5390564c8d816cb83019a3ffc # [osx and x86] + - url: https://github.com/EBIvariation/vcf-validator/releases/download/v{{ version }}/vcf_assembly_checker_macos_x64 # [osx and x86] + sha256: 1b5404a4239da9f5e5e39bece975e4eea55d87c486121a076226829b79477bc3 # [osx and x86] build: script: From 53ca46e962a59a68b88f9c185d540dd2392476c4 Mon Sep 17 00:00:00 2001 From: Jens Zentgraf Date: Mon, 16 Sep 2024 09:57:24 +0200 Subject: [PATCH 1545/1589] Add hackgap recipe (#50703) --- recipes/hackgap/meta.yaml | 52 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 recipes/hackgap/meta.yaml diff --git a/recipes/hackgap/meta.yaml b/recipes/hackgap/meta.yaml new file mode 100644 index 0000000000000..a419fc79b6312 --- /dev/null +++ b/recipes/hackgap/meta.yaml @@ -0,0 +1,52 @@ +{% set name = "hackgap" %} +{% set version = "1.0.0" %} + +package: + name: "{{ name|lower }}" + version: "{{ version }}" + +source: + url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" + sha256: 35c5705d8ca1de0d8064c9869730b65f596a0a378a9d14f8a58368e4a71aab22 + +build: + number: 0 + entry_points: + - hackgap = hackgap.hackgap.hackgap_main:main + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} + noarch: python + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" + +requirements: + host: + - pip + - python >=3.12 + run: + - python >=3.12 + - numpy >=2 + - numba >=0.60 + - pigz + - xz + - bzip2 + +test: + imports: + - hackgap + commands: + - hackgap --help + - hackgap count --help + +about: + home: https://gitlab.com/rahmannlab/hackgap + license: MIT + license_file: LICENSE + license_family: MIT + summary: "hackgap (hash-based counting of k-mers with gaps) provides a fast jit-compiled k-kmer counter which supports gapped k-mers." + dev_url: https://gitlab.com/rahmannlab/hackgap + +extra: + identifiers: + - doi:10.4230/LIPICS.WABI.2022.12 + recipe-maintainers: + - JZentgraf From 3e0bd041a9cab6533357a1420815d9130681fcec Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 16 Sep 2024 06:17:30 -0400 Subject: [PATCH 1546/1589] Update ppanggolin to 2.1.2 (#50725) --- recipes/ppanggolin/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ppanggolin/meta.yaml b/recipes/ppanggolin/meta.yaml index a1b7a55da9cf0..9c0229f00f267 100644 --- a/recipes/ppanggolin/meta.yaml +++ b/recipes/ppanggolin/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.1.1" %} +{% set version = "2.1.2" %} package: name: ppanggolin @@ -6,7 +6,7 @@ package: source: url: https://github.com/labgem/PPanGGOLiN/archive/{{ version }}.tar.gz - sha256: 2ad2a3a918a00a056323d368457d98252131ac1f75b040f2f351238a99f4ef54 + sha256: ecb5cc4bc4db3a1e842a4085d6aec3a25a12513215523797723e325f96d1158d build: number: 0 From 16000ece384217ff29befea9835754e591dd447d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 16 Sep 2024 07:39:19 -0400 Subject: [PATCH 1547/1589] Update alfred to 0.3.2 (#50728) --- recipes/alfred/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/alfred/meta.yaml b/recipes/alfred/meta.yaml index 5d3625929f77e..d7ea18f44fdf3 100644 --- a/recipes/alfred/meta.yaml +++ b/recipes/alfred/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.3.1" %} -{% set sha256 = "6a84eef8cb737e856915c88b340304a22e5cc5013f89d3756026f93720f3c8cb" %} +{% set version = "0.3.2" %} +{% set sha256 = "506967a9588ee51911fb4ddd6d2d3274bff0140004b2473de32728de76567d05" %} package: name: alfred @@ -10,7 +10,7 @@ source: sha256: '{{ sha256 }}' build: - number: 2 + number: 0 run_exports: - {{ pin_subpackage('alfred', max_pin="x.x") }} From 65a45685f575721fd09346210b68d61407267afb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 16 Sep 2024 08:34:41 -0400 Subject: [PATCH 1548/1589] Update r-recetox-aplcms to 0.13.3 (#50731) --- recipes/r-recetox-aplcms/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/r-recetox-aplcms/meta.yaml b/recipes/r-recetox-aplcms/meta.yaml index 01bb61a31fb8b..f47239d4c8f56 100644 --- a/recipes/r-recetox-aplcms/meta.yaml +++ b/recipes/r-recetox-aplcms/meta.yaml @@ -1,5 +1,5 @@ {% set name = "recetox-aplcms" %} -{% set version = "0.13.2" %} +{% set version = "0.13.3" %} {% set github = "https://github.com/RECETOX/recetox-aplcms" %} package: @@ -8,7 +8,7 @@ package: source: url: "https://github.com/RECETOX/recetox-aplcms/archive/refs/tags/v{{ version }}.tar.gz" - sha256: 070e1dc9df4e3bff0e55d1332ee0a738ed368a03dbd485a37b14120408be08b2 + sha256: 3b37e51e959cba7cab6691f66dd2bb8279c4112fc5155576e0efef4ded2ad10b build: number: 0 From c3adb1b90fd55ce7811af1270b6a50430a5474db Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 16 Sep 2024 08:45:11 -0400 Subject: [PATCH 1549/1589] Update delly to 1.2.8 (#50732) * Update delly to 1.2.8 * update dependencies --------- Co-authored-by: Tobias Rausch --- recipes/delly/build.sh | 3 +-- recipes/delly/meta.yaml | 17 +++++++++++------ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/recipes/delly/build.sh b/recipes/delly/build.sh index 2947d72ca81d5..89d206cac27f5 100644 --- a/recipes/delly/build.sh +++ b/recipes/delly/build.sh @@ -1,4 +1,3 @@ #!/bin/sh -make CXX="$CXX" all -make prefix="$PREFIX" install +CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS" make -j${CPU_COUNT} CXX="${CXX}" prefix="${PREFIX}" install diff --git a/recipes/delly/meta.yaml b/recipes/delly/meta.yaml index fecd3a2f86db7..7f4a5eb376046 100644 --- a/recipes/delly/meta.yaml +++ b/recipes/delly/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.2.6" %} -{% set sha256 = "1a71fcc5f2a55649c2104086f3f7163ed58c5868eaf040a25e45c777b0e1abb7" %} +{% set version = "1.2.8" %} +{% set sha256 = "f7f67b6c01d3840376a4da89b9157cacea77eda2b078a4aa6502403b3fd8dffd" %} package: name: delly @@ -10,7 +10,7 @@ source: sha256: '{{ sha256 }}' build: - number: 4 + number: 0 run_exports: - {{ pin_subpackage("delly", max_pin="x.x") }} @@ -18,13 +18,18 @@ requirements: build: - make - {{ compiler('cxx') }} - - wget host: - zlib - - boost-cpp =1.78.0 + - bzip2 + - libdeflate + - boost-cpp - htslib run: - - boost-cpp =1.78.0 + - zlib + - bzip2 + - libdeflate + - boost-cpp + - htslib test: commands: From c3e71bc6eb253dd4a55c11c385c7c879a8f84f07 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 16 Sep 2024 12:23:26 -0400 Subject: [PATCH 1550/1589] Update viroconstrictor to 1.4.4 (#50739) --- recipes/viroconstrictor/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/viroconstrictor/meta.yaml b/recipes/viroconstrictor/meta.yaml index 2bbfb5a0c5666..2b1e0d8c2d406 100644 --- a/recipes/viroconstrictor/meta.yaml +++ b/recipes/viroconstrictor/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ViroConstrictor" %} -{% set version = "1.4.3" %} +{% set version = "1.4.4" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/RIVM-bioinformatics/ViroConstrictor/archive/v{{ version }}.tar.gz - sha256: 43e7e6b29745367f3eabaef4ea736dfb25e2797fbe0e532b10f8594f71fc5883 + sha256: 79e0ba6bcc817e203181e64b840db99f4c27b260d0aa8ab9caffded692bd23c9 build: noarch: python From 55131008bd105be786de61db6aaa705e670c7436 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 16 Sep 2024 12:24:16 -0400 Subject: [PATCH 1551/1589] Update guidescan to 2.2.1 (#50738) --- recipes/guidescan/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/guidescan/meta.yaml b/recipes/guidescan/meta.yaml index 9aea5a66ea70d..9fb290f45333c 100644 --- a/recipes/guidescan/meta.yaml +++ b/recipes/guidescan/meta.yaml @@ -1,5 +1,5 @@ {% set name="guidescan" %} -{% set version="2.2.0" %} +{% set version="2.2.1" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/pritykinlab/guidescan-cli/releases/download/v{{ version }}/guidescan-v{{ version }}-src.tar.gz - sha256: b1fd82fc65bbcd883e6006ed921762e8075edd61b693f1a4d084e1fda6305f72 + sha256: 24075dc9c391e16af7ac7bf0af4cba0682b420e7ed63ca7c928f16a61adc5ff1 build: number: 0 From 029a1135c6a31741c6b1c7b5457af9350b477adc Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 16 Sep 2024 13:53:39 -0400 Subject: [PATCH 1552/1589] Update microhapulator to 0.8.2 (#50740) --- recipes/microhapulator/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/microhapulator/meta.yaml b/recipes/microhapulator/meta.yaml index ab9259819f12b..1c327c967798f 100644 --- a/recipes/microhapulator/meta.yaml +++ b/recipes/microhapulator/meta.yaml @@ -1,6 +1,6 @@ {% set name = "microhapulator" %} -{% set version = "0.8.1" %} -{% set sha256 = "c0bb85f611211fa305f4cbc6f11877af901b7195f99e1379cb616710fee0555c" %} +{% set version = "0.8.2" %} +{% set sha256 = "8b4921cfa278d6879c2173509e9dfd45f5df1fa14b6951ed1ff55861d6fefda7" %} package: name: {{ name }} From 24b3c0d08c1ef5728299cda115d237fefe87e056 Mon Sep 17 00:00:00 2001 From: Vineet Bansal Date: Mon, 16 Sep 2024 14:55:52 -0400 Subject: [PATCH 1553/1589] Updated recipe for Guidescan 2.2.1 to include osx-arm64 (#50743) --- recipes/guidescan/meta.yaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/recipes/guidescan/meta.yaml b/recipes/guidescan/meta.yaml index 9fb290f45333c..ffd02572d5146 100644 --- a/recipes/guidescan/meta.yaml +++ b/recipes/guidescan/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 24075dc9c391e16af7ac7bf0af4cba0682b420e7ed63ca7c928f16a61adc5ff1 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} @@ -22,6 +22,10 @@ requirements: run: - libcurl +extra: + additional-platforms: + - osx-arm64 + test: commands: - "guidescan --version" From 6dc8163395d1c3d3c3796aca644873d6c6afcd22 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 16 Sep 2024 15:44:17 -0400 Subject: [PATCH 1554/1589] Update microhapulator to 0.8.3 (#50745) --- recipes/microhapulator/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/microhapulator/meta.yaml b/recipes/microhapulator/meta.yaml index 1c327c967798f..f7d1062804a48 100644 --- a/recipes/microhapulator/meta.yaml +++ b/recipes/microhapulator/meta.yaml @@ -1,6 +1,6 @@ {% set name = "microhapulator" %} -{% set version = "0.8.2" %} -{% set sha256 = "8b4921cfa278d6879c2173509e9dfd45f5df1fa14b6951ed1ff55861d6fefda7" %} +{% set version = "0.8.3" %} +{% set sha256 = "c213d37a755b80c5208ddf586625a41448f2a13583f49b41f3921bfe4becc5c3" %} package: name: {{ name }} From 7c8e0e9f45bc25162e6f728830c540961f4c51ac Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 16 Sep 2024 23:20:30 -0400 Subject: [PATCH 1555/1589] Update microhapulator to 0.8.4 (#50747) --- recipes/microhapulator/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/microhapulator/meta.yaml b/recipes/microhapulator/meta.yaml index f7d1062804a48..7b5cff8ef3082 100644 --- a/recipes/microhapulator/meta.yaml +++ b/recipes/microhapulator/meta.yaml @@ -1,6 +1,6 @@ {% set name = "microhapulator" %} -{% set version = "0.8.3" %} -{% set sha256 = "c213d37a755b80c5208ddf586625a41448f2a13583f49b41f3921bfe4becc5c3" %} +{% set version = "0.8.4" %} +{% set sha256 = "215ddd41c8506a20c076bcf765e49646fd9d759a6f511495cc697e7fc2ad51cb" %} package: name: {{ name }} From 0a91903c4a706742584742a93fbc8faf22b58f28 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 17 Sep 2024 06:20:49 +0300 Subject: [PATCH 1556/1589] cnv_facets & snp-pileup: add linux-aarch64 build (#50688) * cnv_facets: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Add linux-aarch64 build for snp-pileup Signed-off-by: Martin Tzvetanov Grigorov * r-facets: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/cnv_facets/build.sh | 4 +--- recipes/cnv_facets/meta.yaml | 6 +++++- recipes/r-facets/meta.yaml | 6 +++++- recipes/snp-pileup/meta.yaml | 8 +++++++- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/recipes/cnv_facets/build.sh b/recipes/cnv_facets/build.sh index 4c2de3edd0730..cd500288f600e 100644 --- a/recipes/cnv_facets/build.sh +++ b/recipes/cnv_facets/build.sh @@ -1,14 +1,12 @@ #!/bin/bash -set -e +set -xe FACETS_GIT_REF=`grep -P ' *^FACETS_REF' install/install_pkgs.R \ | sed 's/ //g; s/<-//; s/=//;' \ | tr "'" '"' \ | sed 's/FACETS_REF"//; s/".*//'` -$R -e "devtools::install_github('mskcc/facets', ref= '$FACETS_GIT_REF', lib= NULL, repos= 'https://cran.r-project.org')" - mkdir -p $PREFIX/bin chmod a+x bin/cnv_facets.R cp bin/cnv_facets.R $PREFIX/bin/ diff --git a/recipes/cnv_facets/meta.yaml b/recipes/cnv_facets/meta.yaml index 187c86a1e7d84..33bfbf683e95c 100644 --- a/recipes/cnv_facets/meta.yaml +++ b/recipes/cnv_facets/meta.yaml @@ -10,7 +10,7 @@ source: sha256: '{{sha256}}' build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('cnv_facets', max_pin="x") }} skip: True # [not linux] @@ -22,6 +22,7 @@ requirements: - {{ compiler('fortran') }} host: - r-argparse >=2.1.6 + - r-facets - r-base - r-devtools - r-data.table @@ -35,6 +36,7 @@ requirements: - snp-pileup run: - r-argparse >=2.1.6 + - r-facets - r-base - r-data.table - r-ggplot2 @@ -58,5 +60,7 @@ about: license_family: MIT extra: + additional-platforms: + - linux-aarch64 maintainers: - Dario Beraldi diff --git a/recipes/r-facets/meta.yaml b/recipes/r-facets/meta.yaml index 6cd13c2138670..4bbd9aa678bdd 100644 --- a/recipes/r-facets/meta.yaml +++ b/recipes/r-facets/meta.yaml @@ -7,7 +7,9 @@ source: sha256: aa671d4fc66e10ce2fe4c8b2cbac4946da8a1564627240ea916db6cd8ec2a6c5 build: - number: 4 + number: 5 + run_exports: + - {{ pin_subpackage("r-facets", max_pin="x") }} rpaths: - lib/R/lib/ - lib/ @@ -35,5 +37,7 @@ about: license_family: GPL3 extra: + additional-platforms: + - linux-aarch64 identifiers: - biotools:facets diff --git a/recipes/snp-pileup/meta.yaml b/recipes/snp-pileup/meta.yaml index 183350fbe75df..f601bcf01ad9c 100644 --- a/recipes/snp-pileup/meta.yaml +++ b/recipes/snp-pileup/meta.yaml @@ -10,8 +10,10 @@ source: sha256: '{{sha256}}' build: - number: 6 + number: 7 skip: True # [osx] + run_exports: + - {{ pin_subpackage('snp-pileup', max_pin="x.x") }} requirements: build: @@ -31,3 +33,7 @@ about: license: MIT summary: Compute SNP pileup at reference positions in one or more input bam files. Output is ready for the R package facets license_family: MIT + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From b30a3f85e23a31b86c82d658da4344fb28d619d1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 16 Sep 2024 23:21:16 -0400 Subject: [PATCH 1557/1589] Update pathphynder to 1.2.3 (#50729) --- recipes/pathphynder/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pathphynder/meta.yaml b/recipes/pathphynder/meta.yaml index d71ca35fb21a7..9fac48b8890f8 100644 --- a/recipes/pathphynder/meta.yaml +++ b/recipes/pathphynder/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pathphynder" %} -{% set version = "1.2.2" %} -{% set sha256="ca12a559743b3df8b7c03b5b2f2ea61c310102543e96559598ea62da50619cea" %} +{% set version = "1.2.3" %} +{% set sha256="2c2acd0c15e9403f5506980121551654c5072fb62edc02846600f7902087e2ca" %} package: name: {{ name }} From f73946a1cf72202a487ec4d8d1506f314ecfff1f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 16 Sep 2024 23:21:44 -0400 Subject: [PATCH 1558/1589] Update isoquant to 3.6.0 (#50735) --- recipes/isoquant/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/isoquant/meta.yaml b/recipes/isoquant/meta.yaml index b7ce9396ccb4a..f727f0b87a4ae 100644 --- a/recipes/isoquant/meta.yaml +++ b/recipes/isoquant/meta.yaml @@ -1,6 +1,6 @@ {% set name = "IsoQuant" %} -{% set version = "3.5.2" %} -{% set sha256 = "8d62f76686fa8abe5530641ca6b638784d425be41b1bbc6b6d963e5e26025c2a" %} +{% set version = "3.6.0" %} +{% set sha256 = "510d12cb1f1edf7dbe4ba433681d2f5c3c1c15bc70711a24758884a08ef2d68b" %} package: name: {{ name | lower }} From 576f5923b0c8c6a2ba24150e95f8e6ffd57b5eb4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 16 Sep 2024 23:21:57 -0400 Subject: [PATCH 1559/1589] Update cellprofiler-core to 4.2.8 (#50746) --- recipes/cellprofiler-core/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/cellprofiler-core/meta.yaml b/recipes/cellprofiler-core/meta.yaml index f439833bd2fb8..3d571207beeff 100644 --- a/recipes/cellprofiler-core/meta.yaml +++ b/recipes/cellprofiler-core/meta.yaml @@ -1,5 +1,5 @@ {% set name = "cellprofiler-core" %} -{% set version = "4.2.7" %} +{% set version = "4.2.8" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/cellprofiler_core-{{ version }}.tar.gz - sha256: b1a4c232a7d6237726ec3f5a5d5b9c06b177d3b37020c14b2179b690aef1f772 + sha256: 80e7465edf7b3c9d09b36156ba163d3a30769951f3724b924a504c9289ed7848 build: number: 0 From 3f1fce7980eb58780d436a1031e7b998d1d2c5d2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 16 Sep 2024 23:22:31 -0400 Subject: [PATCH 1560/1589] Update mirtop to 0.4.28 (#50748) --- recipes/mirtop/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mirtop/meta.yaml b/recipes/mirtop/meta.yaml index 78d7977d5bfd6..327cbfd86b4c0 100644 --- a/recipes/mirtop/meta.yaml +++ b/recipes/mirtop/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.4.27" %} +{% set version = "0.4.28" %} package: name: mirtop @@ -6,7 +6,7 @@ package: source: url: https://github.com/miRTop/mirtop/archive/v{{ version }}.tar.gz - sha256: 1fc9e186de8b0667b0c0e5d321eae85336d0535411c45e92f05653d32a58deae + sha256: 1937ee0e90dd8f00071ebd8f4449709367396bdeb8236dc831122141717438d6 build: script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir From a39f208ccdcd0b2ff100666102dd3eb7c25ac322 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 16 Sep 2024 23:22:59 -0400 Subject: [PATCH 1561/1589] Update fiji-omero_ij to 5.8.6 (#50737) --- recipes/fiji-omero_ij/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/fiji-omero_ij/meta.yaml b/recipes/fiji-omero_ij/meta.yaml index 5899814ca4d33..fc132d9dea7b0 100644 --- a/recipes/fiji-omero_ij/meta.yaml +++ b/recipes/fiji-omero_ij/meta.yaml @@ -1,5 +1,5 @@ {% set name = "fiji-omero_ij" %} -{% set version = "5.8.4" %} +{% set version = "5.8.6" %} package: name: {{ name | lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/ome/omero-insight/releases/download/v{{ version }}/omero_ij-{{ version }}-all.jar - sha256: 14020e96fd8908907bf6f9747085452d6068b25a1df62546037ba0a3a876aa92 + sha256: d5e512dbc9125f21b904141bddbbe06768f279ac859eb5dd8206f725590617d1 build: number: 0 From d7c30a0a2bca284339c3694df99ecbaaaa3df73a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20P=C5=99=C3=ADhoda?= Date: Tue, 17 Sep 2024 05:24:02 +0200 Subject: [PATCH 1562/1589] Fix biophi build (#50730) --- recipes/biophi/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/biophi/meta.yaml b/recipes/biophi/meta.yaml index cf9b788553cb9..f23128738c1c2 100644 --- a/recipes/biophi/meta.yaml +++ b/recipes/biophi/meta.yaml @@ -10,7 +10,7 @@ source: build: noarch: python - number: 3 + number: 4 entry_points: - biophi = biophi.common.cli.main:main script: {{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv @@ -20,7 +20,7 @@ build: requirements: host: - python >=3.8 - - pip + - pip <24.1 # due to error in omegaconf (dependency of fairseq) - setuptools - pytest run: From c5eb7c7b18e145d58886cdacaf4cf41d8190a37e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 16 Sep 2024 23:53:12 -0400 Subject: [PATCH 1563/1589] Update icfree-ml to 2.5.0 (#50726) * Update icfree-ml to 2.5.0 * build(icfree-ml): update (#50742) --------- Co-authored-by: Thomas Duigou --- recipes/icfree-ml/meta.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/recipes/icfree-ml/meta.yaml b/recipes/icfree-ml/meta.yaml index 8ebec52264de7..d0e9659d2aa05 100644 --- a/recipes/icfree-ml/meta.yaml +++ b/recipes/icfree-ml/meta.yaml @@ -1,13 +1,13 @@ {% set name = "icfree-ml" %} -{% set version = "2.4.0" %} +{% set version = "2.5.0" %} package: name: {{ name|lower }} version: {{ version }} source: - url: https://github.com/brsynth/icfree-ml/archive/refs/tags/2.4.0.tar.gz - sha256: 7ea76c71098b86f562fd676c31b440da86d2f1c83c70b601eea58d4e28cce408 + url: https://github.com/brsynth/icfree-ml/archive/refs/tags/2.5.0.tar.gz + sha256: 9720880aba7613b582cd519749c5908195679e228a196cbc6ae941814410aef3 build: number: 0 @@ -27,6 +27,7 @@ requirements: - blast - pandas - pydoe2 + - openpyxl test: source_files: From 34fb7a147b856770c1596548296dc0fd2c11515d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 16 Sep 2024 23:56:44 -0400 Subject: [PATCH 1564/1589] Update biophi to 1.0.10 (#50733) * Update biophi to 1.0.10 * clean up recipe --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Co-authored-by: mencian --- recipes/biophi/meta.yaml | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/recipes/biophi/meta.yaml b/recipes/biophi/meta.yaml index f23128738c1c2..e86252f4f51f6 100644 --- a/recipes/biophi/meta.yaml +++ b/recipes/biophi/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.0.9" %} # Remember to update sha256 below +{% set version = "1.0.10" %} # Remember to update sha256 below package: name: biophi @@ -6,22 +6,21 @@ package: source: url: https://github.com/Merck/BioPhi/archive/v{{ version }}.tar.gz - sha256: 'dd0662ce1e8ff750487493c23db7ac2fa0e9b7cf0868f479996300aec2e2acd2' + sha256: '553c238753281be106b9ad5d470fce71b3d79517734e0ebb85ffd15b4eb7dfe7' build: noarch: python - number: 4 + number: 0 entry_points: - biophi = biophi.common.cli.main:main - script: {{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv + script: {{ PYTHON }} -m pip install . --no-build-isolation --no-deps --no-cache-dir -vvv run_exports: - - {{ pin_subpackage("biophi", max_pin="x.x") }} + - {{ pin_subpackage("biophi", max_pin="x") }} requirements: host: - python >=3.8 - pip <24.1 # due to error in omegaconf (dependency of fairseq) - - setuptools - pytest run: - python >=3.8 @@ -50,8 +49,14 @@ test: - biophi oasis --help about: - home: https://github.com/Merck/BioPhi + home: "https://github.com/Merck/BioPhi" license: MIT license_family: MIT license_file: LICENSE - summary: BioPhi open-source antibody design platform + summary: "BioPhi open-source antibody design platform." + dev_url: "https://github.com/Merck/BioPhi" + doc_url: "https://biophi.dichlab.org" + +extra: + identifiers: + - biotools:biophi From 4618a77a070ab2fc4c7e3bf873cfdafac7a336fe Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 16 Sep 2024 23:58:45 -0400 Subject: [PATCH 1565/1589] Update vclean to 0.1.3 (#50695) * Update vclean to 0.1.3 * pin python to <3.10 * fix python pinning * try 3.9.0 --------- Co-authored-by: mencian --- recipes/vclean/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/vclean/meta.yaml b/recipes/vclean/meta.yaml index 42c74f5c91ba3..53c1c665879db 100644 --- a/recipes/vclean/meta.yaml +++ b/recipes/vclean/meta.yaml @@ -1,5 +1,5 @@ {% set name = "vclean" %} -{% set version = "0.1.2" %} +{% set version = "0.1.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/vclean-{{ version }}.tar.gz - sha256: 7eef83f43db68b134684886144ef153f3275fe54af005504086489a4f3fc5245 + sha256: ba9fb9e317254db3bb89c82810f238a7d78e3aba3a4a187cdacf9acd0adcffac build: entry_points: @@ -20,11 +20,11 @@ build: requirements: host: - - python >=3.9 + - python ==3.9.0 - flit-core >=3.2,<4 - pip run: - - python >=3.9 + - python ==3.9.0 - pandas - numpy - matplotlib-base From 6380fe0dbcaf98a6c975713a40fef0746bc623bd Mon Sep 17 00:00:00 2001 From: pvanheus Date: Tue, 17 Sep 2024 06:01:51 +0200 Subject: [PATCH 1566/1589] Add recipe for transanno (#50717) * Add recipe for transanno * Fix build number * Fix path in build.sh * Fix location of transanno in build script * Remove failing linux aarch64 * Fixes for build and dependencies as per martin-g --- recipes/transanno/build.sh | 11 +++++++++++ recipes/transanno/meta.yaml | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 recipes/transanno/build.sh create mode 100644 recipes/transanno/meta.yaml diff --git a/recipes/transanno/build.sh b/recipes/transanno/build.sh new file mode 100644 index 0000000000000..a19f8c827c782 --- /dev/null +++ b/recipes/transanno/build.sh @@ -0,0 +1,11 @@ +#!/bin/bash -e + +# build statically linked binary with Rust +RUST_BACKTRACE=1 \ + C_INCLUDE_PATH=$PREFIX/include \ + LIBRARY_PATH=$PREFIX/lib \ + cargo build --release + +mkdir $PREFIX/bin +cp $SRC_DIR/target/*/release/transanno $PREFIX/bin/transanno +chmod a+x $PREFIX/bin/transanno diff --git a/recipes/transanno/meta.yaml b/recipes/transanno/meta.yaml new file mode 100644 index 0000000000000..dbc207425ea00 --- /dev/null +++ b/recipes/transanno/meta.yaml @@ -0,0 +1,36 @@ +{% set version = "0.4.5" %} +{% set sha256 = "f800ef6d9eff31aad6e00bbe963fd0c57a9ba9036c676a972ceefd9d1cdfbdc9" %} +{% set name = "transanno" %} + +package: + name: {{ name }} + version: {{ version }} + +build: + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x.x") }} + +source: + url: https://github.com/informationsea/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz + sha256: {{ sha256 }} + +requirements: + build: + - {{ compiler('rust') }} + +test: + commands: + - transanno --help + +about: + home: https://github.com/informationsea/{{ name }} + license: GPL-3.0-only + license_family: GPL + license_file: LICENSE + summary: "accurate VCF/GFF3/GTF LiftOver tool for new genome assemblies" + +extra: + additional-platforms: + - osx-arm64 + - linux-aarch64 From c3090abc9277e4d609ad26e1654936c2a2e82cca Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 17 Sep 2024 00:07:50 -0400 Subject: [PATCH 1567/1589] Update im2deep to 0.2.0 (#50715) Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/im2deep/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/im2deep/meta.yaml b/recipes/im2deep/meta.yaml index f06f10a404b31..8d186c0704c2b 100644 --- a/recipes/im2deep/meta.yaml +++ b/recipes/im2deep/meta.yaml @@ -1,6 +1,6 @@ {% set name = "im2deep" %} -{% set version = "0.1.9" %} -{% set sha256 = "713d6ef509f91367607f64e8cba95987062730101a314932a2f01a632e1d35aa" %} +{% set version = "0.2.0" %} +{% set sha256 = "51678cfa2af905af196176e37e694c8629d9d8f2c4a1848185b5794697e0544b" %} package: name: {{ name|lower }} From ded2e0139efcc540d122af183e16e676d606a25d Mon Sep 17 00:00:00 2001 From: Wenhai Zhang <128364515+Wenhai-Zhang@users.noreply.github.com> Date: Tue, 17 Sep 2024 13:20:27 +0800 Subject: [PATCH 1568/1589] add hylight (#50718) * add hylight * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update build.sh * Update meta.yaml * Update build.sh * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update build.sh * Update meta.yaml * Update build.sh * Update build.sh * Update build.sh * Update build.sh * Update meta.yaml * Update meta.yaml * clean up recipe * edit license_file --------- Co-authored-by: wenhai Co-authored-by: mencian --- recipes/hylight/build.sh | 17 +++++++++++++ recipes/hylight/meta.yaml | 52 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 recipes/hylight/build.sh create mode 100644 recipes/hylight/meta.yaml diff --git a/recipes/hylight/build.sh b/recipes/hylight/build.sh new file mode 100644 index 0000000000000..72be420c9a094 --- /dev/null +++ b/recipes/hylight/build.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +if [[ "$(uname)" == "Darwin" ]]; then + ${PYTHON} -m pip install . --no-build-isolation --no-cache-dir --no-deps -vvv +else + ${PYTHON} -m pip install . --no-build-isolation --no-cache-dir --no-deps -vvv + hylight_conda_dir="${PREFIX}/lib/python3.6/site-packages/HyLight" + chmod +x $hylight_conda_dir/script/*py + cd ${SRC_DIR}/HyLight/tools/miniasm + make clean + make CC="${CC}" CPPFLAGS="${CPPFLAGS}" LIBS="${LDFLAGS} -lm -lz -lpthread -L${PREFIX}/lib" -j"${CPU_COUNT}" + cp -rf ${SRC_DIR}/HyLight/tools/miniasm/miniasm $hylight_conda_dir/tools/miniasm + cd ${SRC_DIR}/HyLight/tools/HaploConduct + make clean + make CC="${CXX}" CPPFLAGS="-Wall -fopenmp -std=c++14 -g -O3 -L${PREFIX}/lib -I${PREFIX}/include" -j"${CPU_COUNT}" + cp -rf bin quick-cliques/bin $hylight_conda_dir/tools/HaploConduct -r +fi diff --git a/recipes/hylight/meta.yaml b/recipes/hylight/meta.yaml new file mode 100644 index 0000000000000..afdf463050468 --- /dev/null +++ b/recipes/hylight/meta.yaml @@ -0,0 +1,52 @@ +{% set name = "hylight" %} +{% set version = "1.0.0" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/LuoGroup2023/HyLight/releases/download/v{{ version }}/hylight.tar.gz + sha256: db01d912fef092c68d7a0dbad9c74e6330388f6524fe072f161a2a2c64f84573 + +build: + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} + +requirements: + build: + - make + - {{ compiler('c') }} + - {{ compiler('cxx') }} + host: + - python ==3.6.15 + - pip + - zlib + - boost-cpp ==1.82 + run: + - python ==3.6.15 + - scipy ==1.5.3 + - numpy ==1.19.5 + - pandas ==1.1.5 + - minimap2 ==2.26 + - bfc ==r181 + - fmlrc2 ==0.1.7 + - ropebwt2 ==r187 + - racon ==1.5.0 + - boost-cpp ==1.82 + +test: + commands: + - hylight -h + +about: + home: "https://github.com/LuoGroup2023/HyLight" + license: MIT + license_family: MIT + summary: "Strain aware assembly of low coverage metagenomes." + dev_url: "https://github.com/LuoGroup2023/HyLight" + +extra: + skip-lints: + - should_be_noarch_python From 78abb40f83e149b0a0d62f27e6bc48424d04f238 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 17 Sep 2024 01:32:16 -0400 Subject: [PATCH 1569/1589] Update medaka to 2.0.0 (#48523) * Update medaka to 1.12.0 * clean up recipe * medaka: Update libcurl to 8.x and openssl to 3.x Drop linux-aarch64 Signed-off-by: Martin Tzvetanov Grigorov * Revert back to openssl 1.1.1 * Update medaka to 1.12.1 * Update medaka to 2.0.0 * replace tensorflow with pytorch * fix license_file name and add aarch64 build * do not build aarch64 for now * clean up recipe * add identifiers * fix typo * fix tests * do not build on aarch64 --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: mencian Co-authored-by: Alicia A. Evans <108547992+aliciaaevans@users.noreply.github.com> Co-authored-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Grigorov Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/medaka/LICENSE.md | 364 --------------------- recipes/medaka/build.sh | 8 +- recipes/medaka/build_failure.linux-64.yaml | 105 ------ recipes/medaka/build_failure.osx-64.yaml | 105 ------ recipes/medaka/conda_build_config.yaml | 9 - recipes/medaka/meta.yaml | 45 +-- 6 files changed, 29 insertions(+), 607 deletions(-) delete mode 100644 recipes/medaka/LICENSE.md delete mode 100644 recipes/medaka/build_failure.linux-64.yaml delete mode 100644 recipes/medaka/build_failure.osx-64.yaml delete mode 100644 recipes/medaka/conda_build_config.yaml diff --git a/recipes/medaka/LICENSE.md b/recipes/medaka/LICENSE.md deleted file mode 100644 index 56dddbbdb5f2d..0000000000000 --- a/recipes/medaka/LICENSE.md +++ /dev/null @@ -1,364 +0,0 @@ -This Source Code Form is subject to the terms of the Mozilla Public -License, v. 2.0. If a copy of the MPL was not distributed with this -file, You can obtain one at http://mozilla.org/MPL/2.0/. - -(c) 2016 Oxford Nanopore Technologies Ltd. - - -Mozilla Public License Version 2.0 -================================== - -### 1. Definitions - -**1.1. “Contributor”** - means each individual or legal entity that creates, contributes to - the creation of, or owns Covered Software. - -**1.2. “Contributor Version”** - means the combination of the Contributions of others (if any) used - by a Contributor and that particular Contributor's Contribution. - -**1.3. “Contribution”** - means Covered Software of a particular Contributor. - -**1.4. “Covered Software”** - means Source Code Form to which the initial Contributor has attached - the notice in Exhibit A, the Executable Form of such Source Code - Form, and Modifications of such Source Code Form, in each case - including portions thereof. - -**1.5. “Incompatible With Secondary Licenses”** - means - -* **(a)** that the initial Contributor has attached the notice described - in Exhibit B to the Covered Software; or -* **(b)** that the Covered Software was made available under the terms of - version 1.1 or earlier of the License, but not also under the - terms of a Secondary License. - -**1.6. “Executable Form”** - means any form of the work other than Source Code Form. - -**1.7. “Larger Work”** - means a work that combines Covered Software with other material, in - a separate file or files, that is not Covered Software. - -**1.8. “License”** - means this document. - -**1.9. “Licensable”** - means having the right to grant, to the maximum extent possible, - whether at the time of the initial grant or subsequently, any and - all of the rights conveyed by this License. - -**1.10. “Modifications”** - means any of the following: - -* **(a)** any file in Source Code Form that results from an addition to, - deletion from, or modification of the contents of Covered - Software; or -* **(b)** any new file in Source Code Form that contains any Covered - Software. - -**1.11. “Patent Claims” of a Contributor** - means any patent claim(s), including without limitation, method, - process, and apparatus claims, in any patent Licensable by such - Contributor that would be infringed, but for the grant of the - License, by the making, using, selling, offering for sale, having - made, import, or transfer of either its Contributions or its - Contributor Version. - -**1.12. “Secondary License”** - means either the GNU General Public License, Version 2.0, the GNU - Lesser General Public License, Version 2.1, the GNU Affero General - Public License, Version 3.0, or any later versions of those - licenses. - -**1.13. “Source Code Form”** - means the form of the work preferred for making modifications. - -**1.14. “You” (or “Your”)** - means an individual or a legal entity exercising rights under this - License. For legal entities, “You” includes any entity that - controls, is controlled by, or is under common control with You. For - purposes of this definition, “control” means **(a)** the power, direct - or indirect, to cause the direction or management of such entity, - whether by contract or otherwise, or **(b)** ownership of more than - fifty percent (50%) of the outstanding shares or beneficial - ownership of such entity. - - -### 2. License Grants and Conditions - -#### 2.1. Grants - -Each Contributor hereby grants You a world-wide, royalty-free, -non-exclusive license: - -* **(a)** under intellectual property rights (other than patent or trademark) - Licensable by such Contributor to use, reproduce, make available, - modify, display, perform, distribute, and otherwise exploit its - Contributions, either on an unmodified basis, with Modifications, or - as part of a Larger Work; and -* **(b)** under Patent Claims of such Contributor to make, use, sell, offer - for sale, have made, import, and otherwise transfer either its - Contributions or its Contributor Version. - -#### 2.2. Effective Date - -The licenses granted in Section 2.1 with respect to any Contribution -become effective for each Contribution on the date the Contributor first -distributes such Contribution. - -#### 2.3. Limitations on Grant Scope - -The licenses granted in this Section 2 are the only rights granted under -this License. No additional rights or licenses will be implied from the -distribution or licensing of Covered Software under this License. -Notwithstanding Section 2.1(b) above, no patent license is granted by a -Contributor: - -* **(a)** for any code that a Contributor has removed from Covered Software; - or -* **(b)** for infringements caused by: **(i)** Your and any other third party's - modifications of Covered Software, or **(ii)** the combination of its - Contributions with other software (except as part of its Contributor - Version); or -* **(c)** under Patent Claims infringed by Covered Software in the absence of - its Contributions. - -This License does not grant any rights in the trademarks, service marks, -or logos of any Contributor (except as may be necessary to comply with -the notice requirements in Section 3.4). - -#### 2.4. Subsequent Licenses - -No Contributor makes additional grants as a result of Your choice to -distribute the Covered Software under a subsequent version of this -License (see Section 10.2) or under the terms of a Secondary License (if -permitted under the terms of Section 3.3). - -#### 2.5. Representation - -Each Contributor represents that the Contributor believes its -Contributions are its original creation(s) or it has sufficient rights -to grant the rights to its Contributions conveyed by this License. - -#### 2.6. Fair Use - -This License is not intended to limit any rights You have under -applicable copyright doctrines of fair use, fair dealing, or other -equivalents. - -#### 2.7. Conditions - -Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted -in Section 2.1. - - -### 3. Responsibilities - -#### 3.1. Distribution of Source Form - -All distribution of Covered Software in Source Code Form, including any -Modifications that You create or to which You contribute, must be under -the terms of this License. You must inform recipients that the Source -Code Form of the Covered Software is governed by the terms of this -License, and how they can obtain a copy of this License. You may not -attempt to alter or restrict the recipients' rights in the Source Code -Form. - -#### 3.2. Distribution of Executable Form - -If You distribute Covered Software in Executable Form then: - -* **(a)** such Covered Software must also be made available in Source Code - Form, as described in Section 3.1, and You must inform recipients of - the Executable Form how they can obtain a copy of such Source Code - Form by reasonable means in a timely manner, at a charge no more - than the cost of distribution to the recipient; and - -* **(b)** You may distribute such Executable Form under the terms of this - License, or sublicense it under different terms, provided that the - license for the Executable Form does not attempt to limit or alter - the recipients' rights in the Source Code Form under this License. - -#### 3.3. Distribution of a Larger Work - -You may create and distribute a Larger Work under terms of Your choice, -provided that You also comply with the requirements of this License for -the Covered Software. If the Larger Work is a combination of Covered -Software with a work governed by one or more Secondary Licenses, and the -Covered Software is not Incompatible With Secondary Licenses, this -License permits You to additionally distribute such Covered Software -under the terms of such Secondary License(s), so that the recipient of -the Larger Work may, at their option, further distribute the Covered -Software under the terms of either this License or such Secondary -License(s). - -#### 3.4. Notices - -You may not remove or alter the substance of any license notices -(including copyright notices, patent notices, disclaimers of warranty, -or limitations of liability) contained within the Source Code Form of -the Covered Software, except that You may alter any license notices to -the extent required to remedy known factual inaccuracies. - -#### 3.5. Application of Additional Terms - -You may choose to offer, and to charge a fee for, warranty, support, -indemnity or liability obligations to one or more recipients of Covered -Software. However, You may do so only on Your own behalf, and not on -behalf of any Contributor. You must make it absolutely clear that any -such warranty, support, indemnity, or liability obligation is offered by -You alone, and You hereby agree to indemnify every Contributor for any -liability incurred by such Contributor as a result of warranty, support, -indemnity or liability terms You offer. You may include additional -disclaimers of warranty and limitations of liability specific to any -jurisdiction. - - -### 4. Inability to Comply Due to Statute or Regulation - -If it is impossible for You to comply with any of the terms of this -License with respect to some or all of the Covered Software due to -statute, judicial order, or regulation then You must: **(a)** comply with -the terms of this License to the maximum extent possible; and **(b)** -describe the limitations and the code they affect. Such description must -be placed in a text file included with all distributions of the Covered -Software under this License. Except to the extent prohibited by statute -or regulation, such description must be sufficiently detailed for a -recipient of ordinary skill to be able to understand it. - - -### 5. Termination - -**5.1.** The rights granted under this License will terminate automatically -if You fail to comply with any of its terms. However, if You become -compliant, then the rights granted under this License from a particular -Contributor are reinstated **(a)** provisionally, unless and until such -Contributor explicitly and finally terminates Your grants, and **(b)** on an -ongoing basis, if such Contributor fails to notify You of the -non-compliance by some reasonable means prior to 60 days after You have -come back into compliance. Moreover, Your grants from a particular -Contributor are reinstated on an ongoing basis if such Contributor -notifies You of the non-compliance by some reasonable means, this is the -first time You have received notice of non-compliance with this License -from such Contributor, and You become compliant prior to 30 days after -Your receipt of the notice. - -**5.2.** If You initiate litigation against any entity by asserting a patent -infringement claim (excluding declaratory judgment actions, -counter-claims, and cross-claims) alleging that a Contributor Version -directly or indirectly infringes any patent, then the rights granted to -You by any and all Contributors for the Covered Software under Section -2.1 of this License shall terminate. - -**5.3.** In the event of termination under Sections 5.1 or 5.2 above, all -end user license agreements (excluding distributors and resellers) which -have been validly granted by You or Your distributors under this License -prior to termination shall survive termination. - - -### 6. Disclaimer of Warranty - -> Covered Software is provided under this License on an “as is” -> basis, without warranty of any kind, either expressed, implied, or -> statutory, including, without limitation, warranties that the -> Covered Software is free of defects, merchantable, fit for a -> particular purpose or non-infringing. The entire risk as to the -> quality and performance of the Covered Software is with You. -> Should any Covered Software prove defective in any respect, You -> (not any Contributor) assume the cost of any necessary servicing, -> repair, or correction. This disclaimer of warranty constitutes an -> essential part of this License. No use of any Covered Software is -> authorized under this License except under this disclaimer. - -### 7. Limitation of Liability - -> Under no circumstances and under no legal theory, whether tort -> (including negligence), contract, or otherwise, shall any -> Contributor, or anyone who distributes Covered Software as -> permitted above, be liable to You for any direct, indirect, -> special, incidental, or consequential damages of any character -> including, without limitation, damages for lost profits, loss of -> goodwill, work stoppage, computer failure or malfunction, or any -> and all other commercial damages or losses, even if such party -> shall have been informed of the possibility of such damages. This -> limitation of liability shall not apply to liability for death or -> personal injury resulting from such party's negligence to the -> extent applicable law prohibits such limitation. Some -> jurisdictions do not allow the exclusion or limitation of -> incidental or consequential damages, so this exclusion and -> limitation may not apply to You. - - -### 8. Litigation - -Any litigation relating to this License may be brought only in the -courts of a jurisdiction where the defendant maintains its principal -place of business and such litigation shall be governed by laws of that -jurisdiction, without reference to its conflict-of-law provisions. -Nothing in this Section shall prevent a party's ability to bring -cross-claims or counter-claims. - - -### 9. Miscellaneous - -This License represents the complete agreement concerning the subject -matter hereof. If any provision of this License is held to be -unenforceable, such provision shall be reformed only to the extent -necessary to make it enforceable. Any law or regulation which provides -that the language of a contract shall be construed against the drafter -shall not be used to construe this License against a Contributor. - - -### 10. Versions of the License - -#### 10.1. New Versions - -Mozilla Foundation is the license steward. Except as provided in Section -10.3, no one other than the license steward has the right to modify or -publish new versions of this License. Each version will be given a -distinguishing version number. - -#### 10.2. Effect of New Versions - -You may distribute the Covered Software under the terms of the version -of the License under which You originally received the Covered Software, -or under the terms of any subsequent version published by the license -steward. - -#### 10.3. Modified Versions - -If you create software not governed by this License, and you want to -create a new license for such software, you may create and use a -modified version of this License if you rename the license and remove -any references to the name of the license steward (except to note that -such modified license differs from this License). - -#### 10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses - -If You choose to distribute Source Code Form that is Incompatible With -Secondary Licenses under the terms of this version of the License, the -notice described in Exhibit B of this License must be attached. - -## Exhibit A - Source Code Form License Notice - - This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at http://mozilla.org/MPL/2.0/. - -If it is not possible or desirable to put the notice in a particular -file, then You may include the notice in a location (such as a LICENSE -file in a relevant directory) where a recipient would be likely to look -for such a notice. - -You may add additional accurate notices of copyright ownership. - -## Exhibit B - “Incompatible With Secondary Licenses” Notice - - This Source Code Form is "Incompatible With Secondary Licenses", as - defined by the Mozilla Public License, v. 2.0. - - diff --git a/recipes/medaka/build.sh b/recipes/medaka/build.sh index a17d134c7c243..5dc2e9c7995bd 100644 --- a/recipes/medaka/build.sh +++ b/recipes/medaka/build.sh @@ -1,10 +1,10 @@ -#!/bin/bash +#!/bin/bash -euo export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" -export CFLAGS="-I${PREFIX}/include ${LDFLAGS}" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" # disable Makefile driven build of htslib.a sed -i.bak "s/'build_ext': HTSBuild//" setup.py @@ -13,4 +13,6 @@ sed -i.bak "s/'build_ext': HTSBuild//" setup.py sed -i.bak 's/extra_objects.*//' build.py sed -i.bak 's/^libraries=\[/libraries=\["hts",/' build.py -$PYTHON -m pip install . --no-deps --ignore-installed -vvv +rm -rf *.bak + +${PYTHON} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv diff --git a/recipes/medaka/build_failure.linux-64.yaml b/recipes/medaka/build_failure.linux-64.yaml deleted file mode 100644 index 362238bbedeef..0000000000000 --- a/recipes/medaka/build_failure.linux-64.yaml +++ /dev/null @@ -1,105 +0,0 @@ -recipe_sha: fe8244e36e00fce9b146f015c871e6714fe382a6b7375f652967216782b9cb0f # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -category: dependency issue -log: |2- - - Traceback (most recent call last): - File "/opt/conda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build - create_build_envs(top_level_pkg, notest) - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs - raise e - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs - environ.get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions - precs = _install_actions(prefix, index, specs)["LINK"] - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions - txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction - unlink_precs, link_precs = self.solve_for_diff( - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff - final_precs = self.solve_final_state( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state - out_state = self._solving_loop(in_state, out_state, index) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop - solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt - new_conflicts = self._maybe_raise_for_problems( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("tensorflow==2.10.0=cuda112py310he87a039_0"), MatchSpec("__cuda"), MatchSpec("pysam==0.16.0.1=py27ha863e18_1"), MatchSpec("python_abi=2.7[build=*_cp27mu]")} - Encountered problems while solving: - - package pysam-0.16.0.1-py27ha863e18_1 requires python_abi 2.7.* *_cp27mu, but none of the providers can be installed - - nothing provides __cuda needed by tensorflow-2.10.0-cuda112py310he87a039_0 - - Could not solve for environment specs - The following packages are incompatible - [32mopenssl >=1.1.1w,<1.1.2a [0m is requested and can be installed; - [32mpysam >=0.16.0.1 [0m is installable with the potential options - [32mpysam [0.16.0.1|0.17.0|...|0.20.0][0m would require - [32mpython_abi 2.7.* *_cp27mu[0m, which can be installed; - [32mpysam [0.16.0.1|0.17.0|...|0.21.0][0m would require - [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; - [32mpysam [0.16.0.1|0.17.0|...|0.21.0][0m would require - [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; - [32mpysam [0.16.0.1|0.17.0|...|0.21.0][0m would require - [32mpython_abi 3.8.* *_cp38[0m, which can be installed; - [32mpysam [0.16.0.1|0.17.0|...|0.21.0][0m would require - [32mpython_abi 3.9.* *_cp39[0m, which can be installed; - [32mpysam [0.19.1|0.20.0|0.21.0][0m would require - [32mpython_abi 3.10.* *_cp310[0m, which can be installed; - [31mpysam 0.21.0[0m would require - [31mopenssl >=3.1.0,<4.0a0 [0m, which conflicts with any installable versions previously reported; - [31mpysam 0.22.0[0m would require - [31mopenssl >=3.1.3,<4.0a0 [0m, which conflicts with any installable versions previously reported; - [31mpysam [0.22.0|0.22.1][0m would require - [31mopenssl >=3.2.1,<4.0a0 [0m, which conflicts with any installable versions previously reported; - [31mpysam 0.22.1[0m would require - [31mopenssl >=3.3.1,<4.0a0 [0m, which conflicts with any installable versions previously reported; - [31mpython >=3.11,<3.12.0a0 [0m is not installable because there are no viable options - [31mpython 3.11.0[0m would require - [31mpython_abi 3.11.* *_cp311[0m, which conflicts with any installable versions previously reported; - [31mpython 3.11.0[0m would require - [31mopenssl >=3.0.5,<4.0a0 [0m, which conflicts with any installable versions previously reported; - [31mpython 3.11.0[0m would require - [31mopenssl >=3.0.7,<4.0a0 [0m, which conflicts with any installable versions previously reported; - [31mpython [3.11.1|3.11.2|3.11.3][0m would require - [31mopenssl >=3.1.0,<4.0a0 [0m, which conflicts with any installable versions previously reported; - [31mpython 3.11.4[0m would require - [31mopenssl >=3.1.1,<4.0a0 [0m, which conflicts with any installable versions previously reported; - [31mpython 3.11.5[0m would require - [31mopenssl >=3.1.2,<4.0a0 [0m, which conflicts with any installable versions previously reported; - [31mpython 3.11.6[0m would require - [31mopenssl >=3.1.3,<4.0a0 [0m, which conflicts with any installable versions previously reported; - [31mpython 3.11.7[0m would require - [31mopenssl >=3.2.0,<4.0a0 [0m, which conflicts with any installable versions previously reported; - [31mpython [3.11.8|3.11.9][0m would require - [31mopenssl >=3.2.1,<4.0a0 [0m, which conflicts with any installable versions previously reported; - [31mpython_abi 3.11.* *_cp311[0m is not installable because it conflicts with any installable versions previously reported; - [32mtensorflow >=2.10,<2.11 [0m is installable with the potential options - [32mtensorflow 2.10.0[0m would require - [32mpython_abi 3.10.* *_cp310[0m, which can be installed; - [32mtensorflow 2.10.0[0m would require - [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; - [32mtensorflow 2.10.0[0m would require - [32mpython_abi 3.8.* *_cp38[0m, which can be installed; - [32mtensorflow 2.10.0[0m would require - [32mpython_abi 3.9.* *_cp39[0m, which can be installed; - [31mtensorflow 2.10.0[0m would require - [31m__cuda[0m, which is missing on the system. -# Last 100 lines of the build log. diff --git a/recipes/medaka/build_failure.osx-64.yaml b/recipes/medaka/build_failure.osx-64.yaml deleted file mode 100644 index 382a5d84d4aa9..0000000000000 --- a/recipes/medaka/build_failure.osx-64.yaml +++ /dev/null @@ -1,105 +0,0 @@ -recipe_sha: fe8244e36e00fce9b146f015c871e6714fe382a6b7375f652967216782b9cb0f # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -category: dependency issue -log: |2- - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff - final_precs = self.solve_final_state( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state - out_state = self._solving_loop(in_state, out_state, index) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop - solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt - new_conflicts = self._maybe_raise_for_problems( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("openssl[version='>=3.0.0,<4.0a0']"), MatchSpec("libcurl==7.79.1=h97da3c1_1")} - Encountered problems while solving: - - package libcurl-7.79.1-h97da3c1_1 requires openssl >=3.0.0,<4.0a0, but none of the providers can be installed - - Could not solve for environment specs - The following packages are incompatible - htslib >=1.14 is installable with the potential options - htslib [1.14|1.15|1.15.1] would require - libcurl [>=7.79.1,<8.0a0 |>=7.81.0,<8.0a0 |>=7.82.0,<8.0a0 ] with the potential options - libcurl [7.79.1|7.80.0|7.81.0|7.82.0] would require - openssl >=3.0.0,<4.0a0 , which can be installed; - libcurl [7.79.1|7.80.0|7.81.0|7.82.0] would require - openssl >=1.1.1l,<1.1.2a , which conflicts with any installable versions previously reported; - libcurl 7.83.0 would require - openssl >=3.0.2,<4.0a0 , which can be installed; - libcurl 7.83.0 would require - openssl >=1.1.1n,<1.1.2a , which conflicts with any installable versions previously reported; - libcurl 7.83.1 would require - openssl >=3.0.3,<4.0a0 , which can be installed; - libcurl 7.83.1 would require - openssl >=1.1.1o,<1.1.2a , which conflicts with any installable versions previously reported; - libcurl [7.85.0|7.86.0] would require - openssl >=1.1.1q,<1.1.2a , which conflicts with any installable versions previously reported; - libcurl [7.85.0|7.86.0] would require - openssl >=3.0.5,<4.0a0 , which can be installed; - libcurl 7.86.0 would require - openssl >=3.0.7,<4.0a0 , which can be installed; - libcurl [7.86.0|7.87.0] would require - krb5 >=1.20.1,<1.21.0a0 with the potential options - krb5 1.20.1 would require - openssl >=1.1.1s,<1.1.2a , which conflicts with any installable versions previously reported; - krb5 1.20.1 would require - openssl >=3.0.7,<4.0a0 , which can be installed; - openssl >=3.0.7,<4.0a0 , which can be installed; - libcurl [7.86.0|7.87.0] would require - openssl >=1.1.1s,<1.1.2a , which conflicts with any installable versions previously reported; - libcurl [7.88.0|7.88.1] would require - openssl >=3.0.8,<4.0a0 , which can be installed; - libcurl 7.88.1 would require - openssl >=3.1.0,<4.0a0 , which can be installed; - htslib [1.15.1|1.16] would require - libcurl >=7.83.1,<8.0a0 with the potential options - libcurl 7.83.1, which can be installed (as previously explained); - libcurl 7.83.1, which cannot be installed (as previously explained); - libcurl [7.85.0|7.86.0], which cannot be installed (as previously explained); - libcurl [7.85.0|7.86.0], which can be installed (as previously explained); - libcurl 7.86.0, which can be installed (as previously explained); - libcurl [7.86.0|7.87.0], which can be installed (as previously explained); - libcurl [7.86.0|7.87.0], which cannot be installed (as previously explained); - libcurl [7.88.0|7.88.1], which can be installed (as previously explained); - libcurl 7.88.1, which can be installed (as previously explained); - htslib 1.17 would require - libcurl >=8.0.1,<9.0a0 , which conflicts with any installable versions previously reported; - htslib 1.17 would require - libcurl >=7.88.1,<8.0a0 , which can be installed (as previously explained); - htslib 1.18 would require - libcurl >=8.2.0,<9.0a0 , which conflicts with any installable versions previously reported; - htslib [1.19|1.19.1] would require - libcurl >=8.5.0,<9.0a0 , which conflicts with any installable versions previously reported; - htslib 1.20 would require - libcurl >=8.7.1,<9.0a0 , which conflicts with any installable versions previously reported; - htslib 1.20 would require - libcurl >=8.8.0,<9.0a0 , which conflicts with any installable versions previously reported; - libcurl 7.* is installable with the potential options - libcurl [7.79.1|7.80.0|7.81.0|7.82.0], which can be installed (as previously explained); - libcurl [7.79.1|7.80.0|7.81.0|7.82.0], which cannot be installed (as previously explained); - libcurl 7.83.0, which can be installed (as previously explained); - libcurl 7.83.0, which cannot be installed (as previously explained); - libcurl 7.83.1, which can be installed (as previously explained); - libcurl 7.83.1, which cannot be installed (as previously explained); - libcurl [7.85.0|7.86.0], which cannot be installed (as previously explained); - libcurl [7.85.0|7.86.0], which can be installed (as previously explained); - libcurl 7.86.0, which can be installed (as previously explained); - libcurl [7.86.0|7.87.0], which can be installed (as previously explained); - libcurl [7.86.0|7.87.0], which cannot be installed (as previously explained); - libcurl [7.88.0|7.88.1], which can be installed (as previously explained); - libcurl 7.88.1, which can be installed (as previously explained); - libcurl [7.61.1|7.62.0|...|7.78.0], which can be installed; - openssl 1.1.1.* is not installable because it conflicts with any installable versions previously reported; - python 3.12.* *_cpython is installable with the potential options - python 3.12.0 would require - openssl >=3.1.3,<4.0a0 , which can be installed; - python 3.12.0rc3 would require - _python_rc, which does not exist (perhaps a missing channel); - python 3.12.1 would require - openssl >=3.2.0,<4.0a0 , which can be installed; - python [3.12.2|3.12.3] would require - openssl >=3.2.1,<4.0a0 , which can be installed. -# Last 100 lines of the build log. diff --git a/recipes/medaka/conda_build_config.yaml b/recipes/medaka/conda_build_config.yaml deleted file mode 100644 index f45b292d8ac64..0000000000000 --- a/recipes/medaka/conda_build_config.yaml +++ /dev/null @@ -1,9 +0,0 @@ -# Required to support Tensorflow v2.10, which is the only version -# supported by Medaka. The pinning of older versions of libcurl and -# openssl will cause installation of outdated packages and likely -# lead solver conflicts in the future. Please review this on future -# releases, especially if support for TensorFlow 2.11+ is added. -libcurl: - - 7 -openssl: - - 1.1.1 diff --git a/recipes/medaka/meta.yaml b/recipes/medaka/meta.yaml index 2b96f89fbca10..95068e0465bbb 100644 --- a/recipes/medaka/meta.yaml +++ b/recipes/medaka/meta.yaml @@ -1,20 +1,21 @@ -{% set name = "Medaka" %} -{% set version = "1.11.3" %} -{% set sha256 = "940568212d152f573270967b02f6e841561cc43138b6aa15783c371457fef7b9" %} +{% set name = "medaka" %} +{% set version = "2.0.0" %} +{% set sha256 = "8089c4b3966a096bb0fedab7538f02d625fe0a5c0396c42856dde2f0a2ad1627" %} # Bot PRs - Always review requirements.txt for new release package: - name: {{ name|lower }} + name: {{ name }} version: {{ version }} source: - url: https://github.com/nanoporetech/medaka/releases/download/v{{ version }}/medaka-{{ version }}.tar.gz + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/medaka-{{ version }}.tar.gz sha256: {{ sha256 }} patches: - patch build: - number: 1 + number: 0 + skip: True # [osx or py < 38 or py > 311] entry_points: - medaka = medaka.medaka:main - medaka_counts = medaka.medaka_counts:main @@ -26,11 +27,12 @@ build: requirements: build: - {{ compiler('c') }} - - coreutils + - cmake + - make host: - python - pip - - cffi >=1.15.0 + - cffi - htslib >=1.14 - libcurl - openssl @@ -39,14 +41,12 @@ requirements: - zlib run: - python - - cffi >=1.15.0 + - cffi - grpcio - h5py - intervaltree - # Please review the need for the conda_build_config.yaml - # if a more recent version of Tensorflow is supported. - - tensorflow >=2.10,<2.11 - - numpy >=1.21.6 + - pytorch >=2.3,<2.4 + - numpy >=1.21.0,<2.0.0 - nomkl # [osx] - mappy - ont-fast5-api @@ -60,8 +60,7 @@ requirements: - bcftools >=1.14 - minimap2 >=2.17 - htslib >=1.14 - - libcurl - - openssl + - tqdm - wurlitzer test: @@ -69,19 +68,23 @@ test: - medaka commands: - medaka --help - - medaka consensus --help + - medaka inference --help - medaka_data_path - medaka_version_report about: - home: https://github.com/nanoporetech/medaka - summary: Neural network sequence error correction. - license: MPL-2.0 + home: "https://github.com/nanoporetech/medaka" + summary: "A tool to create consensus sequences and variant calls from nanopore sequencing data using neural networks." + license: "MPL-2.0" license_family: OTHER - license_file: LICENSE.md - dev_url: https://github.com/nanoporetech/medaka + license_file: "LICENSE" + dev_url: "https://github.com/nanoporetech/medaka" + doc_url: "https://github.com/nanoporetech/medaka/blob/v{{ version }}/README.md" extra: identifiers: - usegalaxy-eu:medaka_consensus + - usegalaxy-eu:medaka_consensus_pipeline + - usegalaxy-eu:medaka_variant + - usegalaxy-eu:medaka_variant_pipeline - biotools:medaka From 4c1aa6dd3ff01e0a2e9bc919acb464a4cc88f87f Mon Sep 17 00:00:00 2001 From: Vijini Mallawaarachchi Date: Tue, 17 Sep 2024 16:45:34 +0930 Subject: [PATCH 1570/1589] Add gbintk v0.1.0 (#50749) * Add gbintk v0.1.0 * Update meta.yaml * Update meta.yaml --- recipes/gbintk/meta.yaml | 64 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 recipes/gbintk/meta.yaml diff --git a/recipes/gbintk/meta.yaml b/recipes/gbintk/meta.yaml new file mode 100644 index 0000000000000..72a2297b54004 --- /dev/null +++ b/recipes/gbintk/meta.yaml @@ -0,0 +1,64 @@ +{% set name = "gbintk" %} +{% set version = "0.1.0" %} + +package: + name: "{{ name|lower }}" + version: "{{ version }}" + +source: + url: "https://github.com/metagentools/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz" + sha256: 5070e3c0c3c2fecdc585695cad0d9f32111ebe9e40b40da9e7b31a53bd7d7129 + +build: + number: 0 + noarch: python + entry_points: + - gbintk = gbintk.cli:main + script: + - "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" + run_exports: + - {{ pin_subpackage('gbintk', max_pin="x.x") }} + +requirements: + host: + - pip + - python >=3.7,<3.11 + - flit-core + run: + - python >=3.7,<3.11 + - click + - pkg-config + - python-igraph + - cairo + - cairocffi + - cogent3 + - networkx + - tqdm + - scipy + - numpy + - pandas + - tabulate + - fraggenescan + - hmmer + - graphbin + - graphbin2 + - metacoag >=1.2.1 + +test: + commands: + - gbintk --help + +about: + home: "https://github.com/metagentools/gbintk" + license: GPL-3.0-or-later + license_family: GPL3 + license_file: LICENSE + summary: "GraphBin-Tk: assembly graph-based metagenomic binning toolkit" + description: | + GraphBin-Tk is a toolkit that combines assembly graph-based metagenomic bin-refinement and binning techniques GraphBin, GraphBin2 and MetaCoAG. + doc_url: "https://gbintk.readthedocs.io/" + dev_url: "https://github.com/metagentools/gbintk" + +extra: + recipe-maintainers: + - Vini2 From 52ed21b2b0f886cf202b884ee10cfccdbd67a54b Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 17 Sep 2024 03:36:50 -0500 Subject: [PATCH 1571/1589] vcflib: add arm64 build (#50750) * vcflib: add arm64 build * edit patch * do not build on arm64 --- recipes/vcflib/0006-wfa2-lib.patch | 32 ++++++++++++++++++++++++++++++ recipes/vcflib/build.sh | 10 ++++++---- recipes/vcflib/meta.yaml | 10 ++++++++-- 3 files changed, 46 insertions(+), 6 deletions(-) create mode 100644 recipes/vcflib/0006-wfa2-lib.patch diff --git a/recipes/vcflib/0006-wfa2-lib.patch b/recipes/vcflib/0006-wfa2-lib.patch new file mode 100644 index 0000000000000..392b1a17c2d31 --- /dev/null +++ b/recipes/vcflib/0006-wfa2-lib.patch @@ -0,0 +1,32 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 40dedb3..b738d28 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -380,10 +380,7 @@ if(WFA_GITMODULE) + else(WFA_GITMODULE) + include_directories($ENV{CMAKE_PREFIX_PATH}/include/wfa2lib) + set(WFA_INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}/wfa2lib) +- find_library(WFALIB wfa2 wfa) # distro search for shared lib +- if(NOT WFALIB) +- message(STATUS "ERROR: Can not find libfwa! Make sure it is installed or use the git submodule instead") +- endif() ++ find_library(WFALIB wfa2 wfa REQUIRED) # distro search for shared lib + endif(WFA_GITMODULE) + + include_directories(${WFA_INCLUDE_DIRS}) +@@ -454,6 +451,7 @@ if (NOT BUILD_ONLY_LIB) + add_executable(${BIN} src/${BIN}.cpp) + add_dependencies(${BIN} vcflib) + target_link_libraries(${BIN} PUBLIC ${vcflib_LIBS} vcflib) ++ target_link_libraries(${BIN} PUBLIC ${vcflib_LIBS} ${WFALIB}) + endforeach(BIN ${BINS}) + # These binaries include WFALIB + target_link_libraries(vcfallelicprimitives PUBLIC ${WFALIB}) +@@ -602,6 +600,6 @@ endif (PANDOC) + + install(TARGETS vcflib ARCHIVE DESTINATION ${CMAKE_INSTALL_BINDIR}) + +-install(FILES ${INCLUDES} DESTINATION include) ++install(FILES ${INCLUDES} DESTINATION include/vcflib) + + install(DIRECTORY ${CMAKE_SOURCE_DIR}/man/ DESTINATION ${CMAKE_INSTALL_PREFIX}/man/man1) diff --git a/recipes/vcflib/build.sh b/recipes/vcflib/build.sh index b668cffcb424f..d4948a04001c5 100644 --- a/recipes/vcflib/build.sh +++ b/recipes/vcflib/build.sh @@ -4,9 +4,12 @@ set -ex OS=$(uname) ARCH=$(uname -m) -if [ "${OS}" == "Darwin" ]; then +if [[ "${OS}" == "Darwin" && "${ARCH}" == "x86_64" ]]; then echo $(pwd)/zig-macos-x86_64-* export PATH="$(pwd)/zig-macos-x86_64-0.10.1:${PATH}" +elif [[ "${OS}" == "Darwin" && "${ARCH}" == "arm64" ]]; then + echo $(pwd)/zig-macos-aarch64-* + export PATH="$(pwd)/zig-macos-aarch64-0.10.1:${PATH}" else echo $(pwd)/zig-linux-${ARCH}-* export PATH="$(pwd)/zig-linux-${ARCH}-0.10.1:${PATH}" @@ -17,7 +20,7 @@ export LIBPATH="-L${PREFIX}/lib -L. -Lhtslib -Ltabixpp -Lwfa2" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib -lhts -ltabixpp -lpthread -lz -lm -llzma -lbz2 -fopenmp -lwfa2" export CXXFLAGS="${CXXFLAGS} -O3 -D_FILE_OFFSET_BITS=64 -I${PREFIX}/include" -sed -i.bak 's/CFFFLAGS:= -O3/CFFFLAGS=-O3 -D_FILE_OFFSET_BITS=64 -std=c++0x/' contrib/smithwaterman/Makefile +sed -i.bak 's/CFFFLAGS:= -O3/CFFFLAGS=-O3 -D_FILE_OFFSET_BITS=64/' contrib/smithwaterman/Makefile sed -i.bak 's/CFLAGS/CXXFLAGS/g' contrib/smithwaterman/Makefile sed -i.bak 's/$ Date: Tue, 17 Sep 2024 10:58:08 +0200 Subject: [PATCH 1572/1589] Update tracy to 0.7.8 (#50751) * Update tracy to 0.7.8 * cmake --- recipes/tracy/build.sh | 6 +----- recipes/tracy/meta.yaml | 12 ++++-------- 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/recipes/tracy/build.sh b/recipes/tracy/build.sh index 2f754987f29e7..38a203670614e 100644 --- a/recipes/tracy/build.sh +++ b/recipes/tracy/build.sh @@ -1,7 +1,3 @@ #!/bin/bash -set -xe - -make all CXX=$CXX CXXFLAGS="-D__STDC_FORMAT_MACROS -I${SRC_DIR}/src/sdslLite/include -L${SRC_DIR}/src/sdslLite/lib -I${PREFIX}/include -L${PREFIX}/lib -Isrc/jlib/ -std=c++14" -j ${CPU_COUNT} -mkdir -p $PREFIX/bin -cp src/tracy $PREFIX/bin +CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS -I${SRC_DIR}/src/sdslLite/include -L${SRC_DIR}/src/sdslLite/lib -I${PREFIX}/include -L${PREFIX}/lib -Isrc/jlib/ -std=c++17" make -j${CPU_COUNT} CXX="${CXX}" prefix="${PREFIX}" install diff --git a/recipes/tracy/meta.yaml b/recipes/tracy/meta.yaml index ee530f591de05..64b4ec6a20b6f 100644 --- a/recipes/tracy/meta.yaml +++ b/recipes/tracy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.7.6" %} -{% set sha256 = "68bb079d9c05c98d7de1bf044e6c4da6a409d8f2abc8b96038b1782bc5497c5e" %} +{% set version = "0.7.8" %} +{% set sha256 = "9bac46e97ec43b85f12d1958abbc8f329f2dca8c3c363e67d8dff09b29260ea0" %} package: name: tracy @@ -13,7 +13,7 @@ source: git_rev: a654b57 build: - number: 2 + number: 0 run_exports: - {{ pin_subpackage("tracy", max_pin="x.x") }} @@ -22,20 +22,16 @@ requirements: build: - make - {{ compiler('cxx') }} - - cmake >=3.10 + - cmake - autoconf - automake - pkg-config - - clangdev - - llvm-openmp host: - zlib - bzip2 - libdeflate - boost-cpp - htslib - - clangdev - - llvm-openmp run: - zlib - bzip2 From 7ffb422f94d1b1f4a2c82b0eaa0c68aa6c095dc8 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 17 Sep 2024 03:59:29 -0500 Subject: [PATCH 1573/1589] Update RepeatMasker to 4.1.7p1 (#50752) --- recipes/repeatmasker/build.sh | 20 ++++--- recipes/repeatmasker/meta.yaml | 29 +++++----- recipes/repeatmasker/post-link.sh | 6 +-- recipes/repeatmasker/rm_input1.fasta | 30 ----------- recipes/repeatmasker/sample_repeats.fasta | 64 ----------------------- recipes/repeatmasker/test_md5.txt | 1 - 6 files changed, 30 insertions(+), 120 deletions(-) mode change 100755 => 100644 recipes/repeatmasker/post-link.sh delete mode 100644 recipes/repeatmasker/rm_input1.fasta delete mode 100644 recipes/repeatmasker/sample_repeats.fasta delete mode 100644 recipes/repeatmasker/test_md5.txt diff --git a/recipes/repeatmasker/build.sh b/recipes/repeatmasker/build.sh index f35333fbfed79..ce1f7e31c9581 100644 --- a/recipes/repeatmasker/build.sh +++ b/recipes/repeatmasker/build.sh @@ -1,9 +1,9 @@ #!/bin/bash -RM_DIR=${PREFIX}/share/RepeatMasker +RM_DIR="${PREFIX}/share/RepeatMasker" mkdir -p ${PREFIX}/bin mkdir -p ${RM_DIR} -cp -r * ${RM_DIR} +mv * ${RM_DIR} export LANGUAGE=en_US.UTF-8 export LANG=en_US.UTF-8 @@ -11,7 +11,10 @@ export LC_ALL=en_US.UTF-8 # configure cd ${RM_DIR} -perl ./configure -libdir ${RM_DIR}/Libraries -trf_prgm ${PREFIX}/bin/trf -rmblast_dir ${PREFIX}/bin/ -hmmer_dir ${PREFIX}/bin -abblast_dir ${PREFIX}/bin -crossmatch_dir ${PREFIX}/bin -default_search_engine rmblast +perl ./configure -libdir "${RM_DIR}/Libraries" -trf_prgm "${PREFIX}/bin/trf" \ + -rmblast_dir "${PREFIX}/bin" -hmmer_dir "${PREFIX}/bin" \ + -abblast_dir "${PREFIX}/bin" -crossmatch_dir "${PREFIX}/bin" \ + -default_search_engine rmblast # Delete huge Dfam file, will be downloaded by post-link.sh # Do it now only, because configure needs the full version @@ -20,15 +23,20 @@ echo "Placeholder file, should be replaced on Conda package installation." > ${R # ----- add tools within the bin ------ # add RepeatMasker -ln -s ${RM_DIR}/RepeatMasker ${PREFIX}/bin/RepeatMasker +chmod 0755 ${RM_DIR}/RepeatMasker ${RM_DIR}/DupMasker ${RM_DIR}/ProcessRepeats ${RM_DIR}/RepeatProteinMask +ln -sf ${RM_DIR}/RepeatMasker ${PREFIX}/bin/RepeatMasker # add other tools RM_OTHER_PROGRAMS="DupMasker ProcessRepeats RepeatProteinMask" for name in ${RM_OTHER_PROGRAMS} ; do - ln -s ${RM_DIR}/${name} ${PREFIX}/bin/${name} + ln -sf ${RM_DIR}/${name} ${PREFIX}/bin/${name} done # add all utils for name in ${RM_DIR}/util/* ; do - ln -s $name ${PREFIX}/bin/$(basename $name) + ln -sf $name ${PREFIX}/bin/$(basename $name) done + +# Fix perl shebang +sed -i.bak '1 s|^.*$|#!/usr/bin/env perl|g' ${RM_DIR}/util/*.pl +rm -rf ${RM_DIR}/util/*.bak diff --git a/recipes/repeatmasker/meta.yaml b/recipes/repeatmasker/meta.yaml index c837404507fa1..2fa46a0da84db 100644 --- a/recipes/repeatmasker/meta.yaml +++ b/recipes/repeatmasker/meta.yaml @@ -1,20 +1,20 @@ {% set name = "repeatmasker" %} -{% set version = "4.1.5" %} -{% set sha256 = "16e07f9efd99adf15f4492b0e334df5ad4ea6ca38ddf62bdd180d257f2f4753f" %} +{% set version = "4.1.7p1" %} +{% set sha256 = "15222b39178f19c116282437190b64c5ba68f62b0f2044b3bbcbda5e02748993" %} package: name: {{ name }} version: {{ version }} source: - url: https://www.repeatmasker.org/RepeatMasker/RepeatMasker-{{ version }}.tar.gz + url: https://www.repeatmasker.org/RepeatMasker/RepeatMasker-4.1.7-p1.tar.gz sha256: {{ sha256 }} build: - number: 1 + number: 0 noarch: generic run_exports: - - {{ pin_subpackage('repeatmasker', max_pin='x.x.x') }} + - {{ pin_subpackage('repeatmasker', max_pin='x') }} requirements: host: @@ -27,24 +27,21 @@ requirements: - trf - perl - h5py + - gzip # [osx] - wget test: -# pvanheus - disable file based tests for -# now - they don't work with Dockerized -# containers - 13/1/2017 -# files: -# - rm_input1.fasta -# - sample_repeats.fasta -# - test_md5.txt commands: - RepeatMasker | grep "RepeatMasker - Mask repetitive DNA" > /dev/null about: - home: https://www.repeatmasker.org - license: Open Software License v2.1 - summary: RepeatMasker is a program that screens DNA sequences for interspersed repeats and low complexity DNA sequences. + home: "https://www.repeatmasker.org/RepeatMasker" + license: "Open Software License v2.1" + summary: "RepeatMasker is a program that screens DNA sequences for interspersed repeats and low complexity DNA sequences." + dev_url: "https://github.com/Dfam-consortium/RepeatMasker" + doc_url: "https://www.repeatmasker.org/RepeatMasker" extra: identifiers: - - biotools:RepeatMasker + - biotools:repeatmasker + - usegalaxy-eu:repeatmasker_wrapper diff --git a/recipes/repeatmasker/post-link.sh b/recipes/repeatmasker/post-link.sh old mode 100755 new mode 100644 index ac28ed8558b30..b566eefab6d1a --- a/recipes/repeatmasker/post-link.sh +++ b/recipes/repeatmasker/post-link.sh @@ -1,17 +1,17 @@ #!/bin/bash -if [ -f /.dockerenv ]; then +if [[ -f /.dockerenv ]]; then cat >> "$PREFIX/.messages.txt" < ${PREFIX}/share/RepeatMasker/Libraries/Dfam.h5 -rm Dfam_curatedonly.h5.gz +rm -rf Dfam_curatedonly.h5.gz EOF else echo "Downloading Dfam_curatedonly.h5.gz from www.dfam.org" wget -O Dfam_curatedonly.h5.gz https://www.dfam.org/releases/Dfam_3.7/families/Dfam_curatedonly.h5.gz gunzip -c Dfam_curatedonly.h5.gz > ${PREFIX}/share/RepeatMasker/Libraries/Dfam.h5 - rm Dfam_curatedonly.h5.gz + rm -rf Dfam_curatedonly.h5.gz fi diff --git a/recipes/repeatmasker/rm_input1.fasta b/recipes/repeatmasker/rm_input1.fasta deleted file mode 100644 index db351cab3a5aa..0000000000000 --- a/recipes/repeatmasker/rm_input1.fasta +++ /dev/null @@ -1,30 +0,0 @@ ->scaffold_1 -TGCTTTTCTGAGATTTATGTCAGCTCCCCATTGGGAGATACAGGAGAATCCAATATATTC -CTGTCTCGCTTCTTTTATATTTATCCTTTCTACACCTGACATCCTCAGTGATTGAAGTGA -CAAAAAGTGGAGCGCACGCAGTGGTCATTACCCTCCAATGGTACTTCTAATTAAGGAAAG -ATTTTTTGCATTCACTGAGCAAAACACTTATTTGCATGAATGGAAAATCATAAATGAGGG -GTCCATTAAACAAATTTCCTAATTGTTTGCTTTTTTTTCTTCCTACTTCACCATCCCTCT -AAAGCTATTACTCTCTATTCTACCCCATTATCGAGTGCACAAACACCAGCCCCAAATTGT -CTTATCTCTGCTTTGATAAATGATATTTTTTTCTCTTATAATTGTGTTTCTCTCTAGATG -TGCGGTGTCCATCAAGACACTGGATGTCACGTGGTCACTCCTGTGAAGAGCGAACTGTGT -GGAACCCGAAGTACTGTGTGGTTGCTGACTGTCAGATGCTGCTTCTGAATGAGGAGGAGG -TGGTGAGAGCAGACAGCACAATCTCTTGTCTGGCATGTTCCTCTGTGTCACCATTGTCTC -TCTCATCTGCTCGTGTGTGTGTGTGTGTGTGTCCTTGTCAATGTCATTACACAATTTATG -TTGGTGCACTGCATGTCAGAGTCTGAACTTTGTTGGACATCTACTTTCTGTCACCTGATA -CCTCATACTTTACACTCTAATCCCTTTTTCCTTTCTAACTGCTGCTGTGTTAAGCTGTCA -TATTAATATACTAAATAATGATAATATTAATTCTAATAATGATAGTGAATGGAGATTCAC -AATGAAGAAACACAAGGTCCAGACTGAACCCCTGTGCTGTGTGAAGAGTTCACTCTACAT -TTACATTCATCCCACATCAGAGACCAGCAATAGCCAGGTTAAGCAGAGCAAGGCTGAGTC -TGGCTCTTTGCCTCTGTTGTTTTGATTAGTGTCACACTGGATTATGCTAGTTTGTGTGAG -ATTAGAGGTCCTGTTGTTACGAGCAAATCAGCAGTCAGCAGGGTAATCTAAATTACATTG -TTCTGTCGGCAATATCCTCTCCTCGCTCAACAGCTTTGTGTGAGCTCATATTTAAAGCCC -CCACAGTAGTGCAGTGCATAAAATCATGCAGATACAGATCAGAAGCTTCAGGTAATGTTT -ACATCAAACATCAGGGGGAAAATGTGATCTCAGTGCCTCTGACCGTGGTGTGATTGTTGG -TGCCGGACAGGCTGGTTTGAGTATTTCTAAAACTGCTGATCTCCTGGGATTTTCACACAC -GGCATTCTCTAGAGTTTACTCAGAACGGTGTGGAAAGCAAAAAAACATCCCGCGAGCTGC -AATCCTGCGGATGGAAACACCTTGTTGATGGGATATGTCAGAGGAATGGCCAGGCTGGAT -CAATCTGACAGAAAGGCGGTAACTCAGATAAGCACTCTCTACAACTGTGGTGAGCAGAAA -AGCGTTCTCAGAATGCACAACACGTTCAACCTTGAGGAAGATGTTGCTACAGCAGCAGAT -GAAGACCACGTCTGGTTCCACTCCTGTCAGCCAAGAACATCTCAGACTGCACAGGACACC -AAAACAAAAACACATCCTGTTTTCTACTGGTGGTAGAGTCACAATTTGGCAATAAGATAA -ATCCATGGACCCAACTTGCCTTGTGTCAATAGACCAAGCTGCTGGTGGTCTTGGGGAATG diff --git a/recipes/repeatmasker/sample_repeats.fasta b/recipes/repeatmasker/sample_repeats.fasta deleted file mode 100644 index 9f096d40313d6..0000000000000 --- a/recipes/repeatmasker/sample_repeats.fasta +++ /dev/null @@ -1,64 +0,0 @@ ->Asian_seabass_ONSAT_SB_Concensus_Lenght_170_bp -CGAAAAATTTAATAATTTAGGGGTCTTGAGCATGGGCGTGGTAAAATGCCCTCGGTAGCG -CCACCTACATTTTTAAACGGAACAGCCCCTCAAGCCCGTTGCGCCTAAAAATCTGAAAAT -CTGCACACATATGTAACATCCCATGACGCACCAAAAAGTCTCTTGGAGCCA ->Asian_seabass_MOSAT_SB_T_34a_satellite_DNA -TTTGTGACATCACTACATAGTTTGTTGAAAACGTAC ->Asian_seabass_MOSAT_SB_T_34b_satellite_DNA -TTTGTGACATCACACATAGTTGTGGGTCAGTAC  ->Sat_38 -AAAAAATGTCATAGTATAGTATGGCGTCAAAAAACATG ->Asian_seabass_Sat_217_Consensus_Length_217_bp -AGTAAACAAGCATTATGGTTGAAACCATAATTTCCTGTCGGGAGAGCCTTTCCCTCTTTT -GTGCACTGTATGCAATCCCAGAGTGTGAATAAGCGCTTTTCCAGCGTTTTGAGGCTTATT -CAGCTCAGAATGGCTTAATACTGCACTATCTGACCAGGACAAAGACAAACTAAGAACTCA -GCCACACGGACATGAAAGTTGTTTTACTTACAATATT ->Asian_seabass_Sat_217_Consensus_Length_427_bp -CCAGCGTTTTGAGGCTTATTCAGCTCAGAATGGCTTAATACTGCACTATCTGACCAGGAC -AAGACAAACTAAGAACTCAACACACTGACATGAAAGTTTCTATATTTCTATTAAAATAAA -CAAACATTATGGTTGAAACCATAATTTCATTTCGGGAGAGCCTTTCCCTCTTTGTGGCAC -TGTATGTAATCTGAAGTGTGAATAACGCTTTTCCCGCGTTTGAGGCTTATTCAGCTCAGA -ATGGCTTAATACTGCACTATCTGACCAGGACAAGACAAACTAAGAACTCAGCCACACGGA -CATGAAAGTTGTTTACTTTACAATATTAGTAAACAAGCATTATGGTTGAAACCATAATTT -CCTGTCGGGAAGAGCTTCCCTCTTTTTGTGCACTGTATGCAATCCCAGAGTGTGAATAAG -CGCTTTT ->Asian_seabass_Sat_LM_Consensus_Length_453_bp -CCCAACAAAATAGCACTTACTGCTTTCCAAATTCAAGTCTGTGCCTGTGTTAGGGTAATG -TTGGTGATAAATTGATGTACTTAGCTTATCCTGTGAAAATGGTGTAAAATGGCAGTCTCC -ATGTTTGTTGAAGAAACTCACAACCAAGACAACCCCAAAGAGAAGCACTTATGAAGACAG -AAATCATGAGTGGCTCTTATTGAAGTGATCAGAGTTGGACTCCATTAAGAAAATGGCTTT -CAATGTAGTCAGTTGCTTTGTCACTTAAAACTGCCCCAACAAGTAGCACTTACTGCAATT -TGGTAGTCAAAGTCAATGCTCAAGTTAAGGGTAATAGTAGTGACATAATAGAAAAATCTC -TAAATATATTTGCTGGCAGCTTTAATATACAGAATGAGTGCCATGATGAATTCTTGATAC -AGAACAGGGACTTCCAAAATCAGCCAACACTAA ->Asian_seabass_Sat_LM_Consensus_Length_218_bp -CCCAACAAAATAGCACTTACTGCTTTCCAAATTCAAGTCTGTGCCTGTGTTAGGGTAATG -TTGGTGATAAATTGATGTACTTAGCTTATCCTGTGAAAATGGTGTAAAATGGCAGTCTCC -TGTTTGTTGAAGAAACTCACAACCAAGACAACCCCAAAGAGAAGCACTTATGAAGACAGA -AATCATGAGTGGCTCTTATTGAAGTGATCAGAGTTGG ->Asian_seabass_Sat_LM Consensus_Length_150_bp -CTCACAACCAAGACAACCCCAAAGAGAAGCACTTATGAAGACAGAAATCATGAGTGGCTC -TTATTGAAGTGATCAGAGTTGGACTCCATTAAGAAAATGGCTTTCAATGTAGTCAGTTGC -TTTGTCACTTAAAACTGCCCCAACAAGTAGCA ->Asian_seabass_Sat_Unk_Consensus_Length_341_bp -GTTTGGGTAAAAATATTGTCTATTTACGAGCTATCCTCTATATATTTTTGATCTGATTAA -TAAATACCTCTAGCCCACAAACTGTGGTATTTTGCTATGTGGCAGTTCACCCGAAAGTCC -AGTAGCATTTATCGCATTTTCTAAAGATAGTCAGTGCCTGAAAGTTTGAGGCAGATAAAC -AAATTGTTCAAGTAAGAACTATATCTTTCTTATGATTTTACCGCAATCATACAGGTTGTT -TCTTGTGGTCTGCTGGGCATTGTATCCCTTTGTTGTATGGATTTTTCCTTTCTTTAATGA -TCTCCTCCCTGGAGTTTGTAATCCCTGTTTGTAGTGGAATT ->Asian_seabass_Sat_Unk_Consensus_Length_789_bp -CAAAAAAATGGAAAAAAAAAAAGTGGCTCATTTGAAGTGAATCAGAGTTGGGTAACATTG -TCCTTAATTACAGCTATGCTTATATACTTGATCTGATAATAATACTCTAGCCACAATCTG -TGGGTATTCTGCTATTTGCAGTCCACCCAAAGTCATAGCATTTAATCCATTCTAGGAAGA -TACGTCAGTGCTGAGTTGAGCCAATAACACCAAATTGTCATAAGAACTATTATTTTCTTT -ATGATTTTTACGCATCAGTACAGGTGTTTTCTTGTGGTTTCTGCTGCATGTATCCCTGTT -GTAAGTGGATTCTCCTTTGCTTATGATCTCCTCCGCTGCGTTGTATCCTGTTTGTAGTGG -ATTTCCTTGCACTGATTCTGCCCGCTCTTAATACTGAATGAACGCCCTCCCACCAGTAGT -ACTGCCACCTTTGTTTTTTCACAAAGTGTTCAATGGCCTTGATAATGACTTGGTAACTAC -ATCACCACTTTTTTGTACGTAATCAACAGACAATCACCCATTAAATTCATGCGGCCATTA -GGCAGCTTGATGAGCTGGACATTTGACCTCCCCAATGAATCTTTGCTGATGGGAAACTTA -TTGCCACCATAAAGTGAACCAGCATTGCTATGTCCATGCTGTAATTTGAAAACCCAATAC -AAAGAAGCCCTGCATATATACCTCCCAAATTGGCTTCTGAGACCCGGGCGTAATCACTGC -ATGGCCATAGATAAACATTGAAATCTTCTGTTGCAGTCAGTTTGCTTTTTGTCAACTTTA -AAAACTGCC diff --git a/recipes/repeatmasker/test_md5.txt b/recipes/repeatmasker/test_md5.txt deleted file mode 100644 index 889b949ed65b5..0000000000000 --- a/recipes/repeatmasker/test_md5.txt +++ /dev/null @@ -1 +0,0 @@ -4a505faa3613b2000873516c9977d3db rm_input1.fasta.masked From 28b9c51c87fd2ea2426f556211740a5aa40f48fc Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 17 Sep 2024 05:42:33 -0400 Subject: [PATCH 1574/1589] Update multiqc to 1.25 (#50755) --- recipes/multiqc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/multiqc/meta.yaml b/recipes/multiqc/meta.yaml index 13a32a383c730..2584e243ac4f0 100644 --- a/recipes/multiqc/meta.yaml +++ b/recipes/multiqc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "multiqc" %} -{% set version = "1.24.1" %} +{% set version = "1.25" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/MultiQC/MultiQC/archive/v{{ version }}.tar.gz - sha256: 88794a38a2b62635a44ba8af596959e0b2f530b21fa294ff3c6aa68780e9e166 + sha256: 5522c820708af2c4fd5975df0f8077f78f8a3b5435c785ab8081e8fca065a5fb build: number: 0 From d3318bba84490fdc052dec07d0b66f3be7a64ba4 Mon Sep 17 00:00:00 2001 From: Liz Gehret <54517601+lizgehret@users.noreply.github.com> Date: Tue, 17 Sep 2024 03:09:45 -0700 Subject: [PATCH 1575/1589] UPDATE: remove old dendropy pin (#50711) * PIN: remove dendropy pin now that sepp is compatible * bump build number --- recipes/busco/meta.yaml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/recipes/busco/meta.yaml b/recipes/busco/meta.yaml index 528eb257d49c9..301a04bc398ed 100644 --- a/recipes/busco/meta.yaml +++ b/recipes/busco/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 noarch: python run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} @@ -30,7 +30,6 @@ requirements: - biopython >=1.79 - prodigal - sepp >=4.3.10 - - dendropy <4.6.0 # necessary temporarily until SEPP updates their codebase or recipe - metaeuk >=6.a5d39d9 # needed for gff bug fix - pandas - bbmap @@ -47,7 +46,6 @@ requirements: - r-ggplot2 >=2.2.1 - prodigal - sepp >=4.3.10 - - dendropy <4.6.0 # necessary temporarily until SEPP updates their codebase or recipe - metaeuk >=6.a5d39d9 # needed for gff bug fix - pandas - bbmap From 5e78da548c906129bfa1b2309fee73ab4649de5b Mon Sep 17 00:00:00 2001 From: Maarten-vd-Sande Date: Tue, 17 Sep 2024 12:09:58 +0200 Subject: [PATCH 1576/1589] restrict mysql dependency (#50652) * fix mysql dependency * Update meta.yaml * Update meta.yaml --- recipes/genomepy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/genomepy/meta.yaml b/recipes/genomepy/meta.yaml index f82088f838ea9..be6715605d58e 100644 --- a/recipes/genomepy/meta.yaml +++ b/recipes/genomepy/meta.yaml @@ -9,7 +9,7 @@ source: sha256: c550e32fbafd67ae4ce3792356459fd6658de70ab8820a735a8a815238643be9 build: - number: 1 + number: 2 noarch: python script: {{ PYTHON }} -m pip install . --no-deps --ignore-installed -vv run_exports: @@ -30,7 +30,7 @@ requirements: - filelock >=3.5 - loguru - mygene - - mysql-connector-python + - mysql-connector-python <=8.4.0 - norns >=0.1.6 - numpy - pandas From 99b3643f20748946dcbf95caf244f3573593eb2a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 17 Sep 2024 07:04:19 -0400 Subject: [PATCH 1577/1589] Update earlgrey to 4.4.5 (#50754) Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/earlgrey/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/earlgrey/meta.yaml b/recipes/earlgrey/meta.yaml index 85537bedc2ed3..a0ebe85066f9e 100644 --- a/recipes/earlgrey/meta.yaml +++ b/recipes/earlgrey/meta.yaml @@ -1,6 +1,6 @@ {% set name = "EarlGrey" %} -{% set version = "4.4.4" %} -{% set sha256 = "53325316215f6e9c4bfbff7c1e404360d3fed32efe01ae2fef55398b5f60931e" %} +{% set version = "4.4.5" %} +{% set sha256 = "63def9d8389f6163fcd308e77dd23e3f923a2fe67cf5bc0a921c40d33028bfc1" %} package: name: {{ name|lower }} From 52da4d3c4c1b0915aa4b3d84b9b0ab1a05181730 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 17 Sep 2024 08:08:40 -0400 Subject: [PATCH 1578/1589] Update wally to 0.5.9 (#50761) * Update wally to 0.5.9 * v0.5.9 --------- Co-authored-by: Tobias Rausch --- recipes/wally/build.sh | 4 +- recipes/wally/build_failure.linux-64.yaml | 104 ---------------------- recipes/wally/build_failure.osx-64.yaml | 104 ---------------------- recipes/wally/meta.yaml | 28 +++--- 4 files changed, 13 insertions(+), 227 deletions(-) delete mode 100644 recipes/wally/build_failure.linux-64.yaml delete mode 100644 recipes/wally/build_failure.osx-64.yaml diff --git a/recipes/wally/build.sh b/recipes/wally/build.sh index 0ed542795a662..c41da757c0afd 100644 --- a/recipes/wally/build.sh +++ b/recipes/wally/build.sh @@ -1,5 +1,3 @@ #!/bin/sh -make all CXX=$CXX CXXFLAGS="-D__STDC_FORMAT_MACROS -I${PREFIX}/include -L${PREFIX}/lib" -mkdir -p $PREFIX/bin -cp src/wally $PREFIX/bin +CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS -I${PREFIX}/include -L${PREFIX}/lib" make -j${CPU_COUNT} CXX="${CXX}" prefix="${PREFIX}" install diff --git a/recipes/wally/build_failure.linux-64.yaml b/recipes/wally/build_failure.linux-64.yaml deleted file mode 100644 index c65f87709d7fd..0000000000000 --- a/recipes/wally/build_failure.linux-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: d48576ae8fde1a2e33ae3eb308cf274506b9c7e8cb9287b6ead7d7532ee0e9d8 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |- - Verifying transaction: ...working... done - Executing transaction: ...working... done - Source cache directory is: /opt/conda/conda-bld/src_cache - Downloading source to cache: v0.5.8_ddd3376ad4.tar.gz - Downloading https://github.com/tobiasrausch/wally/archive/v0.5.8.tar.gz - Success - Extracting download - source tree in: /opt/conda/conda-bld/wally_1717808847579/work - export PREFIX=/opt/conda/conda-bld/wally_1717808847579/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho - export BUILD_PREFIX=/opt/conda/conda-bld/wally_1717808847579/_build_env - export SRC_DIR=/opt/conda/conda-bld/wally_1717808847579/work - INFO: activate-binutils_linux-64.sh made the following environmental changes: - ADDR2LINE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-addr2line - AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar - AS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-as - CXXFILT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cfilt - ELFEDIT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-elfedit - GPROF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gprof - LD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld - LD_GOLD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld.gold - NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-nm - OBJCOPY=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objcopy - OBJDUMP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objdump - RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib - READELF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-readelf - SIZE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-size - STRINGS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strings - STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip - INFO: activate-gcc_linux-64.sh made the following environmental changes: - BUILD=x86_64-conda-linux-gnu - CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc - CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc - CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/wally-0.5.8 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin - CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr - CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot - CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu - CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu - CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp - CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include - DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/wally-0.5.8 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include - GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc - GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar - GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm - GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib - HOST=x86_64-conda-linux-gnu - LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib - MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu - build_alias=x86_64-conda-linux-gnu - host_alias=x86_64-conda-linux-gnu - -BUILD=x86_64-conda_cos6-linux-gnu - -CONDA_BUILD_SYSROOT= - INFO: activate-gxx_linux-64.sh made the following environmental changes: - CXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c - CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/wally-0.5.8 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c - DEBUG_CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/wally-0.5.8 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - GXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-g - if [ -r src/htslib/Makefile ]; then cd src/htslib && autoreconf -i && ./configure --disable-s3 --disable-gcs --disable-libcurl --disable-plugins && make && make lib-static && cd ../../ && touch .htslib; fi - if [ -f src/opencv/CMakeLists.txt ]; then cd src/opencv/ && mkdir build && cd build/ && cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=$SRC_DIR/src/ocv -D BUILD_SHARED_LIBS="ON" -DOPENCV_GENERATE_PKGCONFIG=ON -D BUILD_ZLIB=ON -D BUILD_PNG=ON -D BUILD_OPENJPEG=ON -D WITH_OPENEXR=OFF -D WITH_JPEG=OFF -D WITH_JASPER=OFF -D WITH_TIFF=OFF -D WITH_WEBP=OFF -D WITH_OPENCL=OFF -D WITH_GTK="ON" -D WITH_FFMPEG=OFF -D WITH_1394=OFF -D WITH_IPP=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_opencv_apps=OFF .. && make -j 4 && make install && cd ../ && rm -rf build/ && cd ../../ && touch .opencv; fi - $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -D__STDC_FORMAT_MACROS -I$PREFIX/include -L$PREFIX/lib -I$PREFIX/include/opencv4 src/wally.cpp -o src/wally -L$PREFIX/lib -lopencv_gapi -lopencv_stitching -lopencv_alphamat -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_cvv -lopencv_dnn_objdetect -lopencv_dnn_superres -lopencv_dpm -lopencv_face -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_hfs -lopencv_img_hash -lopencv_intensity_transform -lopencv_line_descriptor -lopencv_mcc -lopencv_quality -lopencv_rapid -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_signal -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_superres -lopencv_optflow -lopencv_surface_matching -lopencv_tracking -lopencv_highgui -lopencv_datasets -lopencv_text -lopencv_plot -lopencv_videostab -lopencv_videoio -lopencv_wechat_qrcode -lopencv_xfeatures2d -lopencv_shape -lopencv_ml -lopencv_ximgproc -lopencv_video -lopencv_xobjdetect -lopencv_objdetect -lopencv_calib3d -lopencv_imgcodecs -lopencv_features2d -lopencv_dnn -lopencv_flann -lopencv_xphoto -lopencv_photo -lopencv_imgproc -lopencv_core -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$SRC_DIR/src/htslib/ -lboost_iostreams -lboost_filesystem -lboost_system -lboost_program_options -lboost_date_time -pthread -lhts -lz -llzma -lbz2 -Wl,-rpath,$SRC_DIR/src/htslib/ -Wl,-rpath,$SRC_DIR/src/ocv/lib/ -Wl,-rpath,$SRC_DIR/src/ocv/lib64/ - In file included from src/region.h:29, - from src/wally.cpp:13: - src/util.h:114:37: warning: 'template struct std::binary_function' is deprecated [-Wdeprecated-declarations] - 114 | struct SortMappings : public std::binary_function - | ^~~~~~~~~~~~~~~ - In file included from /opt/conda/conda-bld/wally_1717808847579/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/string:48, - from /opt/conda/conda-bld/wally_1717808847579/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/locale_classes.h:40, - from /opt/conda/conda-bld/wally_1717808847579/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/ios_base.h:41, - from /opt/conda/conda-bld/wally_1717808847579/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/ios:42, - from /opt/conda/conda-bld/wally_1717808847579/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/ostream:38, - from /opt/conda/conda-bld/wally_1717808847579/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/iostream:39, - from src/wally.cpp:3: - /opt/conda/conda-bld/wally_1717808847579/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_function.h:131:12: note: declared here - 131 | struct binary_function - | ^~~~~~~~~~~~~~~ - In file included from src/wally.cpp:15: - src/dotplot.h: In function 'int wallysworld::dotplotRun(TConfigStruct&)': - src/dotplot.h:500:74: error: 'boost::filesystem::copy_option' has not been declared - 500 | boost::filesystem::copy_file(c.file, c.seqfile, boost::filesystem::copy_option::overwrite_if_exists); - | ^~~~~~~~~~~ - make: *** [Makefile:67: src/wally] Error 1 - Traceback (most recent call last): - File "/opt/conda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - utils.check_call_env( - File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/wally_1717808847579/work/conda_build.sh']' returned non-zero exit status 2. -# Last 100 lines of the build log. diff --git a/recipes/wally/build_failure.osx-64.yaml b/recipes/wally/build_failure.osx-64.yaml deleted file mode 100644 index c79f6688d6ab9..0000000000000 --- a/recipes/wally/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: d48576ae8fde1a2e33ae3eb308cf274506b9c7e8cb9287b6ead7d7532ee0e9d8 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - ~~~~~^~~~~~~~~~~~~~~ - __binary_function - /opt/mambaforge/envs/bioconda/conda-bld/wally_1717635453488/_build_env/bin/../include/c/v1/__functional/binary_function.h:49:1: note: '__binary_function' declared here - using __binary_function = __binary_function_keep_layout_base<_Arg1, _Arg2, _Result>; - ^ - In file included from src/wally.cpp:15: - src/dotplot.h:500:74: error: no member named 'copy_option' in namespace 'boost::filesystem'; did you mean 'copy_options'? - boost::filesystem::copy_file(c.file, c.seqfile, boost::filesystem::copy_option::overwrite_if_exists); - ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ - copy_options - /opt/mambaforge/envs/bioconda/conda-bld/wally_1717635453488/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/include/boost/filesystem/operations.hpp:44:12: note: 'copy_options' declared here - enum class copy_options : unsigned int - ^ - In file included from src/wally.cpp:15: - src/dotplot.h:500:87: error: no member named 'overwrite_if_exists' in 'boost::filesystem::copy_options'; did you mean 'overwrite_existing'? - boost::filesystem::copy_file(c.file, c.seqfile, boost::filesystem::copy_option::overwrite_if_exists); - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~ - overwrite_existing - /opt/mambaforge/envs/bioconda/conda-bld/wally_1717635453488/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/include/boost/filesystem/operations.hpp:50:5: note: 'overwrite_existing' declared here - overwrite_existing = 1u << 1u, // Overwrite existing file - ^ - In file included from src/wally.cpp:18: - In file included from src/gfa.h:36: - src/gfadraw.h:103:10: error: no member named 'random_shuffle' in namespace 'std' - std::random_shuffle(sf.begin(), sf.end()); - ~~~~~^ - 5 errors generated. - make: *** [Makefile:67: src/wally] Error 1 - Extracting download - source tree in: /opt/mambaforge/envs/bioconda/conda-bld/wally_1717635453488/work - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in - sys.exit(execute()) - export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/wally_1717635453488/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol - export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/wally_1717635453488/_build_env - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/wally_1717635453488/work - INFO: activate_clang_osx-64.sh made the following environmental changes: - AR=x86_64-apple-darwin13.4.0-ar - AS=x86_64-apple-darwin13.4.0-as - CC=x86_64-apple-darwin13.4.0-clang - api.build( - CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/wally-0.5.8 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms - CLANG=x86_64-apple-darwin13.4.0-clang - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - utils.check_call_env( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/wally_1717635453488/work/conda_build.sh']' returned non-zero exit status 2. - CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin - CMAKE_PREFIX_PATH=:$PREFIX - CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 - CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 - CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 - DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/wally-0.5.8 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - HOST=x86_64-apple-darwin13.4.0 - INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool - LD=x86_64-apple-darwin13.4.0-ld - LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib - LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib - LIBTOOL=x86_64-apple-darwin13.4.0-libtool - LIPO=x86_64-apple-darwin13.4.0-lipo - MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib - NM=x86_64-apple-darwin13.4.0-nm - NMEDIT=x86_64-apple-darwin13.4.0-nmedit - OBJC=x86_64-apple-darwin13.4.0-clang - OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - OTOOL=x86_64-apple-darwin13.4.0-otool - PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff - RANLIB=x86_64-apple-darwin13.4.0-ranlib - REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding - SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk - SEGEDIT=x86_64-apple-darwin13.4.0-segedit - SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table - SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack - SIZE=x86_64-apple-darwin13.4.0-size - STRINGS=x86_64-apple-darwin13.4.0-strings - STRIP=x86_64-apple-darwin13.4.0-strip - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 - ac_cv_func_malloc_0_nonnull=yes - ac_cv_func_realloc_0_nonnull=yes - build_alias=x86_64-apple-darwin13.4.0 - host_alias=x86_64-apple-darwin13.4.0 - INFO: activate_clangxx_osx-64.sh made the following environmental changes: - CLANGXX=x86_64-apple-darwin13.4.0-clang - CXX=x86_64-apple-darwin13.4.0-clang - CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/wally-0.5.8 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/wally-0.5.8 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - if [ -r src/htslib/Makefile ]; then cd src/htslib && autoreconf -i && ./configure --disable-s3 --disable-gcs --disable-libcurl --disable-plugins && make && make lib-static && cd ../../ && touch .htslib; fi - if [ -f src/opencv/CMakeLists.txt ]; then cd src/opencv/ && mkdir build && cd build/ && cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=$SRC_DIR/src/ocv -D BUILD_SHARED_LIBS="ON" -DOPENCV_GENERATE_PKGCONFIG=ON -D BUILD_ZLIB=ON -D BUILD_PNG=ON -D BUILD_OPENJPEG=ON -D WITH_OPENEXR=OFF -D WITH_JPEG=OFF -D WITH_JASPER=OFF -D WITH_TIFF=OFF -D WITH_WEBP=OFF -D WITH_OPENCL=OFF -D WITH_GTK="ON" -D WITH_FFMPEG=OFF -D WITH_1394=OFF -D WITH_IPP=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_opencv_apps=OFF .. && make -j 4 && make install && cd ../ && rm -rf build/ && cd ../../ && touch .opencv; fi - x86_64-apple-darwin13.4.0-clang -D__STDC_FORMAT_MACROS -I$PREFIX/include -L$PREFIX/lib -I$PREFIX/include/opencv4 src/wally.cpp -o src/wally -L$PREFIX/lib -lopencv_gapi -lopencv_stitching -lopencv_alphamat -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dnn_superres -lopencv_dpm -lopencv_face -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_hfs -lopencv_img_hash -lopencv_intensity_transform -lopencv_line_descriptor -lopencv_mcc -lopencv_quality -lopencv_rapid -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_superres -lopencv_optflow -lopencv_surface_matching -lopencv_tracking -lopencv_highgui -lopencv_datasets -lopencv_text -lopencv_plot -lopencv_videostab -lopencv_videoio -lopencv_wechat_qrcode -lopencv_xfeatures2d -lopencv_shape -lopencv_ml -lopencv_ximgproc -lopencv_video -lopencv_xobjdetect -lopencv_objdetect -lopencv_calib3d -lopencv_imgcodecs -lopencv_features2d -lopencv_dnn -lopencv_flann -lopencv_xphoto -lopencv_photo -lopencv_imgproc -lopencv_core -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$SRC_DIR/src/htslib/ -lboost_iostreams -lboost_filesystem -lboost_system -lboost_program_options -lboost_date_time -pthread -lhts -lz -llzma -lbz2 -Wl,-rpath,$SRC_DIR/src/htslib/ -Wl,-rpath,$SRC_DIR/src/ocv/lib/ -Wl,-rpath,$SRC_DIR/src/ocv/lib64/ -# Last 100 lines of the build log. diff --git a/recipes/wally/meta.yaml b/recipes/wally/meta.yaml index 035f146190cf1..a3e561ae1a3cd 100644 --- a/recipes/wally/meta.yaml +++ b/recipes/wally/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.5.8" %} -{% set sha256 = "ddd3376ad4dc3a37ccdafd813a9f6824fd3d78f35b440be7f810471b250facbd" %} +{% set version = "0.5.9" %} +{% set sha256 = "ab4a73062076ae0dea08a50cab8b0344e40b3a8f888e8e9a11c77a9e1887d698" %} package: name: wally @@ -10,29 +10,25 @@ source: sha256: '{{ sha256 }}' build: - number: 3 + number: 0 + run_exports: + - {{ pin_subpackage("wally", max_pin="x.x") }} requirements: build: - - {{ compiler('cxx') }} - - {{ cdt('mesa-libgl-devel') }} # [linux] - - {{ cdt('mesa-dri-drivers') }} # [linux] - - {{ cdt('libselinux') }} # [linux] - - {{ cdt('libxdamage') }} # [linux] - - {{ cdt('libxxf86vm') }} # [linux] - - {{ cdt('libxext') }} # [linux] - - xorg-libxfixes # [linux] - make - - pkg-config # [osx] + - {{ compiler('cxx') }} host: - zlib - bzip2 + - libdeflate - boost-cpp - libopencv >=4.5.3 - htslib run: - zlib - bzip2 + - libdeflate - boost-cpp - libopencv >=4.5.3 - htslib @@ -41,13 +37,13 @@ test: commands: - wally --help -extra: - container: - extended-base: True - about: home: https://github.com/tobiasrausch/wally license: BSD-3-Clause license_family: BSD license_file: LICENSE summary: Visualization of aligned sequencing reads and genomic variants. + +extra: + additional-platforms: + - linux-aarch64 From ebdf9e51ef8291f9355d346a685c7e54b1b25c82 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 17 Sep 2024 08:26:39 -0400 Subject: [PATCH 1579/1589] Update minute to 0.9.0 (#50760) * Update minute to 0.9.0 * Update dependencies and home page --------- Co-authored-by: Marcel Martin --- recipes/minute/meta.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/recipes/minute/meta.yaml b/recipes/minute/meta.yaml index f6537caa53407..8ce2b630e521a 100644 --- a/recipes/minute/meta.yaml +++ b/recipes/minute/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.8.0" %} +{% set version = "0.9.0" %} package: name: minute @@ -6,7 +6,7 @@ package: source: url: https://github.com/elsasserlab/minute/archive/refs/tags/v{{ version }}.tar.gz - sha256: dc73acfae6ffcbd47382381abe13bf35faf741dda87b5731b119f634ed0f9d36 + sha256: bac0252f635ff015d80abd35375407ccf48b12babd947f900889d6475f2cac13 build: number: 0 @@ -25,7 +25,8 @@ requirements: - snakemake-minimal >=7.22.0 - samtools >=1.13 - cutadapt >=3.7 - - bowtie2 >=2.4.4 + - bowtie2 >=2.5.3 + - strobealign >=0.13.0 - je-suite >=2.0.RC - igvtools >=2.5.3 - deeptools >=3.5.0 @@ -47,7 +48,7 @@ test: - minute --version about: - home: https://github.com/NBISweden/minute/ + home: https://github.com/elsasserlab/minute/ license: MIT summary: MINUTE-ChIP data analysis workflow From 37e6f2ba88cff58c81fcaa5ceb6413b57f9dc2aa Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 17 Sep 2024 08:27:30 -0400 Subject: [PATCH 1580/1589] Update veryfasttree to 4.0.4 (#50759) * Update veryfasttree to 4.0.4 * add aarch64/arm64 builds --------- Co-authored-by: mencian --- recipes/veryfasttree/LICENSE | 691 --------------------------------- recipes/veryfasttree/build.sh | 41 +- recipes/veryfasttree/meta.yaml | 29 +- 3 files changed, 57 insertions(+), 704 deletions(-) delete mode 100644 recipes/veryfasttree/LICENSE diff --git a/recipes/veryfasttree/LICENSE b/recipes/veryfasttree/LICENSE deleted file mode 100644 index 357d4c5614dee..0000000000000 --- a/recipes/veryfasttree/LICENSE +++ /dev/null @@ -1,691 +0,0 @@ - -VeryFastTree -- speeding up the estimation of phylogenies for large alignments - through parallelization and vectorization strategies - -VeryFastTree: - César P. Pomar: https://citius.usc.es/v/cesar-alfredo-pineiro-pomar - Juan C. Pichel: https://citius.usc.es/v/juan-carlos-pichel-campos - -Based on FastTree: - Morgan N. Price: http://www.microbesonline.org/fasttree/ - -Copyright (C) 2008-2015 The Regents of the University of California -Copyright (C) 2018-2019 Universidade de Santiago de Compostela - - - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - Copyright (C) 2008-2015 The Regents of the University of California - Copyright (C) 2018-2019 Universidade de Santiago de Compostela - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Fasttree Copyright (C) 2008-2015 The Regents of the University of California - VeryFastTree Copyright (C) 2018-2019 Universidade de Santiago de Compostela - - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/recipes/veryfasttree/build.sh b/recipes/veryfasttree/build.sh index 85c77f01983a1..8cf6516043503 100644 --- a/recipes/veryfasttree/build.sh +++ b/recipes/veryfasttree/build.sh @@ -1,5 +1,40 @@ #!/bin/bash -cmake -DUSE_NATIVE=OFF -USE_AVX2=ON . -make + mkdir -p $PREFIX/bin -cp VeryFastTree $PREFIX/bin/VeryFastTree + +export INCLUDES="-I{PREFIX}/include" +export LIBPATH="-L${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CXXFLAGS="${CXXFLAGS} -O3 -I{PREFIX}/include" + +OS=$(uname) +ARCH=$(uname -m) + +if [[ "${OS}" == "Darwin" && "${ARCH}" == "x86_64" ]]; then + export SIMD_LEVEL="-DUSE_SEE4=ON" +elif [[ "${OS}" == "Linux" && "${ARCH}" == "x86_64" ]]; then + export SIMD_LEVEL="-DUSE_AVX2=ON" +elif [[ "${OS}" == "Linux" && "${ARCH}" == "aarch64" ]]; then + export SIMD_LEVEL="-DUSE_SEE2=OFF" +else + export SIMD_LEVEL="" +fi + +if [[ "$(uname)" == "Darwin" ]]; then + export CONFIG_ARGS="-DCMAKE_FIND_FRAMEWORK=NEVER -DCMAKE_FIND_APPBUNDLE=NEVER" + export LDFLAGS="${LDFLAGS} -Wl,-rpath,${PREFIX}/lib" +else + export CONFIG_ARGS="" +fi + +cmake -S . -B build -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ + -DCMAKE_CXX_COMPILER="${CXX}" \ + -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ + -DUSE_NATIVE=OFF \ + "${CONFIG_ARGS}" \ + "${SIMD_LEVEL}" + +cmake --build build --target install -j "${CPU_COUNT}" -v + +chmod 0755 ${PREFIX}/bin/VeryFastTree diff --git a/recipes/veryfasttree/meta.yaml b/recipes/veryfasttree/meta.yaml index 34bdf32369805..1f3718f2aba7f 100644 --- a/recipes/veryfasttree/meta.yaml +++ b/recipes/veryfasttree/meta.yaml @@ -1,6 +1,6 @@ {% set name = "veryFastTree" %} -{% set version = "4.0.03" %} -{% set sha256 = "40c6b2f94d7d94f0a58b4736174c091f1131c83a8a090c0776c1789f3c13ef8a" %} +{% set version = "4.0.4" %} +{% set sha256 = "27c779164f4fa0c75897a6e95b35f820a2a10e7c244b8923c575e0ea46f15f6b" %} package: name: {{ name|lower }} @@ -12,36 +12,45 @@ source: build: number: 0 - skip: True # [osx] run_exports: - {{ pin_subpackage('veryfasttree', max_pin="x") }} requirements: build: - {{ compiler('cxx') }} - - libgomp - cmake - make host: - - libgomp + - libgomp # [linux] + - llvm-openmp # [osx] run: - - libgomp + - libgomp # [linux] + - llvm-openmp # [osx] test: commands: - VeryFastTree --help about: - home: https://github.com/citiususc/veryfasttree - license: GPL-3.0-only + home: "https://github.com/citiususc/veryfasttree" + license: "GPL-3.0-only" + license_family: GPL3 license_file: LICENSE - summary: VeryFastTree -- speeding up the estimation of phylogenies for large alignments through parallelization and vectorization strategies + summary: "VeryFastTree -- speeding up the estimation of phylogenies for large alignments through parallelization and vectorization strategies." description: | VeryFastTree is a highly-tuned implementation of the FastTree-2 tool that takes advantage of parallelization and vectorization strategies to speed up the inference of phylogenies for huge alignments. - dev_url: https://github.com/citiususc/veryfasttree + dev_url: "https://github.com/citiususc/veryfasttree" + doc_url: "https://github.com/citiususc/veryfasttree/blob/v{{ version }}/README.md" extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - cesarpomar - jcpichel + identifiers: + - doi:10.1093/bioinformatics/btaa582 + - doi:10.1093/gigascience/giae055 + - biotools:veryfasttree From eb79e19e3bae5da27b16029ff53bd144e6829116 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 17 Sep 2024 07:31:47 -0500 Subject: [PATCH 1581/1589] Update RepeatMasker recipe (#50757) * Update RepeatMasker recipe * edit build.sh * edit build.sh * edit build.sh --- recipes/repeatmasker/build.sh | 8 ++++++++ recipes/repeatmasker/meta.yaml | 2 +- recipes/repeatmasker/post-link.sh | 14 +++++++------- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/recipes/repeatmasker/build.sh b/recipes/repeatmasker/build.sh index ce1f7e31c9581..a5bd9e199974f 100644 --- a/recipes/repeatmasker/build.sh +++ b/recipes/repeatmasker/build.sh @@ -38,5 +38,13 @@ for name in ${RM_DIR}/util/* ; do done # Fix perl shebang +sed -i.bak '1 s|^.*$|#!/usr/bin/env perl|g' ${RM_DIR}/RepeatMasker +sed -i.bak '1 s|^.*$|#!/usr/bin/env perl|g' ${RM_DIR}/DupMasker +sed -i.bak '1 s|^.*$|#!/usr/bin/env perl|g' ${RM_DIR}/ProcessRepeats +sed -i.bak '1 s|^.*$|#!/usr/bin/env perl|g' ${RM_DIR}/RepeatProteinMask sed -i.bak '1 s|^.*$|#!/usr/bin/env perl|g' ${RM_DIR}/util/*.pl +sed -i.bak '1 s|^.*$|#!/usr/bin/env perl|g' ${RM_DIR}/*.pm +sed -i.bak '1 s|^.*$|#!/usr/bin/env perl|g' ${RM_DIR}/*.pl + rm -rf ${RM_DIR}/util/*.bak +rm -rf ${RM_DIR}/*.bak diff --git a/recipes/repeatmasker/meta.yaml b/recipes/repeatmasker/meta.yaml index 2fa46a0da84db..0fdf342d65868 100644 --- a/recipes/repeatmasker/meta.yaml +++ b/recipes/repeatmasker/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 noarch: generic run_exports: - {{ pin_subpackage('repeatmasker', max_pin='x') }} diff --git a/recipes/repeatmasker/post-link.sh b/recipes/repeatmasker/post-link.sh index b566eefab6d1a..0034f2fb10a0f 100644 --- a/recipes/repeatmasker/post-link.sh +++ b/recipes/repeatmasker/post-link.sh @@ -4,14 +4,14 @@ if [[ -f /.dockerenv ]]; then cat >> "$PREFIX/.messages.txt" < ${PREFIX}/share/RepeatMasker/Libraries/Dfam.h5 -rm -rf Dfam_curatedonly.h5.gz +wget -O Dfam-RepeatMasker.lib.gz https://www.dfam.org/releases/Dfam_3.8/families/Dfam-RepeatMasker.lib.gz +gunzip -c Dfam-RepeatMasker.lib.gz > ${PREFIX}/share/RepeatMasker/Libraries/RepeatMasker.lib +rm -rf Dfam-RepeatMasker.lib.gz EOF else - echo "Downloading Dfam_curatedonly.h5.gz from www.dfam.org" - wget -O Dfam_curatedonly.h5.gz https://www.dfam.org/releases/Dfam_3.7/families/Dfam_curatedonly.h5.gz - gunzip -c Dfam_curatedonly.h5.gz > ${PREFIX}/share/RepeatMasker/Libraries/Dfam.h5 - rm -rf Dfam_curatedonly.h5.gz + echo "Dfam-RepeatMasker.lib.gz from www.dfam.org" + wget -O Dfam-RepeatMasker.lib.gz https://www.dfam.org/releases/Dfam_3.8/families/Dfam-RepeatMasker.lib.gz + gunzip -c Dfam-RepeatMasker.lib.gz > ${PREFIX}/share/RepeatMasker/Libraries/RepeatMasker.lib + rm -rf Dfam-RepeatMasker.lib.gz fi From 61a95705c3c91c1b7c51f1f74db37bb58f963a10 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 17 Sep 2024 17:40:35 -0400 Subject: [PATCH 1582/1589] Update augur to 26.0.0 (#50768) --- recipes/augur/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/augur/meta.yaml b/recipes/augur/meta.yaml index 65fabb910a19f..ba381bb2d3dea 100644 --- a/recipes/augur/meta.yaml +++ b/recipes/augur/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "25.4.0" %} +{% set version = "26.0.0" %} package: name: augur @@ -6,7 +6,7 @@ package: source: url: https://github.com/nextstrain/augur/releases/download/{{ version }}/nextstrain_augur-{{ version }}.tar.gz - sha256: 935eacb19853e7f6006814d060b5460b3e91501f470a6af88864c512b46b1c6a + sha256: 0040d881eca4d695b75ba87c07a6c7abbdd13cc3e200606d77b38b875348cb07 build: number: 0 From d182237aa7aed655bc7fc3c30d610faecf58d6ef Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 18 Sep 2024 00:01:43 -0400 Subject: [PATCH 1583/1589] Update ropebwt3 to 3.7 (#50773) --- recipes/ropebwt3/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ropebwt3/meta.yaml b/recipes/ropebwt3/meta.yaml index 44fa1b792a79e..8128c0239fb51 100644 --- a/recipes/ropebwt3/meta.yaml +++ b/recipes/ropebwt3/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ropebwt3" %} -{% set version = "3.6" %} +{% set version = "3.7" %} package: name: {{ name }} @@ -12,7 +12,7 @@ build: source: url: https://github.com/lh3/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz - sha256: 548bcb3f9ed5c2c0f558c2d92b5d3b05db594eb174f5f94914c34c833c17256b + sha256: 10a8f2974b5117a62bb490c231bd2539826cedea458798acd3273dc7b6baf9b8 requirements: build: From cb87518411bc0167a8d08b2beb3414111b7dddfd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 18 Sep 2024 00:44:34 -0400 Subject: [PATCH 1584/1589] Update hybracter to 0.9.0 (#50772) --- recipes/hybracter/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/hybracter/meta.yaml b/recipes/hybracter/meta.yaml index 0ed0b9a4d0672..2df2be7c1872a 100644 --- a/recipes/hybracter/meta.yaml +++ b/recipes/hybracter/meta.yaml @@ -1,5 +1,5 @@ {% set name = "hybracter" %} -{% set version = "0.8.0" %} +{% set version = "0.9.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/hybracter-{{ version }}.tar.gz - sha256: fc0f926e9470698976674f84ee4c9a1158cfdbaeb7eb4ddd1d9d827a4c08a86d + sha256: 5b0d928520d1ead9d3007b48903f6a895a44243324f6b71276de08c896b16ae0 build: number: 0 From 8bf87aa703ea4a260cea47748f41d0d772bd8b28 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 18 Sep 2024 00:46:37 -0400 Subject: [PATCH 1585/1589] Update peaks2utr to 1.3.0 (#50770) --- recipes/peaks2utr/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/peaks2utr/meta.yaml b/recipes/peaks2utr/meta.yaml index 3d0de3bfbe81d..ff37f2d40bf9e 100644 --- a/recipes/peaks2utr/meta.yaml +++ b/recipes/peaks2utr/meta.yaml @@ -1,5 +1,5 @@ {% set name = "peaks2utr" %} -{% set version = "1.2.6" %} +{% set version = "1.3.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/peaks2utr-{{ version }}.tar.gz - sha256: ba17dd81b942e6b846804b03154358e331c489d7bc12573711c551faece11fed + sha256: b54c4d1b7eaf2229573d7f5031c26000e76657989c2914f67e85de9fb2a402fc build: number: 0 From c51656bfcc8351f46207683072973a04d96bede8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 18 Sep 2024 00:48:01 -0400 Subject: [PATCH 1586/1589] Update nanosim to 3.2.1 (#50769) --- recipes/nanosim/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/nanosim/meta.yaml b/recipes/nanosim/meta.yaml index b5751d1998d61..a131f6b768fde 100644 --- a/recipes/nanosim/meta.yaml +++ b/recipes/nanosim/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "3.2.0" %} -{% set sha256 = "bddb970e34e24dde9d1d9c3b0514798c4664875812ac4071e74973e80182c1ca" %} +{% set version = "3.2.1" %} +{% set sha256 = "49a0608e9fa8ce78b497b2fbe08b82194f5b4e6670e4b2275baccf4e7b3017d8" %} package: name: nanosim @@ -11,7 +11,7 @@ source: build: noarch: generic - number: 2 + number: 0 run_exports: - {{ pin_subpackage('nanosim', max_pin="x") }} From 5d6462b571e8b69087d3b299f19789ef8e840e69 Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Tue, 17 Sep 2024 21:48:37 -0700 Subject: [PATCH 1587/1589] Update ntjoin build (#50766) --- recipes/ntjoin/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/ntjoin/meta.yaml b/recipes/ntjoin/meta.yaml index 2e784d9954226..bd29bd4215cb8 100644 --- a/recipes/ntjoin/meta.yaml +++ b/recipes/ntjoin/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 808260e3e8c25121f4b7b88a0dd1766c9da0b59d5ebf843a5ec84efb13944009 build: - number: 0 + number: 1 noarch: generic run_exports: - {{ pin_subpackage("ntjoin", max_pin="x") }} @@ -32,6 +32,7 @@ requirements: - zlib - make - btllib + - packaging test: commands: From 5d7b2dcd420093ca1cf515e70792259f2394722a Mon Sep 17 00:00:00 2001 From: stuber Date: Tue, 17 Sep 2024 22:49:11 -0600 Subject: [PATCH 1588/1589] vsnp3 version 3.25 (#50767) --- recipes/vsnp3/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/vsnp3/meta.yaml b/recipes/vsnp3/meta.yaml index eb92890af55bf..426ab6cdc0a41 100644 --- a/recipes/vsnp3/meta.yaml +++ b/recipes/vsnp3/meta.yaml @@ -1,7 +1,7 @@ {% set user = "USDA-VS" %} {% set name = "vsnp3" %} -{% set version = "3.24" %} -{% set sha256 = "1a1013027a8112ba1e71e29a79e1cbdd92fee941738c24bddbee083b7d653788" %} +{% set version = "3.25" %} +{% set sha256 = "04af483d78019bc6ed9f2df028d7be7db2d5ad55acd2459f4bb1a28f2df83181" %} package: @@ -20,7 +20,7 @@ source: requirements: run: - - python >=3.8,<3.10 + - python >=3.8,<3.12 - bcftools - biopython >=1.79 - bwa From 2e113d4b981743758af2e5113a7ba5d5d62a4ea2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 18 Sep 2024 00:54:02 -0400 Subject: [PATCH 1589/1589] Update ont-modkit to 0.4.0 (#50765) --- recipes/ont-modkit/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ont-modkit/meta.yaml b/recipes/ont-modkit/meta.yaml index c825fb4335790..9f45eb5a76e54 100644 --- a/recipes/ont-modkit/meta.yaml +++ b/recipes/ont-modkit/meta.yaml @@ -1,6 +1,6 @@ {% set name = "ont-modkit" %} -{% set version = "0.3.3" %} -{% set sha256 = "f61674c48ef6b9e3ebd547067d693e128c1da66761ddda08d479d58d52017b2b" %} +{% set version = "0.4.0" %} +{% set sha256 = "a4a304f00f350074b50fb3c71ab8756df0344e0f77a55c443aa48a91c42195bf" %} package: name: {{ name }}